2. USB物理层信号:D+、D-差分信号、上拉/下拉电阻、低速/全速/高速识别机制

USB物理层是枚举过程的基石。主机与设备之间的每一次通信,包括复位、设备描述符请求、地址分配,都依赖于D+和D-两条数据线上的差分信号传输。本节将深入剖析差分信号的电气特性、终端电阻网络以及速度识别机制,这些是理解枚举故障(如设备无法识别、速度协商失败)的关键前提。

2.1 差分信号:D+与D-的电气基础

USB使用半双工差分信号进行数据传输。与单端信号(如UART的TX/RX对地电平)不同,差分信号通过D+与D-之间的电压差来传递逻辑状态,具有更强的抗共模干扰能力。

核心定义: 逻辑“1”(J状态)和逻辑“0”(K状态)由D+与D-的电压差决定。在低速/全速模式下,差分“1”定义为D+ > D-(至少200mV压差),差分“0”定义为D- > D+。
排查提示: 使用示波器测量D+和D-对地波形时,应同时观察两条线的相对电平。如果发现D+和D-波形完全一致(共模噪声),则差分接收器无法解析数据,枚举将立即失败。

下表总结了低速、全速、高速三种模式下的关键电气参数:

参数 低速 (LS) 1.5 Mbps 全速 (FS) 12 Mbps 高速 (HS) 480 Mbps
信号摆幅 0 ~ 3.3V 0 ~ 3.3V 400mV(差分摆幅)
终端匹配 上拉至3.3V 上拉至3.3V 终端匹配电阻(45Ω对地)
J状态(空闲) D-高,D+低 D+高,D-低 D+高,D-低(与FS相同)
K状态 D+高,D-低 D-高,D+低 D-高,D+低
USB差分信号波形示意图(全速模式) D+ D- Vdiff J状态(空闲) K状态 J状态 差分电压 = D+ - D- J状态:Vdiff > 200mV

2.2 上拉/下拉电阻网络:速度识别的物理基础

USB总线上的速度识别不依赖软件握手,而是通过物理层电阻网络在设备连接瞬间完成。主机端(Host)在D+和D-上各有一个15kΩ下拉电阻到地;设备端则根据自身速度等级,在对应的数据线上连接一个1.5kΩ上拉电阻到3.3V。

关键故障点: 如果设备的上拉电阻虚焊或阻值偏差超过±5%,主机将无法正确检测到设备连接,导致枚举无法启动。这是最常见的硬件级枚举故障之一。

速度识别机制如下:

  • 低速设备: 上拉电阻接在D-线上。主机检测到D-被拉高,D+为低,判定为低速设备。
  • 全速设备: 上拉电阻接在D+线上。主机检测到D+被拉高,D-为低,判定为全速设备。
  • 高速设备: 初始阶段表现为全速设备(D+上拉),但在复位期间会通过Chirp J/K序列进行高速握手,成功后切换为高速模式并断开上拉电阻。
速度模式 设备上拉电阻位置 主机下拉电阻 空闲总线电平
低速 (LS) D- 线 (1.5kΩ → 3.3V) D+ 和 D- 各 15kΩ → GND D- = 高, D+ = 低
全速 (FS) D+ 线 (1.5kΩ → 3.3V) D+ 和 D- 各 15kΩ → GND D+ = 高, D- = 低
高速 (HS) 初始 D+ 上拉,握手后断开 D+ 和 D- 各 45Ω → GND(终端匹配) D+ = 高, D- = 低(与FS相同)
USB速度识别电阻网络结构图 主机 (Host) 15kΩ GND 15kΩ GND D+ D- 设备 (Device) 1.5kΩ 3.3V 电缆 电缆 全速设备:上拉在D+ 低速设备:上拉在D- 高速设备:初始在D+,握手后断开

2.3 高速握手协议:Chirp J/K 序列

高速设备在物理层上以全速设备身份启动,但会在主机发送的复位信号期间发起高速握手。这一过程称为Chirp J/K 序列,是高速模式识别的关键步骤。

  1. 主机复位: 主机将D+和D-同时拉低至少10ms(SE0状态)。
  2. 设备Chirp K: 高速设备检测到复位后,在D+线上发送一个持续1ms~7ms的K状态(D-高,D+低)。
  3. 主机Chirp J/K: 如果主机支持高速,它会在检测到设备Chirp K后,交替发送J和K状态(每个约40μs~60μs),持续至少100μs。
  4. 速度确认: 设备检测到主机的Chirp序列后,断开D+上的上拉电阻,切换到高速模式(电流驱动模式,终端匹配45Ω对地)。
故障排查要点: 如果主机不支持高速,它不会响应Chirp K,设备将保持在全速模式。如果设备Chirp K信号幅度不足(低于100mV)或持续时间过短,主机可能无法识别,导致枚举失败。
高速握手 Chirp J/K 序列时序图 时间 空闲 (J) 复位 (SE0) 设备 Chirp K 主机 Chirp J/K 高速模式 ≥10ms 1~7ms ≥100μs 高速握手关键检查点 1. 设备必须在复位期间发送 Chirp K,幅度 ≥ 100mV 2. 主机必须响应 Chirp J/K 序列,否则设备回退到全速模式 3. 握手成功后,设备断开上拉电阻,切换到电流驱动模式

2.4 常见物理层故障与排查方法

物理层信号问题在USB枚举故障中占比极高。以下表格总结了最常见的故障现象及其根因:

故障现象 可能原因 排查手段
主机检测不到设备连接 上拉电阻虚焊、阻值偏差、D+/D-短路 测量D+或D-对地电压(空闲时应为3.0V左右)
设备被识别为错误速度 上拉电阻接错线(如全速设备误接D-) 检查PCB布局,确认1.5kΩ电阻连接位置
高速设备只能工作在FS模式 Chirp K信号幅度不足、主机不支持HS 用示波器捕获复位期间的Chirp K波形
枚举过程中断(CRC错误) 信号反射、电缆过长、终端匹配不良 检查电缆长度(HS建议≤3m),测量信号眼图
设备反复复位 D+/D-差分对不等长、共模噪声过大 检查PCB差分走线等长(误差≤5mm)
实战建议: 在调试USB物理层时,建议使用差分探头(或两个单端探头配合数学运算)观察D+和D-的差分电压。单端测量只能看到对地电平,无法准确判断差分信号质量。对于高速信号,还需要关注信号的眼图张开度,确保满足USB-IF的电气规范。