APP下载

基于IVI引擎技术的虚拟仪器互换管理系统

2015-06-23李宥谋赵梦屹

西安邮电大学学报 2015年2期
关键词:配置文件驱动程序引擎

李宥谋, 赵梦屹, 王 萌

(西安邮电大学 计算机学院, 陕西 西安 710121)

基于IVI引擎技术的虚拟仪器互换管理系统

李宥谋, 赵梦屹, 王 萌

(西安邮电大学 计算机学院, 陕西 西安 710121)

针对虚拟仪器的IVI驱动管理,设计一种仪器硬件和IVI驱动的管理系统。基于VISA和IVI技术,结合两台不同型号的示波器,使用示波器软面板应用程序,完成对两台仪器进行互连测试。测试结果表明,通过该系统能够满足仪器设备的快速互换,实现仪器的自动发现和IVI驱动的自动配置功能。

虚拟仪器;IVI技术;IVI引擎;仪器互换

虚拟仪器将计算机系统应用到仪器测量系统中,从而把计算机强大的处理能力和仪器硬件的测量、控制能力结合在一起[1]。为了实现仪器的统一标准和规范,可互换仪器(Interchangeable Virtual Instruments,IVI)模型和规范被提出,通过建立IVI仪器驱动,解决了不同型号仪器的可互换性和可执行性[1]。随着越来越多仪器接入量的增加,不同接口、不同类型的仪器需要进行探测发现,并完成仪器的可互换性配置[2]。但在现有的虚拟仪器管理中,针对实体仪器和对应互换配置通常分开管理,对新接入的实体仪器在使用前需要大量的配置工作,才能完成仪器的互换性操作[3]。对于传统的仪器需要工作人员检测仪器厂商、型号等信息,人工进行IVI仪器互换驱动功能的信息配置。所以当需要在测试系统中添加或者更换同类型但不同型号或不同厂商生产的仪器时,就需要工作人员对接入的不同类型仪器进行检测,并配置IVI对相应信息。本文利用IVI引擎技术,设计一种仪器接入的自动监测和IVI自动配置的系统,以此实现仪器设备在本地和互联网上的即插即用,实时发现仪器硬件设备,进行自动检测、自动配置IVI参数和自动启动相应的仪器驱动程序。

1 IVI引擎技术

IVI引擎一项重要的工作就是实现仪器专用驱动与类驱动器的映射。在IVI规范中,IVI类驱动定义了符合IVI仪器类规范的API,包括某一类仪器通用的属性和函数,类驱动不能直接控制具体的物理仪器,需要调用相应的专用驱动才能完成对具体仪器的操作。IVI引擎作为软硬件之间的桥梁,完成软件到硬件的映射工作。

在IVI测试系统模型中,仪器驱动的配置被当做仪器的一种属性,可由IVI引擎进行配置。IVI引擎中提供获取、确认和更新这些仪器属性的方法,并且可实现状态缓存、范围检测、状态检测以及仪器仿真等功能。

1.1 IVI互换原理

IVI测试系统中的仪器互换是通过使用类驱动接口结合配置文件来实现的,将类驱动映射到专用驱动,从专用驱动获得仪器的对应函数。IVI驱动将仪器驱动分为仪器类驱动和仪器专用驱动两层[4]。应用层程序可以直接调用仪器专用驱动程序实现仪器的控制与测量,也可以通过调用类驱动来间接调用专用驱动程序[5]。应用层程序在调用类驱动的时候,可以在不改变上层应用程序代码的情况下,只需要调用相应的专用驱动程序,就可以完成仪器的互换。在应用层程序调用类驱动后,系统会调用IVI类驱动库中初始化函数,并通过IVI引擎的配置文件得到仪器驱动的映射信息,通过IVI定义的规范进行类驱动函数到特定驱动函数的匹配,实现从类驱动到专用驱动的映射[5]。

以IVI驱动程序设置仪器某属性为例,如图1所示。仪器驱动器调用高层函数来设置仪器的属性,IVI引擎可以通过读取属性范围表检测和强制设定,并与缓存值进行比较来确定是否调用底层的特定仪器驱动。仪器驱动程序对仪器进行硬件操作需要花费较多的时间,因此IVI技术可以通过检测仪器属性,调整高层函数和底层的I/O函数操作,对仪器操作可以做到灵活掌握,并提高驱动程序的运行效率。

