一种EDA虚拟仪器系统实现方法

2023-01-16

虚拟实验系统是针对科研教学活动中实验资源紧张而提出的一种解决方案。是由虚拟现实技术生成的, 包括相应实验室环境、相关的实验仪器设备、实验对象以及实验信息资源等。其中虚拟仪器系统是虚拟实验室系统的核心部分[1]。虚拟实验技术可以让使用者不受时间空间的限制, 随时随地地开展科研和学习工作。首先利用UML工具[2]设计了EDA虚拟仪器系统模型, 并以虚拟示波器为例详细介绍了实现的关键技术。

1 基于UML的虚拟仪器系统建模

1.1 系统需求分析

通过建立一个虚拟仪器系统来以数据或图形化的方式模拟显示电子电路试验的结果。虚拟仪器子系统在时序上位于整个系统的最后一个环节, 图形化显示结果数据。在客户端系统中, 用户根据需要从元器件库模块选择和定制所需元件, 从虚拟仪器模块选择所需仪器, 模拟特性分析子模块指定所需的模拟分析特性。从而生成电路图及特性分析描述文件, 开始实验后, 客户端将电路图初始设定数据及电路描述文件上传给网络应用服务器, 应用服务器根据文件内容调用分析组件, 返回分析报告, 虚拟仪器系统根据分析报告, 抽取有用数据并图形化显示实验结果。

系统具备以下功能:模拟结果图形化显示、模拟效果设置 (人机交互) 、参数测量功能、数据存储。

1.2 系统设计

系统核心类包括:模拟结果显示类 (frmDisplay) 、模拟设置控制类 (frmControl) 、模拟业务处理类 (SimulateDoc) ;另外还有一些实现存贮功能的辅助类:存储文件类 (CFile) 、数据点类 (CPoint) 、数据点集合类 (CArray) 。系统基于U ML的类图如图1左图所示。

要完成各种系统功能需要系统中类密切分工协作。图1右图是系统最具代表性的模拟显示功能的UML顺序图。从上图可以看出模拟业务处理类 (SimulateDoc) 的核心作用, 以它来触发原始数据获取、通知模拟控制类 (frmControl) 初始显示设置、处理原始数据、通知模拟显示类 (frmDisplay) 显示模拟结果。

EDA虚拟实验仪器分为信号产生仪器和测量仪器, 主要包括:万用表、信号发生器、双通道示波器、数位信号产生器、逻辑分析仪、逻辑转换器等。下面主要介绍虚拟示波器的设计及实现技术。

2 虚拟示波器的设计及实现

2.1 虚拟示波器的功能结构

虚拟示波器的设计参考了HP公司的双通道台式数字存储示波器HP 54603B的功能, 并在仪器分析和处理功能上有所扩展。仪器主要功能包括:双通道信号输入、触发控制、通道控制、实时控制、波形显示、参数自动测量、波形存储和回放等。系统软件总体上包括数

据获取、数据处理、数据波形显示、参数测量、控制模块及波形存储和回放等五大模块。仪器运行效果如图2所示。

2.2 虚拟示波器模拟事务处理类 (Simulate-Doc) 的设计

模拟事务处理类 (SimulateDoc) 是系统的重要核心类, 完成所有的业务操作, 包括:初始模拟设置参数、数据获取、数据处理、数据存储、参数测量等。虚拟示波器的SimulateDoc类主要的属性有:CArrayptOriginA, ptOriginB是从实验分析所得结果文件中提取的A、B通道原始数据点集合;CArrayptDisplayA, ptDisplayB是对A、B通道原始数据点集合进行处理后得到的可显示的数据点集合;f r m D i s p l a y*m_pView

是指向模拟结果显示类的指针;frmControl*m_pCtl是指向模拟设置控制类的指针;float m_fLeft、float m_fRight, 是左右测量标尺数值;CFile m_File是需解析的模拟结果文件。

