我应该如何应用NI-VISA的USB RAW模式来访问设备? 问题: 我发现在NI-VISA 3.0版本中加入了对USB的支持,我应该怎样使用它来开发USB设备的通讯应用程序呢? 解答: NI-VISA支持两种USB通讯模式:USBTMC和RAW模式。本文介绍了关于VISA和USB RAW模式的信息。如果想了解更多的关于USBTMC的信息,请参考本文末尾的链接。 USB RAW模式允许通过对底层的USB通讯协议的访问来进行应用开发。因为NI-VISA直接应用USB传输协议机制,所以用户在应用NI-VISA开发USB设备通讯程序之前必须熟悉USB协议规范和编程。NI-VISA USB RAW模式支持中断、批量和控制等数据传输模式,而不支持Isochronous传输模式。 另外,应用NI-VISA USB RAW模式所开发的应用程序依赖于不同的USB设备,因此要求开发者非常熟悉目标USB设备的工作机理。从这个角度上来说,这种开发模式相当于使用NI-VISA的PXI支持进行寄存器级的编程开发。NI-VISA提供到目标USB设备的传输通道,但是所传输的数据格式取决于不同的目标设备。 首先,您必须让Windows操作系统识别目标USB设备并且指定NI-VISA作为该设备的驱动程序。在Windows系统里您可以通过.inf文件建立NI-VISA与USB设备的关联。每个USB设备都有唯一的供应商标识号和模块标识号,.inf文件包含了设备支持的供应商标识号和模块标识号,同时也包含了设备的驱动信息。当一个即插即用的设备连接到PC时,Windows操作系统会根据所读取到的设备信息中的供应商和模块标识号来搜索相应的.inf文件,并将该文件中所指定的驱动与该USB设备绑定。 因此,在应用NI-VISA USB RAW开发应用程序前,您必须建立一个将驱动绑定到的.inf文件。NI-VISA提供了一个叫做Device Driver Development Wizard的工具,只要您提供USB目标设备的供应商和模块标识号,就可以非常方便地利用该工具生成该.inf文件。 建立了这个.inf文件之后(在SYSTEM_DIR\inf文件夹下),再插入USB设备Windows操作系统就可以检测到该设备并以NI-VISA作为该设备驱动。安装完毕后,该设备应该以特定的资源名出现在Measurement & Automation Explorer (MAX)中。 这时,您就可以使用viUsbControlIn和viUsbControlOut这两个NI-VISA USB函数来访问USB的控制信道(Control Pipe),可以应用VISA的相关函数和属性来编写USB通信程序。关于更详细的NI-VISA USB的属性信息,请参考下面链接中的NI-VISA Programmer Reference Manual。 NI-VISA会扫描每个连接终端的设备,当发现有中断或者批量传送信道时,该信道的连接终端属性会指向最低的一个可用的连接终端;如果该属性包含-1,则表示该信道上没有任何连接终端;因此,您所开发的USB通讯应用程序都是在该指定的终端设备上进行的。 什么是USBTMC?我怎么使用NI-VISA来和我的USB设备通讯? 问题: 什么是USBTMC?我怎么使用NI-VISA来和USB设备通讯? 解答: USBTMC是USB Test & Measurement Class的简称。USBTMC是建立在USB之上的一种通讯协议,通过USBTMC,您可以像控制GPIB接口仪器一样控制您的USB接口仪器,从用户的角度来讲,基于USBTMC的USB仪器的控制和基于GPIB的仪器是一样的。例如,您可以通过VISA Write发送 *IDN? 来查询,通过VISA Read来读取返回信息。同时,USBTMC协议支持例如服务请求、触发等其他GPIB接口仪器的类似操作。 正如VXI-11协议对TCP/IP的支持,USBTMC使得仪器制造商可以将仪器的物理层接口从GPIB升级到USB,并且保持现有的VISA仪器驱动和应用软件不变。 值得注意的是,并不是所有的USB设备都支持USBTMC协议,因为设备制造商必须把USBTMC的支持添加到设备的固件里。传统的带有USB接口的仪器(比如数字万用表和示波器)一般都会提供USBTMC的支持。请参考相关的仪器说明手册获取更详细的关于对USBTMC协议的支持信息。 NI-VISA 3.0和更高版本提供了对USBTMC协议的支持。NI-VISA被配置成支持USBTMC的仪器。当您将一个USBTMC兼容仪器插入PC机时,该设备就能被系统识别并且启动新硬件向导,接着在向导中可以选择NI-VISA作为该设备的驱动。如果您已经正确安装了NI-VISA,那么该设备就会正确识别为USB Test & Measurement Class设备。打开Measurement & Automation Explorer(MAX),该设备会出现在MAX里面的Device and Interfaces » USB Devices目录下。这时,您就可以象控制其他GPIB设备一样使用这个资源名来控制您的USBTMC设备。 在其他操作系统,比如Macintosh和Linux,在正确安装了NI-VISA 3.2或以上的版本的驱动后,您的USBTMC设备就能被识别。打开“VisaConfig”应用程序,您可以看到USBTMC设备出现在USB资源列表下。这时,您就可以像控制其他GPIB设备一样使用这个资源名来控制您的USBTMC设备。 关于USB设备资源名的更详细的资料,请参以下链接提供的NI-VISA Programmer Reference Manual Chapter 5, Operations里面的viOpen函数的描述。 NI-VISA直接提供了对USBTMC的支持。如果您对如何自己开发USBTMC设备支持感兴趣,您可以使用NI-Device 1.4或更高版本和PCI-8215,请参考以下链接获取更多的关于这方面的信息。 本文来源:https://www.wddqw.com/doc/d6e53137ee06eff9aef80726.html