USB CDC
+ -

CDC GetEthernetStatistic

2025-07-11 0 0

1. GetEthernetStatistic 请求用途

GetEthernetStatistic 用于根据特性选择器检索统计信息。
主机通过此请求获取设备的以太网统计信息,返回的值表示自设备上电或复位以来发生的匹配指定统计信息的帧数量。这是一个32位无符号整数,每次发生时递增,如果达到最大值则回绕到0。


2. USB 控制传输格式

字段 值/说明
bmRequestType 0xA1 (10100001B) 方向:设备到主机,类型:类,接收者:接口
bRequest 0x44 (GET_ETHERNET_STATISTIC)
wValue 特性选择器(Feature Selector,见下表)
wIndex 接口号
wLength 4
Data 32位无符号整数(设备返回的统计值)

3. Ethernet Statistics Feature Selector Codes(Table 63)

特性选择器 代码 目标 数据长度 描述
RESERVED 0x00 None None 保留供将来使用
XMIT_OK 0x01 Interface 4 无错误传输的帧
RCV_OK 0x02 Interface 4 无错误接收的帧
XMIT_ERROR 0x03 Interface 4 未传输或传输错误的帧
RCV_ERROR 0x04 Interface 4 接收错误的帧
RCV_NO_BUFFER 0x05 Interface 4 错过的帧,无缓冲区
DIRECTED_BYTES_XMIT 0x06 Interface 4 无错误传输的定向字节
DIRECTED_FRAMES_XMIT 0x07 Interface 4 无错误传输的定向帧
MULTICAST_BYTES_XMIT 0x08 Interface 4 无错误传输的多播字节
MULTICAST_FRAMES_XMIT 0x09 Interface 4 无错误传输的多播帧
BROADCAST_BYTES_XMIT 0x0A Interface 4 无错误传输的广播字节
BROADCAST_FRAMES_XMIT 0x0B Interface 4 无错误传输的广播帧
DIRECTED_BYTES_RCV 0x0C Interface 4 无错误接收的定向字节
DIRECTED_FRAMES_RCV 0x0D Interface 4 无错误接收的定向帧
MULTICAST_BYTES_RCV 0x0E Interface 4 无错误接收的多播字节
MULTICAST_FRAMES_RCV 0x0F Interface 4 无错误接收的多播帧
BROADCAST_BYTES_RCV 0x10 Interface 4 无错误接收的广播字节
BROADCAST_FRAMES_RCV 0x11 Interface 4 无错误接收的广播帧
RCV_CRC_ERROR 0x12 Interface 4 接收的CRC或FCS错误帧
TRANSMIT_QUEUE_LENGTH 0x13 Interface 4 传输队列长度
RCV_ERROR_ALIGNMENT 0x14 Interface 4 接收的对齐错误帧
XMIT_ONE_COLLISION 0x15 Interface 4 一次冲突传输的帧
XMIT_MORE_COLLISIONS 0x16 Interface 4 多次冲突传输的帧
XMIT_DEFERRED 0x17 Interface 4 延迟后传输的帧
XMIT_MAX_COLLISIONS 0x18 Interface 4 因冲突未传输的帧
RCV_OVERRUN 0x19 Interface 4 因溢出未接收的帧
XMIT_UNDERRUN 0x1A Interface 4 因下溢未传输的帧
XMIT_HEARTBEAT_FAILURE 0x1B Interface 4 心跳失败传输的帧
XMIT_TIMES_CRS_LOST 0x1C Interface 4 传输期间载波检测信号丢失次数
XMIT_LATE_COLLISIONS 0x1D Interface 4 检测到的延迟冲突

4. 典型主机端请求示例

C 结构体示例:

uint32_t statistic_value;

USB_SETUP_PACKET setup = {
    .bmRequestType = 0xA1,           // 设备到主机,类,接口
    .bRequest = 0x44,                // GET_ETHERNET_STATISTIC
    .wValue = 0x0001,                // XMIT_OK
    .wIndex = interface_number,      // 通信接口号
    .wLength = 4                     // 4字节统计值
};
// 发送setup包,读取statistic_value数据

5. 设备端处理要点

  • 解析wValue中的特性选择器。
  • 根据选择器返回相应的32位统计值。
  • 确保统计值准确反映设备的实际状态。
  • 完成后通过状态阶段(Status Stage)ACK主机。

6. 常见应用场景

场景 特性选择器 代码 说明
传输统计 XMIT_OK 0x01 获取成功传输的帧数
接收统计 RCV_OK 0x02 获取成功接收的帧数
错误统计 RCV_ERROR 0x04 获取接收错误的帧数
队列长度 TRANSMIT_QUEUE_LENGTH 0x13 获取传输队列长度

7. 参考

0 篇笔记 写笔记

ECM GetEthernetStatistic请求
GetEthernetStatistic 请求用于获取设备的以太网统计信息,根据特定的功能选择器(Feature Selector)返回自设备上电或复位以来的统计计数。请求格式字段值/说明描述bmRequestType10100001B设备到主机,类请求,接口bRe......
CDC GetEthernetStatistic
1. GetEthernetStatistic 请求用途GetEthernetStatistic 用于根据特性选择器检索统计信息。主机通过此请求获取设备的以太网统计信息,返回的值表示自设备上电或复位以来发生的匹配指定统计信息的帧数量。这是一个32位无符号整数,每次发生时递增,如果达到最大值则回绕到0......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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