APP下载

网络化虚拟测控系统的设计

2011-05-21任世锦赵恒青郑恩辉付美芹

电子设计工程 2011年12期
关键词:虚拟仪器驱动程序测控

任世锦,赵恒青,郑恩辉,付美芹

(1.徐州师范大学 计算机学院,江苏 徐州 221116;2.中国计量学院 机电工程学院,浙江 杭州 310018)

随着信息技术的发展,社会对测控仪器的需求不断增加,因而对计算机软硬件综合设计和开发能力的要求也越来越高。然而,计算机专业普遍存在“重软轻硬”的现象,学生综合应用计算机专业知识能力和测控产品开发能力较差,降低了学生的就业竞争力和发展潜力。针对上述问题,基于提高计算机应用系统综合设计能力要求,充分利用自动测试技术、计算机技术、网络通信技术,结合科研和测控仪器开发的需要,适应测控仪器向网络化、虚拟化、集成化方向发展的趋势[1-3],设计了网络化虚拟测控系统。

网络化虚拟测控系统基于Labview环境下开发的,从机为基于Nios II软核微处理机系统的片上系统(SOPC),其主要功能为多通道模拟信号的采集、外部设备控制、与主机的通信、传感器信号调理等;主机主要完成外部信号、数据处理与存储、系统参数设置、显示以及人机交互等。整个系统设计工作包括PCI接口卡设计及其驱动程序设计、虚拟仪器应用软件和SOPC系统定制、仿真及其从机软件设计。该系统不仅提供二次开发接口,而且能够配置、自动检测外部设备变化,能够应用于科研、教学和实际测控,具有很强的灵活性、先进性和应用价值。

1 网络化虚拟测控系统的设计

1.1 测控系统的总体设计

借鉴虚拟仪器思想,把虚拟仪器技术引入测控系统,组成以SOPC系统可配置数据采集模块、PCI总线接口卡、虚拟仪器应用软件于一体的网络化虚拟测控系统(如图1所示)。系统的硬件设计包括PCI接口卡设计、基于NIOS II软核的SOPC硬件系统的定制;软件系统设计包括PCI接口卡驱动程序、SOPC软件以及虚拟仪器应用软件、管理软件的设计。虚拟仪器应用软件主要完成数字信号处理、分析、显示以及存储,服务器端软件,多通道数据采集参数与工作方式的设置;管理软件提供上传、下载以及与仪器的无缝连接。为降低系统的开发难度、提高系统的可靠性和使用性,系统软件基于虚拟仪器软件Labview与Matlab混合编程方法,充分利用了Labview软件的强大数据采集、分析与表达、图形表示能力以及Matlab语言的丰富的工具箱和强大的计算能力,简化了仪器软件的编程,缩短了开发时间。主机系统通过 PCI接口卡与SOPC系统进行的信息交换,SOPC系统可以独立工作以及外部设备进行通信,有效降低分布式测控系统的成本。

图1 网络化虚拟测控系统结构图Fig.1 Configuration of network virtual measurement and control system

1.2 硬件系统设计

虚拟测控系统硬件系统包括PCI接口卡和基于Nios II的嵌入式SOPC系统。PCI接口卡采用PLX公司生产的PCI 9054接口芯片,采用PCI9054局部总线工作模式C,该模式时序控制比较简单,非复用32位地址/数据总线,PCI总线通过PCI9054内部FIFO实现对局部总线进行单周期的I/O读写操作,支持DMA操作[4]。为提高计算机与SOPC系统之间的数据传输效率,借鉴文献[5]的设计方法,PCI接口卡使用2片双向FIFO存储器IDT7204(4k×9)实现支持DMA操作,分别用于PCI总线读写数据,其读写逻辑信号FPGA实现,DMA传输时序如图2所示[4],其对应的FPGA读写逻辑状态图可表示为图3所示。

图2 PCI9054 DMA时序图Fig.2 Temporal logic of PCI9054 DMA

图3 DMA读数据状态图Fig.3 Reading state-chart of DMA

