网络化虚拟测控系统的设计
扫描二维码
随时随地手机看文章
摘要:为满足计算机专业教学和测控仪器开发的需要,设计了基于网络、虚拟仪器和SOPC技术的网络化虚拟测控系统。该系统由PCI接口卡、基于NiosII软核的SOPC数据采集系统组成,使用Labview技术构建了C/S模式的远程数据采集和管理体系结构,并基于Windows DDK与VC++语言开发了PCI接口驱动程序。实际应用表明,该系统具有开放性、灵活性以及易用性等优点,达到了预期目的。
关键词:测控系统;虚拟仪器;SOPC;PCI接口卡
随着信息技术的发展,社会对测控仪器的需求不断增加,因而对计算机软硬件综合设计和开发能力的要求也越来越高。然而,计算机专业普遍存在“重软轻硬”的现象,学生综合应用计算机专业知识能力和测控产品开发能力较差,降低了学生的就业竞争力和发展潜力。针对上述问题,基于提高计算机应用系统综合设计能力要求,充分利用自动测试技术、计算机技术、网络通信技术,结合科研和测控仪器开发的需要,适应测控仪器向网络化、虚拟化、集成化方向发展的趋势,设计了网络化虚拟测控系统。
网络化虚拟测控系统基于Labview环境下开发的,从机为基于Nios II软核微处理机系统的片上系统(SOPC),其主要功能为多通道模拟信号的采集、外部设备控制、与主机的通信、传感器信号调理等;主机主要完成外部信号、数据处理与存储、系统参数设置、显示以及人机交互等。整个系统设计工作包括PCI接口卡设计及其驱动程序设计、虚拟仪器应用软件和SOPC系统定制、仿真及其从机软件设计。该系统不仅提供二次开发接口,而且能够配置、自动检测外部设备变化,能够应用于科研、教学和实际测控,具有很强的灵活性、先进性和应用价值。
1 网络化虚拟测控系统的设计
1.1 测控系统的总体设计
借鉴虚拟仪器思想,把虚拟仪器技术引入测控系统,组成以SOPC系统可配置数据采集模块、PCI总线接口卡、虚拟仪器应用软件于一体的网络化虚拟测控系统(如图1所示)。系统的硬件设计包括PCI接口卡设计、基于NIOS Il软核的SOPC硬件系统的定制;软件系统设计包括PCI接口卡驱动程序、SOPC软件以及虚拟仪器应用软件、管理软件的设计。虚拟仪器应用软件主要完成数字信号处理、分析、显示以及存储,服务器端软件,多通道数据采集参数与工作方式的设置;管理软件提供上传、下载以及与仪器的无缝连接。为降低系统的开发难度、提高系统的可靠性和使用性,系统软件基于虚拟仪器软件Labview与Matlab混合编程方法,充分利用了Lalbview软件的强大数据采集、分析与表达、图形表示能力以及Matlab语言的丰富的工具箱和强大的计算能力,简化了仪器软件的编程,缩短了开发时间。主机系统通过PCI接口卡与SOPC系统进行的信息交换,SOPC系统可以独立工作以及外部设备进行通信,有效降低分布式测控系统的成本。
[!--empirenews.page--]
1.2 硬件系统设计
虚拟测控系统硬件系统包括PCI接口卡和基于Nios II的嵌入式SOPC系统。PCI接口卡采用PLX公司生产的PCI9054接口芯片,采用PCI9054局部总线工作模式C,该模式时序控制比较简单,非复用32位地址/数据总线,PCI总线通过PCI9054内部FIFO实现对局部总线进行单周期的I/O读写操作,支持DMA操作。为提高计算机与SOPC系统之间的数据传输效率,借鉴文献的设计方法,PCI接口卡使用2片双向FIFO存储器IDT7 204(4kx9)实现支持DMA操作,分别用于PCI总线读写数据,其读写逻辑信号FPGA实现,DMA传输时序如图2所示,其对应的FPGA读写逻辑状态图可表示为图3所示。
相对于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]把数据读入到PC19054内部,循环读取数据直至BLAST信号下降沿出现,转到S4;如果HOLD=1、HOLDA=1,则转到S1,否则转到S0。
SOPC系统使用CYCLONEII系列可编程逻辑器件EP2C5F256C8,通过SOPC Builder定制和仿真NioslI微处理器及其外围系统,包括软核CPU、并行输入输出(PIO)、多通道A/D及D/A转换控制逻辑、UART串行接口、网络控制逻辑、计数器/定时器、双口FIFO控制器、SRAM控制器以及FLAS H控制器等外围设备组成等。其中,PIO用于SOPC系统与外部设备的数字量输入输出;网络控制逻辑与以太网接口芯片LAN91C111实现SO PC系统与外部设备之间的网络通信。LAN91C111是SMSC公司生产的10M/100M以太网接口控制芯片,它通过8、16、32位总线与嵌入系统连接,是理想的NIOSII微处理系统以太网解决方案。上述接口控制逻辑均由SOPC Builder工具选择相应的IP核及其相应的VHDL,通过编译整个系统建立一个完整的嵌入式系统。SOPC系统不仅接收主机命令以及数据传输,而且可以与其他外部设备进行通信。
为保证测控系统的可靠性和通用性,电路设计采用以下关键技术:
1)多通道模拟信号采集与控制该模块由输入信号差模转换电路、8选1模拟开关MPC508A、AD公司的集成程控信号放大器AD620、跟随器、1片采样速率高达2.2 MHz、14位高速模数转换器MAX1201、缓冲驱动电路以及光电耦合隔离器TIL300电路组成。其工作过程为,多路输入模拟量(0~5V)首先由低噪声、宽频带运算放大器MAX4108组成差分电路把传感器信号转化为差分信号来消除电路干扰,并由模拟选择开关ADG526A选通一路模拟信号,然后经过程控信号放大器AD620放大同时使输入信号由差分转化为单端信号进入A/D转换器MAX1201。MAX1201输出的数字信号经过光电耦合隔离器进入FIFO缓冲区,缓冲区满时通过向单片机或PC机发出中断请求信号实现数据的读取。
程控信号放大器AD620的增益放大倍数有×1、×2、×10、×100、×1 000五档,由FPGA中的信号通道控制逻辑控制AD620的放大倍数,提高对传感器信号的适应性。模数转换器MAX1201内部有数字误差自校正和自校正功能,具有良好的信噪比和抗谐波失真特性。差分转换电路不仅能够提高抗干扰性能,而且还可以增大信号的量程。采用A/D转换器MAX1201的目的是,提高信号的转换精度,并且接口电路简单、便于与FIFO连接。MAX1201的工作方式分为程序启动、外部触发信号启动。A/D转换速率由SOPC系统定时器产生的波形频率控制,根据A/D转换结束标志由FPGA中的采样控制逻辑自动完成采样数据的存储。[!--empirenews.page--]
2)电路隔离实验系统由模拟数字混合电路组成,存在大量的干扰。比如前置电路部分存在共模干扰和差模干扰,数字系统的高频干扰容易进入模拟部分,外设信号还常常会受到电源波动、强脉冲等干扰。上述干扰不仅会影响模拟信号采集的精度,严重时会影响电路的稳定性乃至计算机的工作。因此,实验系统需要对所有的输入、输出信号均进行了隔离。
本文基于线性光耦TIL300模拟量输入输出实现隔离(如图4a),其中,U1A、U2A为运算放大器LF356,共同组成偏置电路;U2补偿U1的传输特性与温度漂移,保证U1的线性度;U3为输入差分运放电路,提高输入信号的抗干扰能力;模拟量隔离电路可以有效地提高脉冲量、阶跃信号由光电耦HCPL22631隔离;数字量采用TTL113光电耦合器隔离,也可采用脉冲变压器隔离。需要指出的是,光电耦合器输出驱动能力非常有限,必须增加负载驱动电路,数字量除数隔离电路需要驱动电路。除了对所有的输入输出信号隔离外,实验硬件系统还把模拟电路地与数字电路分开布线,并使用如图4(b)所示的电路隔离模拟与数字地和电源。上述措施不仅能够防止数字系统的高频干扰进入模拟电路部分,而且阻断了来自前置电路部分的共模干扰和差模干扰。
3)电压转换由于SOPC系统和PCI9054使用计算机提供的3.3 V电源,而RS232输出电平为-10~+10 V,且不少器件需要5 V电源。电路中使用电源转换器LTC1872把输入3.3 V转换为5 V输出电源(图5),使用MAX232实现RS232与5 V电压之间的转换。
[!--empirenews.page--]
1.3 网络化虚拟谢控系统软件设计
软件系统是网络化虚拟测控系统的核心,系统软件主要由虚拟仪器软件、PCI接口卡驱动程序以及SOPC软件组成。虚拟仪器软件利用Lab Windows/CVI自带的强大测控工具以及丰富的功能面板和库函数,采用事件驱动、交互式与回调函数编程技术,设计开发了信号采集与转换、数字信号处理与分析、数据存储与显示、外部设备配置等模块,使用到的技术主要有:
1)Matlab与Labview混合编程Matla5语言已经成为科研人员有力的仿真分析工具,几乎渗透到各个学科。虽然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模板中提供了一组与AetiveX操作相关的VI,其中Automation Open.vi打开引用,启动Matlab自动化服务器,并将引用传递给其他节点,如属性节点(Property Node)、调用方法节点(In voke Node)。③使用Matlab Script节点。Labview使用ActiveX技术执行MatlabScript节点,启动Matlab进程。这样可以在Labview应用程序中使用执行Matlab命令、使用各种工具箱。图6为Labview调用Matlab语言中6阶巴特沃斯(Butterworth)滤波器对正弦函数的滤波实验结果。
2)基于LabSQL的数据库访问 虚拟仪器应用程序需要对采集数据以及数据分析结果进行存储和访问,Labview提供了类似SQL的数据库访问方法。用户首先在ODBC中指定DSN(数据源名)和ODBC驱动程序,由LabSQL ConnectionVIs通过ODBC建立LabSQL与数据库连接。然后利用LabSQL Command VIs完成ADO操作以及Recordset VIs对数据库记录操作,实现应用程序与数据库之间的数据交互传递。
3)基于DataSocket建立客户机/服务器测控系统 对于网络化测控系统,由于把各节点数据汇总到处理主机,设计上采用DataSocket技术建立客服务器/客户端(C/S)通信模式。主机工作于服务器模式,负责相应客户端的请求以及采集、存储和处理数据,客户端数据点计算机工作于Client模式,实现数据传送。利用DataSocket发布数据需要3个要素:服务器(DataSocket Server),负责把数据写到服务器的发布器(Publisher),客户机从服务器读取数据的订阅器(Subscriber)。其工作过程为:①客户端和服务器端分别运行DataSocketServer;②建立客户端与服务器端DataSocket的连接;③客户端接收和显示测量数据:客户只需通过DataSocket Server发送请求即可实现数据的接收,这样客户机通过控制服务器端软件实现远程测控。
4)WDM驱动程序设计 由于该系统基于PCI接口卡,因此需要开发windows环境下的PCI接口卡驱动程序。综合考虑驱动程序的效率和灵活性,系统选用windows DDK与VC++语言开发PCI接口卡驱动程序。驱动程序主要包括初始化模块、内存读写模块、I/O操作模块、中断模块以及WDM与应用程序的通信模块,详细设计可以参考文献,在此不再详述。
2 结束语
本文设计的网络化虚拟测控系统具有硬件模块化、网络化、开放性以及操作方便等特点,适应了当前测控仪器向网络化和虚拟化方向发展的趋势,因而具有较强的应用性和扩充性。
文中介绍了系统的设计与相关模块的实现,并简要说明了关键软件模块的设计方法。需要指出的是,本文设计的网络化虚拟测控系统具有教学和科研双重价值,对本系统增加新的硬件模块或者修改虚拟仪器应用软件可以完成不同的测试任务和控制任务。今后还需要在硬件模块标准化,硬件模块的故障监测与故障修复,物联网在虚拟测控仪器上应用,分布式网络化测控系统的拓扑结构等方面进行研究。