|
我使用VISA驱动开发向导(VISA Driver Development Wizard)为我的USB RAW设备开发USB驱动。当我插入USB设备时,可以通过Measurement & Automation Explorer (MAX)检测到我的设备,并且可以通过MAX和我的USB设备通信。
我还有一个USB设备,和第一台具有相同的产品ID(Product ID,PID)和生产商ID(Vendor ID,VID)。当我分别两个设备插入控制器时,没有任何问题;但当我将它们同时插入控制器时,MAX只检测到了一个设备。
为什么会产生这个问题?
典型的,USB RAW设备的源名形式为USB0::0x046D::0xC01A::NI-VISA-0::RAW。另一个同样地设备的源名形式为USB0::0x046D::0xC01A::NI-VISA-1::RAW。如果USB设备的SN(Serial Number)是由编程写入的,那么通过VISA配置后,实际的SN(Serial Number)将代替NI-VISA-x,即:
USB0::0x046D::0xC01A::DeviceSerialNumber::RAW
所以,解决以上问题的方法就是为每个USB设备分配不同的SN(Serial Number)。
注:不能通过为VISA源分配别名以达到分别显示的目的,因为VISA需要通过VISA源来关联不同的设备。
|