自动测试系统第九章_第1页
自动测试系统第九章_第2页
自动测试系统第九章_第3页
自动测试系统第九章_第4页
自动测试系统第九章_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自动测试系统第九章虚拟仪器软件架构,本章要点,VISA构成VISA编程,第一节VISA概述,VISA(VirtualInstrumentSoftwareArchitecture)VXIplug&play(VXI即插即用简称VPP)VPP系统联盟制定的I/O接口软件标准及其相关规范的总称为什么需要I/O接口软件标准?,第一节VISA概述,虚拟仪器软件体系结构,测试应用软件,测试编程环境(AgilentVEE,NILabVIEW,NILabWindows/CVI等),仪器驱动器(ID),I/O接口驱动软件(VISA),仪器软面板,GPIB,VXI,其它,第一节VISA概述,I/O接口软件规范即VPP4.X系列规范VPP4.3:VISA库VPP4.3.2:文本语言的VISA实现规范VPP4.3.3:图形语言的VISA实现规范VISA库以动态链接库的形式提供visa.dllvisa.libvisa.hvisatype.h,第一节VISA概述,常见VISA库AgilentVISANIVISAI/O接口标准化后,软件的通用性如何体现?如何使用AgilentVISA来访问NI的接口卡?,第一节VISA概述,两种软件接口设计模型自顶向下的I/O接口软件设计模型自底向上的I/O接口软件设计模型VISA结构,第二节VISA库构成,VISA库包括:VISA资源模板VISA资源管理VISA类VISA特殊操作,第二节VISA库构成,VISA资源模板为什么要引入资源模板?资源模板提供的两类服务控制服务生命期控制服务属性控制服务异步操作控制服务访问控制服务通信服务,第二节VISA库构成,VISA模板接口一览viClose(vi)viGetAttribute(vi,attribute,attrState)viSetAttribute(vi,attribute,attrState)viStatusDesc(vi,status,desc)viTerminate(vi,degree,jobId)viLock(vi,lockType,timeout,requestedKey,accessKey)viUnlock(vi)viEnableEvent(vi,eventType,mechanism,context)viDisableEvent(vi,eventType,mechanism)viDiscardEvents(vi,eventType,mechanism)viWaitOnEvent(vi,inEventType,timeout,outEventType,outContext)viInstallHandler(vi,eventType,handler,userHandle)viUninstallHandler(vi,eventType,handler,userHandle),第二节VISA库构成,VISA资源模板生命期控制服务功能关闭已打开的会话释放所有已产生的数据结构如:释放由viFindRsrc()建立的资源查找表释放viWaitOnEvent()等待的事件相关模板函数viClose其他相关函数viOpen()viFindRsrc()viWaitOnEvent(),第二节VISA库构成,VISA资源模板属性控制服务功能设置或获得资源属性值获得状态代码的文本描述相关模板函数viSetAttribute()viGetAttribute()viStatusDesc(),第二节VISA库构成,VISA资源模板异步操作控制服务功能终止异步操作相关模板函数viTerminate()其他相关函数viReadAsync()viWriteAsync(),第二节VISA库构成,VISA资源模板访问控制服务功能通过“锁”机制提供对资源访问控制两种“锁”独占“锁”共享“锁”相关模板函数viLock()viUnLock(),第二节VISA库构成,VISA资源模板访问控制服务什么是共享锁?什么是独占锁?两类锁对资源访问权的限制?锁的嵌套,第二节VISA库构成,第二节VISA库构成,第二节VISA库构成,VISA资源模板事件服务功能通过“事件”提供应用和资源间的通信“事件”处理中的两种机制回调队列相关模板函数viEnableEvent()viDisableEvent()viDiscardEvents()viInstallHandler()viEventHandler()viWaitOnEvent()viUninstallHandler(),第二节VISA库构成,第二节VISA库构成,第二节VISA库构成,第二节VISA库构成,VISA资源管理通过资源管理器对资源进行管理进行资源地址,资源ID的分配提供到VISA资源的所有连接,为应用提供对独立资源的控制和访问资源管理器提供的服务访问viOpen()查找viFindRsrc(),viFindNext(),第二节VISA库构成,VISA资源管理函数接口一览viFindRsrc()viFindNext()viOpen()viParseRsrc()viParseRsrcEx(),第二节VISA库构成,VISA资源管理资源访问服务通过资源管理器对资源进行控制和管理,资源管理器以一种系统资源存在viOpenDefaultRM()在资源管理器会话建立起来后,可以通过与资源建立会话,对资源进行访问viOpen(),第二节VISA库构成,第二节VISA库构成,可选字段的缺省值如下表,第二节VISA库构成,地址举例,第二节VISA库构成,VISA资源管理资源查找提供与资源位置无关的资源查找和定位服务viFindRsrc()viFindNext(),第二节VISA库构成,第二节VISA库构成,第二节VISA库构成,第二节VISA库构成,第二节VISA库构成,VISA资源类仪器控制资源存储器访问资源GPIB总线接口资源VXI主机箱背板资源从者器件侧资源TCP/IP套接字资源,仪器控制资源使控制器和相关设备交互控制器可以发送数据块到设备,向设备请求数据向设备发送清除命令触发设备查找设备状态信息也允许控制器访问设备寄存器提供的服务包括基本I/O服务格式化I/O服务存储器I/O服务共享存储器服务,第二节VISA库构成,通用的仪器控制资源属性VI_ATTR_INTF_TYPE给定会话的接口类型VI_ATTR_INTF_NUM给定接口的板号VI_ATTR_INTF_INST_NAME给定接口的文本描述VI_ATTR_TMO_VALUE等待的最小的时间值,VI_ATTR_TRIG_ID当前触发机制IDVI_ATTR_DMA_ALLOW_EN该属性规定是否I/O访问使用DMA或可编程I/O。在一些实现中,该属性有全局影响。,仪器控制资源事件VI_EVENT_SERVICE_REQ服务请求收到VI_EVENT_VXI_SIGPVXI总线信号或VXI总线中断收到VI_EVENT_TRIG触发中断收到,对VISA,唯一可以被感知的触发是VXI硬件触发。VI_EVENT_IO_COMPLETIO异步操作完成VI_EVENT_VXI_VME_INTRVXI总线中断收到VI_EVENT_USB_INTRvendor规定的USB中断收到VI_EVENT_PXI_INTRPCI中断收到,第二节VISA库构成,VISA特殊操作基本I/O格式化I/O存储器I/O共享存储器服务特定接口服务,第二节VISA库构成,基本I/OviRead(vi,buf,count,retCount)以同步方式从设备读数据viReadAsync(vi,buf,count,jobId)异步方式从设备读取数据viReadToFile(vi,filename,count,retCount)同步读取数据,并将数据存储到文件viWrite(vi,buf,count,retCount)同步写数据到设备viWriteAsync(vi,buf,count,jobId)异步写数据到设备viWriteFromFile(vi,filename,count,retCount)同步写数据到文件viAssertTrigger(vi,protocol)给出一个软件或者硬件触发viReadSTB(vi,status)读取服务请求状态字viClear(vi)清设备,第二节VISA库构成,第二节VISA库构成,第二节VISA库构成,格式化I/OviSetBuf(vi,mask,size)设置格式化I/O或串行I/O通信缓冲大小viFlush(vi,mask)在格式化I/O操作或串行通信中清空特定缓冲viPrintf(vi,writeFmt,arg1,arg2,.)将参数根据格式化字串进行转换并发送viVPrintf(vi,writeFmt,params)按照格式化字串转换格式化参数,并将数据发送到设备viSPrintf(vi,buf,writeFmt,arg1,arg2,.)根据格式化字符串转换参数,并将数据写入用户指定的缓存而不是设备viVSPrintf(vi,buf,writeFmt,params)与viVPrintf()相似,不同在与数据写入到用户指定的缓存而不是设备viBufWrite(vi,buf,count,retCount)与viWrite()相似,不同在于数据写入到格式化I/O的写缓存而不是到设备,第二节VISA库构成,格式化I/OviScanf(vi,readFmt,arg1,arg2,.)根据格式化规定读取并转换数据,并将数据存放到输入的参数arg1,arg2中viVScanf(vi,readFmt,params)根据格式化规定读取并转换数据,并将数据存放到输入的参数params中viSScanf(vi,buf,readFmt,arg1,arg2,.)与viScanf()相似,不同在于从用户指定的缓存读取的数据,而不是从设备读取。viVSScanf(vi,buf,readFmt,params)与viVScanf()相似,不同在于从用户指定的缓存读取的数据,而不是从设备读取viBufRead(vi,buf,count,retCount)与viRead()相似,不同在于是从格式化读缓存中读取数据而不是从设备读取。viQueryf(vi,writeFmt,readFmt,arg1,arg2,.)通过一个操作会话实现格式化读和写到arg1,arg2.viVQueryf(vi,writeFmt,readFmt,params)通过一个操作会话实现格式化读和写到params,第二节VISA库构成,第二节VISA库构成,存储器I/OviIn8(vi,space,offset,val8)viIn16(vi,space,offset,val16)viIn32(vi,space,offset,val32)viIn64(vi,space,offset,val64)viOut8(vi,space,offset,val8)viOut16(vi,space,offset,val16)viOut32(vi,space,offset,val32)viOut64(vi,space,offset,val64)viMoveIn8(vi,space,offset,length,buf8)viMoveIn16(vi,space,offset,length,buf16)viMoveIn32(vi,space,offset,length,buf32)viMoveIn64(vi,space,offset,length,buf64)viMoveIn8Ex(vi,space,offset64,length,buf8)viMoveIn16Ex(vi,space,offset64,length,buf16)viMoveIn32Ex(vi,space,offset64,length,buf32)viMoveIn64Ex(vi,space,offset64,length,buf64)viMoveOut8(vi,space,offset,length,buf8)viMoveOut16(vi,space,offset,length,buf16)viMoveOut32(vi,space,offset,length,buf32)viMoveOut64(vi,space,offset,length,buf64),第二节VISA库构成,存储器I/OviMoveOut8Ex(vi,space,offset64,length,buf8)viMoveOut16Ex(vi,space,offset64,length,buf16)viMoveOut32Ex(vi,space,offset64,length,buf32)viMoveOut64Ex(vi,space,offset64,length,buf64)viMove(vi,srcSpace,srcOffset,srcWidth,destSpace,destOffset,destWidth,length)viMoveAsync(vi,srcSpace,srcOffset,srcWidth,destSpace,destOffset,destWidth,length,jobId)viMoveEx(vi,srcSpace,srcOffset64,srcW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论