1、仪器无关测试系统配置文件的管理(转载)( 更新时间:2006-08-31 16:15:08)1 概述规范中定义了 ( )接口软件 ,对串行总线、总线、总线仪器的操作提供了统一接口 ,提高了仪器的可互换性。 19 9 8年 8月 ,为了进一步提高仪器驱动程序的执行性能 ,达到真正的仪器互换性 ,由 9个公司成立 ( )基金会 ,在的基础上为仪器驱动程序制定新的编程接口标准 ,使应用程序可以实现完全独立于硬件 ,而不管其是何种总线接口 ,并增加了仪器仿真、状态缓存等机制 ,使仪器执行效率大大提高。2 系统结构目前 ,基金会共规范和开发了 5类驱动程序 :示波器、数字多用表、任意波形 /函数发生器、
2、开关和直流电源。即将推出射频信号发生器、频谱分析仪、功率计、数字仪器分类驱动程序。系统结构如图 1所示 ,由分类驱动程序、具体仪器驱动程序、引擎、配置实用程序、配置信息文件 5部分组成。应用测试程序中调用分类驱动程序 ,分类驱动程序调用具体仪器驱动程序来控制实际的仪器 ,因此 ,即使测试系统的具体仪器改变 ,也不会使分类驱动程序的测试代码受到影响。2 1 分类驱动程序一个分类驱动程序是一组仪器无关函数和属性用于控制某一类型的仪器 ,比如示波器、数字多用表、函数发生器等 ,这些函数有一个通用功能前缀如、或。目前驱动程序工具箱共有 5类 :示波器、数字多用表、任意波形 /函数发生器、开关和电源 ,
3、每个分类驱动程序调用具体仪器驱动程序来控制实际的仪器。因为每一类中的所有仪器不可能具有完全相同的功能和性能 ,没有一个单一的编程接口可以适用于所有的仪器 ,因此分类驱动程序将仪器能力分为固有的能力、基本能力、扩展组能力、仪器特有的能力 4种。固有的能力是指所有的分类驱动程序都具有的函数和属性 ,比如 - ( )函数 ,对 5类驱动程序而言 ,只是将 (类前缀 )加上 ,分别为、或 ,此类函数有 19个 ;基本能力是指某类仪器公有的函数和属性 ,可以覆盖某类仪器 95 %以上的功能 ,例如示波器的基本功能为 :沿触发采集、初始化一个采集过程、返回采集波形等 ,一个兼容的仪器必须具有上述基本能力
4、;扩充组功能 ( )是指并不是某一类仪器都具有的、更为特殊的函数和属性组 ,具体仪器驱动程序不需要实现扩充功能组 ,由分类驱动程序为属于某类仪器不标准的功能创建标准编程接口 ,例如 ,虽然所有示波器水平和垂直设置都有相同的基本功能 ,但却有各种各样的触发模式 ,分类驱动程序包含了不同触发模式的扩展功能 ,比如触发、触发、宽度触发等等 ,每个具有触发的示波器都能遵守分类驱动程序的触发扩展组函数和属性。仪特有的功能是指其他设备没有的 ,为了使用这些功能必须在程序中直接访问具体驱动程序 ,这部分程序将不支持仪器互换性。2 2 具体仪器驱动程序具体仪器驱动程序包含控制一个特定仪器的信息 ,包括命令串、
5、分析代码、每个设置的正确量程等。其对外接口与仪器驱动程序没有什么区别 ,但内部实现方法却大不相同 ,在基础上增加了仪器仿真、状态缓存、量程检查等功能。2 3 引擎引擎完成状态缓存、仪器属性跟踪、分类驱动程序到具体驱动程序的映射功能。是实现仪器驱动程序完成状态缓存和其他增强性能的关键支持库 ,比如仪器仿真、量程检查和状况检查等功能。在开发期间 ,这些功能可以辅助应用软件的调试与开发 ,一旦转入产品模式 ,引擎允许关闭量程检查、状况检查、仪器仿真等功能 ,以获得最快速度的软件执行性能。2 4 配置实用程序系统提供了名为“”(简称)的配置程序 ,用于配置仪器无关测试系统 ,创建和配置逻辑名称 ()
6、,在测试程序中通过传送逻辑名称给一个分类驱动程序初始化函数 ,以将操作映射到具体仪器及其仪器驱动程序。2 5 配置信息文件通过创建和配置的信息保存在 9 5 文件中 ,该文件存储了所有逻辑名称和分类驱动程序到具体仪器驱动程序的映射信息。3 硬件无关性的实现过程如图 2所示 ,在应用软件中通过逻辑名称调用分类驱动程序 ,引擎通过逻辑名称检查配置文件 ,以确定正在使用的具体仪器 ,并动态地调用具体仪器驱动程序相应的初始化函数 ,与仪器建立会话连接 ,并将会话句柄返回给分类驱动程序 ,然后 ,分类驱动程序其他函数通过该句柄发送仪器控制命令和接收数据 ,这些函数同样被引擎映射到具体仪器驱动程序的函数
7、,以完成对硬件仪器的/操作 ,通过这个过程实现了仪器的互换性。更换了仪器之后 ,只要修改配置文件的信息 ,使程序中的逻辑名称指向新的仪器和仪器驱动程序 ,而应用程序不需要任何改变。4 驱动程序的其他性能特征驱动程序虽然是建立在规范之上的标准 ,但不导致额外的复杂性和性能下降 ,而是增加了很多提高系统执行效率、缩短开发时间的特性 ,除硬件可互换性之外 ,还有以下几个方面的特性。4 1 仪器状态缓存标准的仪器驱动程序不跟踪仪器的状态 ,所以测量函数在实施测量前必须进行仪器状态设置 ,即使仪器已经被配置正确 ,这样的过程必然会引入多余的仪器/操作 ,驱动程序自动缓存仪器当前状态 ,只有在仪器状态与函
8、数所需要的不同时才执行仪器/ ,这种表面上小小的不同却明显缩短了测试时间 ,在某些情况下 ,执行时间甚至会减少一半。4 2 量程检查及参数强制驱动程序包含仪器每个属性的量程表 ,保存属性的正确值 ,引擎利用量程表校验用户设置的值是否在有效量程之内。量程检查包含一种强制属性 ,是指落入某一指定范围的值强制为一指定值 ,比如 ,示波器的水平时基落入秒和纳秒之间值只能以 1、 2和 5递增 ,而不能出现 3等 ,在发送值到仪器之前 ,强制量程表自动强制任何值为适当值 ,比如强制 4为 5。4 3 仪器仿真当仪器不存在时 ,驱动程序可以仿真仪器的操作 ,并返回仿真数据。如果允许仿真 ,驱动程序不执行仪
9、器/ ,而为输出参数创建仿真数据。通过仿真数据 ,即使在没有仪器的情况下开发者也可以开发测试系统软件代码。4 4 多线程安全性驱动程序是在/ 5.0环境中开发的 ,支持多线程 ,多个执行线程可以用相同的仪器会话 ,而不会互相影响 ,所以可以用于高水平的、多线程并行测试系统。4 5 可配置的状态检查功能在每次操作之后 ,程序自动查询仪器的状况是否正常 ,该功能可以在软件调试完毕后关闭。5 配置文件信息结构系统配置信息存储在 9 5 文件中 ,一般通过工具可以进行交互式修改和配置 ,也可以通过文本编辑软件修改和查看。5.1 配置文件信息配置文件信息分为 4个信息区 ,并具有较好的层次性。( 1)
10、:本区信息指定逻辑名称对应的虚拟仪器名称 ,格式 :- =“ - ” ,例如 :1=“- 1411” ;( 2) - :定义一个逻辑名称必须链接到的虚拟仪器 ;参数 : =描述逻辑名称;( 3) - :定义一个类和相应的分类仿真虚拟仪器 ;参数 : =类描述。= 指向被类仿真使用的仿真虚拟仪器 ;( 4) - :定义和配置虚拟仪器参数 : =是否允许状态缓存 (/) =是否允许量程检查 (/) =是否允许状况查询 (/)=是否允许强制情况记录 (/) =是否允许互换性检查 (/) =是否允许- (跟踪所有、 48 8.2函数调用的实用程序 )支持 (/)=是否允许仿真 (/)=是否使用指定的仿
11、真驱动程序 (/)=是不是一个仿真虚拟仪器 (/)=相应驱动程序区 - =相应硬件区 - =相应的 - 区=定义硬件无关的通道名称( 5) - :定义和配置一个驱动程序文件 ( )。参数 : =描述一个具体仪器驱动程序=驱动程序路径 ,如果路径缺省则设定为 : =在驱动程序中使用的函数前缀 =例如或等 =指明驱动程序所依附的类=是否是一个仿真驱动程序 (/)( 6) - :用于启动时传送属性值到一个仪器驱动程序格式 : =值( 7) - :描述一个仪器的物理位置参数 : =硬件接口描述 =正确的资源字串 ,例如“ :1:” ,仪器驱动程序通过该名称找到硬件仪器。5.2 配置文件实例在下面的实例
12、中 ,1逻辑名称指向548 示波器(实际用的是54815) ,引擎通过图 3所示的层次结构将逻辑名称指向具体的硬件仪器。1= -548= -6610 1= -1411-548=- 548 = -548= = = = = = -548 =1=1, 2=2 -548 =- 548 =54832. =548 =-548=1: =5 48-1428=. =1=1,2=2-1428 =142832 .= - 1 =文件中包含了1428 和5 48两台示波器的信息 ,此时的逻辑名称1对应5 48示波器 ,当系统将5 48示波器换为1428时 ,只要改变 区中的参数为1= - 1428 即可以实现1 与14
13、28的映射 ,应用程序不需要做任何改变 ,实现了仪器无关性设计。6 管理多个配置文件系统中有时会有多个应用程序 ,并用到不同的配置信息 ,比如对一台仪器在不同的应用中有不同的逻辑名称 ,这时需要管理多个配置信息文件 ,缺省的配置文件是 95 ,如果有其他的名为 的配置文件名称分别存放在不同的目录下 ,可以在测试程序运行前 ,利用工具的功能将配置文件打开 ,读入相应的配置信息。此外还可以在利用/提供的函数设定程序使用的配置文件的目录 ,该函数必须在调用其他分类驱动程序的函数之前调用。7 运行时的配置如果想在应用程序中使用配置文件进行信息配置 ,/提供了相应的函数用于动态创建配置信息 ,例如 :创建或取消一个逻辑名称 :- 、- ;创建或取消一个虚拟仪器 :- 、- ;创建或取消一个仪器驱动程序 : - 、 - ;创建或取消一个分类驱动程序 : - 、 - ;创建或取消一个硬件设备 :、- ;存储配置信息到文件中 :。8 结论机制为实现仪器互换测试系统提供了手段 ,使系统维护和开发效率大大提高 ,目前已为数百种型号仪器提供了仪器驱动程序 ,为测试系统构建提供了很大的选择空间 ,随着规范的不断完善和发展 ,一定成为驱动程序发展的必然方向。