可互换虚拟仪器驱动程序的开发(阮奇桢)_第1页
可互换虚拟仪器驱动程序的开发(阮奇桢)_第2页
可互换虚拟仪器驱动程序的开发(阮奇桢)_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、可互换虚拟仪器驱动程序的开 发(阮奇桢)作者:日期:可互换虚拟仪器驱动程序的开发 阮奇桢摘要:可互换虚拟仪器驱动程序是最新的仪器驱动程序标准, 它的出现大大提高了测试 系统的开发和运行效率.本文论述了可互换虚拟仪器驱动程序的体系结构、优势、 开发步骤和应用实例。关键词:虚拟仪器,仪器驱动程序,IVI,LabVIEW, LabWindows/CVIIVI Specific Driver Developme ntQizhe n RuanAbstract:IVI is a revoluti onary sta ndard for in strume nt driver softwaretech no

2、 logy 。 It features in creased performa nee and flexibility for the test system. The excellent IVI architecture is introduced in this paper as well as its impleme ntati on process。KeywordsIVI , Instrument Driver, LabVIEW, LabWindows/CVI一。 仪器驱动程序的发展仪器驱动程序是连接仪器硬件与高层应用程序的桥梁。使用仪器驱动程 序可以把高层应用函数从仪器接口函数中分离

3、出来,从而简化了高层应用软件的开发难度,提高了应用软件的可维护性仪器驱动程序的发展大致经历了以下几个阶段:1 0早期仪器驱动程序没有任何统一的规范,功能较为简单、直接。由于不同的仪器驱动程序的实现方法和接口函数大相径庭,用户往往觉得它们难以琢磨,结果使得它们很难被应用和修改。用户需要的是容易使用,便于修改,并且遵循相同标准的驱动程序。只有这样,他们才有可能把不同厂商的仪器集成 在同一系统中使用。为了实现这一目标,针对仪器驱动程序制定的标准陆续出现, 比如下文提到的这几种比较重要的规范。2. IEEE 488。2规范 定义了用于仪器的辨认和自检等的命令,但是仅 有这几种命令还远远不能解决仪器驱动

4、程序编写繁复、阅读困难等缺点。3。 SCPI(Standard Commandfbr Programmable Instruments )规范 定 义了通用的仪器命令结构,对命令按功能进行了归类分组目前,绝大多数新仪器 都是基于字符串命令的仪器,并且采用了SCPI规范。遗憾的是,虽然他们都使 用了 SCPI的结构,但具体到每个功能,不同厂商仍然使用各不相同的命令字符 串。4。VXI总线即插即用(VXIplug & play )规范(简称VPPB范)由VPP系统联盟制定.VPP规范侧重于仪器的“互操作性(in teroperability )”,即 用户可以方便地把不同厂商的仪器集成到自己系统中

5、.为此,VPPg范详细定义了仪器驱动程序的内部设计模型与外部接口模型,规定了虚拟仪器驱动程序的设计要求及与系统中其他程序模块之间的相互关系但是,VPP规范仍然没能解决 工程师建造测试系统时遇到的困扰: 一是软件的开发和维护费用过于昂贵,二是难以快速升级已有的系统解决这样的问题需要仪器驱动程序具有“互换性”.5. IVI (In tercha ngeable Virtual In strume nt)驱动程序规范 扩展了 VPP仪器驱动程序的标准,并增加了仪器的可互换性、仿真和状态缓存等特点。 IVI 驱动程序规范由 IVI 基金会(Interchangeable Virtual Instrum

6、entFoundation )制定.它是由最终用户、系统集成商和仪器制造商共同组成的一个 开放联盟,几乎所有的大型仪器生产公司 (诸如:National Instruments , Agile nt,Tektro nix)都已经成为其成员。其职能是为测试仪器制定编程规范, 从而实现不同型号仪器之间的互换,并且提高系统性能、降低开发成本.本文为互联 网收集,请勿用作商业用途本文为互联网收集,请勿用作商业用途IVI系统结构为了实现互换性,IVI基金会将同类仪器的共性提取出,并作了规范。 目前已经发布的八类仪器规范是:示波器(IviScope )、数字万用表(IviDmm)、 信号发生器(IviFG

7、en )、直流电源(IviDCPower)、开关矩阵/多路复用器(IviSwitch )、功率表(IviPwrMeter)、频谱分析仪(IviSpecAn)和射频信号 发生器(IviRFSigGen),其他类型仪器的规范也将被陆续制定发布。每一类的仪器都有各自的类驱动程序(IVI Class Driver )。类驱动程序包含了该类仪器通 用的各种属性和操作函数运行时,类驱动程序通过调用每台仪器的专用驱动程 序(IVI Specific Driver )中相应的函数来控制仪器。图1: IVI体系结构图1是IVI体系结构框图:应用程序可以直接调用专用驱动程序来控制仪器。但是为了实现仪器互 换,应用

