3. USB复位机制:复位信号时序、复位后的设备状态、总线复位与设备复位区别

USB复位是枚举流程中最重要的物理层事件之一。主机通过复位信号将设备置于已知初始状态,迫使设备重新响应默认地址(0x00)并等待主机发送请求。理解复位信号的时序参数、设备状态迁移以及两种复位类型的差异,是排查枚举失败、设备无响应、地址冲突等故障的基础。

3.1 复位信号时序

USB总线复位由主机控制器(或集线器)主动驱动。复位期间,主机将D+和D-两条差分数据线同时拉低(SE0状态)并保持规定时长。设备检测到SE0持续超过2.5 µs后,即判定为复位开始。

参数 最小值 典型值 最大值 说明
复位持续时间(TRST) 10 ms 10–20 ms 20 ms 主机驱动SE0的时长
设备检测阈值(TDET) 2.5 µs — — 设备识别复位的最小SE0宽度
复位恢复时间(TRSTRCY) 10 ms — — 复位结束后设备准备就绪的时间
复位后帧起始(SOF)延迟 — — 3 ms 主机在复位结束后发送首个SOF
排查要点: 使用USB分析仪捕获复位波形时,应重点检查SE0持续时间是否在10–20 ms范围内。若复位时长不足10 ms,部分设备可能无法正确复位;若超过20 ms,主机控制器可能报错或超时。
复位信号波形关键特征:
  • 复位前:总线处于空闲状态(J状态:全速/低速设备D+高、D-低;高速设备D+低、D-高)。
  • 复位中:D+和D-同时为低(SE0),持续10–20 ms。
  • 复位后:主机发送帧起始包(SOF),设备开始监听默认地址。
USB复位信号时序图 USB复位信号时序图 0 10 ms 20 ms 30 ms t D+ D- 空闲 复位(SE0) 恢复 SOF 说明:复位期间D+和D-同时为低(SE0),持续10–20 ms;复位结束后主机发送SOF,设备进入默认状态。

3.2 复位后的设备状态

USB设备在检测到复位信号结束后,必须进入以下预定义状态。这些状态由USB 2.0规范定义,是枚举流程的起点。

状态 描述 关键行为
默认状态(Default) 设备复位后的初始状态 地址为0x00;仅响应控制传输;等待主机发送设置包
地址状态(Address) 主机分配唯一地址后 设备使用新地址响应;仍处于未配置状态
配置状态(Configured) 主机发送Set Configuration后 设备按配置描述符启用功能;可进行数据传输
挂起状态(Suspended) 总线空闲超过3 ms 设备进入低功耗模式;可远程唤醒
常见故障: 设备复位后未正确进入默认状态,可能表现为:
  • 设备未将地址重置为0x00,导致主机无法通过默认地址访问。
  • 设备未复位端点0(控制端点),导致控制传输失败。
  • 设备未清除之前的配置状态,导致枚举流程混乱。
复位后设备状态迁移图 复位后设备状态迁移图 复位 默认状态 地址状态 配置状态 Set Address Set Configuration 说明:复位后设备必须进入默认状态(地址0x00),然后通过Set Address进入地址状态,最后通过Set Configuration进入配置状态。

3.3 总线复位与设备复位区别

在USB协议中,“复位”一词可能指代两种不同的机制:总线复位(Bus Reset) 和 设备复位(Device Reset)。两者在触发方式、作用范围和影响上存在本质区别。

对比维度 总线复位(Bus Reset) 设备复位(Device Reset)
触发方 主机控制器或集线器 设备自身(固件/硬件)
作用范围 整个USB总线(所有下游设备) 单个设备内部
信号表现 D+和D-同时拉低(SE0)持续10–20 ms 设备内部逻辑复位,不改变总线电平
设备地址 重置为0x00 保持当前地址(除非固件主动重置)
端点状态 所有端点复位到初始状态 由设备固件决定
配置状态 清除配置,回到默认状态 通常保持配置(除非固件主动清除)
典型场景 设备插入、主机启动、错误恢复 设备内部看门狗超时、固件异常恢复
故障排查关键:
  • 如果设备在枚举过程中无响应,首先检查主机是否发送了总线复位信号(SE0)。
  • 如果设备响应但地址或配置异常,可能是设备复位未正确执行,导致状态残留。
  • 设备复位不会改变总线状态,因此不会触发主机重新枚举;总线复位则会强制整个总线重新枚举。
总线复位与设备复位对比图 总线复位与设备复位对比图 总线复位 主机 → 集线器 → 所有设备 SE0信号持续10–20 ms 设备地址重置为0x00 设备复位 设备内部触发(看门狗/固件) 内部逻辑复位,总线不变 地址/配置可能保持 关键区别: 1. 总线复位由主机发起,影响整个总线,强制所有设备回到默认状态。 2. 设备复位由设备自身发起,仅影响单个设备,总线状态不受影响。 3. 排查时需区分:总线复位失败通常表现为所有设备无响应;设备复位失败表现为单个设备异常。

3.4 复位相关故障排查清单

在实际调试中,复位相关故障是最常见的枚举失败原因之一。以下清单可帮助快速定位问题。

故障现象 可能原因 排查方法
设备插入后无任何响应 总线复位未发送或时长不足 使用分析仪捕获SE0波形,检查持续时间
设备响应但地址错误 设备未正确重置地址为0x00 检查设备固件复位处理逻辑
设备枚举中途失败 复位后恢复时间不足 检查TRSTRCY是否满足10 ms要求
多个设备同时插入时部分无响应 集线器复位能力不足 检查集线器供电和复位驱动能力
设备在运行中突然断开 总线复位被意外触发 检查总线噪声或主机控制器异常
调试建议:
  • 使用USB协议分析仪(如Beagle USB、Ellisys)捕获复位事件,重点关注SE0持续时间和复位后的首个SOF。
  • 在设备固件中增加复位检测日志,记录复位发生的时间和次数。
  • 对于高速设备,注意复位后主机可能进行高速检测握手(Chirp J/K),这是复位流程的一部分。