USB集线器的挂起Suspend与唤醒Resume
2026-04-23
本文链接为:http://www.usbzh.com/article/detail-1626.html ,欢迎转载,转载请附上本文链接。
USB集线器是主机与设备之间的桥梁,所以USB集线器的数据会分为至上游的数据传输信息和至下游的数据传输信息。
当USB集线器挂机时,主机和USB设备都可以唤醒USB集线器。

主机唤醒
- 当唤醒信号来源于主机时,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 状态),设备退出挂起模式。
复位与唤醒

| 时刻 | 事件描述 |
|---|---|
| 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)
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
USB2.0集线器HUB





