虚拟仪器的驱动技术

时间:2022-04-19 01:22:07

虚拟仪器的驱动技术

【摘 要】虚拟仪器的驱动技术对虚拟仪器能否正常运行至关重要,是虚拟仪器中最关键的技术。虚拟仪器的驱动技术就是通过模块化编程的方法,把对仪器的一系列操作集合在一起形成仪器驱动程序,如初始化仪器、配置仪器、读取测试结果等,避免了程序员在对同样仪器开发新的应用时进行重复工作。本文简单介绍了虚拟仪器的驱动技术的概况和发展历程,详细论述了主要的仪器驱动器技术规范SCPI、VPP和IVI的基本原理和层次结构。

【关键词】虚拟仪器 SCPI VPP IVI

1概述

虚拟仪器的驱动技术对虚拟仪器能否正常运行至关重要,是虚拟仪器中最关键的技术。它一方面与具体仪器通信,一方面与更高层的软件或使用仪器驱动程序的用户通信。

为了降低开发成本,减小开发难度,缩短研发周期,提高系统稳定性,自动测试系统中大量采用了商用货架产品COTS。

而商用产品更新换代很快,为了延长测试系统的寿命,往往需要进行仪器更换;另一方面,当被测对象测试需求发生变化时,也可能要求对仪器进行更新换代,这就存在兼容性问题。

2 主要的虚拟仪器驱动技术

随着测试系统的不断发展,仪器驱动器技术规范也经历了从 IEEE488.2、SCPI、VPP仪器驱动器到 IVI仪器驱动器的发展。

下面对SCPI、VPP和IVI分别加以论述:

2.1 SCPI

SCPI(Standard Commands for Programmable Instruments)即可编程仪器标准命令,是建立在IEEE488.2提出的标准代码和格式之上的,包含了IEEE488.2通用命令和SCPI仪器特定控制命令。

IEEE488.2通用命令规定了仪器必须执行的命令,它与测量无关,用来实现重设(reset),自测试(self-test),状态查询(status byte query)等。SCPI仪器特定控制命令用以执行测量,仪器状态查询,获取测试数据等,包括所有的测试函数和一些特殊的功能函数。不同的仪器具有不同控制命令。但命令的格式相同,都是采取层次化结构,每个根命令层次下可能有许多低层次命令,呈树状向下伸展,只有指定完整的路径才能执行较低层次的命令。SCPI与过去的仪器命令最大的区别是:描述的是试图测量的信号而不是用测量该信号所用的仪器。

2.2 VPP

众所周知,在设计、组建自动测试系统中,仪器的编程是一个系统中最费时费力的部分。系统中的仪器可能由各个仪器供应厂家提供,而且系统设计人员对所有的仪器既需要完成底层的仪器I/O操作,又需要高层的仪器互换能力,这大大增加了系统设计人员的负担,因此仪器用户总是想方设法将仪器编程结构化、模块化以便控制特定仪器的程序能反复使用。因此,一方面对仪器编程语言推出了标准化要求;另一方面,需要定义一层具有独立性的模块化仪器驱动程序,亦即具有相对独立性的仪器驱动程序。

基于以上原因,VXI即插即用联盟制定了VPP(VXI Plug &Play)仪器驱动规范标准,它详细地规定了VXI总线即插即用风格的虚拟仪器系统的仪器驱动程序的结构和设计。

VPP规范的一个重要结果就是将仪器驱动器作为仪器的一部分,由仪器厂家提供。 VPP仪器驱动程序封装了为完成仪器操作和控制所必需的所有底层操作,无论是消息基还是寄存器基的仪器。这就使得测试系统开发人员不必从最基础的VISA语句写起,也无需了解仪器的具体命令,只要调用仪器驱动程序模块即可完成应用程序的开发工作,大大提高了测试开发的效率。

2.3 IVI

虽然HP VEE、LabVIEW、Lab Windows/ CVI 及中文VPP 等跨平台开发环境,通过不同的API 接口保证了改变操作系统和编程语言无需修改测试程序,而通过VISA 规范标准,不同厂家的仪器在这些平台上实现了互操作性。但是,如果更换硬件设备,则必须修改测试程序,换句话说,也就是虚拟仪器不具有可互换性,这是由于不同硬件厂商提供的仪器驱动程序(或I/O 接口程序) 之间缺乏统一的编程接口而引起的。这一情况限制了测试系统开发周期的进一步缩短和系统成本的进一步降低。特别是对于军用测试系统,寿命一般长达20~30 年。在很多时候,仪器硬件不是过时就是需要更新,而且军用测试软件工具和标准化需要巨额投资。随着技术的更新,这些软件和标准的维护费用昂贵,又难以升级。所以,更加迫切地需要一种无需改动程序代码就可用新的仪器硬件改进系统方法及仪器可互换性。

以上原因导致了IVI的出现。IVI(Interchangeable Virtual Instrument)即可互换虚拟仪器技术规范是由IVI基金会于1998年的,旨在提高可互换性、提供更好的性能、减少开发和维护的费用。目前仍在不断完善中。IVI规范为在仪器级别上实现软件互换,尽可能实现仪器驱动程序和测试程序代码的可重用性作出了巨大的贡献。

IVI驱动程序类型如图5所示,可以看到,IVI规范把仪器驱动分为IVI类驱动器(Class Driver)和IVI特定驱动器(Specific Driver),而IVI特定驱动器又由IVI类兼容(Class-compliant)特定驱动器和IVI定制特定驱动器组成。

IVI规范引入了仪器类的概念,完整定义了某个已定义类仪器的所用特性和一致的编程接口。IVI类驱动器对于实现仪器互换是必需的。目前已定义的类驱动规范有8种:直流电源,数字万用表,函数发生器,开关,示波器,功率计,射频信号发生器,频谱分析仪,成熟的只有5种。

IVI内部模型与VPP内部模型最大的区别在于它的引擎机制。IVI 引擎将决定哪个特定驱动器和仪器建立通话链路,同时也包含如何去获取、确认和更新仪器属性的方法。建立在由IVI引擎驱动的属性机制的基础上,IVI实现了状态缓存、范围检测、状态检测及仪器仿真功能。

IVI驱动器的互换性体现在由类驱动器向特定驱动器的映射机制上。不用更改测试程序,只通过更改配置文件就可实现驱动器的互换。特定驱动器按照IVI规范实现外部接口,内部采用VPP系统联盟的驱动器结构和底层VISA I/O库来实现。可以说,IVI驱动器在结构上是VPP驱动器的超集。

3结语

由于具有便携性好、可靠性高、环境适应性强、能进行快速组合以满足多种检测方案的要求等显著优点,虚拟仪器测试技术的应用越来越广泛,而作为最重要组成的驱动技术也必将随着虚拟仪器测试技术的飞速发展而日新月异。

上一篇:4G时代的业务支撑工作 下一篇:探索康平县防风固沙生态县建设途径