CDC ATM网络功能描述符
2025-07-10
0
0
ATM Networking Functional Descriptor(ATM网络功能描述符)ATM网络功能描述符用于描述USB ATM设备的终端标识、数据格式能力、统计能力、最大段大小和最大虚电路数等关键信息,是USB ATM设备描述符链中的核心部分。
该描述符用于描述通信类接口(SubClass为ATM网络控制,ATM Networking Control)所支持的ATM操作模式。它只能出现在接口描述符的类特定部分。
描述符结构
偏移 | 字段名 | 大小 | 值/类型 | 描述 |
---|---|---|---|---|
0 | bFunctionLength | 1 | 数值 | 此功能描述符的字节数 |
1 | bDescriptorType | 1 | 常量 | CS_INTERFACE 描述符类型 |
2 | bDescriptorSubtype | 1 | 常量 | ATM网络功能描述符子类型 |
3 | iEndSystemIdentifier | 1 | 索引 | 字符串描述符索引,包含终端系统标识符(End System Identifier)。前6字节为唯一硬件ID(如MAC),第7字节为终端系统选择字节。Unicode字符串表示,14个字符(0-9, A-F),不能为0。例如:0123456789ABCDh 表示为 “0123456789ABCD”。 |
4 | bmDataCapabilities | 1 | 位图 | 设备支持的ATM数据类型: D7..D4: 保留,置零 D3: Type 3 - AAL5 SDU D2: Type 2 - ATM头模板+拼接ATM单元负载 D1: Type 1 - 拼接ATM单元(必须支持) D0: 保留,置零 |
5 | bmATMDeviceStatistics | 1 | 位图 | 设备收集的可选统计信息: D7..D5: 保留,置零 D4: 统计每VC上行单元数(VC_US_CELLS_SENT) D3: 统计每VC下行单元数(VC_DS_CELLS_RECEIVED) D2: 统计检测并纠正HEC错误的单元数(DS_CELLS_HEC_ERROR_CORRECTED) D1: 统计上行单元数(US_CELLS_SENT) D0: 统计下行单元数(DS_CELLS_RECEIVED) D3/D4仅适用于Type 3设备。 |
6 | wType2MaxSegmentSize | 2 | 数值 | Type 2设备支持的最大段大小(字节) |
8 | wType3MaxSegmentSize | 2 | 数值 | Type 3设备支持的最大段大小(字节) |
10 | wMaxVC | 2 | 数值 | 设备支持的最大并发虚电路数(仅Type 3) |
说明
- wType2MaxSegmentSize/wType3MaxSegmentSize:分别指Type 2和Type 3设备通过USB发送给主机的最大网络段字节数。主机应据此分配足够大的缓冲区。
- Type 1设备:始终以单元流方式转发,无网络段大小概念,主机应分配53字节整数倍的缓冲区。
- bmDataCapabilities:Type 1为必选,Type 2/3为可选,支持多种ATM数据格式。
- bmATMDeviceStatistics:指示设备支持的统计项,主机可据此决定是否自行统计。
示例(C结构体及二进制示例)
C结构体定义
typedef struct _USB_CDC_ATM_NETWORKING_DESCRIPTOR {
uint8_t bFunctionLength; // 描述符长度
uint8_t bDescriptorType; // CS_INTERFACE (0x24)
uint8_t bDescriptorSubtype; // ATM Networking subtype (0x10)
uint8_t iEndSystemIdentifier; // 终端系统标识符字符串描述符索引
uint8_t bmDataCapabilities; // ATM数据类型能力位图
uint8_t bmATMDeviceStatistics; // ATM统计能力位图
uint16_t wType2MaxSegmentSize; // Type 2最大段大小
uint16_t wType3MaxSegmentSize; // Type 3最大段大小
uint16_t wMaxVC; // 最大虚电路数
} USB_CDC_ATM_NETWORKING_DESCRIPTOR;
示例数据(假设终端标识符字符串索引为2,支持Type 1/2/3,统计能力全支持,Type2最大段1024,Type3最大段2048,最大VC为8)
字节序号 | 值(十六进制) | 含义 |
---|---|---|
0 | 0x0D | bFunctionLength = 13 |
1 | 0x24 | bDescriptorType = CS_INTERFACE |
2 | 0x10 | bDescriptorSubtype = ATM Networking |
3 | 0x02 | iEndSystemIdentifier = 2 |
4 | 0x0E | bmDataCapabilities = 0000 1110B (Type1/2/3) |
5 | 0x1F | bmATMDeviceStatistics = 0001 1111B (全支持) |
6-7 | 0x00 0x04 | wType2MaxSegmentSize = 1024 |
8-9 | 0x00 0x08 | wType3MaxSegmentSize = 2048 |
10-11 | 0x08 0x00 | wMaxVC = 8 |
二进制示例:
0D 24 10 02 0E 1F 00 04 00 08 08 00
说明
- bFunctionLength:描述符总长度,通常为13字节
- bDescriptorType:固定为0x24(CS_INTERFACE)
- bDescriptorSubtype:ATM网络功能描述符为0x10
- iEndSystemIdentifier:终端系统标识符字符串描述符索引
- bmDataCapabilities:ATM数据类型能力位图
- bmATMDeviceStatistics:ATM统计能力位图
- wType2MaxSegmentSize/wType3MaxSegmentSize:最大段大小
- wMaxVC:最大虚电路数