8、程序应该首先调用类驱动程序,类驱动程序检查IVI配置文件以确定应该使用的专用驱动程序。若系统中的仪器被更换,只需适当修改IVI配置文件,而应用程序无需任何改动,因而实现了测试系统的通用性三. IVI驱动程序的特点和优势1. 互换性。IVI驱动程序的互换性至少为我们带来了以下几大好处:a)易于使用。所用的IVI驱动程序都使用通用的接口,易于 理解,也就不再要求应用程序的开发人员必须掌握某一特定仪器的编程方法,从而系统开发获得了更大的硬件独立性.b)降低了系统的维护和升级费用。IVI构架系统可以适用不同的仪器,当仪器 陈旧或者有了升级的、高性能或低造价的仪器时,可以任意更换,而不需要改变 应用程序

9、。c)代码共享.IVI构架允许部门和设备之间方便地复用及共 享测试代码,并且不需使用相同型号的仪器硬件2. 模拟功能。每个仪器专用驱动程序都具有专门针对本型号仪器的模拟功能.这些模拟功能使得工程师在缺少真实仪器的情况下,可以使用IVI驱动程序的模拟功能来开发、调试应用程序还可以使用美国国家仪器公司(National Instruments,简称NI)提供的类模拟驱动程序以获得更强大的模拟功能。3. 状态缓存功能VI驱动程序可以保存仪器每一属性设置的当前状态。当应用程序试图发送一些冗余命令到仪器时(例如,将仪器的某一属性重新 设置为当前值,这些命令显然不会让仪器产生任何变化或动作),IVI驱动程

10、序会跳过这些命令。当前的测试系统中,影响软件执行速度的瓶颈通常在于仪器与 计算机接口总线的传输速率,IVI驱动程序的此项功能大大减少了仪器与计算机 之间的通讯,从而提升了系统性能。4。源码开放。高级用户可以直接修改IVI驱动程序的源代码,以对其 进行优化或添加功能。5。免费得到大量的驱动程序。除了生产厂商自行开发的IVI驱动程序, NI公司也为各类常用仪器开发了大量IVI驱动程序,这些程序都可以从NI的网 站上免费下载。 此外,NI还提供了用于开发驱动程序的工具包,以简化用户的 IVI驱动程序的开发过程。 个人收集整理,勿做商业用途文档为个人收集整理,来源于网络四。IVI驱动程序的设计和开发按

11、照提供给用户的接口形式的不同,IVI驱动程序分为:C语言驱动程序, LabVIEW驱动程序,COM区动程序。虽然同一仪器可以存在接口形式不同的驱动 程序,但它们的功能完全相同,用户可以选择使用自己最擅长的形式。目前最普遍 使用的仍然是C语言驱动程序;LabVIEW驱动程序是在C语言驱动程序生成的DLL 动态库的基础上生成的;而COM区动程序则需要重新编写代码.IVI驱动程序规范已经详细制定了驱动程序的构架和接口,因此开发人 员不必另行设计程序结构,这避免了驱动程序结构不合理或用户使用不便等问 题。但是,开发人员要特别注意和精心设计仪器的功能、控制命令与IVI规范不兼容的部分。使用LabWind

