第3章 差分信号传输原理

做高速电路设计,你绕不开一对儿线。不是情人那种,是差分信号线。我刚开始接触10Gbps项目时,总觉得差分就是两根线走一起,没什么大不了。结果第一次布板,眼图一塌糊涂,同事指着波形说:“你这差分对儿,差分的不是信号,是寂寞。” 从那以后,我才老老实实把原理啃透。

说白了,差分信号就是一条信息用两根线传。一根传正相,一根传反相。接收端看的是它们的差,不是单端对地的电压。举个例子:正端1.2V,负端0.8V,差分电压就是0.4V。如果共模噪声同时灌到两根线上,正端变成1.3V,负端变成0.9V,差值还是0.4V —— 噪声被抵消了。这就是差分信号的看家本领。

核心结论: 差分信号传输的三大支柱 —— 共模抑制、低EMI、确定性的时序参考。

3.1 差模 vs 共模 —— 两个世界

我们把两根线上的电压拆开看。设Vp为正线对地电压,Vn为负线对地电压。那么:

  • 差模电压 Vd = Vp - Vn —— 这就是我们真正要传的信号。
  • 共模电压 Vcm = (Vp + Vn) / 2 —— 代表直流偏置和噪声基底。

理想情况下,Vp和Vn完全互补:Vp = Vcm + Vd/2,Vn = Vcm - Vd/2。实际中总有偏差,这个偏差就叫共模噪声。嗯,这里要注意:共模噪声的来源很广,隔壁电源的开关噪声、地弹、甚至是空间辐射耦合。差分对的电路天生就擅长干掉它们。

特性 差模信号 共模噪声
本质 想要的信息 干扰
幅度 通常几百mV(LVPECL典型800mV) 几mV到几百mV
对地参考 无直接参考 参考地平面
传输线模式 奇模 偶模
抑制手段 保持线对对称,等长 共模扼流圈、去耦电容

我在项目中遇到过一件事:一块SFP+模块的板子,时钟走线左右不对称,差了200mil。结果共模噪声根本没被抑制,眼图的垂直开度少了30%。后来我把走线对齐,效果立竿见影。所以说,共模抑制不是玄学,是物理。

3.2 为什么差分信号天生抗噪?

你想想看,一根单端线传1Gbps,噪声灌进来,接收端看到的就是Vsignal + Vnoise。而差分线呢?两根线离得近,噪声同时耦合过来,几乎一样。接收端做减法,噪声就抵消了。

这个效果有多好?我实测过,在同样的PCB环境下,差分信号对于外部辐射的抗扰度比单端信号高出20dB以上。20dB啊,相当于噪声能量少了100倍。

另外,差分信号的EMI也很小。因为两根线上电流方向相反,产生的磁场互相抵消。只要走线对称,外界几乎探测不到它们发出的能量。如果你的产品要通过FCC Class B,差分接口是好朋友。

个人习惯: 布局差分对时,我总会在走线两侧留出至少3倍线宽的地铜。不是为了好看,是为了给回流电流提供低阻抗通道。很多新人忽略这个,结果眼图闭合了还不知道原因。

3.3 差分阻抗 —— 不是50Ω,是100Ω

单端传输线阻抗通常是50Ω(或者75Ω)。但差分对不一样,你关心的是差分阻抗 Zdiff。它等于两根线各自的单端阻抗之和再减去耦合带来的修正。对于微带线或带状线,LVPECL和CML典型差分阻抗是100Ω,USB 2.0是90Ω,HDMI是100Ω。

为什么是100Ω?不是拍脑袋定的。要考虑驱动器的输出阻抗、接收器的输入阻抗、以及损耗和功率的权衡。实际上很多差分驱动器差分输出阻抗也就100Ω左右,匹配起来自然省事。

差分阻抗和单端阻抗的关系大致是:

Zdiff ≈ 2 × Z0 × (1 – k),其中k是耦合系数,取决于线间距和介质厚度。线靠得越近,k越大,Zdiff越小。这就是为什么差分对要严格控制间距。

示例:若单端阻抗Z0 = 50Ω,耦合系数k = 0.2
则 Zdiff ≈ 2 × 50 × (1 – 0.2) = 80Ω
如果目标100Ω,需要调整线宽和间距让Z0 ≈ 62.5Ω

设计时要同时满足单端阻抗(对地)和差分阻抗(对差分对)。通常用场求解器(比如Polar SI9000)计算叠层和线宽。我习惯做两种计算:一种耦合情况下,一种解耦合情况下,然后取折中。你想想看,100Ω的差分阻抗,单端阻抗一般在55~65Ω之间浮动,都是合理的。

3.4 摆幅与共模电压 —— LVPECL vs CML

不同逻辑家族的差分摆幅和共模电压差别很大。这是选型的第一步:

