虚拟仪器概述 点击:319 | 回复:0



iacmall

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:120帖 | 5回
  • 年度积分:0
  • 历史总积分:675
  • 注册:2008年4月08日
发表于:2008-05-23 14:42:02
楼主
计算机在测试和自动化领域中的应用,导致了仪器“驱动器”概念的诞生,驱动器又称驱动程序。仪器驱动器是介于计算机与仪器硬件设备之间的软件中间层,由函数库、实用程序、工具套件等组成,是一系列软件代码模块的统称。它驻留在计算机中,是连接计算机和仪器的桥梁和纽带。采用驱动器可以使计算机有能力控制物理仪器设备,随着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)之上,并融入了仪器操作的具体内容。

1.1 IEEE 488.2

IEEE-488是1975年由IEEE发布的一个重要的仪器控制总线标准。IEEE-488.1定义了计算机和仪器之间的硬件接口规范;IEEE-488.2定义了TPS(Test Program Set)和仪器之间的软件接口规范。IEEE-488.2规定了数据代码和格式,用一组公用命令和协议定义了测试系统中控制器和仪器之间的通信标准,共有39条,这些命令提供了仪器的内部管理功能。IEEE-488.2没有严格的语义定义,同样的功能不同厂商要用不同的命令来实现,而且这一标准仪适合于GPIB类仪器,通用性、互换性很差。

1.2 SCPI

IEEE-488.2没有涉及为了提供测量和激励所必需的命令。1990年,在IEEE-4888.2标准和IEEE-754标准之上,制定了SCPI标准。它通过指定一组通用控制命令来实现对多类仪器的相同控制。在仪器功能严格匹配(如具有相同的精确度、测量范围等)的前提下,可实现互换,扩展了仪器互换的空间。然而,这种互换性限制了仪器生产厂家对仪器功能的扩展,实用性差,加上SCPI编程的复杂性,通用性、互换性水平较低。

1.3 VPP

1993年,VPP(VXI Plug & Play)系统联盟发布了VPP规范,该规范定义了系统的框架、软件接口、软件环境和仪器驱动器模型。它把与仪器的底层通信封装成一些高层函数,执行仪器的控制功能。VISA(Virtual Instrument Software Architecture)作为底层I/O库,是这一时期的主要成果。它不区分仪器的种类,用一组通用函数实现驱动器功能,通用性得到了很大加强。然而,跟IEEE-488.2类似,VPP驱动器接口仍没有严格的语义标准,仪器厂商可以根据自己的特长进行开发,这使得驱动器产品的接口不统一,仪器互换性仍没有最终实现。

1.4 IVI

为了实现仪器互换和互操作,1998年成立了IVI(Interchangeable Virtual Instruments)基金会,讨论开发可互换仪器驱动模型,旨在对硬件互换、运行性能、发展弹性、质量保证等驱动器问题进行规范。

IVI模型是IVI基金会在VPP技术规范基础上制定的一种驱动器设计标准。它通过定义类驱动器和专用驱动器(独立的软件层)并增加仪器仪真、状态缓存、量程监视等机制实现了部分通用仪器之间的互换,提高了测试程序的开发效率。

然而,面向仪器互换的虚拟仪器设计目标,IVI模型仍然存在以下不足:

(1)只适合同类仪器的互换,不能实现不同类仪器或某些具备两类、多类仪器功能的综合性仪器之间的互换。

(2)IVI类驱动器只能统一某类仪器中80%的仪器功能,而其它20%功能只能通过专用驱动器来实现。

(3)可用标准较少。目前只完成了示波器、万用表、函数发生器、多路开关等九种仪器的类驱动器的标准化。

(4)标准开放程度低。IVI模型只适合于通用仪器,比如万用表等,而对某些专用仪器(如数据采集卡)不适用。

1.5 IVI-MSS

