您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 虚拟仪器驱动程序设计
自动化测试与控制研究所第三讲虚拟仪器驱动程序设计主讲:乔立岩Email:qiaoliyan@hit.edu.cn(交作业)MSN:qiaoliyan@msn.com(在线交流)Tel:86413532ext.8611(逸夫楼611)2/34仪器驱动程序的历史•基本的台式系统,GPIB仪器(解释语言BASIC)——70年代中期•个人计算机的影响,插卡式仪器(编译语言C)——80年代•可程控仪器标准命令(SCPI,488.2)——90年代初期•模块化仪器驱动程序(Driver)•VXI即插即用仪器驱动程序(VXIplug&play,VPP)——1993年•可互换虚拟仪器驱动程序(IVI)——1997年,还在不断完善3/34仪器驱动程序的概念仪器驱动程序是一套可被用户调用的子程序库,利用它就不必了解每个仪器的编程协议和具体编程步骤,只需调用相应的一些函数就可以完成对仪器各种功能的操作。仪器驱动程序一般是控制物理仪器的,但也有的是纯软件工具。4/34一、VXIplug&play规范1993年NI、Tektronics、Racal等著名仪器公司成立了VXIplug&play联盟并制定了VXIplug&play规范,简称VPP规范。VPP联盟目标:提高VXI技术最终用户的使用简易性。VPP规范目的:解决多生产厂家的VXI系统的易操作性和互操作性问题,并提供给用户进行系统维护、再开发的能力。VPP联盟网址:www.vxipnp.org5/341.VPP规范的特点a.由仪器生产厂家提供b.提供程序源代码c.程序结构化与模块化d.设计与实现的一致性e.兼容性与开放性VPP规范对仪器驱动程序的要求不仅适用于VXI仪器,也同样适用于GPIB仪器、PXI仪器、串行口仪器、网络仪器、USB仪器等。已经成为了虚拟仪器驱动程序设计的事实标准。6/342.VPP规范的内容标准代号标准名称VPP-1VPP系统联盟章程VPP-2VPP系统框架规范VPP-3仪器驱动程序规范VPP-3.1VPP仪器驱动程序结构和设计规范VPP-3.2VPP仪器驱动程序函数体规范VPP-3.3VPP仪器驱动程序交互式开发接口规范VPP-3.4VPP仪器驱动程序编程式开发接口规范VPP-4.3虚拟仪器软件结构规范VPP-4.3VISA库VPP-4.3.2文本语言VISA实现规范VPP-4.3.3G语言VISA实现规范VPP-6安装和包装规范VPP-7软面板规范VPP-8VXI模块/机箱和接收器互连VPP-9仪器制造商缩写规则7/343.虚拟仪器系统框架应用程序开发环境仪器驱动程序VXIGPIB其它仪器驱动程序接口通信接口仪器接口通信管理程序软件硬件8/34二、仪器驱动程序设计(VPP-3)1.外部接口模型9/342.内部设计模型子程序接口VTL或VISAI/O接口应用函数交互式开发者接口编程式开发者接口用户程序函数体配置动作/状态数据实用初始化关闭函数部件函数函数函数函数函数函数10/343.函数树函数树就是驱动程序为仪器提供的所有仪器函数的列表及分组关系。11/34按照VPP仪器驱动程序内部设计模型的要求,对于任何仪器,都应有最小函数树。最小函数树包括初始化、关闭、错误消息、错误查询、复位,自检和版本查询,还应包括至少一个功能函数。12/344.函数面板函数树中的每一个函数都应具有函数面板,它是对仪器驱动程序函数的图形化描述。13/34函数面板的帮助•函数帮助:描述面板上的函数功能和相关的辅助函数。•控件帮助:对应函数的输入和输出参数,列举参数名,并描述参数,变量类型,有效范围和错误值。•返回帮助:描述返回值变量类型和可能的错误值。14/345.函数面板和函数树设计LabWindows/CVI提供函数面板的设计工具设计步骤:•了解仪器功能,根据功能规划编辑函数面板树。•规划函数树,在最小树基础上扩充。•生成仪器驱动程序工程文件(.prj)•设计函数树和函数面板(.fp,.c,.h)•完成驱动程序每个函数的代码(.c)•编译调试,生成动态链接库15/34三、VISA(VPP-4)VISA:VirtualInstrumentationSoftwareArchitecture,即虚拟仪器软件结构,是VPP系统联盟制定的I/O接口软件标准及其相关规范的总称。VISA为虚拟仪器提供了标准化的I/O接口软件规范。VISA是整个工业界的统一的软件基础。虚拟仪器软件结构中的标准I/O接口软件称为VISA库。16/341.VISA的作用a.为整个工业界提供统一的软件基础b.对驱动程序、应用程序不必考虑接口类型c.仅规定为用户提供的标准函数,不对具体实现作任何说明d.用于编写符合VPP规范的仪器驱动程序,完成计算机与仪器之间的命令和数据传输,实现对仪器的控制。e.VISA库作为低层I/O接口软件,运行于计算机系统中。17/342.VISA的特点a.适用于各类仪器:VXI,PXI,GPIB,RS-232,TCP,USB……b.与硬件接口无关c.既适用于单处理器结构又适用于多处理器或分布式结构d.适用于多种网络机制18/343.VISA库函数①资源管理类函数•viOpenDefaultRM(ViPSessionRsrc_Manager_Handle);viOpenDefaultRM(&defaultRMHandle);•ViStatusviOpen(ViSessionRsrc_Manager_Handle,ViRsrcInstrument_Descriptor,ViAccessModeAccess_Mode,ViUInt32Open_Timeout,ViPSessionInstrument_Handle);viOpen(defaultRMHandle,VXI0::24::INSTR,VI_NULL,VI_NULL,&dmmHandle);•ViStatusviClose(ViSessionSession_Handle);viClose(dmmHandle);19/34②资源操作类函数•寄存器基仪器通讯viIn8,viIn16,viIn32viIn16(dmmHandle,VI_A16_SPACE,0,&manufactureID);viOut8,viOut16,viOut32viOut16(dmmHandle,VI_A16_SPACE,4,0);•消息基仪器通讯viRead,viWriteviRead(dmmHandle,readbuf,100,&count);viWrite(dmmHandle,writebuf,100,&count);•格式化I/OviPrintf,viScanfviPrintf(dmmHandle,*IDN?\n);viScanf(dmmHandle,%t,result);20/34③资源模板•事件处理viEnableEvent,viDisableEventviInstallHandler,viUninstallHandlerviWaitOnEvent•资源属性viGetAttribute,viSetAttribute21/34④用VISA函数操作仪器的步骤打开VISA资源管理器句柄,用到的函数:viOpenDefaultRM;打开仪器句柄,用到的函数:viFindRsrc、viFindNext、viOpen等;设置仪器状态、控制仪器操作、读取测量数据、处理仪器事件,用到的函数:viGetAttribute、viSetAttribute、viIn16、viOut16、viPrintf、viScanf、viInstallHandler、viUninstallHandler、viEnableEvent、viDisableEvent、viWaitOnEvent等;释放仪器句柄,用到的函数:viClose;释放VISA资源管理器句柄,用到的函数:viClose。22/34⑤VISA函数应用举例voidmain(void){error=viOpenDefaultRM(&rsrcManager);/*打开VISA资源管理器*///rsrcManager为得到的VISA资源管理器句柄if(error!=VI_SUCCESS)/*如果出错,弹出错误信息对话框,返回*/{MessagePopup(Error,OpenVISAResourceManagerError!);return;}error=viOpen(rsrcManager,VXI0::16::INSTR,VI_NULL,VI_NULL,&instHandle);//instHandle为得到的仪器句柄if(error!=VI_SUCCESS){MessagePopup(Error,OpenInstrumentError!);return;}else{/*获取仪器模块代码,设置仪器操作超时时间为2000毫秒*/viGetAttribute(instHandle,VI_ATTR_MODEL_CODE,&moduleID);viSetAttribute(instHandle,VI_ATTR_TMO_VALUE,2000);}viClose(instHandle);/*关闭仪器句柄和VISA资源管理器*/viClose(rsrcManager);}23/34四、软面板SoftPanel(VPP-7)虚拟仪器一般没有了操作面板,必须借助PC机作为其数据分析与显示的工具,利用PC机强大的图形显示和在线帮助功能,建立图形化的虚拟仪器面板,完成对仪器控制、数据分析与显示。VPP软面板是一个特殊的测试应用程序,它为仪器模块提供一个替代前面板的控制接口。该控制接口不是在仪器前面板上,而是在计算机显示器上。24/34传统仪器面板虚拟仪器软面板25/341.软面板的作用a.利用软面板检验仪器的通信和功能,同时也可利用它作为学习工具,演示仪器的控制和功能。b.软面板采用图形用户接口(GUI)技术来显示等效的旋钮、按键及控制器。用户通过鼠标或计算机键盘操纵这些控制器。图形显示提供同传统前面板方式相似的测量结果和仪器状态,从而让用户以熟悉的方法控制仪器。26/342.VPP规范对软面板的要求VPP规范规定每一个VXIplug&play仪器都在其安装盘上提供软面板。它使用户不必编写测试程序就可以检验仪器的通信和操作,这样能够大大减少组建和检验一个VXI系统的时间。1、VPP软面板必须作为一个独立的应用程序运行,仅使用计算机、操作系统及驱动程序库,不应依赖于任何特定的应用程序开发环境。27/342、软面板应提供一个既不过分杂乱,又不包含过多层次结构的友好用户界面。应显示并控制仪器的主要测试和测量功能。主面板右上端显示VXIplug&play图标。在软面板主窗口顶端或在窗口标题处标出仪器名称和型号。在软面板主窗口或About...对话框中标出软面板生产厂商和软面板版本信息。3、在软面板自动连接时,如果发现多于一个的待接设备,则它应该提供一种方法让用户选择其中的一个待接设备。28/344、软面板在执行时应该自动连接,并具有自动连接有效指示灯。有效指示灯应该有标签“激活”。不连接时,指示灯的颜色应该是暗淡的(背景颜色)。当连接时,指示灯应呈绿色。应该显示自动连接的槽号或逻辑地址,或者两者皆显示。5、VXI软面板必须和计算机的应用程序分享计算机屏幕。为确保软面板的可用性,软面板应该是可移动的,并可以改变窗口大小。软面板在框架定义的最低分辨率屏幕上应该占据不超过2/3的区域。这使用户易于在以级联方式同时显示的多个软面板间进行切换。单个VXIplug&play软面板不应占用超过框架定义的最低分辩率屏幕的100%区域。29/346、软面板被设计成能在不同平台和计算机显示器上完成功能。必须确保每个软面板在不同平台和显示器之间是可移植的。P&PAbout激活5号槽图符标题Close应用区域主面板布局30/34五、驱动程序安装盘制作(VPP-6)1.为了方便驱动程序的发布和用户的使用,驱动程序和软面
本文标题:虚拟仪器驱动程序设计
链接地址:https://www.777doc.com/doc-30534 .html