图1 IVI引擎工作原理

1.2 IVI引擎机制

IVI引擎机制的设置,都会以元素的形式在配置仓的配置文件中以标签的形式进行体现,通过配置文件,完成对不同仪器的IVI引擎的属性配置。

(1)范围检查

范围检查机制会为仪器提供一个量程,引擎检测程序设置的属性值是否在这个量程内,如果不在量程范围则自动赋以缺省值。用户可以禁止使用范围检查机制以提高测试性能。只有在开启范围检测机制的情况下,引擎才会提供量程范围供属性值参考。

(2)状态缓存

状态缓存机制是在IVI配置系统中调用此机制后,IVI引擎在本机内存中保存了仪器的属性信息。状态缓存的引入减少了仪器接收冗余的操作指令。当程序设置仪器属性时,IVI引擎对内存中缓存的仪器属性值和程序需要设定的属性值进行比较,当两者不等时才进行设置,状态缓存机制使测试系统的性能得到了提高。

(3)仪器仿真

仿真功能依靠引擎进行测试功能上的仿真。IVI仿真通过范围检查以及范围表为用户提供仿真数据,开发人员不需要实际的实体仪器就可以进行开发和调试,实现仪器测试系统的仿真。

(4)状态检查

状态检查机制是在程序对仪器执行I/O操作后,由IVI引擎自动对仪器的当前状态进行检测,确保仪器在操作后的属性及运行状态正常。

2 仪器发现和配置管理系统的设计

为了实现仪器管理自动化检测与配置,满足仪器互换操作性能,首先要对仪器设备进行自动发现和检测,之后对新发现的仪器设备进行识别和自动配置。主要设计包括两个部分: 一部分是仪器硬件接口检测部分,另一部分是IVI仪器驱动的配置管理部分。

仪器设备的发现过程是通过仪器管理系统调用VISA驱动程序实现的,自动查询接入仪器设备的信息,并建立对应的IVI配置文件。IVI驱动配置部分将配置文件中的仪器硬件地址和IVI的配置参数进行处理后形成IVI驱动下物理和逻辑层之间的映射关系[6],实现IVI引擎环境下仪器设备的自动配置。

2.1 仪器发现的设计

VISA函数库中提供的资源管理类,通过与资源管理器建立对话进程,实现与仪器设备的逻辑连接,就可以完成仪器设备的查询功能[7]。针对不同仪器接口VISA函数库都提供了相应的接口函数[8]。

在实现仪器检测的过程中主要有以下步骤。

(1)使用函数viOpenDefaultDM(ViPSession sesn),打开VISA的资源管理器;

(2)打开VISA的仪器会话,使用函数viFindRsrc(ViSession sesn,ViString expr,ViPFindList findList,ViPUInt32 retcnt,ViPRsrc instrDesc)访问具体的实体仪器;

(3)利用VISA函数库中的viWrite()写函数向仪器发送查询信息;

(4)利用VISA函数库中的viRead()函数完成对仪器响应信息的读取;

(5)使用函数viClose()关闭VISA会话,释放所占用的资源。

仪器发现过程流程如图2所示。

图2 仪器发现流程图

2.2 IVI引擎自动配置设计

IVI引擎通过IVI配置文件实现驱动层之间的映射和IVI引擎的配置,达到仪器的互换目的。在IVI配置文件中要建立测试应用程序与硬件仪器、仪器驱动器之间的映射关系,实现类驱动到特定驱动的映射[9]。为了实现硬件无关性的操作,应用程序在配置管理中,设置虚拟仪器的逻辑名称,并通过管理配置文件与驱动会话进行映射。驱动会话是指类驱动与特定驱动的映射会话,应用程序在调用仪器类驱动中的函数时,IVI引擎通过驱动会话将类驱动函数映射到相应仪器的驱动器上,完成对底层硬件的控制。利用IVI的配置文件可以进行IVI引擎配置,包括仪器设备的仿真、状态缓存、状态检查等功能。当系统中更换不同型号的仪器时,只需在管理配置文件中将仪器逻辑名称重新设置,即可实现仪器的互换[10]。

