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

719*_*016 10 hardware usb-drive usb-storage

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

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

Rin*_*ind 14

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

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

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

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

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

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

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

大多数集线器控制器芯片有 4 个端口,因此您通常会看到 4 端口集线器。当他们想要建立一个更大的集线器时,他们只使用两个 4 端口芯片。但是他们必须用菊花链将它们连接起来,第一个芯片连接到主机,第二个芯片连接到第一个芯片上的一个下游端口。这样就只为用户留下了七个端口,三个在第一个芯片上,四个在第二个芯片上——因此是常见的 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 个其他东西。