资源描述:
《ivi配置文件的管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、仪器无关测试系统IVI配置文件的管理(转载)(更新时间:2006-08-3116:15:08)1 概述VPP规范中定义了VISA(virtualinstrumentsoftwarearchitecture)接口软件,对串行总线、GPIB总线、VXI总线仪器的操作提供了统一接口,提高了仪器的可互换性。1998年8月,为了进一步提高仪器驱动程序的执行性能,达到真正的仪器互换性,由9个公司成立IVI(InterchangeableVirtualInstrumentation)基金会,在VPP的基础上为仪
2、器驱动程序制定新的编程接口标准,使应用程序可以实现完全独立于硬件,而不管其是何种总线接口,并增加了仪器仿真、状态缓存等机制,使仪器执行效率大大提高。2 IVI系统结构目前,IVI基金会共规范和开发了5类驱动程序:示波器、数字多用表、任意波形/函数发生器、开关和直流电源。即将推出射频信号发生器、频谱分析仪、功率计、数字仪器分类驱动程序。IVI系统结构如图1所示,由IVI分类驱动程序、IVI具体仪器驱动程序、IVI引擎、IVI配置实用程序、IVI配置信息文件5部分组成。应用测试程序中调用分类驱动程序,
3、分类驱动程序调用具体仪器驱动程序来控制实际的仪器,因此,即使测试系统的具体仪器改变,也不会使分类驱动程序的测试代码受到影响。21 分类驱动程序一个分类驱动程序是一组仪器无关函数和属性用于控制某一类型的仪器,比如示波器、数字多用表、函数发生器等,这些函数有一个通用功能前缀如IviScope、IviDmm或IviFgen。目前IVI驱动程序工具箱共有5类:示波器、数字多用表、任意波形/函数发生器、开关和电源,每个分类驱动程序调用具体仪器驱动程序来控制实际的仪器。因为每一类中的所有仪器不可能具有完全相同
4、的功能和性能,没有一个单一的编程接口可以适用于所有的仪器,因此IVI分类驱动程序将仪器能力分为固有的IVI能力、基本能力、扩展组能力、仪器特有的能力4种。固有的IVI能力是指所有的IVI分类驱动程序都具有的函数和属性,比如ClassPrefix-init()函数,对5类驱动程序而言,只是将ClassPrefix(类前缀)加上,分别为IviScope、IviDmm、IviDCPwr、IviFgen或IviSwtch,此类函数有19个;基本能力是指某类仪器公有的函数和属性,可以覆盖某类仪器95%以上的
5、功能,例如示波器的基本功能为:沿触发采集、初始化一个采集过程、返回采集波形等,一个IVI兼容的仪器必须具有上述基本能力;扩充组功能(ExtensionGroups)是指并不是某一类仪器都具有的、更为特殊的函数和属性组,具体仪器驱动程序不需要实现扩充功能组,由IVI分类驱动程序为属于某类仪器不标准的功能创建标准编程接口,例如,虽然所有示波器水平和垂直设置都有相同的基本功能,但却有各种各样的触发模式,IviScope分类驱动程序包含了不同触发模式的扩展功能,比如TV触发、runt触发、宽度触发等等,每
6、个具有TV触发的示波器都能遵守IviScope分类驱动程序的TV触发扩展组函数和属性。仪特有的功能是指其他设备没有的,为了使用这些功能必须在程序中直接访问IVI具体驱动程序,这部分程序将不支持仪器互换性。22 具体仪器驱动程序具体仪器驱动程序包含控制一个特定仪器的信息,包括命令串、分析代码、每个设置的正确量程等。其对外接口与VISA仪器驱动程序没有什么区别,但内部实现方法却大不相同,在VPP基础上增加了仪器仿真、状态缓存、量程检查等功能。23 IVI引擎IVI引擎完成状态缓存、仪器属性跟踪、分类驱
7、动程序到具体驱动程序的映射功能。是实现IVI仪器驱动程序完成状态缓存和其他增强性能的关键支持库,比如仪器仿真、量程检查和状况检查等功能。在开发期间,这些功能可以辅助应用软件的调试与开发,一旦转入产品模式,IVI引擎允许关闭量程检查、状况检查、仪器仿真等功能,以获得最快速度的软件执行性能。24 IVI配置实用程序IVI系统提供了名为“Measurement&AutomationeXplorer”(简称MAX)的IVI配置程序,用于配置仪器无关测试系统,创建和配置IVI逻辑名称(logicalname
8、s),在测试程序中通过传送逻辑名称给一个分类驱动程序初始化函数,以将操作映射到具体仪器及其仪器驱动程序。25 IVI配置信息文件通过MAX创建和配置的信息保存在Vxipnpwin95niiviiviini文件中,该文件存储了所有逻辑名称和分类驱动程序到具体仪器驱动程序的映射信息。3 硬件无关性的实现过程如图2所示,在应用软件中通过逻辑名称调用分类驱动程序,IVI引擎通过逻辑名称检查IVI配置文件,以确定正在使用的具体仪器,并动态地调用具体仪器驱动程序相应的初始化函数,与仪器建立会话