虚拟仪器技术浅谈
姜然
虚拟仪器(Virtual Intrument,简称VI)是计算机技术与仪器技术深层次结合产生的全新概念的仪器,是对传组仪器概念的重大突破,是仪器领域内的一次革命。
一、虚拟仪器概述
计算机在测试和自动化领域中的应用,导致了仪器“驱动器”概念的诞生,驱动器又称驱动程序。仪器驱动器是介于计算机与仪器硬件设备之间的软件中间层,由函数库、实用程序、工具套件等组成,是一系列软件代码模块的统称。它驻留在计算机中,是连接计算机和仪器的桥梁和纽带。采用驱动器可以使计算机有能力控制物理仪器设备,随着VXI、PXI等标准总线的出现,开创了测试系统发展的崭新空间——虚拟仪器(Virtual Instruments)。虚拟仪器代表着从传统硬件为主的测试系统到以软件为中心的测试系统的根本性转变。
1 技术规范回顾
计算机在测试领域的应用经历了总线型仪器、PC仪器、虚拟仪器等不同的发展阶段。伴随着这一过程,仪器驱动器技术规范以通用性为基本出发点,仪器互换性和互操作规程性以及软件移植性为根本指导原因,从最初的IEEE-488.2、SCPI(Standard Command for Programming Instrument)发展到现在的IVI-MSS(Measurement and Stimulus Subsystem)、IVI-Signal Interface,已经走过了艰辛而漫长的历程。它们建立在Windows操作系统驱动程序设计模式VxD和WDM(Windows Driver Model)之上,并融入了仪器操作的具体内容。
2 驱动器开发
根据以上驱动器设计规范发展回顾及分析可知,驱动器开发也分为两种类型:基于VPP规范的即插即用型驱动器开发和基于IVI系列规范的互换型驱动器开发。
(1)即插即用型驱动器开发
开发基于VPP规范的即插即用型驱动器的过程分为两步。第一是仪器驱动器外部接口的设计,它表示仪器驱动器如何与外部软件接口,通常提供两种方式的接口:程序式开发接口和图形软面板。软件开发者通过程序式开发接口可以理解每个仪器驱动器函数的功能以及在应用程序中如何调用每个函数、另一种接口方式是图形化软面板,通过这一软面板可以直接操作控制物理仪器。第二是要完成仪器驱动器的内部模块设计,实现仪器的硬件功能。使用程序式开发接口的用户了解了这一功能,可以在应用程序中直接应用这些模块,而不必通过软面板操作。
要完成第一项工作应选用界面编辑功能较强的编程环境,减少仪器软面板的开发时间;第二项工作通过调用VISA I/O库中的函数来完成,编程语言按照VPP规程可以选用ANSI C、BASIC或者Ada等。选用合适的图形软件工具可以把这两部分工作集成到一个环境下完成,省去两部分的连接工作,例如NI公司的可视化软件平台LabWindows/CVI。CVI开发环境中两部分组成:用户界面设计器和源代码编程器。
(2)互换型驱动器开发
与即插即用型驱动器类似,基于IVI系列规范的互换型驱动器开发也包括两部分。第一是分析测试系统的功能需求,以功能或信号的形式分类定义驱动器组件的接口。这些接口是对UUT测试需求的描述,有严格的主义标准,将不随仪器种类和软件类型而改变,是标准的,通用的。第二是驱动器组件接口的内部实现,它被封装在组件内部,可以根据具体的开发工具和编程人员特长来开发,是非标准的、特殊的。
对于基于IVI系列规范的驱动器开发,目前还没有专业的、IVI基金会指定的开发工具。但由于其采用COM技术,因此可以使用任何支持组件开发的编程平台进行开发。设计人员在理解技术规范的基础上可以利用现有的图形化编程工具(比如VC++、VB等)进行设计。
需要说明的是,IVI是介于VPP和IVI-MSS之间的一个过渡性规范,它既有IVI-C的C语言形式,也有基于COM的IVI-COM组件形式,并且接口的严格语义标准目前只发布了八类仪器的技术规范,因此可以根据具体情况选用相应工具进行开发。
3 发展趋势
(1)信号型驱动器
由前面对IVI-Signal Interface标准的介绍可知,信号型驱动面向UUT的测试需求,是需求驱动的,符合当前微型计算机体系结构发展趋势,而且实现了更高层次的仪器互换和互操作,通用性好。
(2)网络化驱动器
网络的普及给各个行业都带来了巨大冲击,测试领域也不例外,网络化虚拟仪器和仪器网络化现已成为当前测试技术的一个研究热点。而要想实现远程控制仪器就必须提供仪器设备的网络化驱动器或在现有仪器驱动器的基础上添加网络化功能。
(3)VISA兼容更多的接口类型
计算机接口技术不断发展,涌现了许多商业化PC总线,如USB、Ethernet等,这也是影响虚拟仪器发展的关键技术之一。
(4)与商业TPS开发平台“即插即用”
驱动器是连接计算机和物理仪器的中间环节,是虚拟仪器开发的重要资源,当前的TPS开发平台向着集成、高效、商家垄断方向发展,如HP公司的VEE、NI公司的LabVIEW、LabWindows/CVI等。
(5)源代码级开放式结构
当前,从源代码开放的角度来讲,虚拟仪器设计领域存在三种驱动器类型:封闭黑盒型,封装型和开放源代码型。
(6)可视化配置操作
可视化与完备的人机交互能力是现场代软件开发的基本要求,作为虚拟仪器核心的驱动器在这方面应能满足客房的更高的需求。把软件开发人员从繁重的代码编写任务中解脱出来,而把主要精力放在测试功能的实现上是驱动器设计迫切需要解决的问题。
(7)拓展应用空间
仪器驱动器是计算机控制物理仪器设备的中间环节,随着虚拟仪器的不断发展,这一思想也拓展了崭新的发展空间。驱动器越来越多地以“服务”的形式为测试程序提供功能调用。 4 关键技术
(1)COM技术
COM技术的核心是组件,组件是可以明确辨识和管理、可以提供某项服务的自包含的软件模块。它封装了一定的数据(属性)和方法(函数),并提供特定接口。开发人员通过访问这些特定接口来使用组件,与其它程序模块通信、交互,实现预期功能。组件是实现仪器驱动器语言、平台无关和网络位置透明的关键技术。
(2)多线程技术
同步、触发、时序操作是仪器控制的客观要求,而多线程技术是满足这一要求的关键技术。
(3)引擎技术
测试程序的仪器操作过程是TPS利用驱动器控制硬件仪器的过程。为了优化这一控制过程,需要引擎技术,把软件代码的控制需求转变成实际的物理仪器操作。测试中用到的最多的同步、触发功能,若有多个同步步骤需要连接、高速触发,在这样的情况下,仅需要测试码去控制是很难满足需求的。为此,可以设计基于引擎技术的同步触发引擎,把测试需求编程一定的序列输入到相应的同步触发引擎中。依据测试程序的执行自行触发这一序列,将大大提高测试效率,满足更高的测试速率要求,使测试程序具有自主触发和时钟路由能力。
(4)软件工程技术
仪器驱动器是对物理仪器的功能描述,软件工程技术将能保证驱动器设计的功能完备性。
二、虚拟仪器的组成
由硬件和软件两部分组成。
1.硬件获取测试对象的被测信号。虚拟仪器的硬件主体是电子计算机。为计算机配置的电子测量仪器硬件模块是各种传感器、信号调理器、模拟数字/转换器(ADC)、数字/模拟转换器(DAC)、数据采集器(DAQ)等。电子计算机及其配置的电子测量仪器硬件模块组成了虚拟仪器测试硬件平台的基础。
2.测试软件控制实现数据采集、分析、处理、显示等功能,并将其集成为仪器操作与运行的命令环境。软件开发平台为支撑。仪器驱动、接口软件和应用程序。
三、虚拟仪器的特点
经过二十来年时间的发展,虚拟仪器得到了越来越广泛的应用,已成为未来仪器仪表的主要发展方向。虚拟仪器技术被广泛的看好,是因为具有以下优势:
(1)性价比高。
虚拟仪器能同时对多个参数进行实时高效的测量,同时,由于信号的传送和数据的处理几乎都是靠数字信号或软件来实现的,大大降低了环境干扰和系统误差的影响。此外,用户也可以随时根据需要调整虚拟仪器的功能,大大缩短了仪器在改变测量对象时的更新周期。采用虚拟仪器还可以降低测试系统的硬件环节,从而降低系统的开发成本和维护成本。
(2)标准化、模块化。
虚拟仪器采用标准的接口总线技术和模块化的仪器硬件,这符合军用装备研制的通用化和小型化需求,有利于装备成系列发展,有利于装备的技术保障。
(3)仪器系统小巧紧凑。
采用VXI和PXI总线式结构,一个机箱能插入多块仪器卡,例如:PXI总线机箱能同时插入8块卡,即一个机箱能集成8个仪器。这将使测试系统体积大大缩小,结构更加紧凑。
(4)远程测试。
虚拟仪器充分利用了计算机技术,也包括计算机网络技术,虚拟仪器与传统仪器相比,能够更方便有效地支持远程测试或网络测试。虚拟仪器在复杂系统的测试方面最具优势。随着计算机技术的飞速发展,虚拟仪器在实时性方面取得显著改善。
(5)可有用户定义仪器功能。
由于仪器的功能可以在用户级上产生,故它不再完全有仪器生产厂家来确定,用户可以根据自己的需要,通过增加或修改软件,为虚拟仪器加入新的测量功能而不用购买一台新的仪器。
四、虚拟仪器的发展趋势
电子测试仪器的数字化、计算机化是发展方向。
然而,目前虚拟仪器的应用受到了一定的限制。这是因为面向微波、通信等领域的专用测试仪器,包括通用仪器的高端产品一直以来是台式仪器垄断着市场,相应的模块化仪器产品为数不多。不过,近年来已有多家仪器厂商正在研制、开发面向测试高端领域的宽带、高速、复杂的模块化仪器。从目前计算机、微电子和软件行业发展情况来看,基于计算机的虚拟仪器已将单台仪器所具备的高品质测量功能完全嵌入到计算机中。这种新型的、可直接编程的仪器,随着计算机的功能与灵活性的不断改进而进步。它在保持高档仪器测量品质的同时,还可以满足目前各种应用的多样性要求;同时又具有进一步扩展其功能一定的灵活性,更直接地解决使用过程中所遇到的各种难题。
虚拟仪器的另一个方向是各种标准仪器的互连及与计算机的连接,未来的仪器也应当是网络化的。虚拟仪器技术将PC技术及以太网络相结合,利用实时控制与嵌入式控制器技术革新,促进测量和自动化技术的发展。虚拟仪器技术可利用以太网络的功能,将来自测量或控制设备中的资料直接传送到web网页上,甚至将数据传输到手机上读取资料。使用虚拟仪器技术,您可以使用以太网络的强大功能远程控制仪器设备,或是与远在其他办公地点甚至其它国家的同事合作处理一个项目。
商业科技的发展浪潮将会继续,同时也会将虚拟仪器技术推向新的水平。因此,性能的提高将会更容易实现,从而节省宝贵的开发及系统集成时问,同时又比传统仪器测量方案成倍降低成本。没有人能够准确地预测未来的虚拟仪器将会发展到怎样的程度,但是有一点可以肯定——PC机与其相关的科技将会是虚拟仪器技术的核心,而有了它的帮助将会更成功。
五、远程虚拟仪器管理实战
虚拟仪器技术的出现彻底打破了传统仪器由厂家定义、用户无法改变的模式,用户借助通用的仪器硬件平台,调用不同的测试软件,就可以构成不同功能的仪器。对远程虚拟仪器中的网络通信、工作原理、实现方案等作了系统的探讨和研究。
医生通过互联网操控异地的机器人,对患者成功实施手术。
远程虚拟仪器系统是近年来诞生并发展迅速的一种新型网络测控技术,它不同于一般的信息网络技术,其主要应用于远方有传感器或其他数据接收设备得到的数据的传输与通信。例如,医疗系统远程会诊、环境监测与数据分析等等。对远程虚拟仪器中的网络通信、工作原理、实现方案等作了系统的探讨和研究。
虚拟仪器与远程虚拟仪器
随着微电子技术、计算机技术、软件技术和网络技术的高度发展,在科研、工业和医学领域,随着低成本高性能的计算机资源的有效利用,数字化平台逐渐成为测量仪器的基础。仪器技术和计算机技术的深层次的结合创造了虚拟仪器的概念,将计算机(处理器、存储器、显示器等)和通用仪器硬件(A/D、D/A 变换器、数字输入/输出、定时和信号处理器等)与用于数据分析、过程通讯及用户图形界面的软件有效地结合起来,就组成了虚拟仪器。
虚拟仪器技术的出现彻底打破了传统仪器由厂家定义、用户无法改变的模式,用户借助通用的仪器硬件平台,调用不同的测试软件,就可以构成不同功能的仪器。虚拟仪器能提供给用户一个充分发挥自己才能和想象力的空间,用户可以随心所欲地设计和构造自己的仪器系统以满足多种多样的测试需求,而所需的只是一些必要的硬件、软件加上通用计算机。仪器的智能化和虚拟化已经成为未来各级实验室以及研究机构发展的方向,“The Soft is Instruments(软件就是仪器)”正在被广大科技、教学工作者逐步接受。
继“软件就是仪器”的概念之后,出现了“网络就是仪器”的新观念。远程虚拟仪器就是虚拟仪器在网络领域的扩展。远程虚拟仪器技术结合了虚拟仪器技术与网络技术,将虚拟仪器的应用范围拓展到整个Internet网上,使信号采集、传输和处理一体化,一方面可以使许多昂贵的硬件资源得以共享,充分利用现有的实验室资源; 另一方面还有利于远程教育实验教学的开展,从而解决限制远程教育中的实验教学进行的难题。因此构建基于Internet上的远程虚拟仪器实验系统已经成为虚拟仪器应用发展的一个重要的环节。远程虚拟仪器结构模式如图1所示。
远程虚拟仪器的实现
无论哪种远程虚拟仪器系统,都是将硬件仪器(传感器、调理放大器、A/D卡)搭载到远端服务器上,加上应用软件并和本地的笔记本电脑、台式 PC 机或工作站等各种计算机通过网络相连而构成的,实现了用计算机和网络技术的全数字化的采集测试分析,因此远程虚拟仪器的发展跟计算机和网络技术的发展步伐完全同步,显示出其灵活性和强大的生命力,Internet为实现远程虚拟仪器系统提供了一个很好的平台,利用浏览器/服务器模式,操控者可以在浏览器端控制远程服务器进行测试以及进行远程实验的操作,从而实现对远地实验系统的远程控制和监控。
远程虚拟仪器是虚拟仪器在网络领域的拓展,除了具备虚拟仪器的全部优点外,主要优势还在于不受地域、环境的限制。用网络技术组建的远程虚拟仪器系统,可以使信号采集、传输和处理一体化,不但可以共享许多昂贵的硬件资源,而且还便于扩展测试系统、提高测试效率,所以应用极为广泛,是科研、教育、开发、测量、检测、计量、测控等领域不可多得的好工具,更值得一提的是它的出现对远程医疗、远程诊断等新兴领域的发展有重要意义,也使现代远程教育的全面开展成为可能,同时也会使教学实验走上一个新的发展高度。 |