|
USB规范已有固定的通信协议标准。当和多个USB设备进行通信时,所允许连接的USB地址和端点数量由下图所示的USB Token Packet给出:
address段用于表示实际的USB设备。既然是7位长,单个USB主机控制器可支持多达127(2^7- 1)个连接的设备。一个USB Hub占用一个USB设备地址并且连接到USB Hub的每一个设备都占用一个地址。
类似地,Endpoint段用于路由通过USB总线特定类型的的数据,这个类似于TCP / IP通信协议端口。其字段长度为4位,允许16个(2^4)可访问的端点。然而,由于端点都是单向的(进或出),一个USB设备可以分配到32个端点。 所允许的USB端点的总数量是由USB主机控制器和它的固件所决定的。但是,对于某些控制器而言,这个数目小于100。
因此,如果USB设备想要连接到一个主控制器,可能会导致地址或端点数量溢出,就会产生上面Windows资源的错误。对于一些设备而言,每个设备可使用高达32个数量的端点,用USB Hub连接NI设备时可能会造成端点数量的溢出。另外,一些计算机自己内部的USB端口和其它内部设备(如无线网卡,音频,摄像机等)都连接到一个USB主机控制器,也可导致USB资源数量的增长。
综上所述,不建议使用外部USB Hub来连接NI USB设备。还有,NI USB设备使用的端点数量是不可调的。建议将NI设备连接到特定的USB主机控制器上或限制共享一个主机控制器的设备数量。您可以在Windows设备管理器中查看可用和安装的主机控制器。
|