资源预览内容
第1页 / 共89页
第2页 / 共89页
第3页 / 共89页
第4页 / 共89页
第5页 / 共89页
第6页 / 共89页
第7页 / 共89页
第8页 / 共89页
第9页 / 共89页
第10页 / 共89页
亲,该文档总共89页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
虚拟仪器系统 I/O接口软件 VISA2VISA操作表5读资源 8.写资源 3. 9VISA资源定义45VISA应用实例74续8. 4虚拟仪器系统 I/O 接口软件 VISAVISA 是虚拟仪器系统的 I/O 接口软件,为虚拟仪器系统的统一性和扩展性奠定 了基础。本章介绍了 VISA的概念和特点,论述了 VISA的结构模型,重点分析了 VISA资源与资源类的定义与描述,并结合实例,详细讨论了各资源的属性、事 件与操作规范与软件实现。在本章结束,还讨论了 VISA的实际设计思路与方法。3.1 VISA 的概念与特点3.1.1 VISA 的由来随着虚拟仪器系统的出现与发展, I/O 接口软件作为虚拟仪器系统软件结构中承 上启下的一层,其模型化与标准化越来越重要。 I/O 接口软件驻留于虚拟仪器系 统的系统管理器计算机系统中, 是实现计算机系统与仪器之间命令与数据传 输的桥梁和纽带。 许多仪器生产厂家在推出硬件接口电路的同时, 也纷纷推出了 不同结构的I/O接口软件,有的只针对某类仪器(如NI公司用于控制GPIB仪器 的 NI-488 及用于控制 VXI 仪器的 NI-VXI ),有的在向统一化的方向靠拢 (如 HP 公司的SICL标准仪器控制语言),这些都是在仪器生产厂家内部通用的、优 秀的 I/O 接口软件。一般的 I/O 接口软件的结构都采用了自顶向下的设计模型: 首先列出该 I/O 接口 软件需要控制的所有仪器类型, 然后列出了各类仪器的所有控制功能, 最后将各 类仪器控制功能中相同的操作功能尽可能地以统一的形式进行合并, 并将统一的 功能函数称为核心功能函数(如将 GPIB仪器的读/写与RS232串行仪器的读/写 统一为一个核心功能函数) 。所有统一形式的核心函数与其它无法合并的、 与仪 器类型相关的操作功能函数一起构成了自顶向下的 I/O 接口软件,实现不同类型 的仪器的互操作性与兼容性。 然而,这种构成方法只适用于消息基器件的互操作 性(如消息读、消息写、软件触发、状态获取、异步事件处理等功能),对于如 中断处理、内存映射、接口配置、硬件触发等属于器件特有的操作,根本无法得 到统一的核心函数, 消息基器件与寄存器基器件无法在自顶向下的 I/O 接口软件 中得到统一。 核心函数集在整个 I/O 接口软件中只有一个小子集, 特定操作函数 集是一个大子集。 自顶向下结构的 I/O 接口软件实质上是建立在仪器类型层的叠 加,并没有真正实现接口软件的统一性。 同时应该说, 自顶向下的设计方法为真 正统一的I/O接口软件的设计与实现提供了经验借鉴与尝试。VPP联盟在考察了多个I/O接口软件之后,提出了一种自底向上的I/O接口软件模型,也就是VISA。3.1.2 VISA 模型结构VISA是虚拟仪器软件结构(Virtual Instrument Software Architecture)的缩写,实质是一个 I/O 接口软件及其规范的总称。 一般情况下, 将这个 I/O 接口 软件称为 VISA。如上所说,VISA的构成是采用了自底向上的结构。与自顶向下的方法不同的是, VISA的实现首先定义了管理所有资源的资源(在这儿,资源的概念相当于面向 对象程序设计中的对象,具体的定义与描述见下节),这个资源称为 VISA资源 管理器,它用于管理、控制与分配 VISA资源的操作功能。各种操作功能主要包括:1、资源寻址;2、资源创建与删除;3、资源属性的读取与修改;4、操作激活;5、事件报告;6、并行与存取控制;7、缺省值设置。第二步是在资源管理器基础上, 列出了各种仪器各自的操作功能, 并实现操作功 能的合并。 在这个基础上实现的资源实质可以包括不同格式的操作, 如读资源包 括了消息基器件的读, 也包括了寄存器基器件的读; 既可以包括同步读操作, 又 可以包括异步读操作。每一个资源内部,实质是各种操作的集合。这种资源在VISA中即为仪器控制资源,包含各种仪器操作的资源称为通用资源,而将无法 合并的功能,称为特定仪器资源。第三步,需要定义与创建一个用 API 实现的资源,为用户提供单一的控制所有 VISA仪器控制资源的方法,在 VISA中称为仪器控制资源组织器。与自顶向下的构成方式相比,VISA的构成模型是从仪器操作本身开始的,它实 现的统一是深入到操作功能中去而不是停留于仪器类型之上。在VISA的结构中,仪器类型的区别体现到统一格式的资源中的操作的选取, 对于VISA使用者来说, 形式上与用法上是单一的。 在理论层次上, 自顶向下的方法属于归纳范畴, 而自 底向上的方法则属于演绎范畴。因此,自顶向下是对过去所有仪器类型的总结, 而不可能提供扩展接口, 而自底向上的结构是从共性到个性的推广, 它的兼容性 不仅仅是过去、现在,还可以包括将来。正由于这种自底向上的设计方法, VISA 为虚拟仪器系统软件结构提供了一个共同的、 统一的基础, 来自于不同供应厂家 的不同的仪器软件,可以运行于同一平台之上了。VISA的结构模型如图3.1所示。图 3.1 VISA 结构模型概图VISA结构模型自下往上,构成一个金字塔结构,最底层为资源管理器,其上为 I/O 级资源、仪器级资源与用户自定义资源集。 其中,用户自定义资源集的定义, 在VISA规范中并没有规定,它是 VISA的可变层,实现了 VISA的可扩展性与灵 活性,而在金字塔顶的用户层应用,是用户利用 VISA资源实现的应用程序,其本身并不属于 VISA 资源3.1.3 VISA 的特点 基于自底向上结构模型的 VISA 创造了一个统一形式的 I/O 控制函数集,它是所 有现存的 I/O 接口软件的功能超集, 在形式上与其它 I/O 接口软件十分相似。 一 方面,对于初学者或是简单任务的设计者来说, VISA 提供了简单易用的控制函 数集,在应用形式上相当简单。另一方面,对于复杂系统的组建者来说, VISA 提供了非常强大的仪器控制功能与资源管理功能, 能提供仪器间的互操作性与兼 容性。它是易用性、可扩展性、互操作性、兼容性的完全统一体。与其它现存的 I/O 接口软件相比, VISA 具有以下几个特点:1、 VISA的I/O控制功能适用于各种仪器类型,VISA包含了 VXI仪器、GPIB仪 器、RS232串行接口仪器等各类仪器的控制操作,也包含了消息基器件、寄存器 基器件、存贮器件等仪器的操作,其形式上是统一的。2、VISA的I/O控制功能适用于各种仪器硬件接口类型,以 VXI仪器系统为例, 无论采用嵌入式计算机结构、GPIB接口外挂式结构、MXI接口外挂式结构,还是 采用IEEE1394接口外挂式结构,对于 VXI仪器的操作函数是一样的。同样,无 论 VXI 仪器在系统中的逻辑地址是多少,仪器操作函数也是一样的。3、VISA 的 I/O 控制功能适用于单处理器系统结构,也适用于多处理器结构或 分布式网络结构。4、VISA 的 I/O 控制功能适用于多种网络机制,无论虚拟仪器系统网络构成为 VXI 多机箱扩展网络还是以太网,仪器操作是一致的。5、VISA 的 I/O 软件库的源代码是唯一的,其与操作系统及编程语言无关,只 是提供了不同形式的 API 文件作为系统的引出。由于VISA结构考虑到了多种仪器类型与网络机制的兼容性,因此以VISA I/O接口软件为基础的虚拟仪器系统,不仅可以与过去已有的仪器系统(如GPIB仪器系统及串行接口仪器系统) 结合,也完全可以将仪器系统从过去的集中式结构 过渡到分布式结构。VISA的兼容性与互操作性,保证了新一代仪器完全可以加 入到虚拟仪器系统中去, 同时也保证了仪器系统的投资者不会因为新仪器的出现 而将过去的系统抛弃, 从而可以不使投资浪费。 系统集成时, 不必再选择某家特 殊的软件和硬件产品,可以根据自己的需要,在所有的VPP产品中作出最佳选择, 系统的兼容性与强健性大大增强了, 系统的标准化与统一性也找到了最基础的保 障。VISA操作表操作表:1、VISA资源模板:viClose ( vi ):关闭特定的对话通道。viGetAttribute (vi ,attribute , attrState ):获取资源属性状态值。 viSetAttribute (vi ,attribute , attrState ):设置资源属性状态值。 viStatusDesc (vi , status , desc):获取返回状态描述字符串。viTerminate ( vi,degree,jobld ):请求VISA资源终止一个或所有对话通道 的正常运行。viLock ( vi,lockType,timeout, requestId ,accessKey):设置资源存取模 式。viUnlock ( vi ):取消资源存取模式。viEnableEvent (vi , eventType, mechanism, context ):允许特定事件通知。 viDisableEvent( vi,eventType, mechanism):不允许特定事件通知。viDiscardEvents ( vi,eventType,mechanism):刷新一个对话通道上事件发 生。viWaitOnEvent ( vi , ineventTypeList , timeout , outEventType , outContext ): 等待特定事件的发生。viInstallHandler (vi , eventType, handler , userHandle ):安装回调事件句 柄。viUnlnstallHandler( vi,eventType,handler,userHandle ):卸载回调事件句柄。2、VISA资源管理器:viOpenDefaultRM (sesn) :打开缺省资源管理器资源对话通道。viOpen ( sesn, rsrcname, accessMode, timeout , vi ):打开特定资源的对话 通道。viFindRsrc ( sesn,expr,findList ,retcnt , instrDesc ):查询 VISA 系统进 行资源定位viFindNext (findList , instrDesc ):返回前一个查询操作查得的资源。3、仪器控制管理:viRead ( vi ,buf,count ,retCount ):从器件同步读取数据。 viReadAsync(vi ,buf , count ,jobId ):从器件异步读取数据。viWrite (vi ,buf ,count , retCount ):将数据同步写入到器件中。 viWriteAsync (vi ,buf,count ,jobId ):将数据异步写入到器件中。 viAssertTrigger (vi ,protocol ):用特定协议确认硬件或软件触发。 viReadSTB( vi ,status ):读取服务请求状态字节。viClear ( vi ):清除器件。viSetBuf (vi , mask,size ):设置格式化 I/O 缓冲区大小。viFlush (vi , mask :手动刷新格式化I/O缓冲区。viPrintf (vi , writeFmt , argl , arg2):按设定格式将数据传送到器件中。viVPri ntf ( vi,writeFmt, params):按设定格式将数据传送到器件中。viScanf (vi , readFmt, argl , arg2):按设定格式从器件中读取数据。viVS
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号