USB 配对/伴随端口(Companion Port)
今天本站USB中文网的群内用户有人问了一个问题:- 请问usb tree view出现的Companion Port怎么翻译?有什么作用?
我打开自己的USBtreeview发现没有这个信息,猜测是我的版本太低,重新下载了一个最新的,果然后到了这个信息。
可以看到,当打开某些USB设备的时候,收现了如下信息
========================== Summary =========================
Vendor ID : 0x1A2C (Wuxi China Resources Semico Co., Ltd.)
Product ID : 0x2124
USB Version : 1.10
Port maximum Speed : High-Speed (Companion Port 1-17-2 supports SuperSpeed)
Device maximum Speed : Low-Speed
Device Connection Speed : Low-Speed
Self powered : no
Demanded Current : 98 mA
Used Endpoints : 3
这里看到High-Speed (Companion Port 1-17-2 supports SuperSpeed)的信息。
当时我的初步怀疑这玩意应该和USB3.0的双总线架构有关系,有兴趣的可以看本文写的另一篇文章:
- USB3.2超高速兼容USB2.0数据收发的双总线架构 http://www.usbzh.com/article/detail-412.html
不过关于这个问题,怀疑归怀疑,没有证据,也不能说明问题的。刚好群内另一位小伙伴发了这一段文字:
The port number of the companion port that is given by CompanionIndex. If the port being queried shares a USB connector with a port on another hub, CompanionPortNumber indicates the port number of the port on the other hub. Note For root hub of an xHCI controller, the shared port might be on the same hub.
它也将网址发出来了,来源于微软 USB_PORT_CONNECTOR_PROPERTIES 结构(usbioctl.h)
看完文章后,发现确实是由于双总线架构引起的。
所以本人在自己的电脑上做了一个测试,测试结果如下。
本人电脑对外接了6个USB3.0的口,通过USBtreeview发现根集线器下有20个端口。
其中端口1下又有一个USB2.1的集线器,后面省略…
经过测试,PORT1下的高速HUB下的PORT1对应PORT17下超高速下的PORT1,往以依次类推4个端口。
端口 | 映射关系 |
---|---|
Port1.Port1(USB2.0低、全、高速) | Port17.Port1(USB3.0超高速) |
Port1.Port2(USB2.0低、全、高速) | Port17.Port2(USB3.0超高速) |
Port1.Port3(USB2.0低、全、高速) | Port17.Port3(USB3.0超高速) |
Port1.Port4(USB2.0低、全、高速) | Port17.Port3(USB3.0超高速) |
而Port maximum Speed 显示的信息 (Companion Port 1-17-2 supports SuperSpeed)的含义应该是
- 1:PORT1
- 17:PORT17
- 2:PORT2(下级端口)
所以在Port1下的Generic USB2.1HUB下的四个端口分别对应Port17下的Generic SuperSpeed USB Hub下的四个端口。
当接备分别接入物理设备的PORT1,PORT2,PORT3,PORT4上时,如果是USB2.0设备,显示在Port1下的Generic USB2.1HUB下的四个端口,并且在Port maximum Speed 中显示(Companion Port 1-17-x supports SuperSpeed),如果是USB3.0设备,则显示在Port17下的Generic SuperSpeed USB Hub下的四个端口。
在设备管理器中的设备树如下: