CDC 网络通道终端功能描述符
2025-07-10
0
0
Network Channel Terminal Functional Descriptor(网络通道终端功能描述符)网络通道终端功能描述符用于描述设备内部单元与网络通道的关系,以及通道的物理接口类型和索引,便于主机识别和管理多通道通信设备。
该描述符用于指示一个单元(Unit)与网络通道(Network Channel)之间的关系。它只能出现在接口描述符的类特定部分。
描述符结构(Table 36)
偏移 | 字段名 | 大小 | 值/类型 | 描述 |
---|---|---|---|---|
0 | bFunctionLength | 1 | 数值 | 此功能描述符的字节数 |
1 | bDescriptorType | 1 | 常量 | CS_INTERFACE 描述符类型 |
2 | bDescriptorSubtype | 1 | 常量 | 网络通道终端功能描述符子类型 |
3 | bEntityId | 1 | 常量 | 唯一标识该终端的常量ID |
4 | iName | 1 | 索引 | 字符串描述符索引,描述网络通道终端的名称 |
5 | bChannelIndex | 1 | 数值 | 关联网络通道的通道索引,按下述规则索引 |
6 | bPhysicalInterface | 1 | 常量 | 物理接口类型:<br>0-无<br>1-ISDN<br>2~200-保留<br>201~255-厂商自定义 |
通道索引规则(Channel Indexing Rule)
- 通道索引为零基(0-based),标识物理接口上并发通道数组中的索引。
- 例如,对于ISDN物理接口,bChannelIndex=0表示D通道,1表示B1通道,依此类推。
C结构体定义
typedef struct _USB_CDC_NETWORK_CHANNEL_TERMINAL_DESCRIPTOR {
uint8_t bFunctionLength; // 描述符长度
uint8_t bDescriptorType; // CS_INTERFACE (0x24)
uint8_t bDescriptorSubtype; // Network Channel Terminal subtype (0x0A)
uint8_t bEntityId; // 终端唯一ID
uint8_t iName; // 名称字符串描述符索引
uint8_t bChannelIndex; // 通道索引
uint8_t bPhysicalInterface; // 物理接口类型
} USB_CDC_NETWORK_CHANNEL_TERMINAL_DESCRIPTOR;
示例数据(假设终端ID为1,名称字符串索引为2,通道索引为0,物理接口为ISDN)
字节序号 | 值(十六进制) | 含义 |
---|---|---|
0 | 0x07 | bFunctionLength = 7 |
1 | 0x24 | bDescriptorType = CS_INTERFACE |
2 | 0x0A | bDescriptorSubtype = Network Channel Terminal |
3 | 0x01 | bEntityId = 1 |
4 | 0x02 | iName = 2 |
5 | 0x00 | bChannelIndex = 0 |
6 | 0x01 | bPhysicalInterface = 1 (ISDN) |
二进制示例:
07 24 0A 01 02 00 01
说明
- bFunctionLength:描述符总长度,通常为7
- bDescriptorType:固定为0x24(CS_INTERFACE)
- bDescriptorSubtype:网络通道终端功能描述符为0x0A
- bEntityId:终端唯一ID
- iName:名称字符串描述符索引
- bChannelIndex:通道索引(零基)
- bPhysicalInterface:物理接口类型(0=无,1=ISDN,2~200=保留,201~255=厂商自定义)