




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
*1内容提要IVI仪器驱动技术的发展IVI-CIVI-COMIVI-MSSIVI-SignalInterface*2IVI技术概述IVI(InterchangeableVirtualInstruments——可互换式虚拟仪器)于1998年由IVI基金会推出的新一代仪器驱动技术规范。IVI致力于实现仪器驱动器的可互换性、开发灵活性、测试高效性以及保证测试品质。
IVI与已有的仪器驱动技术相比主要优势体现在:(1)仪器可互换能力(2)仪器的仿真模拟(3)仪器状态跟踪与缓存*3IVI通用仪器类的划分目前已制定和正在制定的IVI仪器类规范有十余种,包括:示波器、万用表、函数/任意波发生器、直流电源、交流电源、开关、功率计、射频信号发生器、频谱分析仪、数字I/O、化学分析仪等。IVI-C、IVI-COM实现了同类仪器的可互换,编程开发中同一类仪器采用统一的类仪器驱动器,同一类仪器的编程接口完全相同。*4基于IVI驱动器的测试程序结构测试程序IVI类驱动器IVI特定仪器驱动器*5IVI-C仪器驱动模型应用程序交互开发接口编程开发接口函数体初始化函数阻态函数应用函数动作状态函数数据函数属性函数关闭函数回调函数IVI引擎子程序接口VISAI/O接口函数体*6IVI引擎技术IVI内部模型由:回调函数集、VPP功能体和IVI引擎。其中VPP功能体部分与VPP仪器驱动器内部设计模型相同,包括组件函数集和应用函数集两部分。回调函数是IVI引擎提供的读写仪器配置或获取仪器状态的操作机制,回调函数不能被用户直接调用。
VPP仪器驱动器结构IVI引擎回调函数集VPP仪器驱动器内部结构*7IVI模型与VPP模型最大的区别就是IVI的引擎机制,IVI引擎实现高性能的属性管理。IVI引入的面向对象的属性机制是实现IVI模型驱动器的关键:基于IVI结构的驱动器每一项配置功能都被描述成仪器的一个属性,IVI引擎则包含如何去获取、确认和更新仪器属性的方法。建立在由IVI引擎驱动的属性机制的基础上,IVI实现了状态缓存、范围检测、状态检测及仪器仿真功能。IVI引擎技术*8IVI引擎技术——范围检查IVIDriverIVIEngineSetAttr(AMP,5.0)Range-Check“IsRange-Checkingon?”IfYES,compare5.0againstvalidrangesAmpRangeTableValidrangesforAmp
范围检查机制可以自动检测设置的属性值是否在正确的范围内,如果超出范围则自动赋以缺省值。用户可以禁止使用范围检查机制以提高测试速度。IVI引擎还提供了范围表的机制,强制选择合适的值。*9IVI引擎技术——范围检查IVIDriverIVIEngineSetAttr(ATTR,5.0)Range-Check“IsRange-Checkingon?”IfYES,GetRangeTableCallappropriaterangetableAttrRangeTable1AttrRangeTable2GetRangeTableGetAttrXIfX=1,RangeTable1IfX=2,RangeTable2*10IVI引擎技术——状态缓存IVIDriverIVIEngineSetAttr(AMP,5.0)Range-CheckRangeTablesCache“Isstate-cachingon?”Compare5.0againstcurrentvalueofAMPincacheIfdifferent,continueIfsame,stop.cachedvaluesOn/OffOn/Off
状态缓存机制是IVI引擎在内存中保存了仪器内部属性的状态。状态缓存的机制避免了向仪器发送冗余的命令。因为设置仪器属性时,IVI引擎自动比较缓存的属性值和待设置的属性值,只有不相等时才设置,减少了不必要的操作。状态缓存机制使得测试系统的性能提高了38%。*11IVI引擎技术——仪器仿真IVIDriverIVIEngineSetAttr(AMP,5.0)Range-CheckRangeTablesCacheSimulate“Issimulationon?”IfYES,don’tsendanythingIfNO,continueOn/OffOn/OffOn/Off
仿真功能实现脱离硬件设备的开发和调试手段。IVI仿真是通过范围检查机制或范围表机制为用户产生必需的测试数据,实现脱离硬件的开发和调试。*12IVI引擎技术——状态检查IVIDriverIVIEngineSetAttr(AMP,5.0)Range-CheckRangeTablesCacheSimulateSendValueWriteCallbacksCheckStatus“Isstatus-checkingon?”IfYES,callstatuscheckcallbackindriverCheckStatussendcmdtocheckinstrstatusOn/OffOn/OffOn/OffOn/Off
状态检查机制是在每次执行操作之后自动执行仪器状态检测,确保仪器属性设置及运行状态在正常的范围内,保证了仪器的正常运行。*13IVI技术——回调函数IVIDriverIVIEngineSetAttr(AMP,5.0)Range-CheckRangeTablesCacheSimulateSendValueCallAmpWriteCallbackinDriverAmpWriteCallbackSendscmdtosetAMPto5.0On/OffOn/OffOn/Off*14IVI技术——回调函数IVIDriverIVIEngineGetAttr(AMP,&val)RangeTablesCacheSimulateReadValueWriteCallbacksCheckStatusCheckStatusCallbackOn/OffOn/OffOn/OffIfOn,checkcacheforvalue.Ifvalidvalueincache,return.Ifnocachedvalue,continueRead
CallbacksCallReadCallbackindriver*15IVI驱动器结构IVIDriverAttributeRangeTablesAttributeWriteCallbacksCheckStatusCallbackAttributeReadCallbacksHigh-LevelFunctionsInitializeConfigureMeasureReadWaveform*16IVI驱动器开发IVIDriverIVIEngineTestProgramCallhigh-levelfunctions,justlikedriverstodayWizardgeneratescodetemplateWizardgeneratescodetohandleEnginecallsEnginehandlesdifficultdriverissues:state-caching,simulation,range-checking,etc...*17IVI类驱动器机制为了实现不同厂商同类仪器的可互换性,IVI建立了仪器类驱动器机制,将不同的仪器按功能分类,每类仪器驱动器对外提供一致的属性和接口函数。在开发测试程序的过程中,只是调用公共的类驱动器的接口;而实际测试软件执行过程中,则根据实际使用的仪器自动调用特定仪器的驱动代码。*18IVI类驱动器
由于一个给定类中的所有不同型号的仪器不可能具有完全相同的功能,不可能为这些仪器仅建立一个应用程序接口。因此,为了提高性能、便于实现互换,在IVI规范中将IVI类驱动器实现对仪器操作的函数及属性进行如下分组:InherentIVICapabilities(固有IVI功能)、FundamentalCapabilities(基本功能)、ExtensionGroups(扩展功能组)及Instrument-specificCapabilities(仪器特定功能)。*19IVI类驱动器与特定仪器驱动器间的关系*20
为了便于统一操作,IVI规范对于类驱动器中的每一函数、属性及全部文件名的命名方式及书写方式做了统一的规定。IVIClassFunctionPrefixAttributeIDPrefixFilenamePrefixDigitalMultiMeter
IviDmmIVIDMMividmm.*OscilloScopeIviScopeIVISCOPEiviscope.*FunctionGeneratorIviFgenIVIFGENivifgen.*PowerSupplyIviPowerIVIPOWERivipower.*SwitchIviSwitchIVISWITCHiviswitch.*IVI类驱动器的命名规范*21IVI仪器驱动器的调用过程测试程序IVI数字万用表(DMM)类驱动器(IviDmm_Configure)HP34401特定仪器驱动器(hp34401_Configure)FLUKE45特定仪器驱动器(fl45_Configure)*22IVI实现仪器互换机制IVI使用IVI.INI配置文件实现了从类驱动器到特定驱动器的映射,使得更换仪器时只需改变驱动器的映射,即将类驱动器的映射从一个驱动器改变到同类仪器的另一个驱动器,而不必改变测试程序。IVI.INI文件定义了设备逻辑名、类驱动器、虚拟设备、驱动器及硬件配置等字段。*23IVI配置文件内容设备逻辑名(IviLogicalName)字段定义了仪器设备标志符,并给出了该仪器驱动器虚拟设备字段在IVI.INI中的入口信息。类驱动器字段(ClassDriver->XXX)描述了当前使用的类驱动器的类别,“XXX”代表驱动器类,比如数字多用表为“IviDMM”。虚拟设备字段(VirtualInstrument,其入口由逻辑名字段中的DMM=给出)描述了特定仪器驱动器一些属性的配置(如范围检测、仿真功能等)。这些属性的值是在类驱动器初始化时作为参数传入的。该字段还给出了该仪器驱动器的驱动器字段和硬件配置字段在IVI.INI文件中的入口信息。驱动器字段(Driver,其入口由虚拟设备字段中的Driver=给出)描述了仪器驱动器的位置、接口形式、驱动器前缀等信息,以便类驱动器正确地载入、调用特定的驱动器。硬件配置字段(Hardware,其入口由虚拟设备字段中的Hardware=给出)描述了特定仪器的地址信息、描述信息、ID号等,以便类驱动器正确地建立与仪器的通信连接。*24IVI配置文件举例:[IviLogicalName]DMM=”VInstr->Fl45”[ClassDriver->IviDmm]Description=”IVIDigitalMultimeterClassDriver”SimulationVInstr=“Vistr->NISimDMM”[VInstr->Fl45]Description=“Fluke45DigitalMultimeter”Driver=“Driver->45”Hardware=“Hardware->Fl45”RangeCheck=TrueSimulate=FalseUseSpecificSimulation=FalseTrace=TrueInterChangeCheck=TrueQureStatus=TrueChannelName=“ch1”DefaultSetup=“”*25[Driver->FL45]Description=“Fluke45DigitalMultimeterInstrumentDriver”ModulePath=“d:\programfiles\cvi\instr\FL45.dll”Prefix=“FL45”Interface=“GPIB”[Hardware->FL45]Description=“”ResourceDesc=“GPIB::2::INSTR”IDString=“FLUKE,45,4940191,1.6,D1.0”DefaultDriver=“Driver->Fl45”*26IVI类驱动器到特定驱动器的映射在应用程序中调用类驱动器的初始化函数进行仪器初始化:IviDmm_Initialize(&DMMhandle);通过IVI.INI文件映射,类驱动器读入映像文件的配置信息,并动态地载入位于“d:\programfiles\cvi\instr\FL45.dll”的FL45驱动器组件。根据[Driver->FL45]字段中定义的驱动器前缀“FL45”找到对应的Fluke45数字多用表的初始化函数(比如FL45_InitWithOptions),并将映像文件中初始信息作为参数传入:资源地址GPIB::2::INSTR;属性配置“Simulate=0,RangeCheck=1,QueryInstrStatus=1,Cache=1”,从而完成Fluke45DMM的初始化。*27类驱动到特定驱动映射的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育小孩拒绝偷窃行为-教室演讲
- 哈林花式篮球项目介绍
- 房地产项目投资策划营销
- 厦门工学院《Unty游戏开发》2023-2024学年第二学期期末试卷
- 遗传病防范知识培训课件
- 成都农业科技职业学院《最优化方法(专业大类)》2023-2024学年第一学期期末试卷
- 2025年河南省许昌市初三下学期段考(第二次月考)化学试题含解析
- 燕山大学《对话经典》2023-2024学年第二学期期末试卷
- 广东省东莞市智升校2025年初三下学期期初联考化学试题含解析
- 内科护理慢性阻塞性肺疾病
- 智能门锁销售合同
- DB3502∕T 139-2024“无陪护”医院服务规范通 用要求
- 采购岗位招聘面试题及回答建议(某世界500强集团)
- 物流无人机垂直起降场选址与建设规范
- NB-T20200-2013核电厂外部人为事件调查与评价技术规范
- JGJ64-2017饮食建筑设计标准(首发)
- 高速公路小型维修养护施工方案
- 2024万达商业广场物业管理合同
- 传承红色基因清明缅怀先烈主题班会教案
- 内设部室及人员调整工作方案
- 2024年中国科学技术大学创新科学营测试数学试题真题
评论
0/150
提交评论