CDC 抽象控制管理功能描述符
2025-07-10
0
0
抽象控制管理功能描述符(Abstract Control Management Functional Descriptor)用于标识设备支持哪些CDC ACM(如虚拟串口)相关的标准请求和通知,主机据此决定可用的控制命令。用于描述通信类接口(SubClass为抽象控制模型,Abstract Control Model)所支持的命令。它只能出现在接口描述符的类特定部分。
偏移 | 字段名 | 大小 | 值/类型 | 描述 |
---|---|---|---|---|
0 | bFunctionLength | 1 | 数值 | 此功能描述符的字节数 |
1 | bDescriptorType | 1 | 常量 | CS_INTERFACE 描述符类型 |
2 | bDescriptorSubtype | 1 | 常量 | 抽象控制管理功能描述符子类型 |
3 | bmCapabilities | 1 | 位图 | 本配置支持的能力位图(位为0表示不支持该请求):<br> D7..D4: 保留,置零<br> D3: 1-支持Network_Connection通知<br> D2: 1-支持Send_Break请求<br> D1: 1-支持Set_Line_Coding、Set_Control_Line_State、Get_Line_Coding请求和Serial_State通知<br> D0: 1-支持Set_Comm_Feature、Clear_Comm_Feature、Get_Comm_Feature请求 |
C结构体定义
typedef struct _USB_CDC_ABSTRACT_CONTROL_MANAGEMENT_DESCRIPTOR {
uint8_t bFunctionLength; // 描述符长度
uint8_t bDescriptorType; // CS_INTERFACE (0x24)
uint8_t bDescriptorSubtype; // Abstract Control Management subtype (0x02)
uint8_t bmCapabilities; // 能力位图
} USB_CDC_ABSTRACT_CONTROL_MANAGEMENT_DESCRIPTOR;
示例数据(假设设备支持所有功能)
字节序号 | 值(十六进制) | 含义 |
---|---|---|
0 | 0x04 | bFunctionLength = 4 |
1 | 0x24 | bDescriptorType = CS_INTERFACE |
2 | 0x02 | bDescriptorSubtype = Abstract Control Management |
3 | 0x0F | bmCapabilities = 0000 1111B (D3~D0均为1) |
二进制示例:
04 24 02 0F
说明
- bFunctionLength:通常为4(字节)
- bDescriptorType:固定为0x24(CS_INTERFACE)
- bDescriptorSubtype:抽象控制管理功能描述符为0x02
- bmCapabilities:能力位图,详见上表