USB 3.0 物理层:SS 信号、差分线、终端电阻与阻抗匹配

这一节我们聊聊 USB 3.0 最底层的那些事儿。说白了,就是信号怎么从芯片管脚飞进电缆,又怎么从电缆跑进另一端的芯片管脚。别小看这些物理细节,我见过太多 PCB 画得花里胡哨,结果 SS 信号就是不通,最后查来查去,问题出在阻抗没控制好。

SuperSpeed 信号:它不是高速 USB 2.0

USB 3.0 的 SuperSpeed(SS)信号,和 USB 2.0 完全是两码事。USB 2.0 用一对差分线(D+/D-),半双工,速率最高 480 Mbps。SS 呢?它用了四对差分线,全双工,每对跑 5 Gbps,加起来双向 10 Gbps。你想想看,这带宽差了 20 倍,物理层的难度根本不是同一个量级。

我个人习惯把 SS 信号拆成两组来看:

  • SS-TX:发送差分对(SSTX+ / SSTX-)
  • SS-RX:接收差分对(SSRX+ / SSRX-)
A 设备的 TX 连 B 设备的 RX,A 设备的 RX 连 B 设备的 TX,交叉连接,全双工同时跑。

经验提醒: 我在做第一版 USB 3.0 板子时,把 SS-TX 和 SS-RX 的极性画反了。结果设备识别不了,折腾了两天才发现。所以 layout 前一定双检网络标签,别想当然。

SS 信号的摆幅比 USB 2.0 小很多。USB 2.0 高速模式下差分摆幅约 400 mV,SS 只有 100–200 mV 差分摆幅。为什么?因为频率太高(5 GHz 基频),大摆幅意味着更大的 EMI 和更难的通道设计。小摆幅配合均衡技术,反而能在高频下传得更远。

差分线:为什么不用单端?

有人问:5 Gbps,为什么非要用差分线?用单端不行吗?

嗯,这里要注意。单端信号对外部噪声非常敏感。一根信号线走在 PCB 上,旁边随便来条时钟线串扰一下,接收端就可能误判。差分线呢?两根线靠得很近,走的电流方向相反,电磁场互相抵消。外部噪声同时作用在两根线上,接收端只看差值,噪声被当成共模分量滤掉了。

你在实际项目中要注意三点:

  1. 等长:SS-TX+ 和 SS-TX- 走线长度差控制在 5 mil 以内。我在一个项目里偷懒,差了 15 mil,结果眼图闭合了一大半。
  2. 紧耦合:两根线间距严格遵循差分阻抗约束,不要分开又并拢。
  3. 远离其他信号:SS 线旁边 3W 距离内不要跑高速时钟、开关电源走线。
避坑: 我曾经遇到过板厂没按阻抗要求压合,差分线阻抗偏了 15 欧姆。板子回来 SS 完全不通,用 TDR 一测才知道。所以打样前一定跟板厂确认叠层和阻抗控制参数。

终端电阻:不是随便焊个 50 欧姆

USB 3.0 的终端电阻设计,和 USB 2.0 不一样。USB 2.0 在 D+/D- 上各有一个 45 欧姆对地电阻,用来做高速终端和挂起检测。SS 呢?它用的是 交流耦合 + 片内终端。

具体来说:

  • 发送端:差分对输出经过 0.1 μF 交流耦合电容 后再连到连接器。电容隔离了 TX 端的直流偏置,避免两端共模电压打架。
  • 接收端:在芯片内部,SSRX+ 和 SSRX- 各自对地接一个 50 欧姆电阻(典型值)。这样差分阻抗就是 100 欧姆。

为什么不能用外部电阻?因为 5 Gbps 的信号,外部电阻的寄生电容和电感就会破坏信号质量。片内电阻可以做到非常靠近焊盘,寄生极小。

