如何使用NI-VISA的USB RAW模式与设备通信?

更新 Jan 14, 2019

适用于

Driver

  • NI-VISA

问题详述

我注意到NI-VISA 3.0引入了对USB的支持。如何使用RAW模式开始与USB设备通信?

解决方案

请按照以下步骤与USB设备通信:
  1. 您需要让Windows检测到设备,并指定NI-VISA为设备的驱动程序,在Windows中,您可以通过.inf文件建立这个关联。每个USB设备都有唯一的供应商和型号。.inf文件包含了设备支持的供应商和型号以及设备的驱动程序。当即插即用设备连接到PC时,Windows会读取设备信息并使用供应商和型号来搜索.inf文件。找到匹配的.inf文件后,Windows会将文件中指定列的驱动程序绑定到设备上。
  2. 要使用NI-VISA与设备通信,您需要创建将NI-VISA驱动程序绑定到设备的.inf文件。幸运的是,NI-VISA软件包提供一个名为VISA驱动程序开发向导(VISA Driver Development Wizard)的工具,如果您提供正确的供应商和型号,它会自动生成.inf文件。有关VISA驱动程序开发向导的更多信息,请参阅下面的相关链接。
  3. 一旦.inf文件就位(在隐藏的SYSTEM_DIR\inf目录下)之后,插入USB设备,Windows就可以通过硬件检测向导并显示NI-VISA作为设备的驱动程序。安装完成后,设备应显示在Measurement&Automation Explorer(MAX)中,并显示相应的资源名称。
  4. 您现在可以在USB上使用另外两个VISA函数:viUsbControlInviUsbControlOut。这些函数使您可以访问USB设备默认具有的控制信道(Control Pipe)。您可以使用VISA属性来设置与设备的通信。 单击此处以获取有关USB特定属性的更多信息。
NI-VISA将从每一个连接终端扫描设备。如果有中断或批量信道,则这些信道的连接终端属性将显示最低的可用连接终端。如果该属性包含-1,则表示该信道上没有可用的连接终端。因此,与设备的任何通信设置都是指定于该设备的。

相关信息

USB RAW模式允许您访问USB规范的底层通信机制。由于NI-VISA只公开了规范中已经定义的机制,因此用户在应用NI-VISA开发USB设备通讯程序前必须熟悉USB规范和USB设备编程。NI-VISA USB RAW模式支持中断(Interrupt),批量(Bulk)和控制(Control)等数据传输,不支持等时(Isochronous)传输。

此外,使用NI-VISA USB RAW模型与USB设备通信依赖于不同的USB设备,这需要用户详细了解设备的运行方式。从这个意义上说,它类似于使用NI-VISA的PXI支持进行寄存器级的编程。 NI-VISA为设备提供通信通道,但数据的含义是取决于特定设备的。

NI-VISA支持两种USB通信模式:USBTMC和RAW模式。本文介绍了有关VISA USB RAW模式的一些信息。关于USBTM模式您可以参考: 什么是USBTMC以及如何与USB仪器通信?

本文是否有帮助?

无帮助