![为什么当连接到 USB 2.0 集线器时,USB 驱动器以 USB 1.1 的速度运行?](https://linux22.com/image/1498952/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BD%93%E8%BF%9E%E6%8E%A5%E5%88%B0%20USB%202.0%20%E9%9B%86%E7%BA%BF%E5%99%A8%E6%97%B6%EF%BC%8CUSB%20%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%BB%A5%20USB%201.1%20%E7%9A%84%E9%80%9F%E5%BA%A6%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
我的 USB 驱动器 (WD Express) 出现了一个奇怪的问题。当我将它连接到 Windows PC 的唯一 USB 端口时,它以高速 (USB 2.0) 运行。但是,当我将它连接到 USB 2.0 集线器作为唯一设备时,它只能以全速 (USB 1.1) 运行。为什么会这样?
当 USB 驱动器直接连接到 PC 时,USBView 的输出:
USB Mass Storage Device:
bcdUSB: 0x0200
bDeviceClass: 0x00
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x40 (64)
idVendor: 0x1058
idProduct: 0x1021
bcdDevice: 0x2002
iManufacturer: 0x01
0x0409: "Western Digital"
iProduct: 0x02
0x0409: "Ext HDD 1021"
bNumConfigurations: 0x01
ConnectionStatus: DeviceConnected
Current Config Value: 0x01
Device Bus Speed: High
Device Address: 0x02
Open Pipes: 2
当 USB 驱动器通过 USB 2.0 集线器连接时的输出:
Generic USB Hub:
Device Descriptor:
bcdUSB: 0x0200
bDeviceClass: 0x09
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x08 (8)
idVendor: 0x05E3 (Genesys Logic, Inc.)
idProduct: 0x0606
bcdDevice: 0x0702
iManufacturer: 0x01
0x0409: "ALCOR"
iProduct: 0x02
0x0409: "USB Hub 2.0
USB Mass Storage Device:
bcdUSB: 0x0200
bDeviceClass: 0x00
bDeviceSubClass: 0x00
bDeviceProtocol: 0x00
bMaxPacketSize0: 0x40 (64)
idVendor: 0x1058
idProduct: 0x1021
bcdDevice: 0x2002
iManufacturer: 0x01
0x0409: "Western Digital"
iProduct: 0x02
0x0409: "Ext HDD 1021"
bNumConfigurations: 0x01
ConnectionStatus: DeviceConnected
Current Config Value: 0x01
Device Bus Speed: Full
Device Address: 0x03
Open Pipes: 2
答案1
根据 David(见评论)的说法,情况并非如此,而且我确实错了(USB 集线器可以并且必须传递更大的数据包),我无法在答案被接受时删除它。
虽然不是 100% 确定,但我认为这是 USB 集线器的错误。
忽略所连接的驱动器本身并查看集线器的统计数据(即非缩进的行):
bMaxPacketSize0: 0x08 (8)
HDD 本身报告:
bMaxPacketSize0: 0x40 (64)
因此,在我看来,集线器一次只能处理 8 个字节;驱动器一次可以处理 64 个字节。(我不确定它是否还能传递更大的数据包;我不这么认为。)
这可能会(应该?)产生额外的开销,并会减慢速度(如果使用最大带宽,则减慢 8 倍)。
答案2
您能确认这是 WD Elements 吗?设备的型号是什么?正如这些人所说,驱动器可能没有通过集线器获得足够的电力,从而限制了其性能。您是否有其他驱动器或 USB 集线器来尝试不同的组合,看看问题是否仍然存在?
如果你怀疑驱动器的健康状况,你可以运行WD Data Lifeguard 诊断并查看驱动器是否通过快速测试和扩展测试。
Captain_WD。