差分信号基础:工作原理与共模/差模

做 USB 高速设计,差分信号是绕不开的基本功。我入行那会儿,总觉得差分对就是两根线走在一起,有什么好学的?直到第一次看到眼图完全闭合,才发现差之毫厘谬以千里。

为什么差分信号在 USB 中举足轻重?

USB 3.2 Gen2 跑 10 Gbps,单端信号的电压摆幅只有几百毫伏。你想想看,板子上随便一个开关噪声都能把它淹没。差分信号天生就是来对抗这个问题的——两根线同时受到干扰,接收端只看差值,共模噪声就被抵消了。

说白了,差分信号的核心优势就两条:抗共模噪声和低电磁辐射。但是,如果两根线之间出现了时间偏差——也就是 Skew——那这些好处就会打折。我在项目中遇到过一块板子,USB 3.0 死活过不了合规测试,最后发现 D+ 比 D- 长了 5 mil,就是这 5 mil 让眼图塌了。

差分对的工作原理

一根线叫 D+,另一根叫 D-。发送端让它们在幅度上完全相等,极性完全相反。接收端用一个差分放大器,算出它们之间的差值:

Vdiff = V(D+) - V(D-)

如果 D+ 是 +400 mV,D- 是 -400 mV,那 Vdiff 就是 800 mV。如果同时有个 200 mV 的共模噪声,D+ 变成 +600 mV,D- 变成 -200 mV,Vdiff 仍然是 800 mV。噪声被完美抵消。

嗯,这里要注意:理想情况下两根线要完全对称——长度一样、阻抗一样、延迟一样。但实际 PCB 走线不可能完美,Skew 就来了。我记得有一次拿 TDR 测一组差分对,发现两根线的传播延迟差了 12 ps,对应的 Skew 就是 12 ps。这个数在 USB 2.0 的 480 Mbps 下还能忍,到了 USB 3.0 的 5 Gbps,眼图直接就合上了。

共模信号与差模信号

差分信号可以分解成两种成分。差模信号是我们想要的信息,共模信号是噪声——也包括走线不对称带来的泄露。

用一个表格来对比,更直观:

参数 差模信号 (Differential) 共模信号 (Common Mode)
定义 Vdiff = (V(D+) - V(D-)) / 2 Vcm = (V(D+) + V(D-)) / 2
信号方向 两根线极性相反 两根线极性相同
辐射 近场抵消,辐射小 远场叠加,辐射大
对 Skew 的敏感度 高 —— 一根线延迟变化直接影响 Vdiff 低 —— 但 Skew 会把部分差模转为共模

共模抑制比 CMRR 是差分放大器的一个重要指标。如果一个接收器的 CMRR 是 40 dB,意味着共模噪声会被衰减 100 倍。但是,当你走线有 Skew 时,一部分差模信号会变成共模——这时候即使接收器 CMRR 再高,也救不了信号质量。

核心结论:差分对的灵魂是“等长等距”。等长保证延迟一致,等距保证阻抗连续。Skew 就是破坏“差模纯粹度”的头号杀手。
我的调试小技巧:实际调板时,我会用频谱分析仪看共模噪声的幅度。如果某个频率的共模分量异常大,十有八九是差分对走线有 Skew 或者阻抗不连续。顺藤摸瓜,用 TDR 查一下两根线的延迟差,基本就能定位。

Skew 如何影响差分信号?

想象一对完美的正弦波,D+ 和 D- 完全反相。如果其中一根线因为走线过长或过短,相位偏移了 20 度,那么接收端算出来的 Vdiff 就不再是完美的两倍幅度了。

你会看到:

  • 眼图闭合 —— 水平和垂直余量同时缩水。
  • 共模噪声上升 —— 因为部分差模能量泄露到了共模里。
  • 时序抖动增加 —— 过零点偏移,数据采样窗口变小。

我在一个 USB 3.1 Gen2 的项目中吃过这个亏。Layout 工程师把差分对在 BGA 扇出时走了不一样长的 stub,总共引入不到 8 ps 的 Skew。看起来很小吧?但在 10 Gbps 下,一个 UI 是 100 ps,8 ps 就是 8% 的抖动预算被直接吃掉。最终眼高从 200 mV 掉到 110 mV,合规测试直接红灯。

避坑指南:不要只盯着 PCB 上的总长度匹配。我见过很多工程师只算走线长度,忽略了过孔、连接器和封装内部的延迟差异。这些都会贡献 Skew。我曾经在某个项目里,就因为一个封装内走线差了 15 mil,导致整块板子返工。从那以后,我每次做差分对走线,会单独量测封装内部的两根线延迟差,写在约束文件里。

下面这张图展示了差分信号从发射到接收的完整路径,以及 Skew 造成的效果:

差分信号传输与Skew影响示意图 TX D+ (理想对齐) D- (理想对齐) D+ (延迟大) → Skew 导致 RX 理想差模信号 (Vdiff) 幅度大,波形对称 Skew引起的共模分量 (Vcm) 幅度小,但会干扰接收端 差模 共模 Skew对差分信号的影响 • 当D+和D-的延迟不一致时,一部分差模能量转化为共模 • 共模分量增加,导致辐射排放和接收器CMRR挑战 • 眼图余量下降,时序抖动加剧,USB合规测试失败 • 经验值:5 Gbps以上,每10 ps Skew约吃掉8-15%的时序预算

总结一下:差分信号本质上是靠共模抑制来抗干扰的,但 Skew 会把差模能量偷偷转化成共模。一旦共模分量增加,接收端的 CMRR 再高也扛不住。所以,Layout 阶段控制 Skew 比控制总长度更重要——我个人的经验是,USB 3.x 差分对的内内 Skew 最好控制在 15 ps 以内,USB 4 更严格,别超过 5 ps。