配置管理文件主要作用有两方面。

(1)管理已经发现的仪器,添加相应的仪器信息和描述;

(2)建立一个小型的IVI驱动配置仓库,保存到仪器管理系统中。

在IVI的XML配置文档中,以元素的形式记录IVI互换的软硬件信息和配置信息,以IviConfigStore作为文档的唯一的根元素,根元素下可以添加子元素,文档形成树状层次结构形式[11]。

在IVI配置文件中包括3个重要的元素。

(1)由HardwareAssets主要负责管理硬件设备的发现信息的储存。子元素包括:Name用来描述仪器的名称、Description用来对仪器进行详细的描述和IOResourceDescription仪器与计算机连接的IO接口的描述信息。

(2)仪器IVI驱动会话的配置信息由IVIDriverSession元素进行描述,主要负责管理存放计算机内已有的IVI驱动信息。子元素包括:Name用来标识IVI驱动的名称、DriverSetup是IVI引擎的功能设置。在DriverSetup元素下设置IVI引擎的参数InterChangeCheck互换性检测、QueryInstrStatus仪器状态查询、RangeCheck范围检测、RecordCoercions操作情况记录和Simulate仿真。Description元素用于描述驱动程序的作用,一般由IVI驱动厂商提供。IVIHardwareAsset元素用来描述驱动程序所对应的硬件接口地址。

(3)LogicalNames元素实现将逻辑名称与仪器的IVI驱动会话关联起来,在仪器软模板测量环境中逻辑名称为用户提供更好理解的名称选择。主要参数有IviLogicalName用来记录逻辑名的各项信息,子元素包括: Name为逻辑名的名称,Description为逻辑名称的描述。

IviDriverSession是配置文件中完成类驱动到控制仪器的特定驱动映射的关键元素,能够设置IVI引擎需要实现的功能,完成引擎功能和驱动的配置。在用户程序调用配置函数时,文件中的每个映射元素都有唯一的ID标识,通过标识间的映射完成各个元素间相互关连接,例如逻辑名称LogicalNames和IVI驱动会话IVIDriverSession通过ID号进行映射关联,在逻辑名函数中虽没有仪器的硬件信息,但是在IVI驱动会话中保存有相关仪器的硬件地址,配置文件通过映射的方法完成应用逻辑层到实体硬件层的连接。

以下列出了VISA驱动下的仪器硬件信息,IVI可互换性驱动的信息,以及应用程序和测试软面板进行会话的相关信息。

3 测试结果及分析

在实际应用中,为了实现仪器管理系统对不同接口仪器的发现和配置管理,通过分析和处理IVI配置文件,将多台仪器设备集成到一个主机上进行配置就可以简化所连接的仪器配置过程,并且通过互联网可以对仪器进行远程的控制和配置管理。本文利用实验室现有的两种仪器接口实现管理和仪器互换的配置的检验。一台USB接口的示波器直接连接到网管系统的主机上,另外一台示波器采用以太网口接口经路由器与仪器网管系统进行连接。主机采用MFC编写UI界面与仪器进行交互,后台借助VISA接口函数实现对USB接口和以太网络接口的连接检测,显示当前发现的仪器设备信息。使用UI管理配置文件,对仪器逻辑名称、硬件信息和驱动会话信息进行添加、读取显示、修改、删除等功能。

在实际测试中,USB接口的示波器自动检测出信息为

USB0::0x0699::0x0368::C010946::INSTR,

以太网接口的示波器检测出网口硬件信息为

TCPIP0::192.168.1.7::INSTR,

在仪器软面板中,将逻辑名称分别设置为taikescopeUSB和AgiETH,并将逻辑名称配置对应的IVI驱动会话和硬件信息显示给用户,检测配置界面如图3所示。

图3 仪器配置管理界面

示波器初始化的软面板,可以成功找到刚配置的逻辑名称信息以及对应的驱动会话名称,初始化软面板可以选择不同接口的仪器的逻辑名称,初始化成功后即可进入软面板主界面对实体仪器进行操作,体现了IVI互换性的特性,软面板初始化界面如图4所示。

