一、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物理层知识体系 USB协议版本演进 电气特性 差分信号 链路训练 电气特性子项 • 电压摆幅(400mV→200mV) • 阻抗匹配(90Ω→85Ω) • 抖动与眼图 差分信号要点 • 共模抑制 • 等长走线(误差<5mil) • 差分阻抗计算 链路训练流程 • 轮询(Polling) • 均衡器训练 • 恢复(Recovery) 核心目标:保证信号完整性,实现可靠数据传输 从USB 1.0到USB4,物理层设计始终围绕这一目标

这张图把USB物理层分成了三大块:电气特性、差分信号、链路训练。后面几章,我们会逐个深入。嗯,这里先有个整体概念就好。

1.5 实战中的几点体会

做了这么多年USB设计,有几点体会想分享给大家:

  1. 别迷信理论值:规格书上写的参数,到了实际PCB上总会打折扣。我习惯留20%的裕量。
  2. 仿真不能代替实测:仿真结果再漂亮,也得用示波器看眼图。我曾经被仿真"骗"过一次,后来再也不信仿真了。
  3. 电源是万恶之源:80%的信号完整性问题,追根溯源都是电源惹的祸。先把电源做好,再谈信号。

小技巧:调试USB 3.0链路训练时,我习惯先看Polling阶段能不能过。如果Polling都过不了,后面就不用看了。直接查差分信号质量、共模电压、阻抗匹配这三个点,基本能定位问题。

好了,这一章就到这里。USB协议的发展史、物理层电气特性、差分信号基础,这三块是后面所有内容的基础。你把这些搞懂了,后面的链路训练和均衡器调优才能听得明白。


公众号:蓝海资料掘金营,微信deep3321