参数 USB 2.0 HS USB 3.0 SS
差分线对 1 对(半双工) 4 对(全双工)
差分阻抗 90 Ω ±15% 100 Ω ±5%
终端电阻 45 Ω 对地(外部/内部) 50 Ω 对地(内部)
耦合方式 直流耦合 交流耦合(TX 侧 0.1 μF)
信号摆幅 400 mV 差分 100–200 mV 差分

阻抗匹配:差分 100 欧姆是怎么来的

USB 3.0 规范明确要求差分阻抗为 100 Ω ±5%。这个值不是拍脑袋定的,它由电缆特性、连接器寄生和信号完整性共同决定。你想想看,如果 TX 输出阻抗是 100 Ω,PCB 走线也是 100 Ω,连接器也是 100 Ω,电缆也是 100 Ω,那信号从头到尾不受反射。一旦某个地方偏差大了,反射叠加到信号上,5 Gbps 的眼图瞬间就塌了。

实际在 PCB 设计时,你要通过调整线宽、线间距和参考层距离来控制差分阻抗。举个例子:常见的 4 层板,外层差分线用 5 mil 线宽、7 mil 间距,在 1.6 mm 板厚、核心层 0.2 mm 的叠层下,大概能跑出 100 Ω。但每个板厂的 PP 和 core 厚度不同,一定要让板厂帮你算。

关键参数:
差分阻抗 Z_diff = 100 Ω ±5%
单端对地阻抗 Z_se = 50 Ω ±5%
交流耦合电容:0.1 μF ±20%,X7R 或 C0G 材质,封装 0402 或 0603。

我曾经在量产前发现一批板子的 SS 信号眼高普遍偏低,测 TDR 才发现差分阻抗变成了 85 Ω。查下来是板厂换了不同批次的 PP 片,介电常数变了,但没通知我。从那以后,我每批板子都要求随附阻抗测试条,并且自己亲自看报告。

一张图看懂物理层信号链路

下面我把整个链路画成一张流程图,从 SoC 的 SS TX 管脚到另一端的 SS RX 管脚,包含了交流耦合电容、连接器、电缆、PCB 走线、终端电阻等关键节点。你对照着看,能更清楚阻抗匹配的位置。

USB 3.0 SS 物理层信号链路 USB 3.0 SuperSpeed 物理层信号链路(单方向示意) SoC SS-TX PCB 差分线 0.1μF AC耦合 USB 连接器 电缆 SoC SS-RX 内部 50Ω 终端 PCB 差分线 接收连接器 关键:整条链路的差分阻抗都需要控制在 100Ω ±5%——从 TX 到 RX,每个节点都要匹配。 Z_diff = 100Ω AC耦合 连接器 Z_diff = 100Ω 内部终端

再说说高频布局的那些小细节

嗯,这里还得提几个容易被忽略的点。

  • 交流耦合电容的位置:必须靠近 TX 端放置,距离 SS_TX 管脚不超过 500 mil。我试过放在连接器旁边,结果信号反射剧烈,眼图不成形。
  • 参考平面必须连续:SS 差分线下面必须是完整的地平面,不能有槽或分割。有一次我在 BGA 扇出区中间穿了一根电源线,没注意把地层割断了,信号绕了一大圈才回到地,阻抗直接崩了。
  • 过孔尽量少:每个过孔都会带来阻抗不连续。我一般要求 SS 信号不超过两个过孔。如果非要换层,一定要在过孔旁边加地过孔回返。
重要警告: 不要用鳄鱼夹、杜邦线或面包板去测试 SS 信号!这些连接寄生电感巨大,5 Gbps 直接完蛋。我亲眼见过有人这么干,结果示波器上全是噪声,根本看不到眼图。

小结一下(不是总结)

USB 3.0 的物理层,说白了就是控制好每段 100 欧姆、把差分线的耦合做到极致、再用交流电容隔开两端的直流。这些功夫做扎实了,枚举时 link training 才能顺利通过。反过来,你要是发现 USB 3.0 一直降级到 USB 2.0 运行,第一件事就是拿 TDR 扫一遍 SS 链路的阻抗,八成能找到问题。