USB3.2超高速协议规范
+ -

Rx.Detect 子状态机

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

一、基本概念

1.1 什么是 Rx.Detect?

Rx.Detect 是 LTSSM(链路训练与状态机)上电初始状态,用于检测对端设备是否存在。无论是下行端口(Downstream Port,简称 DS,即主机端或 Hub 的下行口)还是上行端口(Upstream Port,简称 UP,即设备端或 Hub 的上行口),在以下情况下都会进入 Rx.Detect 状态:

  • 端口上电启动时;
  • 下行端口主动发出 Warm Reset 信号后;
  • 上行端口检测到 Warm Reset 信号时(除非当前处于 eSS.Disabled 状态)。

1.2 Rx.Detect 的核心目的

Rx.Detect 的唯一任务是:检测远端接收端是否存在低阻抗终端(即对端设备的物理连接是否到位)。这个低阻抗终端在规范中被称为 RRX-DC,可以简单理解为“对端存在的标志”。

1.3 端口角色说明

缩写 全称 通俗理解
DS Downstream Port(下行端口) 主机端或 Hub 向下的口,扮演“管理者”角色
UP Upstream Port(上行端口) 设备端或 Hub 向上的口,扮演“从属方”角色

在整个 Rx.Detect 过程中,DS 和 UP 的行为规则有所不同,主要体现在超时时间是否可被软件控制上。

二、Rx.Detect 的三个子状态

Rx.Detect 内部包含 3 个子状态,依次为:

  1. Rx.Detect.Reset —— 复位同步
  2. Rx.Detect.Active —— 执行检测
  3. Rx.Detect.Quiet —— 省电休眠

2.1 Rx.Detect.Reset(复位同步)

这是 Warm Reset 后的默认复位状态,用于让 DS 和 UP 同步操作:

  • 下行端口(DS):在此状态下发送 Warm Reset 信号,持续一段固定时间后退出。
  • 上行端口(UP):在此状态下等待 DS 发来的 Warm Reset 信号结束,然后退出。
  • 如果进入 Rx.Detect 不是因为 Warm Reset(例如直接上电),则该子状态会立即退出,跳到 Active 开始检测。

2.2 Rx.Detect.Active(执行检测)

这是真正执行远端终端检测的子状态:

  • 发送端会执行一次对端终端阻抗检测,判断是否存在 RRX-DC(即对端是否连接)。
  • 上行端口(UP) 需要计数检测次数(最多 8 次),用于后续判断是否需要进入禁用状态。

2.3 Rx.Detect.Quiet(省电休眠)

这是省电子状态,检测功能被暂时关闭:

  • 端口在此状态下停止检测以节省功耗。
  • 同时启动一个休眠定时器
    • 下行端口(DS):定时器超时时间为 12ms ~ 120ms(可配置)。
    • 上行端口(UP):定时器超时时间为 12ms(固定)。
  • 定时器超时后,端口会自动唤醒,回到 Active 状态重新执行检测。

三、子状态之间的转换规则

3.1 Reset → Active(进入检测)

满足以下任一条件即可从 Reset 进入 Active:

场景 说明
① 非 Warm Reset 进入 如直接上电,不涉及复位,立即跳过 Reset
② DS 发送完 Warm Reset 下行端口发送完持续固定时间的复位信号
③ UP 检测到复位结束 上行端口发现来自 DS 的 Warm Reset 信号已消失

3.2 Reset → eSS.Disabled(禁用)

仅限下行端口(DS)在收到软件/上层指令(Directed)时,可直接从 Reset 跳转到 eSS.Disabled(禁用状态,回退 USB 2.0)。

上行端口 没有 这个能力,因为设备端无权主动切断链路。

3.3 Active → Polling(检测成功)

当在 Active 状态成功检测到对端终端电阻(RRX-DC) 时,端口进入下一个 LTSSM 状态 —— Polling(链路训练状态)

这是整个 Rx.Detect 流程的唯一成功出口,标志着一个有效的链路伙伴已被确认存在。

3.4 Active → Quiet(未检测到)

当在 Active 状态未检测到对端终端电阻时:

端口类型 行为
DS 直接进入 Quiet,等待定时器超时后重测
UP(Hub 上行口) 同样直接进入 Quiet,等待定时器超时后重测
UP(外设,如 U 盘) 如果检测次数 < 8 次,进入 Quiet 等待重测;如果已达 8 次,则直接进入 eSS.Disabled(回退 USB 2.0)

3.5 Active → eSS.Disabled(异常退出)

满足以下任一条件可从 Active 进入 eSS.Disabled:

条件 适用端口
软件/上层指令(Directed)要求禁用 仅 DS
外设已连续检测 8 次仍未发现对端 仅 UP(外设)

3.6 Quiet → Active(周期性唤醒)

当 Quiet 状态下的休眠定时器超时时:

端口类型 超时时间 行为
DS 12ms ~ 120ms 唤醒并回到 Active,重新执行检测
UP 12ms(固定) 唤醒并回到 Active,重新执行检测

这就构成了“检测 → 休眠 → 唤醒 → 再检测”的周期性循环,直到检测成功或超时退出。

3.7 Quiet → eSS.Disabled(异常退出)

仅限下行端口(DS)在收到软件/上层指令(Directed)时,可从 Quiet 直接跳转到 eSS.Disabled

四、完整状态转换图

101810581087

五、关键规则速查表

当前状态 触发条件 下一状态 适用端口
Reset 非 Warm Reset 进入(如直接上电) Active DS / UP
Reset DS 发完 Warm Reset 信号 Active 仅 DS
Reset UP 检测到 Warm Reset 结束 Active 仅 UP
Reset 软件指令要求禁用 eSS.Disabled 仅 DS
Active 检测到对端终端电阻 Polling(成功) DS / UP
Active 未检测到对端终端电阻 Quiet DS / UP(Hub)
Active 未检测到且外设计数 < 8 次 Quiet 仅 UP(外设)
Active 未检测到且外设计数 = 8 次 eSS.Disabled 仅 UP(外设)
Active 软件指令要求禁用 eSS.Disabled 仅 DS
Quiet 休眠定时器超时(DS:12~120ms) Active 仅 DS
Quiet 休眠定时器超时(UP:12ms) Active 仅 UP
Quiet 软件指令要求禁用 eSS.Disabled 仅 DS

六、重要行为差异总结

6.1 下行端口(DS)vs 上行端口(UP)

行为项 DS(下行端口) UP(上行端口)
是否可被软件指令强制禁用 可以 不可以
休眠定时器超时时间 12ms ~ 120ms(可配置) 12ms(固定)
是否需计数检测次数 不需要 需要(最多 8 次)
主动发出 Warm Reset 可以 不可以
被动接收 Warm Reset 不接收 接收并响应

6.2 外设(Peripheral Device)的特殊规则

普通 UP(如 Hub 上行口)和外设 UP(如 U 盘)在未检测到对端时的行为不同:

  • 普通 UP(Hub):未检测到 → 直接进入 Quiet 等待重测(无限循环,直到检测成功或被 DS 复位)
  • 外设 UP(U 盘等):未检测到时计数 +1,如果计数 < 8 则进入 Quiet;如果计数 = 8 则直接进入 eSS.Disabled

为什么外设要限次? 这是为了兼容传统平台:如果外设在 80ms 内(8 次 × 10ms)检测不到对端,就主动回退到 USB 2.0 模式,避免用户感知到过长的枚举等待时间。

6.3 唯一成功出口

在所有路径中,唯一能让 Rx.Detect 成功进入下一状态(Polling)的条件是:

在 Active 状态成功检测到对端的低阻抗终端(RRX-DC)。

其他所有路径最终都通向 eSS.Disabled(禁用/回退 USB 2.0)。


总结

Rx.Detect 是一个“检测-休眠-重测”的周期性状态机,只有检测到对端连接才能进入后续的链路训练,否则最终会因超时或次数限制而禁用 Enhanced SuperSpeed 链路。

本文链接为:http://www.usbzh.com/article/detail-1765.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 篇笔记 写笔记

USB3 RX检测电路
1.发起检测位置:主机 TX (SSTX) 通道功能:集成专用检测电路,主动产生探测电压并完成最终的状态采样判断。2 检测对象位置:设备 RX (SSRX) 通道元件:内置 R_Term 终端电阻,作为被主机探测的被动负载特征。3 逻辑通路关系主机的 SSTX 发送通道与设备的 SSRX 接收......
Rx.Detect 子状态机
一、基本概念1.1 什么是 Rx.DetectRx.Detect 是 LTSSM(链路训练与状态机) 的上电初始状态,用于检测对端设备是否存在。无论是下行端口(Downstream Port,简称 DS,即主机端或 Hub 的下行口)还是上行端口(Upstream Port,简称 UP,即设备端或......
关注公众号
  • HID人机交互
  • Linux&USB
  • Linux-USB百科
  • MIDI V1.0
  • TinyUSB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB3测试
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • USB资源
  • XHCI 1.2b 规范
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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