USB3知识点
+ -

USB3 Hot Reset

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

Host Reset也为Port Reset

Hot Reset 寄存器

PORTSC:bit4 Port Reset (PR) – RW1S. Default = ‘0’. ‘1’ = Port Reset signaling is asserted. ‘0’ = Port is not inReset. When software writes a ‘1’ to this bit (from a ‘0’) the bus reset sequence is initiated;USB2 protocol ports shall execute the bus reset sequence as defined in the USB2 Spec. USB3 protocol ports shall execute the Hot Reset sequence as defined in the USB3 Spec. PR remains set until reset signaling is completed by the root hub.

USB3.x Hot Reset(热复位)流程

前置核心限定

Hot Reset 是仅能在 U0 工作链路状态下发起的链路复位;不使用 LFPS,依靠高速 8b/10b 训练有序集 TS1/TS2;无法唤醒 U1/U2/U3 低功耗设备;同样会触发设备 Function Reset、地址清零,必须重枚举。

一、阶段1:软件发起 Hot Reset,链路进入 Recovery 状态

1. 发起主体

xHCI 主机下行端口、Hub 下行端口。

2. 寄存器触发

PORTSC Bit4 = PR(Port Reset),置1发起 Hot Reset;
与 Warm Reset 的 WR(Bit21)互斥,不可同时置位。

3. 硬件前置动作

端口立即中止所有正在进行的 Control/Bulk/Interrupt/Isoc 传输,丢弃未完成 TRB。

4. LTSSM 跳转硬性约束

只有链路当前处于 U0 时,置 PR 才会生效;
LTSSM 跳转路径:U0 → Recovery

关键区别 Warm Reset:任意状态直接进 Reset 状态机;Hot Reset 专用状态是 Recovery,而非 Reset。
若链路此时在 U1/U2/U3/Inactive,写 PR 位无效,硬件不会执行 Hot Reset。

二、阶段2:Recovery 状态下发 Hot Reset TS1 序列(核心物理层动作)

Hot Reset 完全依靠高速数据流 TS1 有序集,无 LFPS 脉冲。

  1. 主机下行持续发送带 Hot Reset 标记的 TS1 训练序列;
  2. 规范最小发送时长:T_HotReset;持续发送 TS1 直至收到对端应答;
  3. 底层逻辑:TS1 嵌入正常高速差分信号,工作在 5G/10Gbps 线速率,不需要低频唤醒机制;
  4. 局限性:链路如果处于 U1/U2/U3,设备接收端终端电阻关闭,无法识别高速 TS1,因此 Hot Reset 不能唤醒休眠设备。

三、阶段3:设备端检测 Hot Reset、回复 TS2、执行 Function Reset

  1. 设备上行接收持续 TS1 Hot Reset 序列,判定复位请求;
  2. 在规定时序窗口内,向上游回发 TS2 有序集作为握手应答;
  3. 同步执行设备 Function Reset(和 Warm Reset 复位效果一致):
    • 清空所有端点状态、管道、带宽分配;
    • 设备 USB 地址强制置 0(默认地址);
    • 清除已激活配置、接口状态;
  4. 设备本地 LTSSM 同步切到 Recovery,配合主机完成握手。

四、阶段4:握手完成,退出 Recovery,进入 Electrical Idle

  1. 主机收到设备回复的 TS2 应答序列,停止发送 Hot Reset TS1;
  2. 两端 PHY 关闭训练序列输出,进入标准 Electrical Idle;
  3. LTSSM 退出 Recovery,跳转至 Polling 链路训练状态。

五、阶段5:Polling 重训练 + 完整设备重枚举

流程和 Warm Reset 复位后的恢复流程完全一致:

  1. Polling.RxDetect:检测对端接收终端,确认物理连接存在;
  2. 交互 TS1/TS2:比特锁、符号锁、速率协商、均衡参数调整;
  3. 链路协商完成进入 U0 工作态;
  4. 主机软件重枚举:
    SetPortFeature 确认复位完成 → 读取地址0设备描述符 → SetAddress 分配新地址 → 加载驱动、分配带宽。

典型使用场景

  1. 设备在 U0 高速传输中卡死、传输流控死锁、CRC 持续报错;
  2. 普通链路瞬时误码、短暂信道干扰,无需唤醒休眠的场景;
  3. Hub 下行端口活动设备通信异常,链路未进入低功耗。

Hot Reset 与 Warm Reset 核心对比汇总

对比维度 Hot Reset Warm Reset
触发寄存器 PORTSC.PR Bit4 PORTSC.WR Bit21
LTSSM 目标状态 Recovery Reset
允许发起的链路状态 仅 U0 U0/U1/U2/U3/Inactive 全部
物理层信令 高速 TS1/TS2 有序集 LFPS 20MHz低频脉冲
低功耗唤醒能力 不能唤醒 U1/U2/U3 强制唤醒所有省电状态
最小发送时序 T_HotReset TReset = 3.5ms
设备内部复位 Function Reset,地址清零 Function Reset,地址清零
适用场景 U0 传输链路故障 休眠Resume、低功耗死锁、深度链路失联

补充:关键易错点总结

  1. Hot Reset 不用 LFPS,只有 Warm Reset 使用 LFPS;
  2. Hot Reset 不能在休眠链路使用,这是二者最核心工程区分点;
  3. 两种复位都会让设备地址归零,都需要完整重枚举,清地址不是 Warm Reset 独有特性
  4. Cold Reset(断电上电复位)不属于链路复位,会同时复位 PHY 供电,二者均为带电逻辑链路复位。
本文链接为:http://www.usbzh.com/article/detail-1772.html ,欢迎转载,转载请附上本文链接。

0 篇笔记 写笔记

USB3 Hot Reset
Host Reset也为Port ResetHot Reset 寄存器PORTSC:bit4 Port Reset (PR) – RW1S. Default = ‘0’. ‘1’ = Port Reset signaling is asserted. ‘0’ = Port is not inRes......
关注公众号
  • HID人机交互
  • Linux&USB
  • Linux-USB百科
  • MIDI V1.0
  • TinyUSB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB3测试
  • USB3知识点
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • USB资源
  • XHCI 1.2b 规范
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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