使用端口复制器可以将多少个 USB 硬盘插入笔记本电脑?

使用端口复制器可以将多少个 USB 硬盘插入笔记本电脑?

我有一台带有 2 个 USB 2.0 和 1 个 USB 3.0 端口的笔记本电脑,我想知道我可以插入多少个 USB 硬盘。Linux 内核中有硬性限制吗?

在性能方面,插入端口的驱动器共享的速度是多少?

答案1

理论上,一台主机 PC 最多可以连接 127 个设备,但实际功率和数据带宽限制会阻止这种情况发生。这 127 个设备可以排列在最多七层的分层集线器网络中,PC 主机算作第 1 层,最远的设备算作第 7 层。PC 为集线器提供 5 个单位的功率。每个单位为 100 mA,每个端口至少需要 1 个单位。集线器本身消耗一个单位,剩下 4 个单位用于最多 4 个端口。因此,您永远找不到具有超过四个端口的总线供电集线器。

总线供电集线器还有另一个限制。由于每个端口只有一个电源单元,因此它们只能下游连接到单个设备。您无法将它们连接到另一个集线器进行扩展,因为该集线器需要额外的 5 个单元。而且并非所有设备都可以用一个单元运行。像鼠标这样的低功率设备可以工作,但高功率设备最多可以要求 5 个单元。高功率 USB 设备只有在直接插入 PC 主机或可以为端口提供 5 个单元的自供电集线器时才会工作。

当您连接设备时,PC 会查询设备的功能和要求。例如,PC 知道它连接到 4 端口总线供电集线器,这意味着每个端口只能驱动一个单元。如果您尝试将高功率设备插入该集线器,操作系统将抛出错误消息并拒绝启用该设备。

由于这些限制,总线供电集线器通常不是一个好主意,并且主要用于移动设备,而不是桌面使用。

另一方面,如果插入端口的设备本身是自供电的,那么它们可能不需要来自集线器的多于一个单元。例如,外部磁盘驱动器有自己的电源,因此应该可以在总线供电的集线器上正常工作。

自供电集线器将能够为每个端口提供 5 个单元,从而允许使用高功率设备和更多级别的集线器。因此,您可以插入一个 7 端口自供电集线器,然后再插入七个 7 端口集线器,这样仅在第四层就有 49 个可用端口。

一些自供电集线器允许您在总线供电模式下使用它们,但如果您尝试插入太多设备,操作系统将向您发送错误消息。

大多数集线器控制器芯片都有 4 个端口,因此您通常会看到 4 端口集线器。当他们想要构建更大的集线器时,他们只需使用两个 4 端口芯片。但他们必须将它们以菊花链形式连接起来,第一个芯片连接到主机,第二个芯片连接到第一个芯片上的一个下游端口。这样就只剩下 7 个端口供用户使用,第一个芯片上有三个,第二个芯片上有三个——因此就有了常见的 7 端口集线器。

USB 是即插即用的,这意味着您在连接设备时无需了解任何这些内容。操作系统会跟踪每个集线器和设备的功率预算,并会告诉您连接是否无法工作,以及您是否需要使用自供电端口。

编辑:USB 数据包如下所示:

令牌:
数据包ID:8位
地址:7位
端点:4位
CRC:5 位

帧开始:
数据包ID:8位
帧编号:11位
CRC:5 位

数据包:
数据包ID:8位
数据:0-1023字节
CRC:16 位

握手:
数据包ID:8位

由于地址只有 7 位,因此整个总线上只能连接 128 个设备(7 个位可以分别打开和关闭,因此总共只有 128 种不同的位组合)。这包括您的计算机,因此您可以连接的其他设备有 127 个。

答案2

因此,您会发现,使用 USB3 芯片组时,您实际上会达到 30 个设备左右的限制,这是由于 USB3 芯片组上的硬性 32 个设备限制(实际上是 96 个端点限制)。

我也遇到过这个问题,花了一段时间才找到真正的问题和解决方案。我写道关于此内容的博客文章

基本上可以归结为以下几点

  1. USB3 的端点限制为 96 个(即只能连接 32 个设备)
  2. 由于集线器的存在,你会失去更多的端点,使用 USB2 电缆连接到 USB3 集线器可以为你节省一些插槽
  3. 更一般地,如果可以的话,你应该禁用 USB3(删除 USB3 内核驱动程序,或者更简单的方法,如果可以的话,在 BIOS 中禁用 USB3)。在 USB2 模式下使用 USB3 芯片没有帮助,你必须禁用 USB3,以便主板将端口重新路由到没有该端点限制的 USB2 控制器
  4. 如果您无法禁用 USB3,请获取仅使用 USB2 的 PCIe 卡,这样您就可以获得大约 120 个设备。

更多资源:

相关内容