USB CDC
+ -

CDC 以太网网络功能描述符

2025-07-10 0 0

Ethernet Networking Functional Descriptor(以太网网络功能描述符)以太网网络功能描述符用于描述USB以太网设备的MAC地址、统计能力、最大帧长、多播和电源管理过滤能力等关键信息,是USB以太网设备描述符链中的核心部分。

该描述符用于描述通信类接口(SubClass为以太网网络控制,Ethernet Networking Control)所支持的以太网操作模式。它只能出现在接口描述符的类特定部分。


描述符结构(Table 41)

偏移 字段名 大小 值/类型 描述
0 bFunctionLength 1 数值 此功能描述符的字节数
1 bDescriptorType 1 常量 CS_INTERFACE 描述符类型
2 bDescriptorSubtype 1 常量 以太网网络功能描述符子类型
3 iMACAddress 1 索引 字符串描述符索引,包含48位以太网MAC地址。Unicode字符串表示,12个字符(0-9, A-F),不能为0。例如:0123456789ABh 表示为 “0123456789AB”。
4 bmEthernetStatistics 4 位图 指示设备收集哪些以太网统计信息。某位为0时,主机应统计对应项。详见下表。
8 wMaxSegmentSize 2 数值 以太网设备支持的最大段大小,通常为1514字节,可扩展(如VLAN)
10 wNumberMCFilters 2 位图 可由主机配置的多播过滤器数量。<br>D15: 0=完美多播过滤,1=不完美(哈希)<br>D14..0: 支持的多播地址过滤器数量(0~32767)。为0表示不支持SetEthernetMulticastFilters请求。
12 bNumberPowerFilters 1 数值 可用于唤醒主机的模式过滤器数量

以太网统计能力位(Table 42)

字段名 描述
D0 XMIT_OK 无错误发送的帧数
D1 RCV_OK 无错误接收的帧数
D2 XMIT_ERROR 未发送或发送出错的帧数
D3 RCV_ERROR 接收出错且未传递给USB主机的帧数
D4 RCV_NO_BUFFER 因无缓冲区丢失的帧数
D5 DIRECTED_BYTES_XMIT 无错误发送的定向字节数
D6 DIRECTED_FRAMES_XMIT 无错误发送的定向帧数
D7 MULTICAST_BYTES_XMIT 无错误发送的多播字节数
D8 MULTICAST_FRAMES_XMIT 无错误发送的多播帧数
D9 BROADCAST_BYTES_XMIT 无错误发送的广播字节数
D10 BROADCAST_FRAMES_XMIT 无错误发送的广播帧数
D11 DIRECTED_BYTES_RCV 无错误接收的定向字节数
D12 DIRECTED_FRAMES_RCV 无错误接收的定向帧数
D13 MULTICAST_BYTES_RCV 无错误接收的多播字节数
D14 MULTICAST_FRAMES_RCV 无错误接收的多播帧数
D15 BROADCAST_BYTES_RCV 无错误接收的广播字节数
D16 BROADCAST_FRAMES_RCV 无错误接收的广播帧数
D17 RCV_CRC_ERROR 接收时出现CRC或FCS错误的帧数
D18 TRANSMIT_QUEUE_LENGTH 发送队列长度
D19 RCV_ERROR_ALIGNMENT 接收时出现对齐错误的帧数
D20 XMIT_ONE_COLLISION 发生一次冲突后发送的帧数
D21 XMIT_MORE_COLLISIONS 发生多次冲突后发送的帧数
D22 XMIT_DEFERRED 延迟后发送的帧数
D23 XMIT_MAX_COLLISIONS 因冲突未发送的帧数
D24 RCV_OVERRUN 因溢出未接收的帧数
D25 XMIT_UNDERRUN 因欠载未发送的帧数
D26 XMIT_HEARTBEAT_FAILURE 发送时发生心跳失败的帧数
D27 XMIT_TIMES_CRS_LOST 发送期间载波检测信号丢失的次数
D28 XMIT_LATE_COLLISIONS 检测到的晚期冲突次数
D29-31 RESERVED 保留,必须为零

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

C结构体定义

typedef struct _USB_CDC_ETHERNET_NETWORKING_DESCRIPTOR {
    uint8_t  bFunctionLength;      // 描述符长度
    uint8_t  bDescriptorType;      // CS_INTERFACE (0x24)
    uint8_t  bDescriptorSubtype;   // Ethernet Networking subtype (0x0F)
    uint8_t  iMACAddress;          // MAC地址字符串描述符索引
    uint32_t bmEthernetStatistics; // 以太网统计能力位图
    uint16_t wMaxSegmentSize;      // 最大段大小
    uint16_t wNumberMCFilters;     // 多播过滤器数量及类型
    uint8_t  bNumberPowerFilters;  // 唤醒模式过滤器数量
} USB_CDC_ETHERNET_NETWORKING_DESCRIPTOR;

示例数据(假设MAC地址字符串索引为2,统计能力全支持,最大段1514,支持8个多播过滤器,1个唤醒过滤器)

字节序号 值(十六进制) 含义
0 0x0D bFunctionLength = 13
1 0x24 bDescriptorType = CS_INTERFACE
2 0x0F bDescriptorSubtype = Ethernet Networking
3 0x02 iMACAddress = 2
4-7 0xFFFFFFFF bmEthernetStatistics = 全支持
8-9 0xEA 0x05 wMaxSegmentSize = 1514
10-11 0x08 0x00 wNumberMCFilters = 8, 完美过滤
12 0x01 bNumberPowerFilters = 1

二进制示例:

0D 24 0F 02 FF FF FF FF EA 05 08 00 01

说明

  • bFunctionLength:描述符总长度,通常为13字节
  • bDescriptorType:固定为0x24(CS_INTERFACE)
  • bDescriptorSubtype:以太网网络功能描述符为0x0F
  • iMACAddress:MAC地址字符串描述符索引
  • bmEthernetStatistics:以太网统计能力位图
  • wMaxSegmentSize:最大段大小
  • wNumberMCFilters:多播过滤器数量及类型
  • bNumberPowerFilters:唤醒模式过滤器数量

0 篇笔记 写笔记

ECM 以太网网络功能描述符
以太网网络功能描述符(Ethernet Networking Functional Descriptor)用于描述通信类接口支持的以太网操作模式(SubClass code为以太网网络控制)。该描述符只能出现在接口描述符的类特定部分。描述符结构偏移字段名大小类型/值描述0......
CDC 以太网网络功能描述符
Ethernet Networking Functional Descriptor(以太网网络功能描述符以太网网络功能描述符用于描述USB以太网设备的MAC地址、统计能力、最大帧长、多播和电源管理过滤能力等关键信息,是USB以太网设备描述符链中的核心部分。该描述符用于描述通信类接口(SubCla......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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