CDC 通讯类功能描述符示例-虚拟串口
2025-07-10
0
0
下表展示了一个简单的抽象控制模型(Abstract Control Model)设备的通信类功能描述符的典型例子。
偏移 | 字段名 | 大小 | 值 | 描述 |
---|---|---|---|---|
0 | bFunctionLength | 1 | 05h | 该功能描述符的字节数 |
1 | bDescriptorType | 1 | 24h | CS_INTERFACE |
2 | bDescriptorSubtype | 1 | 00h | Header(头部功能描述符) |
3 | bcdCDC | 2 | 0110h | CDC规范版本号(BCD编码,1.10版) |
5 | bFunctionLength | 1 | 04h | 该功能描述符的字节数 |
6 | bDescriptorType | 1 | 24h | CS_INTERFACE |
7 | bDescriptorSubtype | 1 | 02h | 抽象控制管理功能描述符 |
8 | bmCapabilities | 1 | 0Fh | 支持所有抽象控制模型命令 |
9 | bFunctionLength | 1 | 05h | 该功能描述符的字节数 |
10 | bDescriptorType | 1 | 24h | CS_INTERFACE |
11 | bDescriptorSubtype | 1 | 06h | 联合功能描述符 |
12 | bMasterInterface | 1 | 00h | 控制(通信类)接口号 |
13 | bSlaveInterface0 | 1 | 01h | 从属(数据类)接口号 |
14 | bFunctionLength | 1 | 05h | 该功能描述符的字节数 |
15 | bDescriptorType | 1 | 24h | CS_INTERFACE |
16 | bDescriptorSubtype | 1 | 01h | 呼叫管理功能描述符 |
17 | bmCapabilities | 1 | 03h | 设备自身处理呼叫管理(D0=1),并支持数据接口复用命令(D1=1) |
18 | bDataInterface | 1 | 01h | 复用命令通过数据接口01h处理(与联合功能描述符一致) |
结构化示例(十六进制表示)
05 24 00 10 01
04 24 02 0F
05 24 06 00 01
05 24 01 03 01
字段说明
- Header Functional Descriptor(头部功能描述符):声明CDC规范版本。
- Abstract Control Management Functional Descriptor:声明支持的抽象控制命令。
- Union Functional Descriptor:声明主/从接口关系(如通信接口0,数据接口1)。
- Call Management Functional Descriptor:声明呼叫管理能力及相关接口。
总结
- 该示例展示了一个典型CDC ACM(虚拟串口)设备的功能描述符链。
- 每个功能描述符都以
bFunctionLength
、bDescriptorType
、bDescriptorSubtype
开头,后跟各自的功能字段。 - 这些描述符共同定义了设备的类特性、命令支持、接口关系和管理能力。