USB CDC
+ -

CDC USB终端功能描述符

2025-07-10 0 0

USB Terminal Functional Descriptor(USB终端功能描述符)USB终端功能描述符用于描述设备内部单元与USB接口的关系,以及接口间的连接和协议封装情况,便于主机识别和管理复杂的设备结构。

USB终端功能描述符用于指示一个单元(Unit)与一个USB接口之间的关系,并定义设备与主机之间接口的特定参数。它只能出现在接口描述符的类特定部分。


描述符结构(Table 35)

偏移 字段名 大小 值/类型 描述
0 bFunctionLength 1 数值 此功能描述符的字节数
1 bDescriptorType 1 常量 CS_INTERFACE 描述符类型
2 bDescriptorSubtype 1 常量 USB终端功能描述符子类型
3 bEntityId 1 常量 唯一标识该终端的常量ID
4 bInInterfaceNo 1 数值 关联USB接口的输入接口号
5 bOutInterfaceNo 1 数值 关联USB接口的输出接口号
6 bmOptions 1 位图 D7..D1: 保留,置零<br>D0: 协议封装使用<br>0-未使用封装<br>1-使用封装
7 bChildId0 1 常量 连接到此终端的下级终端或单元的第一个ID
6+N bChildIdN-1 1 常量 连接到此终端的下级终端或单元的第N个ID

示例(C结构体及二进制示例)

C结构体定义

typedef struct _USB_CDC_USB_TERMINAL_DESCRIPTOR {
    uint8_t bFunctionLength;      // 描述符长度
    uint8_t bDescriptorType;      // CS_INTERFACE (0x24)
    uint8_t bDescriptorSubtype;   // USB Terminal subtype (0x09)
    uint8_t bEntityId;            // 终端唯一ID
    uint8_t bInInterfaceNo;       // 输入接口号
    uint8_t bOutInterfaceNo;      // 输出接口号
    uint8_t bmOptions;            // 选项位图
    uint8_t bChildId[1];          // 下级终端/单元ID(可变长度)
} USB_CDC_USB_TERMINAL_DESCRIPTOR;

示例数据(假设终端ID为1,输入接口号为2,输出接口号为3,未使用协议封装,有两个下级终端ID为4和5)

字节序号 值(十六进制) 含义
0 0x09 bFunctionLength = 9
1 0x24 bDescriptorType = CS_INTERFACE
2 0x09 bDescriptorSubtype = USB Terminal
3 0x01 bEntityId = 1
4 0x02 bInInterfaceNo = 2
5 0x03 bOutInterfaceNo = 3
6 0x00 bmOptions = 0(未使用封装)
7 0x04 bChildId0 = 4
8 0x05 bChildId1 = 5

二进制示例:

09 24 09 01 02 03 00 04 05

说明

  • bFunctionLength:描述符总长度,=7+下级终端数量
  • bDescriptorType:固定为0x24(CS_INTERFACE)
  • bDescriptorSubtype:USB终端功能描述符为0x09
  • bEntityId:终端唯一ID
  • bInInterfaceNo/bOutInterfaceNo:输入/输出接口号
  • bmOptions:D0=1表示使用协议封装,0表示未使用
  • bChildIdN:下级终端/单元ID(可有多个)

0 篇笔记 写笔记

CDC USB终端功能描述符
USB Terminal Functional Descriptor(USB终端功能描述符USB终端功能描述符用于描述设备内部单元与USB接口的关系,以及接口间的连接和协议封装情况,便于主机识别和管理复杂的设备结构。USB终端功能描述符用于指示一个单元(Unit)与一个USB接口之间的关系,并定......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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