USB CDC
+ -

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:能力位图,详见上表

0 篇笔记 写笔记

CDC 抽象控制管理功能描述符
抽象控制管理功能描述符(Abstract Control Management Functional Descriptor)用于标识设备支持哪些CDC ACM(如虚拟串口)相关的标准请求和通知,主机据此决定可用的控制命令。用于描述通信类接口(SubClass为抽象控制模型,Abstract Cont......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!