CDC 头部功能描述符
2025-07-10
0
0
头部功能描述符(Header Functional Descriptor)用于标识该接口及其相关描述符所遵循的CDC规范版本,是所有CDC类特定描述符的起始部分。
类特定描述符必须以一个头部开始,其格式如下表所示。bcdCDC
字段用于标识该接口及其描述符所遵循的《USB通信设备类规范》的版本号。
偏移 | 字段名 | 大小 | 值/类型 | 描述 |
---|---|---|---|---|
0 | bFunctionLength | 1 | 数值 | 此描述符的字节数 |
1 | bDescriptorType | 1 | 常量 | CS_INTERFACE 描述符类型 |
2 | bDescriptorSubtype | 1 | 常量 | 头部功能描述符子类型(见Table 25) |
3 | bcdCDC | 2 | 数值 | 遵循的USB通信设备类规范版本号(BCD编码) |
C结构体定义
typedef struct _USB_CDC_HEADER_FUNCTIONAL_DESCRIPTOR {
uint8_t bFunctionLength; // 描述符长度
uint8_t bDescriptorType; // CS_INTERFACE (0x24)
uint8_t bDescriptorSubtype; // Header subtype (0x00)
uint16_t bcdCDC; // CDC规范版本号(如0x0110表示1.10版)
} USB_CDC_HEADER_FUNCTIONAL_DESCRIPTOR;
示例数据(假设CDC规范版本为1.10)
字节序号 | 值(十六进制) | 含义 |
---|---|---|
0 | 0x05 | bFunctionLength = 5 |
1 | 0x24 | bDescriptorType = CS_INTERFACE |
2 | 0x00 | bDescriptorSubtype = Header |
3 | 0x10 | bcdCDC低字节(0x0110) |
4 | 0x01 | bcdCDC高字节 |
二进制示例:
05 24 00 10 01
说明
- bFunctionLength:通常为5(字节)
- bDescriptorType:固定为0x24(CS_INTERFACE)
- bDescriptorSubtype:头部功能描述符为0x00
- bcdCDC:BCD编码的CDC规范版本号,如0x0110表示1.10版