第1章:USB协议基础
各位同学,欢迎来到这门课。我是你们的讲师,干信号完整性这行有些年头了。今天咱们聊聊USB协议的基础,别小看这东西。做仿真和测试,不懂协议底层,就像开车不看仪表盘,迟早要翻车。
1.1 USB的发展史:从1.0到4.0
USB嘛,通用串行总线。上世纪90年代中期,一群公司想统一外设接口。我记得那时候,电脑背后一堆串口、并口,插个鼠标都要重启。谁受得了?
- USB 1.0/1.1(1996-1998):低速1.5Mbps,全速12Mbps。够键盘鼠标用了。
- USB 2.0(2000):480Mbps。这个我印象太深了。当年做MP3拷贝,快得爽。
- USB 3.0(2008):5Gbps。后来改叫3.2 Gen 1×1。
- USB 3.1/3.2(2013-2017):10Gbps起步,最高20Gbps。命名开始乱了。
- USB 4(2019):40Gbps。基于Thunderbolt 3协议。
关键点:速率每提升一代,信号完整性压力就翻一倍。到了10Gbps以上,走线稍微拐个弯都可能出问题。
1.2 版本对比:不只是快了点
很多人觉得USB版本就是速率差别。其实不是。供电、编码、连接器都变了。
| 版本 | 速率 | 编码方式 | 供电能力 |
|---|---|---|---|
| USB 2.0 | 480 Mbps | NRZI | 500mA |
| USB 3.0 | 5 Gbps | 8b/10b | 900mA |
| USB 3.1 Gen 2 | 10 Gbps | 128b/132b | 900mA |
| USB 3.2 Gen 2×2 | 20 Gbps | 128b/132b | 1A+(协商) |
| USB 4 | 40 Gbps | 64b/66b | 3A/5A(协商) |
看这表。编码方式从NRZI到8b/10b,再到128b/132b。编码开销越来越低,但信号质量要求越来越高。你想想看,5Gbps的时候还是8b/10b编码,20%的带宽浪费。到了USB 4,编码效率高了很多。
供电从500mA到5A,变化也大。这是为什么Type-C能充笔记本的原因。我刚开始做3.0项目时,没注意供电的电源完整性,结果设备老是断开重连。查到最后,是电压纹波太大。
1.3 电气特性参数:SI的命根子
做信号完整性,核心就是跟这几个参数打交道。
1.3.1 差分信号
USB从2.0开始就是差分传输。D+和D-两根线,差模传输。优点明显:抗共模噪声,电磁干扰小。
差分阻抗必须控制在90Ω±15%。嗯,这里要注意。这是很多新手容易忽略的点。我曾经在调试一个项目,眼图老是不达标。查了三天,最后发现是PCB差分对阻抗做成了100Ω。差10Ω,在5Gbps下就区别巨大了。
1.3.2 电压摆幅
- USB 2.0:差分摆幅约400mV。高低电平信号质量直接影响数据传输的可靠性。
- USB 3.0/3.1:摆幅降低到200mV左右。速率高了,电压还不能大。
- USB 4:更低,大概100mV上下。
为什么电压越来越低?说白了,为了降功耗、提速率。但代价就是抗噪声能力变差。这就是咱们SI工程师存在的意义。
避坑指南:我曾经在调试USB 3.0信号时,发现接收端看到的数据有一半都是错的。后来发现是参考地平面有裂缝,导致返回路径不连续。记住:差分信号不代表不需要参考地。
1.3.3 眼图与抖动
眼图是检查信号质量最直观的手段。每个USB标准都对眼图有明确要求。
抖动分随机抖动(RJ)和确定性抖动(DJ)。随机抖动来自热噪声,没法完全消除。确定性抖动来自电源噪声、串扰、码间干扰。这些我们可以控制。
我在测试USB 3.2 Gen 2时,遇到过抖动超标的情况。看眼图,眼睛都快闭上了。查了一圈,是PCB上的一个过孔阻抗不连续导致的。就一个过孔,就能毁掉整条链路。
1.3.4 损耗与均衡
高速信号在传输线上会衰减。频率越高,衰减越大。USB 3.0的5Gbps信号,在FR4板材上跑10cm,衰减就很明显了。
所以接收端要做均衡。CTLE、FFE、DFE,这些术语你可能在芯片手册上见过。它们本质上就是补偿高频损耗,把信号恢复出来。
调试心得:用TDR看阻抗曲线。找不连续点——焊接点、过孔、连接器端子。这些都是SI瓶颈。先把物理通道修好,再谈均衡参数。
知识结构:USB协议体系
下面这张图是我按自己的理解整理的。它帮你把这一章知识点串起来。
发展史决定了速率,版本决定了具体的实现方式,电气参数决定了SI分析的目标。三者环环相扣。你懂了这个,后面做仿真才有方向感。
1.4 为什么研究协议对SI仿真这么重要?
很多同学问我,做仿真直接看波形不就行了,学协议干嘛?
我讲个真实经历。有一次评估一个USB 3.0转接板的信号质量。板子能跑,眼图也能过。但量产了一千片,有十分之一在客户那边出现断连。问题在哪?
后来仔细读协议规范。发现USB 3.0的接收端有个去加重(de-emphasis)要求。板子的近端去加重对了,但远端因为通道损耗,加上去加重特性没匹配好,导致接收端看到的数据时序乱了。这不是眼图能直接看出来的,必须结合协议里的信道参数做仿真。
所以,协议不是古董。它是你分析问题的基础。做仿真,设定激励、检查眼图、评估预算,每一步都离不开协议