【USB笔记】 其他速度配置描述符Other_Speed_Configuration Descriptor

USB笔记 其他速度配置描述符(Other_Speed_Configuration Descriptor)

其他速度配置描述符(Other_Speed_Configuration Descriptor)说明了能进行高速运行的设备在其他可能的速度下操作的配置。其他速度配置的结构与配置描述符一样。

其他速度配置描述符(Other_Speed_Configuration Descriptor)是第二个同时支持全速和高速的设备所特有的描述符(第一个是设备限定描述符(Device Qualifier Descriptor))。这个描述符与配置描述符(Configuration Descriptor)有相同的结构。区别在于其他速度配置描述符(Other_Speed_Configuration Descriptor)是在设备操作当前并未使用的速度时,才会描述配置的。这个描述符与配置描述符(Configuration Descriptor)一样,也拥有附属描述符(subordinate descriptor)。

Other_Speed_Configuration Descriptor

OffsetFieldSizeValueDescription
0bLength1Number以字节为单位的描述符大小
1bDescriptorType1Constant其他速度配置描述符类型
2wTotalLength2Number配置返回的数据总长度
4bNumInterfaces1Number配置支持的接口数量
5bConfigurationValue1Number用于选择配置的值
6iConfiguration1Index字符串描述符索引
7bmAttributes1Bitmap配置特性,与配置描述符相同
8bMaxPower1mA设备从总线获取的最大功耗,与配置描述符相同

bLength以字节为单位的描述符大小(0x09)。

bDescriptorType其他速度配置描述符类型,为OTHER_SPEED_CONFIGURATION(0x07)。

wTotalLength该配置返回的数据总长度。包括该配置返回的所有描述符(配置、接口、端点、和专用的类型或者专用的厂商描述符)的总长度。

bNumInterfaces这个配置支持的接口数量,其最小值为0x01。

bConfigurationValue确认Get Configuration 和Set Configuration请求的配置,且必须为0x01或者更高值。

iConfiguration描述这个配置的字符串描述符索引。若没有字符串描述符,此值为0。

bmAttributes配置特性。该项与配置描述符(Configuration Descriptor)相同。

Bit 7:USB1.0协议中表示总线供电(Bus Powered),设置Bit 7 = 1表示由总线供电(Bus Powered)。其他协议该位保留(Reserved),必须设置为1。

Bit 6:自供电(Self-powered)。如果Bits 6 = 1,设备是自供电(Self-powered)的。

Bit 5 :远程唤醒(Remote Wakeup)。如果Bit 5 = 1,设备支持远程唤醒。

Bits 4…0:未使用,保留,必须为0。

bMaxPower当设备完全运行时,特定配置的USB设备从总线取得的最大功耗。该项与配置描述符(Configuration Descriptor)相同。

对于usb2.0,bMaxPower 以2mA为单位。如果设备要求200ma,则bMaxPower = 100 (0x64)。设备可请求的最大总线电流500mA。

对于超高速(Enhanced SuperSpeed)设备,bMaxPower以8mA为单位。如果设备要求200ma,则bMaxPower = 25(0x19)。设备可请求的最大总线电流900mA。

如果所请求的电流不可用,主机将拒绝对设备进行配置。如果备用配置可用,驱动程序可以请求备用配置。

获取其他速度配置描述符

主机通过发送Get Descriptor请求,来取得其他速度配置描述符(Other_Speed_Configuration Descriptor)。

Get DescriptorValue
bmRequestType0x80
  bmRequestType.Recipient0b00000(Device)
  bmRequestType.Type0b00(Standard)
  bmRequestType.Direction0b1(Device-to-Host)
bRequest0x06(Get Descriptor)
wValue0x0700(Other Speed Configuration #0)
wIndex0x0000
wLength0x0009

下面举例说明一个获取其他速度配置描述符的过程。使用USB分析仪抓包,软件Total Phase Data Center。
0

使用USB分析仪抓包可以看到,获取其他速度配置描述符Other_Speed_Configuration Descriptor:
1

其他速度配置描述符Other_Speed_Configuration Descriptor的获取过程如下:
2

再展开看到详细的过程:
3

接下来详细看整个获取过程的各个字段含义:
4

一开始的setup包过程:
5

setup data:
6

IN包过程
7

OUT包过程:
8

完成整个其他速度配置描述符Other_Speed_Configuration Descriptor的获取。


描述符示例

这里举例一个带有其他速度配置描述符Other_Speed_Configuration Descriptor的示例设备。

Device Descriptor

OffsetFieldSizeValueDescription
0bLength10x12
1bDescriptorType10x01DEVICE
2bcdUSB20x02002.00
4bDeviceClass10x00
5bDeviceSubClass10x00
6bDeviceProtocol10x00
7bMaxPacketSize010x40
8idVendor20x046d
10idProduct20xc31c
12bcdDevice20x00010.01
14iManufacturer10x01
15iProduct10x02
16iSerialNumber10x03
17bNumConfigurations10x01

Device Qualifier Descriptor

OffsetFieldSizeValueDescription
0bLength10x0a
1bDescriptorType10x06DEVICE_QUALIFIER
2bcdUSB20x02002.00
4bDeviceClass10x00
5bDeviceSubClass10x00
6bDeviceProtocol10x00
7bMaxPacketSize010x40
8bNumConfigurations10x01
9bReserved10x00

Configuration Descriptor

OffsetFieldSizeValueDescription
0bLength10x09
1bDescriptorType10x02CONFIGURATION
2wTotalLength20x00b1
4bNumInterfaces10x04
5bConfigurationValue10x01
6iConfiguration10x00
7bmAttributes10xC0
8bMaxPower10x01

Interface Descriptor

OffsetFieldSizeValueDescription
0bLength10x09
1bDescriptorType10x04INTERFACE

Endpoint Descriptor

OffsetFieldSizeValueDescription
0bLength10x07
1bDescriptorType10x05ENDPOINT

省略中间的描述符。

Other_Speed_Configuration Descriptor

OffsetFieldSizeValueDescription
0bLength10x09
1bDescriptorType10x07OTHER_SPEED_CONFIGURATION
2wTotalLength20x00b1
4bNumInterfaces10x04
5bConfigurationValue10x01
6iConfiguration10x00
7bmAttributes10xC0
8bMaxPower10x01

Interface Descriptor

OffsetFieldSizeValueDescription
0bLength10x09
1bDescriptorType10x04INTERFACE

Endpoint Descriptor

OffsetFieldSizeValueDescription
0bLength10x07
1bDescriptorType10x05ENDPOINT

后续描述符省略。


附录

USB 2.0 Other_Speed_Configuration Descriptor

OffsetFieldSizeValueDescription
0bLength1NumberSize of descriptor
1bDescriptorType1ConstantOther_speed_Configuration Type
2wTotalLength2NumberTotal length of data returned
4bNumInterfaces1NumberNumber of interfaces supported by this speed configuration
5bConfigurationValue1NumberValue to use to select configuration
6iConfiguration1IndexIndex of string descriptor
7bmAttributes1BitmapSame as Configuration descriptor
8bMaxPower1mASame as Configuration descriptor

[参考资料]

Universal Serial Bus Specification Revision 2.0

USB Complete, 5th Edition

USB开发大全

USB2.0与OTG规范及开发指南


本文链接:https://blog.csdn.net/u012028275/article/details/109280912

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值