USB3.2超高速 BOS描述符
2021-06-09
2549
1
USB3.2规范新增加了一个灵活且可扩展的框架,用于描述设备级功能特性。
BOS(Binary Device Object Store)是与配置描述符类似的一个根描述符。使用该描述符,可以访问一系列相关描述符的基本描述符。
和配置描述符一样,主机通过读取BOS描述符的wTotalLength字段中获取该BOS描述符的总大小,然后根据总大小读取设备功能的整个BOS描述符集。所以BOS描述符的获取是分两次获取的,第一次只取BOS描述符的头部(包括wTotalLength字段),然后再根据wTotalLength字段再次获取BOS描述符的全部内容。
和其它描述符一样,主机通过使用 GET_DESCRIPTOR 请求读取该描述符。读取BOS描述符使用的描述符类型为15(BOS描述符)。
更多的USB描述符类型可详见:http://www.usbzh.com/article/detail-434.html
BOS描述符的结构如下:
字节偏移 | 字段 | 长度 | 描述 |
---|---|---|---|
0 | bLength | 1 | 描述符的大小,固长为5 |
1 | bDescriptorType | 1 | BOS描述符类型,固定为15 |
2 | wTotalLength | 2 | BOS描述符的总大小,以字节为单位 |
4 | bNumDeviceCaps | 1 | BOS描述符中独立设备功能特性描述符的数量 |
BOS描述符定义:
typedef struct _BOS_DESCRIPTOR
{
BYTE bLength; //设字节数大小,为0x5
BYTE bDescriptorType; //描述符类型,固定为15
WORD wTotalLength //总大小
BYTE bNumDeviceCaps //设备功能特性描述符的数量
}BOS_DESCRIPTOR,*PBOS_DESCRIPTOR;
USB2.0 BOS描述符示例
0X05, // bLength LEN_BOS
0x0F, // bDescriptorType DESC_BOS
0x0C & 0x00FF, // wTotalLength
(0x0C & 0xFF00) >> 8,
0x01, // bNumDeviceCaps
/* Device Capability */
0X07, // bLength LEN_BOSCAP
0x10,// bDescriptorType DESC_CAPABILITY
0x02, // bDevCapabilityType //CAP_USB20_EXT
0x02, 0x00, 0x00, 0x00 // bmAttributes
独立设备功能特性描述符
各独立设备功能特性描述符的通用结构如下表:
字节偏移 | 字段 | 长度 | 描述 |
---|---|---|---|
0 | bLength | 1 | 描述符的大小 |
1 | bDescriptorType | 1 | 描述符的类型,固定为DEVICE CAPABILITY 类型. |
2 | bDevCapabilityType | 1 | 描述符的DEVICE CAPABILITY 子类型,见下表 |
3 | Capability-Dependent | Var | 各功能特性的格式. |
描述符的DEVICE CAPABILITY 子类型
功能特性代码 | 值 | 说明 |
---|---|---|
Wireless_USB | 01H | |
USB 2.0 EXTENSION | 02H | 参见 USB2.0扩展特性描述符 |
SUPERSPEED_USB | 03H | 参见 超高速USB设备特性描述符 |
CONTAINER_ID | 03H | 参见 容器ID描述符 |
PLATFORM | 05H | 平台描述符 |
POWER_DELIVERY_CAPABILITY | 06H | |
BATTERY_INFO_CAPABILITY | 07H | |
PD_CONSUMER_PORT_CAPABILITY | 08H | |
PD_PROVIDER_PORT_CAPABILITY | 09H | |
SUPERSPEED_PLUS | 0AH | 增加型超高速USB设备特性描述符 |
PRECISION_TIME_MEASUREMENT | 0BH | 精密时间测量描述符 |
Wireless_USB_Ext | 0CH | |
BILLBOARD | 0DH | |
AUTHENTICATION | 0EH | |
BILLBOARD_EX | 0FH | |
CONFIGURATION SUMMARY | 10H | 配置概要描述符 |
Reserved | 00H,11H – FFH |
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936