技术频道

虚拟仪器技术及其在数据采集中的应用

  虚拟仪器是以一种全新的理念来设计和发展的仪器,他是90年代发展起来的一项新技术,主要用于自动测试、过程控制、仪器设计和数据分析等领域,其基本思想是在仪器设计或测试系统中尽可能用软件代替硬件,即“软件就是仪器”,他是在通用计算机平台上,根据用
户需求来定义和设计仪器的测试功能,其实质是充分利用计算机的最新技术来实现和扩展传统仪器的功能。
1虚拟仪器的特点和构成
1.1虚拟仪器的特点
  与传统仪器相比,虚拟仪器具有高效、开放、易用灵活、功能强大、性价比高、可操作性 好等明显优点,具体表现为:
  智能化程度高,处理能力强 虚拟仪器的处理能力和智能化程度主要取决于仪器软件水平。用户完全可以根据实际应用需求,将先进的信号处理算法、人工智能技术和专家系统应用于仪器设计与集成,从而将智能仪器水平提高到一个新的层次。
  复用性强,系统费用低 应用虚拟仪器思想,用相同的基本硬件可构造多种不同功能的测试分析仪器,如同一个高 速数字采样器,可设计出数字示波器、逻辑分析仪、计数器等多种仪器。这样形成的测试仪 器系统功能更灵活、更高效、更开放、系统费用更低。通过与计
算机网络连接,还可实现虚 拟仪器的分布式共享,更好地发挥仪器的使用价值。
  可操作性强,易用灵活 虚拟仪器面板可由用户定义,针对不同应用可以设计不同的操作显示界面。使用计算机的 多媒体处理能力可以使仪器操作变得更加直观、简便、易于理解,测量结果可以直接进入数 据库系统或通过网络发送。测量完后还可打印、显示所需的报表或曲线,这些都使得仪器的 可操作性大大提高而且易用、灵活。
1.2虚拟仪器的构成
  虚拟仪器的构建主要从硬件电路的设计、软件开发与设计2个方面考虑。
  硬件电路的设计主要根据用户所面对的任务决定,其中接口设计可选用的接口总线标准包 括GP IB总线、VXI总线等。推荐选用VXI总线。因为他具有通用性强、可扩充性好、传输速 率高、抗干扰能力强以及良好的开放性能等优点,因此自1987被首次推出后迅速得到各大仪 器生产厂家的认可,目前VXI模块化仪器被认为是虚拟仪器的最理想平台,是仪器硬件的发 展方向。由于VXI虚拟仪器的硬件平台的基本组成是一些通用模块和专用接口。因此硬件电 路的设计一般可以选择用现有的各种不同的功能模块来搭建。通用模块包括:信号调 理和高速数据采集;信号输出与控制;数据实时处理。这3部分概括了数字化仪 器的基本组成。将具有一种或多种功能的通用模块组建起来,就能构成任何一种虚拟仪器。 例如使用高速数据采集模块和高速实时数据处理模块就能构成1台示波器、1台数字化仪或 1台频谱分析仪;使用信号输出与控制模块和实时数据处理模块就能构成1台函数发生器、 1台信号源或1台控制器。专用接口是针对特定用途仪器需要的设计,也包括一些现场总线 接口和各类传感器接口。系统的主要硬件包括控制器、主机箱和仪器模块。常用的控制方案 有GPIB总线控制方式的硬件方案、MXI总线控制方式的硬件方案、嵌入式计算机控制方式的 硬件方案3种。VXI仪器模块又称为器件(devices)。VXI有4种器件:寄存器基器件、消 息基器件、存储器器件和扩展器件。存储器器件不过是专用寄存器基器件,用来保存和传输 大量数据。扩展器目前是备用件,为今后新型器件提供发展通道。将VXI仪器制作成寄存器 基器件,还是消息基器件是首先要做出的决策。寄存器基器件的通信情况极像VME总线器件 ,是在低层用二进制信息编制程序。他的明显优点在于速度寄存器基器件完全是在 直接 硬件控制这一层次上进行通信的。这种高速通信可以使测试系统吞吐量大大提高。因此,寄 存器基器件适用于虚拟仪器中信号/输出部分的模块(如开关、多路复用器、数/模转换输出 卡、模/数转换输入卡、信号调理等)。消息基器件与寄存器基器件不同,他在高层次上用A SCII字符进行通信,与这种器件十分相似是独立HPIB仪器。消息基器件用一组意义 明确的 “字串行协议”相互进行通信,这种异步协议定义了在器件之间传送命令和数据所需的挂钩 要求。消息基器件必须有CPU(或DSP)进行管理与控制。因此,消息基器件适用于虚拟仪器 中数字信号处理部分的模块。
  软件的开发与设计包括3部分:VXI总线接口软件、仪器驱动软件和应用软件(软面板) 。软件结构如图1所示。

  VXI总线接口软件由零槽控制器提供,包括资源管理器、资源编辑程序、交互式控制程序和 编程函数库等。该软件在编程语言和VXI总线之间建立连接,提供对VXI背板总线的控制和支 持,是实现VXI系统集成的基础。
  仪器驱动程序是完成对某一特定仪器的控制与通信的软件程序,也即模块的驱动软件,他 的设计必须符合VPP的2个规范,即VPP3.1《仪器驱动程序结构和模型》和VPP3.2《仪器 驱动程序设计规范》。
  “软面板”设计就是设计具有可变性、多层性、自助性、人性化的面板,这个面板应不 仅同传统仪器面板一样具有显示器、LED、指针式表头、旋钮、滑动条、开关按钮、报警装 置等功能部件,而且应还具有多个连贯操作面板、在线帮助功能等。
