Windows 11:USB 设备的数量有限制吗?

fea*_*ool 3 usb drivers windows-11

如果标题是 XY 问题的形式,请原谅我,但是:

我有一个 Windows 系统,上面挂有很多 USB 设备。(我是一名拥有大量客户的嵌入式开发人员,并且经常需要在一堆嵌入式设备上运行纵向测试。)我观察到以下现象:

我的默认 USB 设备集如下所示:

在此输入图像描述

但是在这种情况下,我的 OSBOT TinyCam 设备不可用。(“看起来另一个应用程序已经在使用相机。Windows 相机应用程序错误代码 0xA00F4243”)

如果我弹出(或只是拔掉)任何四个 EDBG CMSIS-DAP 设备和/或 Atmel-ICE CMSIS-DAP 设备,TinyCam 都会正常运行。

这引出了我的问题:

  • 系统可以在 USB 总线上管理的设备数量是否有限制?
  • 我可以收集其他信息来更好地诊断问题吗?

另外,我不认为这是 OSBOT TinyCam 特有的。例如,如果我拔下所有 CMSIS-DAP USB 设备并插入 OSBOT TinyCam 并启动相机应用程序,则相机可以正常工作。但是,如果我在插入 TinyCam 后插入所有 CMSIS-DAP 设备,我的 Microchip IDE 将无法再访问所有 CMSIS-DAP 设备:

在此输入图像描述

所以在这种情况下,看起来“谁先到达那里”就是有效的,而其他人则被排除在外。

har*_*ymc 6

您可能会遇到 USB 根主机控制器在端点方面的限制。这是与您的操作系统无关的硬件限制。

每个USB 设备最多可定义32 个端点(16 个输入和16 个输出,但其中一个必须是控制端点),但大多数设备仅定义2 或3 个端点(例如数据输入、数据输出和控制端点)。集线器本身还至少定义了一个控制端点。每个 USB 控制器实现都可能有其自己的层或端点限制。

就您的情况而言,您的某些设备可能需要比其他设备更多的端点。您的 USB 根主机控制器也可能对其可支持的端点数量有其自身的限制。

要增加计算机支持的端点数量,您需要更多根 USB 主机控制器。链接 USB 集线器不会添加更多端点,而是减少数量,因为集线器本身会耗尽根控制器的端点。

尽管 USB 规范允许在一个根控制器上容纳大量理论上的设备,但 USB 控制器实现中固有的实际限制进一步将可能的最大值限制为低得多的数量。

开源 USB 设备树查看器是检查 USB 设备上端点数量(以及其他所有内容)的工具。它可以显示设备使用的端点,但不显示根控制器的限制。

例如,此处显示已连接 USB 磁盘的 3 个端点:

在此输入图像描述

有关该主题的一些来源: