虚拟仪器发展趋势及其对军用测试技术的影响
1 引言
从1986年NI公司提出VI概念到现在,经过十几年的发展,不仅VI技术本身的内涵不断丰富,外延不断扩展,在军事和民用领域均得到了广泛的应用,而且对现代测控技术产生了深远的影响。例如,VI原来最核心的思想是利用计算机的强大资源使本来需要硬件实现的技术软件化,以便最大限度地降低系统成本,增强系统功能与灵活性。由IT产业特征决定了VI技术也必须走标准化、开放性这条技术路线,目前VI已发展成具有GPIB、PC-DAQ、VXI和PXI四种标准体系结构的开放技术。1998年NI又发布了虚拟硬件(Virtual Hardware)和可互换虚拟仪器(Interchangeable Virtual Instruments)的概念,按照VH概念设计的产品已经面市,如(NI5911、NI5912),而IVI基金会已于1998年8月在美国正式成立,并发布了相应的IVI技术规范。基于IVI技术开发的应用程序完全独立于硬件,提高了程序代码的复用性,大大降低了应用系统的维护费用,必将成为测控技术的主要基础技术之一。
就VI的外延而言,由于VI技术本身以计算机为平台,具有方便、灵活的互联能力(conne ctivity),因而广泛支持诸如CAN、DeviceNet、FieldBus、PROFIBUS等各种工业总线标准,并有大量适于工业现场应用的分布式I/O(Distributed I/O)产品面市。尽管Internet技术最初并没有考虑如何将嵌入式智能设备连接在一起,不过NI等公司已开发了通过Web浏览器观测这些嵌入式设备的产品,使人们可以通过Internet操作仪器设备,进而形成遍布家庭、办公室和工业现场的分布式测控网络。而且有关MCN(Measurement and Control Networks)方面的标准正在积极进行,并取得了一定进展。随着测量、控制过程的进一步网络化,一个真正虚拟化的测控时代即将到来。
2 虚拟硬件
虚拟硬件(VH)的思想源于可编程器件,使用户通过程序能够方便地改变硬件的功能或性能参数,从而依靠硬件设备的柔性(Flexibility)来增强其适用性和灵活性。例如,NI5911/ 5912就是按这种思想设计的高速(100MS/s)、高精度(8~21-bit)、柔性数采设备,其采样率和精度都是可变的。由于一般的ADC都是用户可变采样率的,下边主要介绍NI5911/5912中采用的柔性精度技术(flexible resolution technology)。
所谓柔性精度技术由一个专门的数字滤波器、高速ADC、DAC和用于抽取与线性化的DSP 组成(如图1所示)。对4~100MHz带宽的信号,该系统可以使用常规方式按8-bit精度工作于100MS/s的实时采样速率;当被测信号的带宽在4MHz以下时,使用柔性精度方式,可以使有效垂直精度达到21-bit。在柔性精度模式下,采样信号中的宽带量化噪声由噪声形成电路滤除,然后数据送入DSP进行线性化处理,并由DSP中的抗混叠滤波器进一步滤除高频噪声,最后用抽取技术按较低速率重构波形,使有效垂直精度达到8~21bit。需要指出的是,所有信号处理是在100MHz的数据流上实时完成的,这样可以保证采集与处理过程中不会丢失数据。
图1 NI 5911/5912方框图
3 图形化与零编程开发环境
VI系统的快速组建和测试流程的在线更新正在世界范围内形成潮流。仪器总线的标准化和系列化为快速组建ATE系统创造了良好的硬件条件,而问题的另一个方面是如何实现测试软件的快速在线编程,以适应千变万化的测试要求。图形化与零编程开发环境正是为满足这一需求应运而生的。
3.1 图形化开发环境的体系结构
图形化开发环境亦称为G开发环境或G语言(Graphical Language),日益为越来越多的测试工程师所熟悉并使用。下面以NI公司的LabVIEW为例,介绍图形化开发环境的体系结构。
如图2所示,一个完整的G开发环境(Full Development System)包括基本模块(BasePack age)和扩展模块(Extention Package)两部分。引擎部分是整个图形化开发环境的核心,它包括编辑模块、运行模块和调试模块。
图2 图形化开发环境的体系结构
LabVIEW开发环境分为前面板(front panel)和流程图(block diagram)两部分,前者是用于人机交互的程序图形用户接口(GUI),集成了旋钮、开关等用户输入(控制)对象;后者是程序的图形化源代码,它包括函数(functions)、结构(structures)、代表前面板上控制对象和显示对象的端子(terminals)以及连线等。编辑模块的功能就是用于进行前面板和流程图的编程工作,而图形化元素库则用于编辑、调试前面板和流程图上对象的工具(tools) 。前面板中使用的控制与显示对象和流程图使用的函数与功能模块(如算术运算、仪器I/O、文件I/O和数据采集等操作)、运行模块即程序的引擎。调试模块包括"加亮执行"、"设置断点"、"探针"和"单步执行"等调试工具,其中最具特