信号完整性基础:传输线、反射、串扰、端接技术概述

做DDR或高速接口设计的人,迟早要跟信号完整性(SI)打交道。我经常听到年轻工程师抱怨:“明明原理图没错,板子调出来就是不行。”其实十有八九是SI问题。今天咱们就把传输线、反射、串扰、端接这些基础先捋清楚。别看概念多,说白了都是电磁波在走线上怎么跑、怎么“打架”。

1. 传输线:导线不再只是导线

低频时我们把走线当理想导线用——电压处处相等。但频率一高,信号波长跟走线长度可比了,就不能这么想。这时走线变成**传输线**,信号是波,有传播速度、有特征阻抗。

我自己习惯用“双线模型”来理解:一根信号线加一根回流地线,每条线有分布电感和电容。传输线的核心参数是特征阻抗Z₀。常见值:50Ω(单端)、100Ω差分。

Z₀由线宽、介质厚度、介电常数决定。板厂给的经验公式可以算,但我建议你直接跟PCB厂家要叠层参数自己算一遍——不然等板子回来测试才发现阻抗偏了,那就得重做,拖进度。

参数影响典型值
线宽越宽 Z₀ 越低4~8 mil
介质厚度越厚 Z₀ 越高3~5 mil
介电常数越高 Z₀ 越低FR4 约 4.2~4.5
避坑:别只依赖仿真工具的默认模型,一定要拿到厂家的实际Dk值。我曾经有一款DDR3设计,仿真眼图一切正常,结果板子回来眼图闭合。后来查出是厂家换了不同批次覆铜板,Dk偏移了3%,导致Z₀差了将近8Ω。

2. 反射:信号“撞墙”了

信号在传输线上走,遇到阻抗突变就会反射。反射大小用反射系数Γ描述:

Γ = (Z_load - Z₀) / (Z_load + Z₀)

当负载开路(Z_load → ∞),Γ≈1,正反射;短路(Z_load≈0),Γ≈-1,负反射;匹配(Z_load = Z₀),Γ=0,无反射。

反射造成什么后果?振铃(ringing)和过冲(overshoot)。你想想看,一个上升沿发射出去,在开路端反弹回来,与后续信号叠加,波形就上下抖得像心跳图。严重时可能打坏接收端或翻倍触发。

我做过一个SATA项目,通道拓扑简单但眼图质量始终差。查了一周,最后发现连接器处阻抗突变导致反射。换上匹配阻抗的连接器,眼图马上打开了。

关键指标:反射造成的电压过冲不应超过电源轨的10%(对DDR而言约0.1×VDDQ)。如果超过,要么改阻抗,要么加端接。

3. 串扰:邻居在“偷听”

串扰就是一根线上的信号“串”到相邻线上去。分两类:容性耦合(电场)和感性耦合(磁场)。

怎么判断?看信号方向。同方向信号传输,感性耦合更突出;反方向信号传输,容性耦合为主。近端串扰(NEXT)和远端串扰(FEXT)的幅度、延时都不同,设计高速总线时一定要同时控制。

我记得有一个HDMI设计,差分对间距只有5mil,结果TMDS时钟串扰到数据线上,屏幕上出现“雪花”。解决办法很简单:间距拉到3倍线宽,串扰立马降低15dB。所以“3W原则”(线距≥3倍线宽)不是随便说的。

  • 减小串扰的方法:
  • 拉大走线间距(至少3倍线宽)
  • 信号层与地平面紧耦合(减少回流路径互感)
  • 差分对内严格等长、等间距
  • 避免长距离平行布线,必要时加保护地线

4. 端接技术:给信号一个“温柔”的终站

反射的根本原因是阻抗不匹配。端接就是在信号路径末端或源端加个电阻,把阻抗“拉”到匹配。常见三种:

类型接法优点缺点
串联端接靠近驱动端串一个电阻功耗小,只吸收一次反射必须双向匹配,信号幅值减半
并联端接靠近接收端对GND或VTT接电阻简单,适合单向静态功耗大,需要额外电源
RC端接(AC端接)并联RC串联到GND只消耗高频能量,低频无功耗元器件多,占用面积

实际设计中怎么选?DDR2/DDR3常用并联端接(VTT电压约VDDQ/2),DDR4开始用ODT(片上端接)直接集成,外置电阻越来越少。我自己的原则:能片上解决绝不外加,功耗和面积都能省。

经验之谈:有时候加了端接反射还是存在,检查一下端接电阻的寄生电容和封装电感。我曾经用0603电阻并联端接DDR3,结果500ps的方波边沿被电容搞出过冲。换成0402规格,问题解决。高频设计里,封装也是传输线。
传输线反射与端接示意图 驱动 负载 反射回波 R VTT (端接电源) Z₀ = 50 Ω 说明:源端信号沿传输线前进,在负载端遇到阻抗突变 产生反射(橙色箭头)。并联端接电阻R到VTT可以 吸收反射能量,使负载端只看到一个匹配的等效阻抗。

好了,这一章先打到底层。传输线、反射、串扰、端接,这四个概念互相纠缠。你只要记住一句话:SI的本质就是阻抗控制。接下来我们进入ZQ校准和Write Leveling,你会发现所有操作都是在跟阻抗和时序作斗争。保持耐心,这些基础会反复出现。