当前课程知识点:测试系统集成技术 > 第五章:虚拟仪器软件架构 > 5.1:VISA概述 > Video
下面从VISA概述,VISA构成,VISA编程三个方面来讲述VISA
什么是VISA?
VISA(Virtual Instrument Software Architecture)即虚拟仪器软件结构,
是VXIplug&play(VXI即插即用简称VPP)系统联盟制定的I/O接口软件标准及其相关规范的总称。
为什么需要I/O接口软件标准?
在VISA出现之前曾有过很多接口软件,许多仪器生产厂家
在推出控制器硬件的同时,纷纷推出了不同结构的I/O接口软件
有的只针对某一类仪器,
如NI公司用于控制GPIB仪器的NI-488及用于控制VXI仪器的NI-VXI
有的在向统一化方向靠拢,如HP公司的SICL(标准仪器控制语言)
但是所有这些I/O接口软件,都是专用的,
即针对某一厂家某种控制器编写的软件无法适用于另一厂商的控制器
针对不同控制器需要编写不同的软件,
而这些软件实际上仅在I/O部分有所不同
为了使仪器驱动程序和软面板能够在不同厂商的
控制器下都能运行,迫切需要在I/O接口层统一
I/O接口层对外提供统一的接口函数,基于该接口函数的
仪器驱动程序和软件可以工作在不同接口的控制器环境之下
为此,VPP系统联盟制定了统一的I/O接口软件规范,
即VPP4.X系列规范,称为虚拟仪器软件结构规范。
VPP4.x系列规范
包括:《VPP4.3:VISA库》规定了I/O接口软件的
函数名、参数定义及返回代码等
《VPP4.3.2:文本语言的VISA实现规范》对在文本语言(C/C++和Visual Basic)
中实现VISA时,VISA数据类型与各种语言数据类型的对应关系、返回代码、常量等进行了定义。
《VPP4.3.3:图形语言的VISA实现规范》对在图形语言中实现VISA时,
VISA数据类型与各种语言数据类型的对应关系、返回代码、常量等进行了定义。
VISA如何提供给用户使用?
VPP4.x系列规范作为标准公布了I/O接口所包含的各个函数原型,
但对于具体如何实现未作任何说明
由于VISA库中的I/O与控制器的硬件相关,
所以不同的控制器开发商需要开发出与自己硬件相关的VISA库
根据VPP4.X标准,提供给用户的VISA库最终是以动态链接库的形式提供,
包括文件visa.dll,visa.lib,visa.h和visatype.h
在动态链接库中包含了对硬件访问的相关函数
对于仪器驱动程序和应用程序开发者来说,VISA库是一套可方便调用的函数,
通过核心函数可控制各种接口类型仪器
通过VISA,用户可用一致的I/O接口函数对不同硬件接口编程
VISA包括文本语言和图形语言实现,现在以文本语言
开发测试应用程序,讲解VISA编程
下面用一个简单的VISA程序,引入VISA程序设计。
该程序对一个VXI仪器进行身份识别。
/*idn.c*/
#include
#include
void main ()
{
viSession defaultRM, vi;
char buf [256] = {0};
viOpenDefaultRM(&defaultRM); /*打开资源管理器会话*/
viOpen(defaultRM, "GPIB0::22::INSTR",VI_NULL,VI_NULL, &vi); /*打开仪器会话*/
viPrintf(vi, "*RST\n"); /* 向仪器发送复位命令*/
viPrintf(vi, "*IDN?\n"); /* 发送*IDN?命令 */
viScanf(vi, "%t", buf); /* 读取结果*/
printf("Instrument identification string: %s\n", buf);
viClose(vi); /*关闭仪器会话 */
viClose(defaultRM);
}
l VISA的结构
I/O接口软件的结构多采用自顶向下的设计模型
该模型的基本思路:首先列出该I/O接口软件控制的所有仪器类型
在此基础上列出各类仪器的所有控制功能
最后将各类仪器控制功能中相同的操作尽可能地以统一的形式进行合并
统一的功能函数称为核心功能函数(如将GPIB仪器的读/写与RS232串口仪器的读/写统一为一个核心功能函数)
核心功能函数与其它无法合并的、与仪器类型相关的操作功能函数合并一起构成了I/O接口软件,实现不同类型的仪器的互操作性与兼容性
自顶向下结构的I/O接口软件实质是建立在仪器类型层上的叠加
随着仪器新的类型出现,接口软件必须不断扩充,并没有真正实现接口软件的统一性
VPP联盟在考察了多个I/O接口软件之后,提出了一种自底向上的I/O接口软件模型,也就是VISA。
与自顶向下的构成方式相比,VISA的构成模型是从仪器操作本身开始,它实现的统一是深入到操作功能中去而不是停留于仪器类型之上
在VISA的结构中,仪器类型的区别体现为统一格式资源操作的选取
对于VISA使用者来说,形式上与用法上是单一的
在理论层次上,自顶向下的方法属于归纳范畴,而自底向上的方法则属于演绎范畴
因此,自顶向下是对过去所有仪器类型的总结,不能提供扩展接口
而自底向上的结构是从共性到个性的推广,它的兼容性不仅针对的是过去、现在,还可以包容将来。
资源管理层
I/O资源层
仪器资源层
用户自定义资源层
用户层
图6-2 VISA结构
在VISA中对设备不同层级的功能进行封装称之为资源
VISA就是一个由资源构成的结构
最底层为资源管理层,其上为I/O资源层、仪器资源层与用户自定义资源层
其中,用户自定义资源层,在VISA规范中并没有规定,它是VISA的可变层,实现了VISA的可扩展性与灵活性
而在金字塔顶的用户层应用,是用户利用VISA资源实现的应用程序,其本身并不属于VISA资源。
-1.1:自动测试系统的出现及意义
--Video
--Video
--附件
-1.2:测试系统体系结构
--Video
--Video
--Video
-第一章:绪论--1.3:课堂实验:网络化仪器控制
-2.1:GPIB总线技术、VXI总线技术、LXI总线技术
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-第二章:接口总线--2.2:课堂实验:示波器程控
-3.1:消息交换控制协议
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-3.2:程控消息句法
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-第三章:消息交换控制协议--3.3:课堂实验:信号源程控
-4.1:SCPI的目标及主要内容
--Video
--Video
--Video
--Video
-4.2:SCPI语法与风格
--Video
--Video
--Video
--Video
-4.3:标准命令
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
--Video
-第四章:可程控仪器标准命令--4.4:课堂实验:频谱仪程控、数字多用表程控
-5.1:VISA概述
--Video
--Video
-5.2:VISA库构成
--Video
-5.3:VISA程序基本结构
--Video
-5.4:自动测试系统软件设计综合实验
--Video
--Video
--Video
--Video
--Video
-第五章:虚拟仪器软件架构--5.4:课堂实验:VISA程序设计基础实验
-6.1:IVI概述
--Video
-6.2:IVI程序设计基础实验
--Video
-第六章:可互换虚拟仪器技术--6.2:IVI程序设计基础实验