USB-CDC-ECM以太网控制模型设备
+ -

ECM 以太网网络功能描述符

2025-07-10 0 0

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


描述符结构

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

bmEthernetStatistics 位定义表

位 (Dn) 字段名 描述
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-D31 RESERVED 保留,必须为零

说明

  • bFunctionLength:描述符长度(字节)
  • bDescriptorType:固定为CS_INTERFACE
  • bDescriptorSubtype:以太网网络功能描述符子类型
  • iMACAddress:指向MAC地址的字符串描述符索引,12位十六进制字符,网络字节序
  • bmEthernetStatistics:以太网统计功能位图,详见后续表格
  • wMaxSegmentSize:最大以太网帧长度(不含CRC)
  • wNumberMCFilters:多播过滤器数量及类型
  • bNumberPowerFilters:支持的电源管理模式过滤器数量

示例(结构体定义)

typedef struct _ETHERNET_NETWORKING_FUNCTIONAL_DESCRIPTOR {
    uint8_t  bFunctionLength;
    uint8_t  bDescriptorType;
    uint8_t  bDescriptorSubtype;
    uint8_t  iMACAddress;
    uint32_t bmEthernetStatistics;
    uint16_t wMaxSegmentSize;
    uint16_t wNumberMCFilters;
    uint8_t  bNumberPowerFilters;
} ETHERNET_NETWORKING_FUNCTIONAL_DESCRIPTOR;

总结

以太网网络功能描述符为主机提供了设备的MAC地址、统计能力、最大帧长、多播和电源管理过滤能力等关键信息,是USB以太网设备描述符链中的核心部分。

0 篇笔记 写笔记

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

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

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