当前位置:文档之家› 第12课IVI仪器驱动技术

第12课IVI仪器驱动技术


04:25
IVI引擎技术——仪器仿真
仿真功能实现脱离硬件设备的开发和调试手段。 IVI仿真是通过范围检查机制或范围表机制为用户产生 必需的测试数据,实现脱离硬件的开发和调试。
IVI Driver IVI Engine Range-Check SetAttr (AMP, 5.0) On/Off
Cache
• IVI使用IVI.INI 配置文件实现了从类驱动器 到特定驱动器的映射,使得更换仪器时只 需改变驱动器的映射,即将类驱动器的映 射从一个驱动器改变到同类仪器的另一个 驱动器,而不必改变测试程序。 • IVI.INI文件定义了设备逻辑名、类驱动器、 虚拟设备、驱动器及硬件配置等字段。
04:25
22
IVI配置文件内容
设备逻辑名(IviLogicalName)字段定义了仪器设备标志符 并给出了该仪器驱动器虚拟设备字段在IVI.INI中的入口信息。 类驱动器字段(ClassDriver->XXX)描述了当前使用的类驱 动器的类别,“XXX”代表驱动器类,比如数字多用表为 “IviDMM”。 虚拟设备字段(Virtual Instrument ,其入口由逻辑名字段中 的DMM= 给出)描述了特定仪器驱动器一些属性的配置(如 范围检测、仿真功能等)。这些属性的值是在类驱动器初始 化时作为参数传入的。该字段还给出了该仪器驱动器的驱动 器字段和硬件配置字段在IVI.INI文件中的入口信息。 驱动器字段(Driver,其入口由虚拟设备字段中的Driver= 给 出)描述了仪器驱动器的位置、接口形式、驱动器前缀等信 息,以便类驱动器正确地载入、调用特定的驱动器。 硬件配置字段(Hardware,其入口由虚拟设备字段中的 Hardware= 给出)描述了特定仪器的地址信息、描述信息、 ID号等,以便类驱动器正确地建立与仪器的通信连接。
04:25 2
IVI通用仪器类的划分
• 目前已制定和正在制定的IVI仪器类规范有十 余种,包括:示波器、万用表、函数/任意波 发生器、直流电源、交流电源、开关、功率计、 射频信号发生器、频谱分析仪、数字I/O、化 学分析仪等 。
• IVI-C、IVI-COM实现了同类仪器的可互换, 编程开发中同一类仪器采用统一的类仪器驱动 器, 同一类仪器的编程接口完全相同。
04:25
Check Status On/Off “Is status-checking on?” If YES, call status check callback in driver
12
IVI技术——回调函数
IVI Driver IVI Engine Range-Check SetAttr (AMP, 5.0) Cache Simulate On/Off On/Off On/Off
SetAttr (AMP, 5.0)
AmpRangeTable Valid ranges for Amp
04:25
8
IVI引擎技术——范围检查
IVI Driver IVI Engine Range-Check “Is Range-Checking on?” If YES, GetRangeTable GetRangeTable GetAttrX If X = 1, RangeTable1 If X = 2, RangeTable2 AttrRangeTable1 AttrRangeTable2 Call appropriate range table
04:25
17
IVI类驱动器
由于一个给定类中的所有不同型号的仪器不 可能具有完全相同的功能,不可能为这些仪器仅 建立一个应用程序接口。因此,为了提高性能、 便于实现互换,在IVI规范中将IVI类驱动器实现 对仪器操作的函数及属性进行如下分组: Inherent IVI Capabilities(固有IVI功能)、 Fundamental Capabilities(基本功能)、 Extension Groups(扩展功能组)及Instrumentspecific Capabilities(仪器特定功能)。
GetAttr (AMP, &val)
RangeTables Write Callbacks Read Callbacks
Check Status Callback
04:25
14
IVI驱动器结构
IVI Driver High-Level Functions Initialize Configure Measure Read Waveform
Inherent IVI Capabilities
Fundamental Instrument Capabilities
Extension Capabilities Group1 IVI Specific Driver
Instrument-spec ific Capabilities
04:25
19
IVI类驱动器的命名规范
On/Off
RangeTables
On/Off Simulate “Is simulation on?” If YES, don’t send anything If NO, continue
04:25
11
IVI引擎技术——状态检查
状态检查机制是在每次执行操作之后自动执行仪 器状态检测,确保仪器属性设置及运行状态在正常的 范围内,保证了仪器的正常运行。
OscilloScope
Function Generator Power Supply
IviScope
IviFgen IviPower
IVISCOPE
IVIFGEN IVIPOWER
iviscope.*
ivifgen.* ivipower.*
Switch
04:25
IviSwitch
IVISWITCH
SetAttr (ATTR, 5.0)
04:25
9
IVI引擎技术——状态缓存
状态缓存机制是IVI引擎在内存中保存了仪器内部属性 的状态。状态缓存的机制避免了向仪器发送冗余的命令。因为 设置仪器属性时,IVI引擎自动比较缓存的属性值和待设置的 属性值,只有不相等时才设置,减少了不必要的操作。状态缓 存机制使得测试系统的性能提高了38%。
为了便于统一操作,IVI规范对于类驱动器中的 每一函数、属性及全部文件名的命名方式及书写方式 做了统一的规定。
IVI Class Digital MultiMeter Function Prefix Attribute ID Prefix Filename Prefix IviDmm IVIDMM ividmm.*
Attribute RangeTables
Attribute Write Callbacks Attribute Read Callbacks Check Status Callback
04:25
15
IVI类驱动器机制
• 为了实现不同厂商同类仪器的可互换性, IVI建立了仪器类驱动器机制,将不同的仪 器按功能分类,每类仪器驱动器对外提供一 致的属性和接口函数。在开发测试程序的过 程中,只是调用公共的类驱动器的接口;而 实际测试软件执行过程中,则根据实际使用 的仪器自动调用特定仪器的驱动代码。
RangeTables
Send Value AmpWriteCallback Sends cmd to set AMP to 5.0 Call AmpWriteCallback in Driver
04:25
13
IVI技术——回调函数
IVI Driver IVI Engine Cache On/Off If On, check cache for value. If valid value in cache, return. If no cached value, continue Simulate Read Value Call Read Callback in driver Check Status On/Off On/Off
IVI Driver IVI Engine Range-Check SetAttr (AMP, 5.0) Cache RangeTables Write Callbacks Simulate Send Value On/Off On/Off On/Off
Check Status send cmd to check instr status
回调函数集
04:25
VPP仪器驱动器内部结构
6
IVI引擎技术——范围检查
范围检查机制可以自动检测设置的属性值是否在正 确的范围内,如果超出范围则自动赋以缺省值。用户可 以禁止使用范围检查机制以提高测试速度。IVI引擎还 提供了范围表的机制,强制选择合适的值。
IVI Driver IVI Engine Range-Check “Is Range-Checking on?” If YES, compare 5.0 against valid ranges
内容提要
• • • • • IVI仪器驱动技术的发展 IVI-C IVI-COM IVI-MSS IVI-Signal Interface
04:25
1
IVI技术概述
• IVI(Interchangeable Virtual Instruments— —可互换式虚拟仪器)于1998年由IVI基金会推 出的新一代仪器驱动技术规范。IVI致力于实现 仪器驱动器的可互换性、开发灵活性、测试高效 性以及保证测试品质。 IVI与已有的仪器驱动技 术相比主要优势体现在: (1)仪器可互换能力 (2)仪器的仿真模拟 (3)仪器状态跟踪与缓存
VISA I/O 接口
5
IVI 引擎技术
• IVI内部模型由:回调函数集、VPP功能体和 IVI引擎。其中VPP功能体部分与VPP仪器驱 动器内部设计模型相同,包括组件函数集和 应用函数集两部分。回调函数是IVI引擎提供 的读写仪器配置或获取仪器状态的操作机制, 回调函数不能被用户直接调用。
相关主题