USB网络控制通讯NCM
+ -

NCM 远程唤醒和网络流量

2025-07-08 0 0

包含NCM功能的USB设备可能支持远程唤醒。远程唤醒可能在两种一般情况下使用:

远程唤醒的两种情况

1. 链路选择性挂起唤醒(”链路挂起”)

  • 唤醒已被选择性挂起的链路

2. 系统挂起唤醒(”系统挂起”)

  • 从系统挂起状态唤醒USB主机

注意:功能无法在总线级别区分情况1和2。

情况区分机制

NCM功能基于主机是否使用SetEthernetPowerManagementPatternFilter设置活动电源管理过滤器来区分这两种情况:

  • 如果GetEthernetPowerManagementPatternFilter在设备或功能进入挂起时返回0001h:遵循7.3.2中的系统挂起规则
  • 否则:遵循7.3.1中的链路挂起规则

7.3.1 链路挂起的远程唤醒规则

如果远程唤醒已启用且设备已挂起,NCM功能应在以下所有条件满足时请求远程唤醒:

条件要求

  1. 时间要求:自挂起以来经过足够时间,允许根据[USB30]发出远程唤醒信号
  2. 唤醒状态:功能尚未发出远程唤醒信号或从上游集线器接收远程唤醒
  3. 接口设置:在挂起之前为数据接口选择了非零备用设置
  4. 数据可用:以下任一条件:
    • 通过数据接口的批量IN管道为主机提供网络流量
    • 通过通信接口的中断IN管道为主机提供通知

额外说明

  • USB设备可以定义额外的远程唤醒条件
  • 这些条件足以允许主机驱动程序透明地挂起NCM功能以节省系统和设备电源
  • 在链路挂起期间,功能应尽最大努力保留导致唤醒条件的网络流量和通知

7.3.2 系统挂起的远程唤醒规则

如果远程唤醒已启用且设备已挂起,NCM功能应在以下所有条件满足时请求远程唤醒:

条件要求

  1. 时间要求:自挂起以来经过足够时间,允许根据[USB30]发出远程唤醒信号
  2. 唤醒状态:功能尚未发出远程唤醒信号或从上游集线器接收远程唤醒
  3. 接口设置:在挂起之前为数据接口选择了非零备用设置
  4. 过滤器匹配:从网络接收到匹配以太网电源管理过滤器模式的数据包

重要行为

  • 在链路挂起期间:功能应观察网络连接性和连接速度的变化,但这些变化不应导致发出远程唤醒信号
  • 恢复后:如果网络连接性或连接速度与链路挂起时的状态相比发生变化,功能应发送ConnectionSpeedChange和NetworkConnect通知以通知主机新的网络连接状态
  • 数据丢弃:功能挂起期间接收的网络流量(除了匹配电源管理过滤器的数据包)应被功能丢弃

总结

  • 链路挂起:基于网络流量和通知唤醒
  • 系统挂起:仅基于电源管理过滤器匹配唤醒
  • 状态保持:链路挂起时保留数据,系统挂起时丢弃数据
  • 通知机制:恢复后报告状态变化

0 篇笔记 写笔记

NCM 远程唤醒和网络流量
包含NCM功能的USB设备可能支持远程唤醒。远程唤醒可能在两种一般情况下使用:远程唤醒的两种情况1. 链路选择性挂起唤醒(”链路挂起”)唤醒已被选择性挂起的链路2. 系统挂起唤醒(”系统挂起”)从系统挂起状态唤醒USB主机注意:功能无法在总线级别区分情况1和2。情况区分机制NCM功能基于......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB网络控制通讯NCM
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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