相对于 PCI9054, HOLD、ADS#、BLAST、LWR#、LA[31..2]为输出信号,READY#、LHOLDA 为输入信号,LD[31..0]是双向信号。由于本实验仪器数据传输宽度为8位,局部地址线最低2位LA0和 LA1分别由BE0和BE1信号提供,数据对齐方式采用大端模式(由BIGEND#引脚及寄存器决定的)。对Local端为I/O类型的引脚,需要根据实际情况和引脚极性上拉或下拉电阻,如ADS#、HOLD、局部地址信号等。图3中DMA方式读数据逻辑状态图转换描述如下:当检测到HOLD=1时,在下个时钟周期赋值HOLDA=1,转到状态S1;ADS#下降沿到达时,从LA[31..2]及 BE1、BE0读取地址,转到状态S2;如果 LWR#=1(读数据)且 BLAST=1、READY#=0,转到状态S3;在下一个时钟周期上升沿从本地数据总线LD[0..7]把数据读入到PCI9054内部,循环读取数据直至BLAST信号下降沿出现,转到 S4;如果 HOLD=1、HOLDA=1,则转到 S1,否则转到S0。

SOPC系统使用CYCLONE II系列可编程逻辑器件EP2C5F256C8,通过SOPC Builder定制和仿真NiosII微处理器及其外围系统,包括软核CPU、并行输入输出(PIO)、多通道A/D及D/A转换控制逻辑、UART串行接口、网络控制逻辑、计数器/定时器、双口FIFO控制器、SRAM控制器以及FLAS H控制器等外围设备组成等。其中,PIO用于SOPC系统与外部设备的数字量输入输出;网络控制逻辑与以太网接口芯片LAN91C111实现SOPC系统与外部设备之间的网络通信。LAN91C111是SMSC公司生产的10M/100M以太网接口控制芯片,它通过8、16、32位总线与嵌入系统连接,是理想的NIOSII微处理系统以太网解决方案[6]。上述接口控制逻辑均由SOPC Builder工具选择相应的IP核及其相应的VHDL,通过编译整个系统建立一个完整的嵌入式系统。SOPC系统不仅接收主机命令以及数据传输,而且可以与其他外部设备进行通信。

为保证测控系统的可靠性和通用性,电路设计采用以下关键技术:

1)多通道模拟信号采集与控制 该模块由输入信号差模转换电路、8选1模拟开关MPC508A、AD公司的集成程控信号放大器AD620、跟随器、1片采样速率高达2.2 MHz、14位高速模数转换器MAX1201、缓冲驱动电路以及光电耦合隔离器TIL300电路组成。其工作过程为,多路输入模拟量(0~5 V)首先由低噪声、宽频带运算放大器MAX4108组成差分电路把传感器信号转化为差分信号来消除电路干扰,并由模拟选择开关ADG526A选通一路模拟信号,然后经过程控信号放大器AD620放大同时使输入信号由差分转化为单端信号进入A/D转换器MAX1201。MAX1201输出的数字信号经过光电耦合隔离器进入FIFO缓冲区,缓冲区满时通过向单片机或PC机发出中断请求信号实现数据的读取。

程控信号放大器 AD620的增益放大倍数有×1、×2、×10、×100、×1 000五档,由 FPGA中的信号通道控制逻辑[4]控制AD620的放大倍数,提高对传感器信号的适应性。模数转换器MAX1201内部有数字误差自校正和自校正功能,具有良好的信噪比和抗谐波失真特性。差分转换电路不仅能够提高抗干扰性能,而且还可以增大信号的量程。采用A/D转换器MAX1201的目的是,提高信号的转换精度,并且接口电路简单、便于与FIFO连接。MAX1201的工作方式分为程序启动、外部触发信号启动。A/D转换速率由SOPC系统定时器产生的波形频率控制,根据A/D转换结束标志由FPGA中的采样控制逻辑自动完成采样数据的存储。

2)电路隔离 实验系统由模拟数字混合电路组成,存在大量的干扰。比如前置电路部分存在共模干扰和差模干扰,数字系统的高频干扰容易进入模拟部分,外设信号还常常会受到电源波动、强脉冲等干扰。上述干扰不仅会影响模拟信号采集的精度,严重时会影响电路的稳定性乃至计算机的工作。因此,实验系统需要对所有的输入、输出信号均进行了隔离。

