第2章 USB电气特性基础
这一章要聊的是USB物理层的“硬”东西——差分信号、电平规范、眼图模板、摆幅和上升时间。说白了,就是信号在线上到底怎么跑的,跑成什么样才算合格。我刚开始做USB验证那两年,总以为协议才是大头,结果板子回来眼图一塌糊涂,才明白电气特性不过关,协议层全是白忙。
2.1 差分信号:为什么两根线比一根线稳
USB使用一对差分线,D+和D-。发送端让这两根线电压大小相等、极性相反,接收端只关心它们的差值,不关心对地参考。
- 共模抑制:外界噪声同时耦合到D+和D-,差值不受影响。你想想看,这比单端信号抗干扰强太多了。
- 参考地不敏感:即便收发两端的GND有电位差,只要差分对保持摆幅一致,信号照样可靠。
- 电磁辐射小:两线电流方向相反,磁场相互抵消,EMI自然低。
我做过一块板子,电源地处理得不太好,单端信号经常误码。换成USB差分传输后,通信直接正常了。差分对在PCB上必须等长、紧耦合,layout时别省这步。
2.2 D+ / D- 电平规范
USB有低速(1.5 Mbps)、全速(12 Mbps)、高速(480 Mbps)三种模式。它们的静态电压和驱动电平不一样,但底层都靠D+ / D-上的电压跳变来区分。
| 模式 | 静态电压 (D+ / D-) | 驱动电压摆幅 | 终端电阻 |
|---|---|---|---|
| 低速 | D+ = 0V, D- = 3.3V (空闲) | 0V ↔ 3.3V | 1.5 kΩ 上拉至 D- |
| 全速 | D+ = 3.3V, D- = 0V (空闲) | 0V ↔ 3.3V | 1.5 kΩ 上拉至 D+ |
| 高速 | D+ = 400 mV (差分), D- = 0V (空闲) | 400 mV 差分峰峰值 | 45 Ω 差分匹配 |
注意高速模式下,电压摆幅远小于全速/低速——只有400 mV左右。这能降低功耗和EMI,但对信号完整性要求更苛刻。我记得第一次测高速眼图时,发现信号摆幅只有350 mV,直接判fail。后来用示波器一查,是板上过孔阻抗不连续导致的。
2.3 眼图模板:眼睛是闭还是睁
眼图,就是把长时间的数据波形叠加到同一个时间窗口上。如果眼睛张开得够大,说明噪声、抖动都在容忍范围内;如果眼睛眯成一条线,基本就是信号质量不过关。
眼图模板关键参数:
- 眼高(Eye Height):差分信号的垂直开度,代表噪声裕量。
- 眼宽(Eye Width):水平开度,代表抖动裕量。
- 掩码区域:模板中间六边形区域——信号不能碰到这里。
下面是USB规范里对各模式眼图模板的最低要求(我整理了常用值):
| 模式 | 眼高最小值 | 眼宽最小值 | 掩码高度 |
|---|---|---|---|
| 全速 (12 Mbps) | 1.5 V | 66.7 ns (80% UI) | 1.0 V |
| 高速 (480 Mbps) | 240 mV | 1.7 ns (80% UI) | 200 mV |
为什么全速眼高那么大?因为全速是单端3.3V摆幅,而高速只有差分400mV。眼图分析最怕的是频率越高、电压越低、抖动越大。我曾经调试一块USB 3.0的板子,高速眼图眼宽只剩1.4 ns(标准要1.7 ns),查来查去发现差分对长度差了5 mm。重新等长后眼宽直接跳到1.9 ns,干干净净。
示波器测眼图时,记得用差分探头(带宽至少2倍信号频率),并且设置好50 Ω端接。别用单端探头去测D+和D-然后手动做减法——那样会引入共模噪声,眼图看上去永远不合格。我也干过这种傻事。
2.4 信号摆幅与上升时间
上升时间(Tr)决定了信号边沿多陡。太慢会超出眼图模板的时序要求,太快又会引起反射和过冲。USB规范给出了明确范围:
- 全速: 上升时间 4 ns ~ 20 ns (20%-80%)
- 高速: 上升时间 0.5 ns ~ 1.5 ns (20%-80%)
摆幅方面,全速/低速驱动器必须保证单端输出高电平大于2.8V,低电平小于0.3V。高速驱动器的差分摆幅在400 mV ± 10 %。如果摆幅偏低,光靠预加重也很难补救。
我遇到过一个案例:客户的USB高速波形上升时间只有0.35 ns,比下限还低。结果在长线缆上测到严重反射,眼图直接塌陷。解决办法是在驱动器端串一个22 Ω电阻,把上升沿缓一下——从0.35 ns拉到0.6 ns,眼图就过了。所以说,不是越快越好,匹配才是王道。
测量上升时间时,一定要用示波器的20%-80%自动测量功能,别自己数格子。做过一致性测试就知道,不同厂家的示波器算法略有差异,数据容易扯皮。我一般额外截一张眼图作为佐证。
2.5 电气特性知识体系一览
这张图把USB电气特性的四个核心框在了一起。从上到下看:中间是核心基础,四个分支分别对应我们刚讲过的内容。做一致性测试时,这四个方面一个都不能漏。我之前一份测试报告里漏了上升时间数据,客户硬是打回来让我重测,很尴尬。
2.6 实测避坑小记
- 探头阻抗要匹配:高速测试必须用有源差分探头,输入阻抗尽量高(一般25 kΩ)。我攒过一次笼统的测头,结果负载效应让眼高少了20 mV。
- 线缆不能忽略:测试夹具到示波器之间的线缆损耗会影响眼图,尤其3米以上的USB线。建议用规范的测试夹具,别省那点钱。
- 地弹噪声:D+ D-回流路径设计不好时,切换瞬间会产生地弹,在眼图上表现为睁开度变小。我曾通过增加去耦电容、缩小回流环路解决了问题。
别用USB供电给待测板!测电气特性时外部电源必须独立且稳定。板子上的电源纹波会直接串进信号,让你分不清是板子问题还是电源问题。我有一次就在这上面浪费了一个下午。
嗯,这一章内容不算多,但全是动手实践的“硬货”。下次上示波器测眼图之前,把差分对、电平、上升时间这些参数先在脑海中过一遍,调试效率能翻倍。