2. USB 2.0 电气规范:电压电平、差分信号与阻抗要求
聊USB 2.0一致性测试,电气规范是绕不开的基础。我个人习惯,拿到一个新项目,先不看协议层,而是把电气参数搞清楚。为什么?因为物理层要是出了问题,上层跑得再欢也是白搭。这一节咱们就把电压电平、差分信号和阻抗要求这三块掰开揉碎了讲清楚。
2.1 电压电平:3.3V 和 0V 的世界
USB 2.0 用的是单端 3.3V 逻辑。你想想看,这不就是TTL电平的变种嘛。但这里有个坑——它并不是简单的 0V 和 3.3V 跳变。
D+ 和 D- 这两根数据线,在空闲状态时,哪个被拉高、哪个被拉低,直接决定了当前设备是高速模式(High-Speed,480Mbps)还是全速模式(Full-Speed,12Mbps)。
| 模式 | 空闲时 D+ 电平 | 空闲时 D- 电平 | 说明 |
|---|---|---|---|
| 低速 (Low-Speed, 1.5Mbps) | 0V | 3.3V | D- 上拉 1.5kΩ 到 3.3V |
| 全速 (Full-Speed, 12Mbps) | 3.3V | 0V | D+ 上拉 1.5kΩ 到 3.3V |
| 高速 (High-Speed, 480Mbps) | 0V | 0V | 终端匹配后,差分信号摆幅约 400mV |
经验之谈: 我在项目中遇到过一块奇葩的 Host 控制器,在低速设备插入后,D- 线上电压只有 2.8V,死活枚举失败。查了半天,发现是上拉电阻精度不够,加上 PCB 走线过长压降太大。所以,3.3V 电源的稳定性很重要,测试时务必拿示波器量一下。
2.2 差分信号:如何把 0 和 1 送出去
USB 2.0 的数据传输,靠的是 D+ 和 D- 这两根线的电压差。说白了,差分信号就是看谁比谁高。
接收端只关心 (D+) - (D-) 这个差值。正差值代表逻辑 “1”,负差值代表逻辑 “0”。
核心定义:
- 差分 "1": D+ > D-,即 VDIFF > +200mV(通常在 200mV ~ 400mV 之间)
- 差分 "0": D+ < D-,即 VDIFF < -200mV(通常在 -200mV ~ -400mV 之间)
为什么用差分?抗共模干扰能力强。你想想,如果外界有一个噪声同时耦合到 D+ 和 D- 上,做减法之后这个噪声就抵消了。我刚开始做测试那会儿,用单端探头去量 D+ 和 D-,结果波形一塌糊涂。后来换成差分探头,世界瞬间清净了。
这里有一个容易忽略的点:眼图测试。我们在示波器上看到的眼图,横轴是时间,纵轴就是差分电压。眼图张开度好不好,直接反映了信号质量。我曾经有一个项目,眼图总是闭合的,排查到最后,发现是线路板上的过孔阻抗不连续导致的。
2.3 阻抗要求:90Ω ±15% 的学问
USB 2.0 对差分阻抗的要求是 90Ω ±15%,也就是大概在 76.5Ω 到 103.5Ω 之间。这里要分两种情况看:电缆的特性阻抗,以及 PCB 走线的差分阻抗。
为什么是 90Ω?这不是拍脑袋定的。USB 规范在设计时就考虑了信号完整性和功耗的平衡。阻抗匹配不好,信号就会发生反射,导致波形畸变、数据出错。
警告: 阻抗不匹配是高频信号的大敌。我曾见过一个产品,USB 2.0 线缆长度超过 5 米,导致远端设备根本无法识别。这就是阻抗不连续引起严重反射的典型案例。后来我们换了一根符合规范、阻抗均匀的线缆,问题迎刃而解。所以,线缆质量不是玄学,是科学。
在 PCB 设计时,通常通过调整走线宽度、间距以及参考层(地平面)的距离来控制差分阻抗。我记得我第一次设计 USB 板子时,直接用 50Ω 单端阻抗去推,结果差分阻抗算出来只有 70Ω,完全不符合规范。
以下是 PCB 设计中常见的阻抗控制参考:
| 参数 | 推荐值 / 说明 |
|---|---|
| 差分阻抗 (Zdiff) | 90Ω ±15% |
| 单端阻抗 (Z0) | 45Ω ±15%(通常为差分阻抗的一半) |
| 走线宽度 (W) | 根据叠层计算,通常 4~8 mil |
| 线间距 (S) | 通常为 W 的 1.5~2 倍 |
| 参考地平面完整性 | 走线下方必须连续,不能有挖空 |
嗯,这里要注意,阻抗控制不只是 PCB 的事。连接器、线缆、甚至焊盘,都会引入阻抗不连续点。所以做一致性测试时,TDR(时域反射计) 几乎是必测项目。它能帮你找到 PCB 走线上哪个位置阻抗跳变了。我曾经用 TDR 发现一个 B 型母座内部阻抗只有 60Ω,替换后信号质量立马改善。
2.4 知识体系结构图
下面这张图,我把 USB 2.0 电气规范的核心元素串了起来。你看一眼就能明白各部分的关联。
2.5 测试中的常见坑
讲完了理论,咱们聊聊实战中容易翻车的点。
- 电压不够:我遇到过 Host 端的 VBUS 和 D+/D- 上拉电压 OK,但设备端因为走线太长或线径太细,到了芯片引脚只剩下 3.0V。解决办法:用示波器在芯片 pin 脚上直接量。
- 差分信号摆幅过小:有时候信号衰减太大,眼图变“眯眯眼”。规范要求眼图在参考点处的差分电压大于 400mV(典型值)。如果小于 350mV,基本可以判定链路有问题。
- 阻抗测试位置:TDR 测试时,探头要尽量靠近被测点。我见过有人直接在连接器上测,结果把连接器本身的阻抗不连续也测进去了,导致误判。
- 差分对等长:虽然 USB 2.0 的速率对等长要求不如 USB 3.0 那么苛刻,但 D+ 和 D- 走线长度差超过 50 mil 时,我建议还是重新布一下。等长走线能减少时序偏移,对眼图改善有帮助。
一句话总结: USB 2.0 物理层测试,说白了就是在电压、差分、阻抗这三条线上别出岔子。电压要足,差分要对,阻抗要准。做到这三点,物理层就稳了八成。