如何在Windows上确定USB端口版本?

4

我正在使用Windows 7和Python 3.5。一旦USB设备连接,我的目标是确定它连接到哪个端口版本(2.0、3.0、3.1)以及USB设备支持的USB版本。欢迎提供任何想法。


测试速度可能是个好主意。 - Ma0
这不够可靠。我可以使用低速USB存储器并将其视为2.0版本。此外,这需要时间。最好的方法是使用类似WMI查询的东西,但不确定在哪里查找。 - wolfich
收集完这些信息后,你会做什么? - WhatsThePoint
我需要这些信息来进行自动化USB闪存测试。我获取序列号、读写速度、特定文件操作速度等信息。目前,我需要手动输入端口版本。这会对测试计划带来一些限制。因此,我需要在Python应用程序中确定USB版本。 - wolfich
1个回答

2

你应该查看微软的USBView

它使用Windows API获取有关每个USB端口和每个设备的信息并将其显示出来。这些信息包括USB端口支持的速度以及设备正在使用的速度。

你可以将其作为GUI运行,也可以像这样使用参数来使其将数据保存到文本文件中:

usbview /saveall:usb.txt

这是一个文本输出片段,展示了我所使用的USB耳机与你感兴趣的相关信息:
Is Port User Connectable:         yes
Is Port Debug Capable:            no
Companion Port Number:            1
Companion Hub Symbolic Link Name: USB#VID_0451&PID_8046#5&16bdd27b&0&22#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Protocols Supported:
 USB 1.1:                         yes
 USB 2.0:                         yes
 USB 3.0:                         no

Device Power State:               PowerDeviceD0

       ---===>Device Information<===---
English product name: "Logitech G930 Headset"

ConnectionStatus:
Current Config Value:              0x01  -> Device Bus Speed: Full (is not SuperSpeed or higher capable)
Device Address:                    0x09
Open Pipes:                           1

USBView是开源的,甚至有一个MSYS2包,因此您可以在不编译任何内容的情况下尝试它。 您也可能会从Microsoft找到预编译的二进制文件。

最简单的方法可能是从Python程序中运行USBView并解析其文本输出。 另一种选择是查看USBView的源代码,并以某种方式将其转换为Python或将其制作成Python C扩展。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接