USB超高速设备描述符的bMaxPacketSize0为0x09
2021-03-15
1643
0
USB3的设备中,其USB设备描述符和2.0的结构一致,不过在含义上有的字段稍有区别。
比如说在USB3.2的版本中,其设备描述符中的bMaxPacketSize0和USB2.0有就所不同。
在USB2.0中bMaxPacketSize0代表的是USB设备默认端点0的最大包的大小,一般为0x40即64字节,而在USB3.0/USB3.1/USB3.2版本中,这个字段为固定值为0x09。
这里的USB3.2也可以说成是包括USB3.2的GEN1,GETN2,即以前所谓的USB3.0和USB3.1.
那么USB3.0设备描述符的bMaxPacketSize0中的0x09,这个0x09代表的含义是什么呢?难道代表默认端点数据包的大小为9字节,难道USB发展是在开倒车的吗?
答案肯定不是的,这个0x09在USB3的规格书中,明确指定代表USB设备默认端点0的最大包为512字节即2的9次方=512B,而且不支持其它的包大小,所以从这设备描述符的bMaxPacketSize0的值就可以判断出是否是超高速设备。
关于USB3.O/USB3.1/USB3.2或USB3的GEN1,GEN2之间的关系可见 USB的版本区别和发展历程 一节。
如本人手中的一块USB3的存储盘,其在接入USB3的端口中,上报的设备描述符内容如下:
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x310 (USB Version 3.10)
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x09 (9 bytes)
idVendor : 0x1058 (Western Digital, Branded)
idProduct : 0x25F3
bcdDevice : 0x1012
iManufacturer : 0x02 (String Descriptor 2)
Language 0x0409 : "Western Digital"
iProduct : 0x03 (String Descriptor 3)
Language 0x0409 : "My Passport 25F3"
iSerialNumber : 0x01 (String Descriptor 1)
Language 0x0409 : "31393334355A343433353033"
bNumConfigurations : 0x01 (1 Configuration)
Data (HexDump) : 12 01 10 03 00 00 00 09 58 10 F3 25 12 10 02 03 ........X..%....
01 01
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936