本文基于线性光耦TIL300模拟量输入输出实现隔离(如图 4a),其中,U1A、U2A 为运算放大器 LF356,共同组成偏置电路;U2补偿U1的传输特性与温度漂移,保证U1的线性度;U3为输入差分运放电路,提高输入信号的抗干扰能力;模拟量隔离电路可以有效地提高脉冲量、阶跃信号由光电耦HCPL22631隔离;数字量采用TTL113光电耦合器隔离,也可采用脉冲变压器隔离。需要指出的是,光电耦合器输出驱动能力非常有限,必须增加负载驱动电路,数字量除数隔离电路需要驱动电路。除了对所有的输入输出信号隔离外,实验硬件系统还把模拟电路地与数字电路分开布线,并使用如图4(b)所示的电路隔离模拟与数字地和电源。上述措施不仅能够防止数字系统的高频干扰进入模拟电路部分,而且阻断了来自前置电路部分的共模干扰和差模干扰。

图4 信号隔离电路Fig.4 Signal isolation circiut

3)电压转换 由于SOPC系统和PCI9054使用计算机提供的3.3 V电源,而RS232输出电平为-10~+10 V,且不少器件需要5 V电源。电路中使用电源转换器LTC1872把输入3.3 V转换为 5 V输出电源(图5),使用MAX232实现RS232与5 V电压之间的转换。

图5 3.3 V转换5 V电路Fig.5 Transformation circuit between 3.3V and 5V

1.3 网络化虚拟测控系统软件设计

软件系统是网络化虚拟测控系统的核心,系统软件主要由虚拟仪器软件、PCI接口卡驱动程序以及SOPC软件组成。虚拟仪器软件利用Lab Windows/CVI自带的强大测控工具以及丰富的功能面板和库函数,采用事件驱动、交互式与回调函数编程技术[7],设计开发了信号采集与转换、数字信号处理与分析、数据存储与显示、外部设备配置等模块,使用到的技术主要有:

1)Matlab与Labview混合编程 Matlab语言已经成为科研人员有力的仿真分析工具,几乎渗透到各个学科。虽然Matlab拥有很强的数据分析处理以及复杂数值计算能力,但是其在界面开发、硬件连接控制及网络通信等方面都不如Labview。将Matlab和Labview结合是提高测控仪器精度、可靠性、扩展性以及开发效率的有效途径。

Matlab与Labview混合编程方法有两种:①直接调用Labview内建的600多条Matlab函数;②通过Matlab(Ver6.5)ActiveX接口调用运行Matlab函数、与Matlab数据交换以及控制Matlab窗口等命令。其过程为:a.引用自动化对象:在Labview 的 Controls>>ActiveX>> Automation Refnum 模板中选择自动化引用(Automation Refnum)控制量,将其放置在前面板上,从对象列表中选择Matlab应用库。这样Matlab的引用就添加到程序中。b.访问Matlab自动化服务器:Labview在其Function>L>Communication>>ActiveX 模板中提供了一组与ActiveX操作相关的VI,其中Automation Open.vi打开引用,启动Matlab自动化服务器,并将引用传递给其他节点,如属性节点(Property Node)、调用方法节点(Invoke Node)。 ③ 使用Matlab Script节点。Labview使用ActiveX技术执行Matlab Script节点,启动Matlab进程。这样可以在Labview应用程序中使用执行Matlab命令、使用各种工具箱。图6为Labview调用Matlab语言中6阶巴特沃斯(Butterworth)滤波器对正弦函数的滤波实验结果。

图6 滤波实验Fig.6 Filter experiment

2)基于LabSQL的数据库访问 虚拟仪器应用程序需要对采集数据以及数据分析结果进行存储和访问,Labview提供了类似SQL的数据库访问方法。用户首先在ODBC中指定DSN(数据源名)和 ODBC驱动程序,由 LabSQL Connection VIs通过ODBC建立LabSQL与数据库连接。然后利用LabSQL Command VIs完成ADO操作以及Recordset VIs对数据库记录操作,实现应用程序与数据库之间的数据交互传递。