参数 LVPECL CML
差分摆幅(典型) 800 mVpp 400 mVpp
共模电压 Vcc – 1.3V(约2.0V @ 3.3V供电) Vcc – 0.2V ~ Vcc – 0.4V
输出阻抗 低,约7Ω 50Ω(单端对地)
端接方式 Thevenin等效或AC耦合+偏置 50Ω上拉到Vcc或AC耦合
功耗 较高 较低(因为摆幅小)

做过一个25Gbps的项目,用LVPECL驱动光模块。一开始没注意共模电压范围,结果接收器的输入共模范围只有1.2-1.5V,而LVPECL输出共模2.0V,直接饱和了。后来我不得不加AC耦合电容再加直流偏置,麻烦了不少。这就是选型前要算清楚的账。

3.5 差分传输的基本模型

一根差分线对,本质上可以看成两条耦合传输线。信号在线上以奇模传输(差模)和偶模传输(共模)两种模式传播。奇模的传播速度稍快,因为电场和磁场在介质中分布差异。如果不平衡,就会出现模式变换 —— 差模变成共模,共模变成差模。这是信号完整性的灾难。

为了让你直观理解,我画了一张图,把差分信号的传输模型拆开来看:

差分信号传输模型 驱动器 正相线 (Vp) 反相线 (Vn) 耦合区域 接收器 Vd = Vp - Vn 共模噪声 要点 • 正相线与反相线对称且紧密耦合,使共模噪声同时出现在两根线上而被抵消。 • 差分阻抗Zdiff由线宽、间距、介质厚度共同决定,采用场求解器计算。

图中驱动器发出正反两路信号,经过紧密耦合的差分线对,到达接收器。接收器做差得到Vd。共模噪声(红色虚线)同时注入两根线,但差模输出中噪声被抵消。耦合区域(橙色虚线框)决定了线对的特性阻抗,也是布局时需要精确控制间距的地方。

3.6 布局设计中的差分信号准则

了解了原理,实操层面有几条铁律要记住。我曾经因为违反其中一条,导致一个12.5Gbps的SerDes链路怎么都过不了眼图模板,最后查出来是差分对内有根过孔没加回流地孔,共模阻抗变了。教训很深:

  1. 等长原则:两根线长度差不能超过信号上升沿空间长度的1/10。比如上升沿50ps,FR4介电常数4.2,差分信号在板中传播速度约6in/ns,则空间长度300mil,等长偏差控制在30mil以内。
  2. 等宽等间距:从驱动器到接收器,线宽和线间距要保持一致。中途换层也要保证参考面连续。
  3. 靠近参考平面:差分对下面必须要有连续的铜皮(通常是GND),不能有跨分割。跨分割会破坏偶模阻抗,产生严重共模噪声。
  4. 包地处理:差分对两侧各加至少20mil的地铜,并打上密集地过孔。不是为了屏蔽,是为了给共模回流提供低阻抗路径。
  5. 避免直角、锐角走线:用45度斜角或圆弧。锐角会造成阻抗突变和模式转换。我见过一个极端的例子,直角走线让差模到共模的转换增加了-15dB。

危险警告: 差分对长度差过大时,共模噪声抑制能力急剧下降。我曾经在一个10Gbps KVM项目中,因为走线长度差达到150mil,共模抑制比从-40dB退化到-15dB,导致辐射超标15dBμV/m。后来重新绕线后问题解决。

3.7 为什么差分信号更适合高速?

你可能想问:既然单端信号也能传高速,为什么LVPECL和CML都用差分?

原因有三:

  • 时序精确:差分对的阈值是过零点(交叉点),不受共模电压漂移影响。单端信号的阈值一般由参考电压决定,参考电压稍微波动,时序就偏移了。
  • 摆幅小:CML摆幅仅400mV,但仍能保持较高信噪比。因为差分接收器不受共模噪声影响,可以用更小的摆幅实现同样的信噪比,功耗自然降低。
  • 参考平面不敏感:差分信号的返回电流主要在另一根线上,而不是地平面。所以对地的抖动不那么敏感。单端信号则完全依赖地平面的完整性。

我说个真实数据:在同样的PCB上,用2.5V单端LVCMOS跑2Gbps,眼高只有200mV,抖动80ps。换成LVPECL差分对,同样2Gbps,眼高600mV,抖动20ps。这就是差距。

当然,差分信号也有代价:需要更多布线资源、更复杂的端接、更高的设计精度。但到了10Gbps以上,这些代价就是必须付出的门票。

避坑指南: 我曾经认为差分对间距越小越好,耦合越强越好。后来发现,过紧的耦合会导致制造公差对阻抗影响过大。实际项目中,线间距控制在线宽的2~3倍比较平衡。太近容易因为PCB蚀刻误差导致阻抗偏离;太远则耦合不够,抗共模能力下降。