图4 示波器软面板初始化界面

从测试结果可见,配置界面能读取XML配置文件信息,并生成会话和仪器驱动的信息结构,能显示驱动和逻辑名称的具体信息,通过VISA检测端口,可将检测到的端口通过UI界面右侧的信息添加到后台的XML文件,并能借助已有IVI引擎,实现互换IVI驱动的配置。测试界面相当于一个小型的可互换仪器配置仓库,实现了对仪器和虚拟仪器对应的仪器驱动的管理任务。

4 结束语

将IVI引擎和VISA技术结合起来应用于仪器的探测和互换配置管理中,可以完成对接入仪器的实时探测的需求,获取仪器完整的硬件信息,通过对本地的IVI驱动进行管理,设置仪器运行时的IVI引擎的实时配置,利用配置文件的形式完成软件和硬件之间的映射,实现仪器互换。通过实体仪器的测试证明,该系统解决了仪器接口之间的连接问题,提高了仪器的测控系统的效率。

[1] 赵俊.通用测试仪器可互换引擎IVI_C的实现与研究[D].西安:西安电子科技大学,2012:22-36.

[2] 汪君鹏,李宥谋.基于Lua脚本技术的网络化测控系统设计[J].西安邮电大学学报,2013,18(1):90-94.

[3] 辛丽霞,刘金川,王凯.基于合成仪器的可互换仪器软件研究[J].计算机测量与控制,2014,22(2):617-619.

[4] 卢丹.LXI仪器IVI驱动程序的设计与实现[D].成都:电子科技大学,2012:20-35.

[5] 郭猛.基于IVI技术的多接口测控平台的实现[D].西安:西安邮电大学,2014:10-30.

[6] 李璐.可互换虚拟测试功能组件研究[D].西安:西北工业大学,2005:20-43.

[7] 姜晓琳,王厚军,马敏.LXI标准下的网络VISA设计与实现[J].计算机测量与控制,2010,18(8):1849-1851.

[8] 李哲,强少峰.基于USB的仪器仪表驱动程序设计与实现[J].西安邮电学院学报,2012,17(8):61-64.

[9] 柳爱利,周绍磊.自动测试技术[M].北京:电子工业出版社,2007:30-42.

[10] 史君成,张淑伟,律淑珍.LabWindows虚拟仪器设计[M].北京:国防工业出版社,2007:10-42.

[11] 王怡苹,李文海,赵秀丽.XML标记语言及其在LabWindows/CVI中的应用[J].国外电子测量技术,2009,28(7):62-95.

[责任编辑:祝剑]

Design of exchange management of virtual instrument based on IVI engine technology

LI Youmou, ZHAO Mengyi, WANG Meng

(School of Computer Science and Technology, Xi’an University of Posts and Telecommunications, Xi’an 710121, China)

In order to detect the local instruments and manage the instruments and IVI drivers, a management system based on the IVI and VISA technology for the instruments management and IVI configuration is designed in this paper. The test of the connection between the two scopes is completed by using the soft panel and two different types of scopes. Test result shows that the system can achieve the purpose of quick interchange of instruments and implement function of instrument automatic detection and automatic configuration.

virtual instrument, IVI technology, IVI engine, the interchange of instrument

2014-10-29

陕西省重大科技创新专项资金计划资助项目(2010ZKC02-08);西安市技术转移促进工程基金资助项目(CX1252-4)

李宥谋(1959- ),男,教授,从事嵌入式系统设计。E-mail:lym@xupt.edu.cn赵梦屹(1990-),男,硕士研究生,研究方向为嵌入式系统设计与开发。E-mail:tjzhaomengyi@163.com

10.13682/j.issn.2095-6533.2015.02.017

TP

A

2095-6533(2015)02-0093-06

猜你喜欢

配置文件驱动程序引擎
从Windows 10中删除所有网络配置文件
新海珠,新引擎,新活力!
用软件处理Windows沙盒配置文件
互不干涉混用Chromium Edge
阻止Windows Update更新驱动程序
基于Zookeeper的配置管理中心设计与实现
计算机硬件设备驱动程序分析
三生 三大引擎齐发力
蓝谷: “涉蓝”新引擎
妙用鼠标驱动