USB2.0集线器HUB
+ -

USB集线器的挂起Suspend与唤醒Resume

2026-04-23 本文链接为:http://www.usbzh.com/article/detail-1626.html ,欢迎转载,转载请附上本文链接。

USB集线器是主机与设备之间的桥梁,所以USB集线器的数据会分为至上游的数据传输信息和至下游的数据传输信息。
当USB集线器挂机时,主机和USB设备都可以唤醒USB集线器。

USB集线器的挂起Suspend与唤醒Resume

主机唤醒

  • 当唤醒信号来源于主机时,USB集线器会将唤醒信息转发至下游所有连接可用的端口。

USB设备

  • 当唤醒信号来源于下游设备时(这个设备可以是选择性挂机的设备),USB集线器不仅会将唤醒信号传输至主机,也会转发到下游所有连接可用的端口。
    • 唤醒信号只会传输至使能的端口,不会传输至被禁用的端口。
    • USB集线器收到唤醒信号后,也会对这个唤醒信号来源的下游的端口也发送唤醒信号
阶段 1:下游设备发起唤醒 (Device-Initiated Resume)
  • 设备驱动 K 状态:挂起中的下游设备(如键盘、鼠标)在等待至少 5ms 的空闲(Idle)状态后,开始在 D+ 线上驱动 K 状态(Resume 信号)。
  • 集线器检测与转发:集线器检测到这个 K 状态后,会在 100µs 内“反射”这个信号。它会驱动 K 状态到所有其他端口(包括上游发往主机、以及下游其他使能端口)。
  • 关键点:此时总线上存在两个驱动源(设备和集线器)同时驱动 K 状态,这符合规范设计,不存在“严重冲突”问题。
  • 信号持续:这个 K 状态必须持续至少 1ms,但不超过 15ms。
阶段 2:主机响应与接管 (Host-Initiated Resume)
  • 主机检测与驱动:主机集线器(Root Hub)检测到上游端口传来的 K 状态后,从挂起状态唤醒。主机随后接管总线,主动向下游发出 Resume 信号(K 状态)。

  • 集线器切换:当集线器检测到主机发来的 K 状态时,它会停止自己之前反射的 K 状态,转而中继主机的信号向下游广播。

  • 结束与恢复:主机驱动 K 状态至少 20ms,然后驱动 SEO (Single-Ended Zero) 状态约 1.3µs 作为“结束恢复”(EOP)信号。之后总线恢复空闲(J 状态),设备退出挂起模式。

复位与唤醒

154557961376

时刻 事件描述
t0 挂起的设备(Device)通过数据线驱动 K 状态,发起远程唤醒。
t1 挂起的集线器 B 在下行端口检测到 K 状态,在 900µs 内完成唤醒,并向上游和所有使能的下行端口反射 Resume 信号。
t2 集线器 A(未挂起,但连接 B 的端口是选择性挂起)在挂起端口检测到 K 状态,也在 900µs 内完成滤波,并向 B 反射 Resume 信号。
t3 设备停止向上游驱动 K 状态。
t4 集线器 B 停止向上游和所有使能下行端口驱动 K 状态,开始将上游信号中继到所有使能的下行端口
t5 集线器 A 完成 Resume 序列,在合适的时间间隔后,向下游发送速度匹配的结束 Resume 信号(对高速设备是 Idle 状态,对全速/低速设备是低速 EOP)。

两张图的信号驱动和反射流程完全相同,唯一区别在 t5 时刻的结束方式:全速/低速设备用 EOP 结束 Resume,高速设备直接进入 Idle 状态。

项目 Figure 11-17 (Full-/Low-speed) Figure 11-18 (High-speed)
t5 结束 Resume 的方式 发送 低速 EOP (End of Packet) 直接进入 Idle 状态
原因 全速/低速设备需要 EOP 来明确结束 Resume 信号 高速设备使用空闲状态作为 Resume 结束标志
波形表现 Resume (‘K’) → EOP → Idle (‘J’) Resume (‘K’) → 直接 Idle (‘J’)

EOR

EOR:End of Resume(恢复结束)
信号形式:

  • 主机驱动 SE0(两根线 D+/D- 都拉低)
  • 持续 ≥ 1 µs(通常 1.3µs)
  • 之后释放总线,回到 J 状态(Idle)
本文链接为:http://www.usbzh.com/article/detail-1626.html ,欢迎转载,转载请附上本文链接。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936     USB技术交流3:1031974172

0 篇笔记 写笔记

