一、USB协议概述:从1.0到4.0的演进之路
大家好,我是老张。做高速接口设计十几年了,USB协议算是我最熟悉的"老朋友"。今天咱们聊聊USB的发展史、物理层电气特性,还有差分信号那些事儿。
说实话,我刚入行那会儿,USB 2.0还是主流。那时候调试一个USB设备,示波器一挂就是半天。现在回头看,USB的发展速度真是惊人——从1.0到4.0,速率提升了近十万倍。
1.1 USB发展史:从1.0到4.0
USB(Universal Serial Bus)最初的目标很简单:统一外设接口。1996年USB 1.0发布,速率只有1.5 Mbps。嗯,现在看确实慢得可怜,但在当时已经是个革命性的东西了。
| 版本 | 发布年份 | 理论速率 | 编码方式 |
|---|---|---|---|
| USB 1.0 | 1996 | 1.5 Mbps | NRZI |
| USB 1.1 | 1998 | 12 Mbps | NRZI |
| USB 2.0 | 2000 | 480 Mbps | NRZI |
| USB 3.0 | 2008 | 5 Gbps | 8b/10b |
| USB 3.1 | 2013 | 10 Gbps | 128b/132b |
| USB 3.2 | 2017 | 20 Gbps | 128b/132b |
| USB4 | 2019 | 40 Gbps | 128b/132b |
我个人习惯把USB发展分成三个阶段:
- 第一阶段(USB 1.x - 2.0):低速到高速的跨越。USB 2.0的480 Mbps在当时简直是"飞一般的感觉"。我记得第一次用USB 2.0拷贝电影,那叫一个爽。
- 第二阶段(USB 3.x):从半双工到全双工,从单端到差分。USB 3.0引入了SSC(扩频时钟)和链路训练,复杂度一下子上来了。
- 第三阶段(USB4):基于Thunderbolt 3协议,速率飙到40 Gbps。说白了,就是把PCIe和DisplayPort都塞进一根线里。
关键转折点:USB 3.0开始引入的链路训练机制,是高速信号能够稳定传输的核心保障。没有它,5 Gbps以上的速率根本跑不起来。
1.2 物理层电气特性
做USB设计,物理层电气特性是绕不开的坎。我见过太多项目因为电气参数没调好,导致认证过不了。
电压摆幅:USB 2.0用的是3.3V逻辑电平,差分信号摆幅约400 mV。到了USB 3.0,电压降到了1.0V左右,摆幅只有200-300 mV。为什么?速率高了,电压必须降,不然功耗和EMI都受不了。
阻抗要求:
- USB 2.0:差分阻抗90Ω ± 15%
- USB 3.x / USB4:差分阻抗85Ω ± 10%
你想想看,阻抗不匹配会怎样?信号反射,眼图闭合,误码率飙升。我曾经在一个项目中,就因为PCB走线阻抗差了5Ω,整个链路训练就是过不去。后来换了板材,重新走线,问题才解决。
抖动与眼图:
- 总抖动(TJ)要求:USB 3.0 < 0.3 UI
- 随机抖动(RJ)要求:< 3 ps RMS
- 确定性抖动(DJ)要求:< 0.15 UI
避坑指南:我曾经在调试USB 3.0时,眼图总是闭合。查了半天,发现是电源纹波太大,导致PLL抖动超标。后来加了LC滤波,眼图一下就打开了。所以,别光盯着信号路径,电源完整性同样重要。
1.3 差分信号基础
差分信号,说白了就是两根线传一个信号,一根传正相,一根传反相。接收端看的是两根线的差值。
为什么用差分?
- 抗共模干扰:外部噪声同时耦合到两根线上,差值不变
- EMI更小:两根线辐射相互抵消
- 电压摆幅小:适合高速传输
USB 2.0用的是半双工差分,D+和D-两根线。USB 3.0开始,变成了全双工差分——SSTX+/-和SSRX+/-各一对,总共四根差分线。
差分信号的关键参数:
- 差分阻抗:Zdiff = 2 × Z0 × (1 - k),k是耦合系数
- 共模电压:Vcm = (Vp + Vn) / 2
- 差分摆幅:Vdiff = Vp - Vn
注意:差分走线必须等长,误差控制在5 mil以内。不等长会导致共模转差模,产生EMI问题。我见过一个案例,差分对长度差了30 mil,结果辐射超标了8 dB。
1.4 知识体系总览
下面这张图,是我自己总结的USB物理层知识框架。你看一眼,心里就有数了。
这张图把USB物理层分成了三大块:电气特性、差分信号、链路训练。后面几章,我们会逐个深入。嗯,这里先有个整体概念就好。
1.5 实战中的几点体会
做了这么多年USB设计,有几点体会想分享给大家:
- 别迷信理论值:规格书上写的参数,到了实际PCB上总会打折扣。我习惯留20%的裕量。
- 仿真不能代替实测:仿真结果再漂亮,也得用示波器看眼图。我曾经被仿真"骗"过一次,后来再也不信仿真了。
- 电源是万恶之源:80%的信号完整性问题,追根溯源都是电源惹的祸。先把电源做好,再谈信号。
小技巧:调试USB 3.0链路训练时,我习惯先看Polling阶段能不能过。如果Polling都过不了,后面就不用看了。直接查差分信号质量、共模电压、阻抗匹配这三个点,基本能定位问题。
好了,这一章就到这里。USB协议的发展史、物理层电气特性、差分信号基础,这三块是后面所有内容的基础。你把这些搞懂了,后面的链路训练和均衡器调优才能听得明白。
公众号:蓝海资料掘金营,微信deep3321