王 勤,黄云霞,任维政
(北京邮电大学 电子工程学院,北京 100876)
随着网络技术的普及和信息技术的发展,开放式、网络化的远程实验系统应运而生。虚拟仪器作为远程虚拟实验系统的核心,已成为国内外测试和仪器制造界十分关注的研究方向[1]。20世纪80年代中期,美国国家仪器公司 NI(national instrument)首先提出了“软件就是仪器”这一虚拟仪器概念。虚拟仪器是现代仪器技术与计算机技术相结合的产物,充分利用最新的计算机技术来实现传统仪器的功能。将虚拟仪器应用在远程教学和远程实验中,可节省实验室有限资源[3],也为异地实验数据处理和远程学术交流提供了很好的平台。
B/S架构是WEB兴起后的一种网络结构模式,它将系统功能实现的核心部分集中到服务器上,大大减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。本文充分利用B/S架构的优势,将RIA(富英特网应用程序)最成熟的技术之一Flex技术与FPGA技术相结合,应用在远程虚拟示波器中,实现了虚拟示波器的界面与实时数据的交互方式,为将来虚拟实验系统的建设提供了良好的支持。
如图1所示,远程虚拟示波器主要由客户端、网络服务器、示波器硬件平台3部分构成。
图1 远程虚拟示波器系统架构图Fig.1 Architecture diagram of remote virtual oscilloscope system
远程虚拟示波器采用B/S架构,用户通过网络远程登录网络服务器,在客户端界面上进行远程操作。用户在客户端界面上操作虚拟示波器发送动作指令,网络服务器接受到指令后将其解析传递给示波器硬件平台,硬件平台实时采集实验数据,并将其回传给网络服务器,在客户端界面上呈现给用户,供用户查看实验结果和测量相应参数。
(1)客户端
依据B/S架构规范,客户端不需安装任何专门软件,可直接运行于浏览器之上,能适用于庞大的用户群体,且不需任何维护,因此它为用户提供了一个方便快捷的交互接口,体现了B/S架构的优势。用户可直接通过客户端远程登录实验系统,查看、管理自身用户信息及在虚拟示波器界面上操作[2]。
客户端具备和真实示波器完全一致的展示界面,因而最大程度的降低了用户学习使用虚拟示波器的难度。用户在虚拟示波器界面的操作最终会被组包成相应的动作指令,通过Http请求的方式传输给网络服务器。服务器在解析了指令所描述的内容之后也将返回的数据组包成客户端能够识别的格式,回传给客户端。客户端在获取这些指令之后通过界面向用户呈现实验测量的结果。
(2)网络服务器
网络服务器是数据的处理、存储、分发中心。网络服务器需要验证客户端的远程登录请求,接收客户端的操作请求并进行处理,之后将相应的操作指令按照协议组包后通过Socket方式传递给示波器硬件平台;与此同时,服务器还需要接收并解析硬件平台的处理结果,最后将结果反馈给客户端。整个过程数据都存储在网络服务器中,因此数据的一致性和时效性都得到了保证。
(3)示波器硬件平台
示波器硬件平台负责接收网络服务器下发的动作指令,经过分析解析,控制相应的实验电路模块进行工作,并采集实验中产生的实验数据,最后将数据流以Soap方式回传给网络服务器。
如图2所示,远程虚拟示波器硬件平台由ARM处理模块、FPGA数据采集处理模块、高速A/D转换模块构成。
图2 示波器硬件平台组成框图Fig.2 Block diagram of oscilloscope hardware platform
(1)高速A/D转换模块
高速A/D转换模块采用AD9268芯片。该模块负责将采集的多通道模拟信号转换为高速并行的数字信号并传递给FPGA数据采集处理模块,它是整个采样系统的核心功能模块之一,其采样精度和速率决定了采样系统的吞吐量和数据精确度。
(2)ARM 处理模块
ARM处理模块主要功能是接收网络服务器下发的动作指令,并进行解析处理,通过调用总线驱动程序下达指令给FPGA数据采集处理模块,并接收由该模块回传的数据,进而将数据进行封装成数据包,然后通过TCP协议上传给网络服务器。
(3)FPGA数据采集处理模块
FPGA数据采集处理模块采用的是XC6SCLX45-2FGG484型号芯片。该模块主要负责数据的采集和处理,由总线接口、时钟生成模块、多通道采集控制模块、数据处理模块、双端口存储器构成,它是整个示波器硬件平台的控制核心[6]。
①总线接口。总线接口负责控制总线上的数据和控制信号的传输,及解读ARM处理模块传来的ARM指令,并将启动采样信号和采样通道选择信号传递给多通道采集控制模块,将时钟频率参数传递给时钟生成模块。
②时钟生成模块。时钟生成模块根据总线接口传来的时钟频率参数,产生A/D采样时序,进而控制多通道采集控制模块采集数据的频率。
③多通道采集控制模块。多通道采集控制模块负责采集由A/D上传的数据,由启动采样信号、通道选择信号及A/D采样时序进行控制。只有接收到启动采样信号和通道选择信号后,才会根据对应的A/D采样时序进行数据采集,并将数据上传给数据处理模块。
④数据处理模块。数据处理模块接收采集到的数字信号,并对采样信号进行流水线无阻塞的FFT变换,将时域信号转换为频域信号,进而存储到双端口存储器中。
⑤双端口存储器。双端口存储器主要负责数据的存储与转发,采用RAM+FIFO的模式来实现。当数据量较大,内部RAM资源紧张时使用外部的DDR3来代替内部RAM来实现存储。RAM+FIFO模式中,高度A/D转换模块经配置,在其输入时钟的下降沿,将数据存入RAM中,当数据存满RAM时,总线接口将其读出并控制传输到总线上。
数据采集、数据处理和存储控制都可以并行进行,从而使系统有更好的数据处理能力。
如图3所示,系统软件部分主要包括客户端、网络服务器及底层软件3部分,整个虚拟示波器的实现需要这3部分相互配合完成。
图3 系统软件设计流程图Fig.3 Flow chart of system software design
(1)客户端
客户端主要为用户提供一个便捷、交互的接口,使用户能够完成远程测量操作。本系统采用Flex3.0平台完成软件部分的设计[4]。虚拟示波器前端界面设计以真实示波器的图片为背景,利用Flex类库提供的布局组件、控制组件、导航组件等设计各功能键和显示屏两个部分。使用布局组件,实现静态页面由底层到上层的布局层次。在各不同布局层次中放置所需的控件和图表组件,调整布局及控件和图表组件的位置,使其与原位置重合,实现静态界面与真实示波器布局相同的效果。
用户通过操作界面上的功能按钮,产生服务请求,转为相应的指令传给网络服务器。网络服务器把接收到的指令翻译成ARM指令,传给ARM处理模块,此时可通过控制数据采集模块进行数据的采集。采集成功,回传给客户端显示在界面上,否则向客户端发出错误指令,请求用户重新操作。
(2)网络服务器
网络服务器在整个系统中主要起一个指令的接收转发及数据的存储转发功能,在J2EE平台中采用SSH三层构架进行搭建,包括控制界面表现的数据交互层Struts2、业务逻辑控制层 Spring3.0、数据持久化层Hibernate。Struts负责MVC(model view controller)的分离并为整个系统提供基础框架。在框架模型部分,利用Spring完成对业务层的支持,使用Hibernate框架对持久层提供支持。
(3)示波器底层软件设计
示波器底层软件设计,主要包括socket通信,Webservice程序以及多线程通信3部分。其中socket通信是用来接收网络服务器指令的,通信的数据长度较短,数据内容较少,一般为几十个字节。Webservice程序主要是用于向网络服务器上传实验数据的,通信的数据内容较长,数据传输的频率较高,因为很多实验数据需要连续不断地返回[5]。多线程通信包含了套接字与Webservice程序。在程序中设计一个命令队列,并按照命令队列中不同的指令创建不同的线程处理程序,并且在多线程设计中加入线程的控制机制,以达到充分利用系统资源并减少事件间的相互影响的效果。
为了验证远程虚拟示波器的功能及实用性,对实验过程中涉及到的波形、失真度、频率、误差等进行了多次测试,并与实际的高精度的示波器进行了校准和比较,从而证实了该虚拟仪器的可靠性。
以波形的测试举例说明:
(1)对虚拟示波器进行CH1,CH2两个通道并行波形的显示。
打开虚拟示波器的界面。点击run/stop按钮,发送请求数据的指令,可以从网络服务器中取到用于显示的双通道数据,2 V/100 Hz的正弦波信号。并点击Measure测量波形的电压值与周期,其显示波形和测量数据,如图4所示。
图4 双通道波形显示Fig.4 Dual-channel waveform display
(2)对波形进行相应的调整
调整后的波形如图5所示。通过旋转垂直方向、水平方向的位置调整旋钮,对正在显示的数据进行调整,实现位置的上下左右移动。并通过调整电压、时间灵敏度旋钮,使显示的波形纵坐标方向拉长一倍,水平方向拉长5倍,并在此状态下测量电压及周期值。
(3)实验测试结果
图5 调整后的波形Fig.5 Waveform after adjustment
在测试双通道2 V/10 ms的正弦波信号中,调整前:电压显示误差为1%,电压测量误差为3%,时间显示误差为1%,周期测量误差为5%;调整后:电压显示误差为1%,电压测量误差为5%,时间显示误差为1%,周期测量误差为1%;由测试结果可见,测试结果与实物示波器结果几乎完全一致,误差都在实验允许的测量误差范围内,因此虚拟示波器完全可代替实物示波器。
远程虚拟仪器作为远程虚拟实验系统的核心逐渐成为仪器技术新的主流,将其集成在Web工程中也成为仪器新的发展方向。在基于Labview的虚拟仪器作为主要实现方法的大背景下,本文提出了一种全新的虚拟仪器设计算法,即基于B/S架构的远程虚拟示波器设计方法。实现了对实时实验数据精确的显示和测量,随时随地远程访问又满足了远程实验便利快捷的要求,本成果已在北京邮电大学建成应用,使得虚拟示波器有很好的发展前景。
[1] Guimaraes E G,Cardozo E,Moraes D H,et al.Design and implementation issues for modern remote laboratories[J].Learning Technologies,IEEE Transactions on,2011,4(2):149-161.
[2] Swamy N,Kuljaca O,Lewis F L.Internet-based educational control systems lab using NetMeeting[J].Education,IEEE Transactions on,2002,45(2):145-151.
[3] 曹明让.浅谈专业实验室建设[J].高等工程教育,2003(6):51-53.
[4] 王丽.基于Flex技术的虚拟演示实验系统[J].实验室研究与探索,2011(2):64-67.
[5] 孙美香.基于 Internet的远程虚拟仪器[J].电子技术,2000(12):39-41.
[6]Manavi F,Shayan Y R.Implementation of OFDM modem for the physical layer of IEEE 802.11 a standard based on Xilinx Virtex-II FPGA[C]//Vehicular Technology Conference,2004.VTC 2004-Spring.2004 IEEE 59th.IEEE,2004,3:1768-1772. ■