第4章 差分信号与差分阻抗:奇模/偶模阻抗、差分对设计要点

差分信号这东西,刚入行时总觉得它很神秘。两根线走在一起,信号反着来,怎么就比单端抗干扰了?

其实核心就一句话:差分对靠的是两根线之间的耦合,而阻抗控制就是管好这种耦合的“劲”。

我最早在DDR3的板子上吃过亏,差分对没走好,眼图闭了,眼图睁开只有一半。后来才发现,根本原因是奇模阻抗和偶模阻抗没分开算。今天我们就把它彻底掰扯清楚。

4.1 差模与共模:一对信号的两个面孔

一个差分对里,两根线同时传输信号。驱动端在T+上送正相,T−上送反相。在接收端,减法器把两者相减。这样,外部噪声会同时叠加到两根线上,一减就没了——这就是差分信号抗干扰的秘密。

但问题来了:差分对上的信号,其实可以分解成两种模式。

  • 差模(Differential Mode):Vdiff = VT+ − VT−。这是我们想要的有用信号。
  • 共模(Common Mode):Vcomm = (VT+ + VT−) / 2。这是噪声或失衡带来的无用成分。

如果你问我,为什么差分对要严格控制对称性?因为一旦两根线不对称,差模会部分转化成共模,共模电流涌向参考平面,EMI就冒出来了。我曾经有块板子,USB 2.0差分对一端绕了等长,另一端没绕等长,结果眼图惨不忍睹,USB设备死活枚举不上。

核心概念:奇模阻抗 Zodd 是单根线在差模激励下的特性阻抗;偶模阻抗 Zeven 是单根线在共模激励下的特性阻抗。差分阻抗 Zdiff = 2 × Zodd。

4.2 奇模阻抗与偶模阻抗

差分对的两根线之间有耦合(边缘场会相互影响)。我们把耦合的效应量化成两个参数:

参数定义计算公式(近似)
Zodd一线对地阻抗(另一线反相激励)Zodd = Z0 × √(1 − 0.48×e−0.96×s/h)
Zeven一线对地阻抗(另一线同相激励)Zeven = Z0 × √(1 + 0.48×e−0.96×s/h)
Zdiff差分管脚间看到的阻抗Zdiff = 2 × Zodd

你看,s是线间距,h是介质厚度。s越小,耦合越强,Zodd就越低,Zeven越高。差值越拉越大。

我建议新手记住一条:差分对设计,实际上是在单端50Ω阻抗的基础上,通过调整线宽w和间距s,把Zdiff做到100Ω(USB/PCIe/SATA常用),或者90Ω(DDR差分时钟)。

技巧:在Polar Si9000或Saturn PCB Toolkit里算差分阻抗时,先设置单端目标50Ω,再把s从3倍线宽往下调,观察Zdiff的变化。你会发现,s设成2倍线宽时,Zdiff通常能刚好落在100Ω附近。

4.3 差分对设计要点

这部分是实战干货,我踩过的坑都列在下面。

  1. 线宽与间距必须一起算:别只盯着线宽。同样的介质厚度,s小了,Zdiff就降;s大了,Zdiff回升。需要反复迭代。
  2. 等长,但不等宽:等长是为了让两路信号延迟一致。但不等宽会破坏差模/共模转换。所以,等长绕线时,也尽量保持线宽一致。
  3. 参考平面要连续:差分对下方如果被分割(比如跨过电源轨分割槽),回流路径会断裂,共模噪声剧增。我见过一块板子在DDR差分时钟底下切了个槽,结果系统跑着跑着就死机。
  4. 远离其他走线:差分对与其它走线之间保持至少3倍线宽的间距,否则耦合串扰会把共模转成差模。
  5. 组内等长,组间等长看情况:对于多lane的接口(比如PCIe x4),每组差分对内要等长,组与组之间的长度差控制在±5 mil以内一般够用。

4.4 典型差分阻抗目标值速查

接口类型Zdiff 目标常用叠层线宽/线距参考
USB 2.090 Ω ± 15%4层板,L2参考5 mil / 9 mil
USB 3.0 / 3.190 Ω ± 10%6层板,L3参考4.5 mil / 8 mil
PCIe Gen3/485 Ω ± 10%8层板,L4参考4 mil / 7 mil
SATA 3.0100 Ω ± 15%6层板,L2参考5.5 mil / 10 mil
HDMI 2.0100 Ω ± 10%6层板,L3参考5 mil / 9 mil
DDR3/DDR4 差分时钟100 Ω ± 10%4层板,L2参考5 mil / 9 mil

⚠ 注意:以上线宽/线距是基于0.5 oz铜厚、0.2 mm介质厚度的估算值。实际必须根据板厂提供的介质常数和你的叠层结构重新计算。我曾经在图省事,直接套用了上板的参数,结果新板厂介质厚度偏差了10%,阻抗跑偏到115 Ω,差点打回来重做。

4.5 差分对对参考平面的回流路径

差分对的回流电流,其实并不完全在参考平面上。当两根线耦合足够强时,大部分回流会通过互电容和互电感,直接从一根线感应到另一根线。所以差分对不一定非要完整的参考平面——这也是为什么有些高速信号可以跨分割走,但实际工程中我绝不敢这么做。

为什么会这样?因为即使差分对自身的回流占大头,参考平面仍然会承载共模回流。一旦参考平面不连续,共模阻抗突变,噪声就会辐射出去。

实践建议:差分对下方不要有缝隙。如果必须跨分割,至少要在跨分割处放置一个缝合电容(pF级)。千万别信“差分对不需要参考平面”的传言。

下面这张图,把差分阻抗设计的整个逻辑串了起来:

差分对阻抗设计逻辑框架 差分信号目标:Zdiff=90Ω/100Ω 奇模阻抗 Zodd 偶模阻抗 Zeven 目标 Zdiff=2×Zodd 影响因素: 线宽w / 间距s / 介质厚度h 关键公式: Zodd ≈ Z0×√(1 − 0.48e−0.96×s/h) 设计约束: 等长、等宽、参考平面连续 输出:满足目标阻抗的差分对物理尺寸 (w, s) 及叠层参数 验证手段:TDR仿真 → 阻抗分布 → 眼图
超差时微调w/s或切换叠层

画这个图的时候,我特意把“验证手段”放到了最下面。很多人画完板就丢给板厂,也不要求TDR阻抗报告——结果板子回来一测,阻抗差了10%。

技巧:下单时向板厂明确要求“阻抗测试条”。每条差分对长度至少10 cm,板厂会单独做测试条并附上阻抗实测值。拿回来验证一下,心里才有底。

4.6 实际案例:USB 2.0差分对纠偏

说一个我自己的教训。某次设计一块4层工业控制板,USB差分对走线走在了顶层,参考平面是L2地层。第一次算阻抗时,用了8 mil线宽,12 mil间距,叠层h=4 mil(L1-L2介质)。但板厂反馈实际介质厚度是4.5 mil,我一算,Zdiff变成了87 Ω,虽然还在90±15%范围内,但余量很小。

我后来改成了7.5 mil线宽、10 mil间距,Zdiff回升到91 Ω。关键是要和板厂的介质厚度保持沟通,别自己闷头算。

记住:差分阻抗设计的本质,是用线宽和间距这两把“旋钮”,把Zodd调到你想要的值。每次改版前,先拿板厂的叠层表重算一遍。

⚠ 警告:千万不要在差分对内插入过孔(via)来走等长!过孔的阻抗突变会严重劣化眼图。如果一定要绕线等长,用蛇形走线,且蛇形间距要>3倍线宽。