第2章 差分信号与电气特性
做USB的人,第一关就是搞懂差分信号。我记得刚入行时看过一块板子,D+走线绕了半个板子,D-直接拉直线——结果死活枚举不过。当时师傅丢给我一句:“差分对不是两根独立的线,是两口子,走哪都得一起走。”这话糙理不糙。
2.1 为什么是差分信号,不是单端?
你想想看,480Mbps的速度,信号上升沿才几百皮秒。如果用单端信号,稍微来点地弹噪声,接收端就懵了。差分信号用两根线互为参考,抗共模干扰的能力很强。
说白了:D+和D-上传输的是互补信号。接收端只关心两者的差值,不关心电平。哪怕地线上窜进来2V的噪声,只要两根线上窜得一样,差值不变,数据照收。
2.2 电压摆幅:400mV vs 3.3V
这可能是新手最容易混淆的地方。很多人以为USB信号是0~3.3V跳变,实际上HS模式完全不是这样。
| 参数 | USB 2.0 低速/全速 | USB 2.0 高速(480 Mbps) |
|---|---|---|
| 差分电压摆幅 | 3.3V 单端摆幅 | 400mV 峰值 |
| 传输方式 | 单端+差分混合 | 纯差分 |
| 电平标准 | TTL 电平(0~3.3V) | 低压差分 |
为什么高速跑这么低的电压?很简单——降低功耗、减少EMI、提高速度。电压摆幅小,信号翻转时充放电就快,能跑更高的速率。我在一个项目中看到有人硬是用3.3V的驱动力去跑高速时序,结果信号过冲超过500mV,把芯片的接收器直接打穿……嗯,从那以后我对400mV这数字特别敏感。
实际测量时你会看到D+和D-各自对地的摆动大约是200mV,合在一起形成400mV的差分摆幅。接收器通过一个差分放大器来恢复数据,精度要求很高。
2.3 终端电阻匹配——别小看45Ω
USB高速传输要求D+和D-各接一个45Ω的下拉电阻到地(标准值是45Ω,实际允许±5%偏差)。为什么偏偏是45Ω?
因为USB电缆的特性阻抗是90Ω(差分阻抗),每个单端看过去是45Ω。终端电阻的作用就是防止信号在电缆末端反射回来,把波形搞得乱七八糟。匹配了,信号干净;匹配不好,眼图闭合,误码率飙升。
我个人习惯:终端电阻必须靠近接收端,走线越短越好。曾经有一块板子把终端电阻放到了芯片背面,中间穿过两个过孔和一段3cm的走线,结果高速信号眼图都塌了。
// 终端电阻匹配的典型电路结构
//
// 发送端 电缆(90Ω差分) 接收端
// D+ ———————— ————————————————— ———— D+
// D- ———————— ————————————————— ———— D-
// 45Ω ↓ 45Ω ↓
// GND GND
为什么没提到上拉?注意:高速模式下的终端是纯下拉,不再需要全速/低速模式下的1.5kΩ上拉电阻。这是很多人改设计时容易踩的坑。我见过一个团队移植代码时忘记关掉全速上拉,导致高速协商永远不成功,排查了两天才找到原因。
2.4 上升/下降时间要求
USB 2.0高速规范要求信号上升时间(Tr)和下降时间(Tf)都要在500ps到2ns之间,而且两者之差不超过100ps。太慢了会使信号眼图变窄,太快了会引入高频辐射和过冲。
实际调试中最常遇到的问题:
- 上升过慢:驱动能力不足,或走线寄生电容太大
- 下降过快:往往伴随振铃,需要串阻或调整驱动强度
- Tr/Tf不匹配:共模噪声增大,信号畸变
你想想看,480Mbps的比特宽度约2.08ns,上升/下降时间就要占掉信号窗口的一半。留给建立时间和保持时间的裕量非常小。这就意味着PCB布线的寄生电感和电容必须严格控制,任何不匹配的地方都会变成高速瓶颈。
核心逻辑图
2.5 实践中的避坑清单
这些年做USB调试,总结几个最容易忽略的地方:
- D+和D-等长设计。我习惯约束长度差不超过5mil,越短越好。不等长会导致信号偏斜,直接吃掉时序裕量。
- 终端电阻精度。千万别用5%的普通电阻,要选1%或者更精密的。45Ω差1%是0.45Ω,基本不影响;差5%就是2.25Ω,反射就开始明显了。
- 过孔要谨慎。每用过孔就要算一下阻抗突变,能少用尽量少用。曾经有一块板在D+上打了一个过孔、D-上打了两个,结果两边的延迟差了30ps,眼图直接闭合。
- 焊接质量。低温焊锡会改变电阻值,特别是终端电阻。我一般用自动化焊接,手工焊接的话要确认焊点均匀。