虚拟示波器SimulateDoc类主要的服务有:ParseData从模拟结果文件解析原始数据, 得到A、B通道的原始数据点集合ptOriginA和ptOriginB;ProcessData, 处理原始数据为可显示的坐标数据, 得到可显示的数据点集合ptDisplayA和ptDisplayB;Serialize序列化存储模拟结果;DecidePara确定初始显示设置;Display通知frmDisplay显示模拟结果。

2.3 实现的关键技术

MVC (Model/View/Controller) 设计模式[3]的应用。系统模型及数据被封装在CDocument类中, CView类是数据访问的窗口, 控制器Controller定义了用户界面对用户输入的响应方式。实现时先建立一个文档模板对象, 并将其添加到系统框架CWinApp::m_pDocManager所维护的指针列表m_templateList中。

m_p Template=new CSingleDocTemplate (IDR_MAINFRAME RUNTIME_CLASS (CEmbeddedDoc) , RUNTIME_CLASS (CEmbeddedFrame) , RUNTIME_CLASS (CEmbeddedView) ) ;AddDocTemplate (m_pTemplate) ;同时重载OnCreateClient函数动态创建所需视图并将M V C三者关联成为一个整体。

数据获取模块采用文档解析技术从文本文件中提取所需数据。数据处理子模块用CArray类完成原始数据的转换和管理。数据转换的主要思想是:将原始数据点以时间和电压值为坐标轴的坐标系转换为显示区域X、Y坐标系。转换中为求最佳显示效果必须首先确定原始数据点电压最大最小值, 以此对应显示区Y轴适当位置, 再将其余点依次映射。而X轴则根据时间表示值顺序映射。

为符合现实产生动态效果, 系统用实时动态显示技术来实现数据显示子模块的功能。实现思想是:在窗口类中通过调用S e t T i m e r函数设置系统时钟, 当时间间歇到达, 系统自动把WM_TIMER消息发送到此窗口类消息队列中, 窗口类截获消息则调用OnTimer函数。在OnTimer函数可以动态获取存储数据的改变, 实时地在客户区显示结果。

控制子模块完成数据采集的控制, 包括触发、通道和时基控制等。这些控制功能采用MFC的消息响应机制实现。系统设置一系列的控制参数, 如触发模式、触发斜坡范围、通道控制的幅度设置、Y初始值设置、输入耦合度设置、时基设置等。利用M F C的消息映射机制, 将用户触发的控制消息传递到基于CCmdTarget类的消息处理函数中, 然后系统根据传递的函数类型、参数值, 改变系统的各种设置状态, 进行符合客户需求的数据处理, 并通知波形显示模块把最新的数据结果显示给客户。

3 结语

以虚拟示波器的实现为例提出了一种虚拟仪器系统的实现技术。运行结果表明设计实现的示波器在显示、参数测量和存储等方面都优于传统仪器, 同时通过增加软件模块可以扩展仪器功能。

基于虚拟仪器系统的虚拟实验室通过网络进行电路试验, 突破了传统教学手段构建了一种全新的开放式的实验教学模式。

摘要:研究了虚拟仪器系统的实现技术。首先利用UML工具分析并设计了虚拟仪器系统的模型, 给出了系统类图和顺序图。最后采用MVC模式、文档解析、数据转换及消息响应机制等技术实现了虚拟示波器。

关键词:虚拟仪器,示波器,UML

参考文献

[1] 林云, 刘嘉南, 吴启迪.远程分布式虚拟实验室关键技术研究[J].中国远程教育, 2008 (11) :62~65.

[2] 陈世鸿, 彭蓉.面向对象软件工程[M].北京:电子工业出版社, 1 9 9 9, 5.

[3] David J.Kruglinski著.潘爱民, 等译, Visual C++技术内幕[M].清华大学出版社, 2001, 11.

上一篇:陶瓷绘画的内容及特征研究论述下一篇:腹部闭合性损伤80例手术治疗体会