3)基于DataSocket建立客户机/服务器测控系统 对于网络化测控系统,由于把各节点数据汇总到处理主机,设计上采用DataSocket技术建立客服务器/客户端 (C/S)通信模式。主机工作于服务器模式,负责相应客户端的请求以及采集、存储和处理数据,客户端数据点计算机工作于Client模式,实现数据传送。利用DataSocket发布数据需要3个要素:服务器(DataSocket Server),负责把数据写到服务器的发布器(Publisher),客户机从服务器读取数据的订阅器(Subscriber)。其工作过程为:①客户端和服务器端分别运行DataSocket Server;②建立客户端与服务器端DataSocket的连接;③客户端接收和显示测量数据:客户只需通过DataSocket Server发送请求即可实现数据的接收,这样客户机通过控制服务器端软件实现远程测控。

4)WDM驱动程序设计 由于该系统基于PCI接口卡,因此需要开发windows环境下的PCI接口卡驱动程序。综合考虑驱动程序的效率和灵活性,系统选用windows DDK与VC++语言开发PCI接口卡驱动程序。驱动程序主要包括初始化模块、内存读写模块、I/O操作模块、中断模块以及WDM与应用程序的通信模块,详细设计可以参考文献[4-5,8],在此不再详述。

2 结束语

本文设计的网络化虚拟测控系统具有硬件模块化、网络化、开放性以及操作方便等特点,适应了当前测控仪器向网络化和虚拟化方向发展的趋势,因而具有较强的应用性和扩充性。

文中介绍了系统的设计与相关模块的实现,并简要说明了关键软件模块的设计方法。需要指出的是,本文设计的网络化虚拟测控系统具有教学和科研双重价值,对本系统增加新的硬件模块或者修改虚拟仪器应用软件可以完成不同的测试任务和控制任务。今后还需要在硬件模块标准化,硬件模块的故障监测与故障修复,物联网在虚拟测控仪器上应用,分布式网络化测控系统的拓扑结构等方面进行研究。

[1]汤宝平,赵洁,姚金宝.远程操控现有虚拟仪器的通用网络引擎研究[J].仪器仪表学报, 2008, 29(10):2041-2046.TANG Bao-ping, ZHAO Jie, YAO Jin-bao.Research on general network engine for remote operation and control of existing virtual instrument[J].Chinese Journal of Scientific Instrument, 2008 ,29(10):2041-2046.

[2]杨秀增,孙友明.基于Nios II的高精度多路温度测量系统设计[J].仪表技术与传感器,2010(7):72-74.YANG Xiu-zeng,SUN You-ming.Multi-channnel temperature measurement high resolution based on NiosⅡ[J].Instrument Technique and Sensor,2010(7):72-74.

[3]叶时平,欧阳杨,董亚波,等.基于Web的数字电子虚拟实验系统平台[J].系统仿真学报,2008,20(8):2092-2096.YE Shi-ping,OUYANG Yang,DONG Ya-bo et al.Web-based virtual laboratory platform for digital circuit experiment[J].Journal of System Simulation,2008, 20(8):2092-2096.

[4]方庆山.基于PCI总线的数据采集卡设计[D].南京:南京理工大学,2008.

[5]熊炜.基于PCI总线和双端口缓存的高速数据采集卡的研究与开发[D].武汉:华中师范大学,2006.

[6]左震,邓黠,唐贵林,等.基于Nios软核处理器的以太网接口设计[J].计算机测量与控制,2009,17(4):763-766.ZUO Zhen,DENG Jie,TANG Gui-lin,et al.Design of an ethernet interface based on the nios soft-core processor[J].Computer Measurement&Control, 2009,17(4):763-766.

[7]侯国屏,王坤,叶齐鑫.L abVIEW 7.1编程与虚拟仪器设计[M].北京:清华大学出版社,2005.

[8]张帆,史彩成.Windows驱动开发技术详解[M].北京:电子工业出版社,2008.

猜你喜欢

虚拟仪器驱动程序测控
基于LabWindows/CVI与TekVISA的Tek示波器远程测控软件设计
计算机硬件设备驱动程序分析
PCB 刻制机功能开发及在虚拟仪器实验室建设中的应用
虚拟仪器及其在电工电子实验中的应用
基于现代测控技术及其应用分析
虚拟仪器技术在农业装备测控中的应用
向着新航程进发——远望7号测控船首航记录
基于虚拟仪器的DMFC实时监控系统
基于USB2.0协议的通用测控通信接口设计
基于MPC8280的CPU单元与内部总线驱动程序设计