12、ows/CVI作为C语言驱动程序的开发工具具有独特的优越条 件,因为CVI集成了许多驱动程序开发工具,比如:IVI驱动程序生成向导、属 性编辑器等。另外还可以选用 NI公司的IDT工具包作为补充。下面以较为常用的Fluke 45数字万用表为例,简单介绍一下开发IVI仪 器驱动程序的具体步骤:1 熟悉仪器与IVI规范.在开发仪器的IVI驱动程序以前,首先要熟 悉仪器的有关命令,然后根据其功能进行分类。并且将仪器命令与IVI规范制定 的属性、函数对应起来。2 .使用CVI的“仪器驱动程序开发向导”生成驱动程序的框架。 开发 向导生成的文件一共有4个,其中,“ fl45。c”和“fl45。h”分别是

13、C语言源 文件和头文件;“ fl45.fp记录函数面板信息;“ fl45。sub”记录仪器“属性(attribute ) ”的信息。3 . 删除仪器不支持的扩展功能组可能会出现仪器不支持某些IVI规 范定义的功能组的情况,比如说fl45不具备温度测量功能,这时应该把所有与温 度测量有关的函数和属性移出4 .完善代码。实现IVI规范中仪器可以支持的功能组“仪器驱动程序开发向导”已经生成了大部分属性和函数的代码用户需要做的只是到属性的回调函数(Attribute Callback Function)中修改相应的仪器命令。由于每台仪器的命令体系都有其特殊性,用户也不能够完全依赖“开发向导”生成的程序

14、 结构,函数和属性的实现需要参照仪器的具体命令体系来实现。5 .编写支持仪器特殊功能的代码。“仪器驱动程序开发向导不能够生成支持IVI规范定义之外的仪器功能.比如Fl45有对测量值进行修正的功能,IVI规范没有相应的定义,实现这部分功能需要自己设计和编写相应的属性及函 数。6 . 测试。除了要确保IVI驱动程序函数功能正确,还要验证它是否完 全符合IVI规范。IVI驱动程序的开发人员也可以请求 NI公司帮助完成程序的 最终测试。7 . 编写LabVIEW驱动程序。如果已经有了 C语言IVI驱动程序,只需 要使用NI公司在其网站上提供的 LabVIEW In terface Gen erator

15、 forLabWi ndows?/CVI? In strume nt Drivers工具即可方便地生成相应的 LabVIEW仪器驱动程序。本文为互联网收集,请勿用作商业用途个人收集整理,勿做商业用途IVI类驱动程序的开发。如果用户希望使用IVI规范定义的八类仪器之外的仪器,并且还要实现通用性(可互换性),那么则需要客户自己开发类驱动 程序。类驱动程序的开发与仪器驱动程序的开发过程完全不同,由于用户很少遇到类驱动程序的开发,本文不作详细介绍五。IVI驱动程序的应用实例IVI驱动程序相对于传统仪器驱动程序而言,比较适合于高端应用和大 型测试系统的搭建。下面是两个IVI体系的典型应用。1 .2002

16、年波音公司在其新设计的测试系统中应用了IVI技术。由于对测试稳定性的要求,波音公司的测试系统一经投入使用,往往要求连续工作几 十年而且不能做大的改动.在这么长的使用期内,许多最初设计时使用的仪器都 可能停产。一旦仪器损坏,根本无法找到同型号的仪器进行替换,只能使用类似的仪器进行替代如果使用传统仪器驱动程序,每次更换仪器时,测试软件也必 须做相应更新.这样一来不但需要花费大量时间在测试软件的更新上,更重要的 是对软件结构的改动很可能会破坏它的一致性。在使用IVI体系结构后,每次替换仪器,只需要在IVI配置文件中指明新 的驱动程序即可,测试软件不需要作任何改动。这样既节约了时间,又不会对测 试结果产生任何影响。2 .NI公司在其2005年推出的校准系统中也使用了 IVI体系结构。该校准系统将提供给世界各地校准实验室使用,因此,该校准系统必须能供控制型 号千差万别的各类标准仪器。IVI体系结构保证了该系统在不改变代码的前提下 适应任何实验室的仪器设备。参考文献:1 Dany Cheij , The An atomy of an In tercha ngeable Test System, http:/www 。 ni

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论