2虚拟仪器在数据采集中的应用
  利用虚拟仪器制作数据采集器可以按照硬件设计、软件设计两个步骤来完成。
2.1硬件设计
  硬件设计要完成以下内容:
  (1)模/数转换及数据存储
  设置具有通用性的数据自动采集系统,一般应满足能对多路信号尽可能同步地进行采集, 为了使所采集到的数据不但能够在数据采集器上进行存储,而且还能及时地在采集过程中 将数据传送到上位机,选用存储量比较适中的先进先出存储器,这样既能满足少量数据存储 的需要,又能在需要实时传送数据时,在A/D转换的同时进行数据传送,不丢失任何数据。
  (2)VXI总线接口
  VXI总线数据采集器通常可以利用两种VXI总线通用接口消息基接口和寄存器基接口。消 息基接口的作
用是通过总线传送命令,从而控制仪器硬件的操作。通用寄存器基接口是由寄存器简单的读写来控制仪器硬件的操作。利用消息基接口进行设计,具体消息基接口的框图见图2。


  (3)采样通道控制
  为了满足几种典型系统通道控制的要求,使通道的数量足够多,通道的选取比较灵活,可以利用寄存器电路、可预置计数器电路以及一些其他逻辑电路的配合,将采样通道设计成最多64路、最少2路可以任意选择,而且可以从任意一路开始采样,也可以到任意一路结束采样,只要截止通道号大于起始通道号就可以了。整个控制在虚拟仪器软面板上进行操作,通过消息基接口将命令写在这部分的控制寄存器中,从而设置计数器的初值以及采样的通道总数。
  (4)定时采样控制
  由于不同的自动测试系统对采样时间间隔的要求不同,以及同一系统在不同的试验中 需要的采样时间间隔也不尽相同,故可以采用程控的方式将采样时间间隔设置在2 μs~13. 0 ms之间任意选择,可以增加或减少的最小单位是2 μs。所有这些选择设置可以在虚拟仪器软面板上进行。
  (5)采样点数控制
  根据不同测试系统的需求,将采样点数设计成可在一个比较大的范围中任意选择,该选择同样是在软面板上进行。
  (6)采样方式控制
  总结各种自动测试系统的采样方式不外乎软件触发采样和硬件 触发采样。在硬件触发采样中又包括同步整周期采样和非同步整周期采样,这2种采样又可 以是定时进行的或等转速差进行的。所有这些采样方式,对于数据采集器来说都可以在软面 板上进行选择。
2.2软件设计
  软件是虚拟仪器的关键,为使VI系统结构清晰简洁,一般可采用组件化设计思想,将各部分彼此独立的软件单元分别制成标准的组件,然后按照系统的总体要求组成完整的应用系统,一个标准的组件化的虚拟仪器软件系统,如图3所示。

  应用软件为用户提供了建立虚拟仪器和扩展其功能的必要工具,以及利用PC机、工作站的 强大功能。同时VPP联盟提出了建立虚拟仪器标准结构库(VISA)的建议,为虚拟仪器的研 制与开发提供了标准。这也进一步使由通用的VXI数据采集模块、CPU/DSP模块来构成虚拟仪 器成为可能。
  基于虚拟仪器的数据采集器的软件包括系统管理软件、应用程序、仪器驱动软件和I/O接 口 软件。以往这4部分需要用户自己组织或开发,往往很困难,但现在NI公司提供了所有这 四部分软件,使应用开发比以往容易得多。
  下面简单介绍以NI公司的Lab Windows/CVI为开发环境,来进行VXI虚拟仪器的驱动程序开 发的方法。
  第一步:生成仪器模块的用户接口资源文件(UIR)。用户接口资源、文件是仪器模块 开 发者利用Lab Windows/CVI的用户界面编辑器为仪器模块设计的一个图形用户界面(GUI)。 一个Lab Windows/CVI的GUI由面板、命令按钮、图标、下拉菜单、曲线、旋钮、指示表以及 许多其他控制项和说明项构成。
  第二步:Lab Windows/CVI事件驱动编程。应用程序开发环境Lab Windows/CVI中设计一个 用户接口,实际上是在用户计算机屏幕上定义一个面板,他由各种控制项(如命令按钮、菜 单、曲线等)构成。用户选中这些控制项就可以产生一系列用户接口事件(events)。例如 ,当用户单击一个命令按钮,这个按钮产生一个用户接口事件,并传递给开发者编写的C语 言驱动程序。这是运用了Windows编程的事件驱动机制。LabWindows/CVI中使用不同类型的 控制项,在界面编辑器中将显示不同类型的信息,并产生不同操作的接口事件。在Lab Wind ows/CVI的开发平台中,对事件驱动进行C程序编程时可采用2种基本的方法:回调函数法和 事件循环处理法。
  回调函数法是开发者为每一个用户界面的控制项写一个独立的用户界面的控制函数 ,当选中某个控制项,就调用相应的函数进行事件处理。在循环处理法中,只处理GUI控制 项所产生的COMMIT事件。通过Get User Event函数过滤,将所有的COMMIT事件区分开,识别 出是由哪个控制项所产生的事件,并执行相应的处理。
  第三步:应用函数/VI集与应用程序软件包编写。应用函数/VI集需针对具体仪器模块 功能进行编程,应用程序软件包只是一些功能强大、需要完善的数据处理能力的模块才需要 提供,如波形分析仪模块、DSP模块等。


3结语
  本文探讨了虚拟仪器的基本组成,以及实际的虚拟仪器软硬件设计的一般方法,这些方法经过实际设计工作运用证明是可靠的,可供系统工程技术人员在组建具体的基于VXI总线的虚拟仪器数据采集、
测试时参考使用。

文章版权归西部工控xbgk所有,未经许可不得转载。