VISA(Virtual Instrument Software Architecture,ni.com/visa)是一个用来与各种仪器总线进行通讯的高级应用编程接口(API)。它不受平台、总线和环境的限制。换言之,与GPIB 设备进行通讯的程序,无论是在运行Windows 2000的机器上用LabVIEW开发出来的,还是在运行 Mac OS X的机器上用C语言编写的,都可以使用同一个API。
符合USB测试和测量类 (USBTMC)协议的USB设备可以通过使用USB INSTR类函数控制。USBTMC设备符合 VISA USB INSTR类函数能够理解的协议。与USBTMC设备进行通讯不需要进行配置。与USBTMC仪器的通讯,请参看第3节。如果要了解更多有关USBTMC 规格的信息,请参看下面链接的USB应用者论坛(USB Imlementers Forum)网页。
USB RAW 仪器是指除了明确符合USBTMC 规格的仪器之外的任何USB仪器。如果您正在使用USB RAW 设备,请按照第2节的说明来配置NI-VISA 以控制您的设备。请与仪器制造商联系,以获取通讯协议与仪器所用指令集的详细资料。
连接USB设备。因为USB具有热拔插功能,所以Windows应该能够探测到您的USB 设备,设备接上USB端口之后,立即会打开“添加新硬件向导”(Add New Hardware Wizard)。遵照屏幕上有关向导程序的指导行事。如果您准备为该设备选择驱动程序,就请浏览INF文件夹,并选择您使用DDW创建的INF文档。
2.3使用VISA Interactive Control测试通讯情况 1. 打开Measurement & Automation Explorer(MAX)。选择ToolsRefresh刷新界面。您的USB设备应该如图4所示,您的USB设备出现在Devices and Interfaces栏目下面。现在您的USB设备已经安装和设置完毕,可以使用NI-VISA了。
如果想要了解有关使用VISAIC的更多信息,请参考Developer Zone Tutorial: VISA Interactive Control (VISAIC)(参照文章结尾处的链接)。如果需要有关NI-VISA API的信息,请查阅NI-VISA Programmer Reference Manual and the NI-VISA User Manual。两个文件皆可以通过本文最后的链接获得。如果需要有效指令清单,请与仪器制造商联系。
VISA探测到最低可用端点后,即将该值赋于适当的VISA属性。bulk in 端点和bulk out 端点分别存储在 VI_ATTR_USB_BULK_IN_PIPE 属性和VI_ATTR_USB_BULK_OUT_PIPE 属性之中。interrupt in 端点存放在VI_ATTR_USB_INTR_IN_PIPE 属性之中。如果值为-1,则表示USB 设备不支持这种类型的管道。对于控制型管道,只有端点0才受到支持。如果您使用的是C API,则应该使用viSetAttribute功能来更改端点。在LabVIEW中,应使用“Write VISA Property(写入VISA属性)”节点。
NI-VISA有四种通过USB管道传输数据的功能。在能够使用这些功能与设备进行通讯之前,还需要使用VISA USB 属性建立通讯协议。以下是对可用功能的描述
使用VISA USB Control In和VISA USB Control Out 来通过控制型管道传输数据。
使用VISA Read和VISA Write来通过批量型管道传输数据。
如果您正在使用LabVIEW,则VISA还有使用中断型管道的其他功能: VISA 获得USB 中断数据。在C API中,您可以通过访问VI_EVENT_USB_INTR事件目标的VI_ATTR_USB_RECV_INTR_SIZE属性与VI_ATTR_USB_RECV_INTR_DATA 属性做到这一点。参见《NI-VISA 程序员参考手册》,以了解有关“VISA 事件”的更多详细资料。