为了改进IVI模型存在的不足,IVI基金会开始制定IVI-MSS和IVI-Signal Interface规范,它们是在IVI模型的基础上发展起来的,分别实现基于功能和信号的仪器互换操作。其中IVI-MSS于2001年2月发布,现已经是成熟的规范,而IVI-Signal Interface尚待发布。

如图1所示,基于IVI-MSS规范的虚拟仪器测试软件共包括五部分。用户应用程序是IVI-MSS Solution的运行环境,它通过调用IVI-MSS Server提供的编程接口实现对仪器资源的访问;IVI-MSS Server是独立于测试仪器资源软件层,它封装了测试算法,对外提供面向测试功能需求的编程接口,该接口在被用户应用于程序调用时作为“角色”向用户提供测试服务;RCM是连接IVI-MSS Server和仪器Driver的软件层,在RCM内部封装了仪器访问细节,对外提供RCM接口与IVI-MSS Server交互。RCM通过SCPI命令、VISA函数和IVI驱动器等实现对物理仪器的访问。

IVI-MSS中IVI-MSS Solution作为一个独立的软件层,为仪器互换提供了解决方案;RCM由开发人员根据需求来定义,对于不同的测试需求,即使是同一测试器平台,RCM也是不同的。在更换仪器后,只要提供与原始仪器功能相同或相当的RCM,就可实现相同的测试功能,这样大大拓展了仪器互换的空间。

1.6 IVI-Signal Interface

2000年,IVI基金会的Signal Interface工作组在TYX公司和HP公司的领域下开始制定IVI-Signal Interface标准。它基于COM(Component Object Model)技术,是一系列COM组件的统称。

在IVI-MSS模型基础上发展起来的IVI-Signal Interface标准把原先的仪器控制命令转化为测试信号的需求,把IVI-MSS Server功能接口进一部封装形成IVI-Signal Interface信号接口。这克服了“面向仪器”的TPS开发中存在的弊端,实现了更高层闪的仪器互换。信号接口的标准化增强了不同厂商仪器之间的互操作性,方便了代码移植。同时,为仪器驱动器开发带了巨大商机,提高了IVI信号组件的开发效率和质量,有很看好的应用前景。

综上,当前占主导地位的驱动器设计规范主要有两种:VPP规范和IVI系列规范。两种驱动器开发规范的共同点是均建立在IEEE 488.2和SCPI命令以及VISA库之上,都包括接口和内部实现两部分。不同点是前者已发展成熟,它以仪器本身的特征应用于为中心,是功能驱动的,多由仪器生产商朝代,接口没有严格的语义标准,实现了仪器的即插即用,没有实现仪器互换和软件移植等功能;而后者建立在VPP之上,正入在发展完善之中,它面向UUT的测试需求,是需求驱动的,由测试系统集成人员或第三方软件开发人员编写,接口有严格的语义标准,部分地实现了仪器互换性和软件移植性,并最终向着完全实现而努力。目前VPP规范已被多数厂家所采纳进行自己产品的驱动器开发,因此将在未来很长的一段时间内占统治地位。但由于它在解决仪器互换性总题上无能为力,随着IVI系列规范的进一步完善,必将被其替代。

2 驱动器开发

根据以上驱动器设计规范发展回顾及分析可知,驱动器开发也分为两种类型:基于VPP规范的即插即用型驱动器开发和基于IVI系列规范的互换型驱动器开发。

2.1 即插即用型驱动器开发

开发基于VPP规范的即插即用型驱动器的过程分为两步。第一是仪器驱动器外部接口的设计,它表示仪器驱动器如何与外部软件接口,通常提供两种方式的接口:程序式开发接口和图形软面板。软件开发者通过程序式开发接口可以理解每个仪器驱动器函数的功能以及在应用程序中如何调用每个函数、另一种接口方式是图形化软面板,通过这一软面板可以直接操作控制物理仪器。第二是要完成仪器驱动器的内部模块设计,实现仪器的硬件功能。使用程序式开发接口的用户了解了这一功能,可以在


热门招聘
相关主题

官方公众号

智造工程师