主板上的所有 USB 端口都通过同一总线运行

主板上的所有 USB 端口都通过同一总线运行

我有一块技嘉 H87-HD3 主板。根据规格,它最多支持 8 个 USB 2.0/1.1 端口。现在我尝试连接一个不兼容 USB 3.0 的设备。它无法在任何 USB 端口上工作,无论是主板上还是机箱上,无论是蓝色 USB 3.0 端口还是其他端口。

在尝试使我的设备工作时,我发现所有端口都路由到同一个控制器,我想知道这是否正确。我在 Ubuntu 上,这是输出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=xhci_hcd/14p, 480M
    |__ Port 5: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 5: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 5: Dev 2, If 2, Class=Human Interface Device, Driver=usbhid, 12M
/:  Bus 02.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 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

如您所见,总线 03 有一个 xHCI 驱动程序,速度与 USB 2.0 类似。无论我将设备连接到哪里,它们总是出现在总线 03 下。我在 Ubuntu 和 Windows 10 上都尝试过,所以我不认为这是软件问题。

有人能帮我解释一下吗?主板是否将所有东西都路由到同一个总线?尽管有规范,但没有适当的 USB 2.0 支持吗?

答案1

您显然有 4 条不同的总线。USB 3.0 (XHCI) 控制器出现在两条总线上(总线 3 和 4)。这是出于兼容性原因,控制器的 USB 2.0/1.0 部分使用不同的总线。

总线 1 和 2 上有两个 USB 2.0(EHCI)控制器,每个控制器有两个端口,其中一个可能是未连接的调试端口(参见dmesg),另一个直接连接到集成集线器(一个在总线 1 上有 6 个端口,一个在总线 2 上有 8 个端口)。

因此,如果你查看lspci,你应该会看到 3 个 USB 控制器,一个 XHCI 和两个 EHCI。很可能 EHCI 控制器位于南桥中(检查地址)。

技嘉 H87-HD3 的数据表显示

最多 6 个 USB 3.0/2.0 端口 (4 个端口位于后面板,2 个端口可通过内部 USB 接头连接)
最多 8 个 USB 2.0/1.1 端口 (2 个端口位于后面板,6 个端口可通过内部 USB 接头连接)

因此,6 个 USB 3.0 端口位于其所属的位置,并且其中 6 个端口也在 USB 2.0 兼容模式下的总线 3 上。

现在是可能的XHCI 控制器有 8 个额外的 USB 2.0 端口(谷歌数据表并检查),而主板设计师只使用了这些端口,而忽略了南桥上可能存在的另外 14 个端口。在这种情况下,所有端口确实都会通过单个控制器进行路由,如果您的 USB 设备由于某种原因不喜欢这个特定的控制器,那么您可能就倒霉了。

但不可能肯定地说这一点,但是如果你将一个可以正常工作的 USB 2.0 设备依次插入 14 个端口中的每一个,并且它在每个情况下都出现在总线 3 上,并且具有不同的端口号,那么这听起来就很有可能。

您是否尝试过将外部集线器连接到一个端口,并将“困难”的设备连接到该集线器?这可能会有所帮助。

相关内容