USB设备的休眠挂起及远程唤醒
USB协议的第9章讲到USB可见设备状态,分为连接(Attached),上电(Powered),默认(Default),地址(Address),配置(Configured)和挂起(Suspended)6个状态。所谓可见,即USB系统和主机可见的状态,其他状态属于USB设备内部而不可见。其中有关电源的......
USB设备复位、挂起和恢复命令
USB主机除了在正常的操作期间发送到设备的控制命令外,主机还可以发出三种独特的信号条件:复位、挂起或恢复挂起的设备。设备复位RESET在枚举过程中,主机向设备发出复位信号。注意此USB 复位与硬件或上电复位不相同,是两个概念。USB 复位的目的是设置设备的软件状态,以便进行枚举。当 D- 和 D......
USB键盘定义HID报告描述符一键关机、唤醒和睡眠功能
这是本人电脑的USB键盘复合设备中的一个HID功能,用于实现一键关机,唤醒机器和一键进入睡眠状态。使用USB标准请求及描述符在线分析工具http://www.usbzh.com/tool/usb.html 分析该报告描述符0x05, 0x01, // Usage Page (Gene......
带系统唤醒、睡眠、关机的HID鼠标报告描述符
0x05, 0x01, // Usage Page (Generic Desktop Ctrls)0x09, 0x02, // Usage (Mouse)0xA1, 0x01, // Collection (Application)0x85, 0x01......
HID设备电源控制IOCTL_GET_SYS_BUTTON_CAPS
IOCTL_GET_SYS_BUTTON_CAPS 用于获取HID支持的电源功能。在HID报告描述符USAGE_PAGE(0X01)中为:Usage IDUsage NameUsage TypesSection81System Power DownOSC4.582......
USB设备远程唤醒RemoteWakeUp
USB设备的Remote Wakeup是可选的,其功能用于远程唤醒待机状态下的主机。USB设备通过配置描述符bmAttributes字段的D5标识其是否支持远程唤醒。支持远程唤醒的USB设备必须支持USB的标准请求CLEAR_FEATURE和SET_FEATURE。USB主机通过SET_FEATU......
从Windows驱动层WDM理解USB设备电源管理的休眠和唤醒
Windows电源管理的IPR是通过主功能号IRP_MJ_POWER实现的,其中有4个子功能号,分别为:#define IRP_MN_WAIT_WAKE 0x00#define IRP_MN_POWER_SEQUENCE 0x01......
USB全速设备的挂起唤醒Resume
在介绍USB全速设备挂起Suspend、唤醒Resume之前先介绍USB全速设备的硬件连接方式。USB全速设备的连接USB全速设备的硬件连接和USB高速设备的硬件连接方式一样。区别是全速设备不会触发高速的协商。内容详见:USB2.0设备从全速模式到高速模式的识别过程及速率协商 https://ww......
USB设备挂起Supsend及唤醒Resume实现
为什么需要进行USB唤醒挂起答案就是电源管理,节能。连接到USB主机端的设备必须遵守主机功率预算求。USB总线电源是一种有限的资源。USB设备(总线供电或自供电)必须将VBUS的功耗限制在更低直到它们进入配置状态。作为一种省电方式,当USB设备观察到超过3ms没有总线活动(恒定空闲状态),它们进入......
NCM 远程唤醒和网络流量
包含NCM功能的USB设备可能支持远程唤醒。远程唤醒可能在两种一般情况下使用:远程唤醒的两种情况1. 链路选择性挂起唤醒(”链路挂起”)唤醒已被选择性挂起的链路2. 系统挂起唤醒(”系统挂起”)从系统挂起状态唤醒USB主机注意:功能无法在总线级别区分情况1和2。情况区分机制NCM功能基于......
USB集线器的挂起Suspend与唤醒Resume
USB集线器是主机与设备之间的桥梁,所以USB集线器的数据会分为至上游的数据传输信息和至下游的数据传输信息。当USB集线器挂机时,主机和USB设备都可以唤醒USB集线器。主机唤醒唤醒信号来源于主机时,USB集线器会将唤醒信息转发至下游所有连接可用的端口。USB设备当唤醒信号来源于下游设备......
USB2.0高速设备复位与挂起态的区分
高速模式下,空闲态(Idle)和复位信号(Reset)确实都是 SE0(D+ 和 D- 都为低电平),但设备端有一套精密的机制来区分它们:通过时序长短和后续的设备行为(重新挂起上拉电阻)来判断。判断步骤挂起 (Suspend) 信号复位 (Reset) 信号总线空闲检测到 S......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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