我有一块采用Intel H97 芯片组的主板。该芯片组支持最多 8 个 USB 2.0 端口和最多 6 个 USB 3.0 端口。根据主板手册,它的 I/O 面板上有两个 USB 2.0 端口和四个 USB 3.0 端口,其余 USB 端口可通过主板上的连接器使用。现在,无论我将 USB 设备连接到后 I/O 面板上的 USB 2.0 或 3.0 端口,还是主板上的 USB 接头连接器,这些设备总是出现在总线的根集线器下#2
。Mass Storage
设备类型连接到主板 I/O 面板上的 USB 端口之一的示例:
# lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
|__ Port 1: Dev 18, If 0, Class=Communications, Driver=cdc_ether, 480M
|__ Port 1: Dev 18, If 1, Class=CDC Data, Driver=cdc_ether, 480M
|__ Port 1: Dev 18, If 2, Class=Mass Storage, Driver=usb-storage, 480M
|__ Port 12: Dev 27, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
#
但是,巴士#1
、#3
和是什么#4
?对于总线来说#4
,似乎Linux Foundation 3.0 root hub
连接了一种类型的设备:
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
对于总线#3
,#1
似乎连接了 8 端口(8p
在 的输出中lsusb -t
)Intel USB 2.0 集线器 ( 8087:8001
) 和 6 端口 Intel USB 3.0( 8087:8009
) 集线器:
Bus 003 Device 002: ID 8087:8001 Intel Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8009 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
#3
我不知道这是否是巧合,但英特尔总线集线器和英特尔总线集线器中的端口数量#1
加起来为 14。这与芯片组文档以及lsusb -t
for输出中看到的端口数量一致巴士#2
。
英特尔 H97 芯片组仍然提供旧的 EHCI USB 2.0 控制器实现,以便向后兼容不支持 USB 3 的旧操作系统(例如 Windows 7)。
如果操作系统仅支持 EHCI 和较旧的 USB 控制器类型,则主板可以(通过 BIOS 设置或自动)允许通过 EHCI 控制器访问所有 USB 端口,在这种情况下,USB 总线 #1 和 #3会被使用。(在这种情况下,#2 和 #4 号巴士甚至不会出现。)
XHCI 控制器稍后仍可以通过附加驱动程序激活,并且将有一个特定的切换协议来将端口切换到它。
但是现代操作系统具有 XHCI 控制器的驱动程序,因此它将立即激活 XHCI 控制器,这显然会导致所有使用 USB 2 或更早速度的设备出现在总线 #2、总线 #1 和 #3 上(即通过 EHCI 控制器查看的相同 USB 端口)将未被使用。
总线 #4 仅适用于 USB 3 SuperSpeed 设备。它显示为单独的总线,因为它使用 USB 3 连接器中的额外电线。
要连接到总线 #4,您需要一个实际上具有 SuperSpeed(或更高)速度的 USB 3.0(或更高版本)设备,以及一条包含新 SuperSpeed 电线和连接器的电缆。
出于营销原因,任何实现 USB 3.0 规范中包含的一些 USB 协议改进的 USB 2.x 设备都将能够合法地声明USB 3 支持。但要使用总线 #4,您将需要专门的USB 3 SuperSpeed支持。
USB 3.1 和 3.2 规范通过追溯更改较旧 USB 3.x 设备的推荐标签,进一步混淆了命名:最初的 USB 3.0 SuperSpeed 现在也称为“USB 3.1 Gen 1”、“USB 3.2 Gen 1x1”和(当前首选名称)“SuperSpeed USB 5 Gbps”。
同样,USB 3.1 规范引入的新模式最初是“SuperSpeed+”,但也可以称为“USB 3.2 Gen 2x1”或(首选)“SuperSpeed USB 10 Gbps”。