4、信号完整性:反射、串扰、阻抗不匹配、端接策略

信号完整性,说白了就是保证信号从发送端到接收端,波形别走样。启动抖动很多时候就是信号完整性出了问题。我刚开始做高速板的时候,总觉得只要线连上了就行,结果板子一跑起来,波形惨不忍睹。后来才明白,信号在传输线上不是瞬间到达的,它像水波一样,遇到障碍就会反弹。

4.1 反射——信号的回声

反射是怎么来的?很简单。信号在传输线上走,遇到阻抗突变的地方,一部分能量继续往前,另一部分就被弹回来了。这个弹回来的信号叠加到原信号上,波形就变形了。

反射系数公式:

ρ = (Z_load - Z0) / (Z_load + Z0)

Z_load 是负载阻抗,Z0 是传输线特性阻抗。ρ 越接近 0,反射越小。

我在项目中遇到过一块 DDR 内存板,时钟信号总是有毛刺。用示波器一抓,发现信号上升沿有个台阶。算了一下,是走线阻抗 50Ω 接到了 75Ω 的终端电阻上。反射系数算出来是 0.2,信号来回反弹了好几次才稳定。换成 50Ω 电阻后,波形干净了。

反射的典型表现:

  • 过冲(Overshoot)——信号超过正常电平,可能损坏器件
  • 下冲(Undershoot)——信号低于正常电平,可能误触发
  • 振铃(Ringing)——信号来回震荡,像敲钟一样
  • 台阶(Staircase)——上升沿或下降沿出现平台

避坑指南:我曾经在调试一块 FPGA 板时,发现某个信号反射特别严重。查了半天,发现是走线经过了一个过孔,过孔的阻抗只有 35Ω。加了个回流地过孔后,阻抗恢复到 50Ω,问题就解决了。过孔也是阻抗不连续点,别忽略它。

4.2 串扰——隔壁邻居的干扰

串扰就是一根线上的信号,通过电磁场耦合到旁边的线上。你想想看,两条线靠得那么近,信号跳变的时候,电磁场肯定会影响到邻居。

串扰分两种:

  • 容性串扰——通过寄生电容耦合,主要影响信号的上升/下降沿
  • 感性串扰——通过互感耦合,主要影响信号的回流路径

我记得有一次调试一个多路 ADC 采集板,通道之间总是有串扰。明明只给通道 1 加信号,通道 2 也有输出。查了 PCB 布局,发现两条模拟信号线平行走了 5 厘米,间距只有 3 倍线宽。拉开到 5 倍线宽后,串扰降低了 40%。

串扰类型 耦合机制 主要影响 抑制方法
容性串扰 寄生电容 上升/下降沿抖动 增大间距、加屏蔽地线
感性串扰 互感 信号回流路径 减小回路面积、加地平面
共模串扰 共同回流路径 地弹噪声 分离模拟/数字地

注意:串扰在时钟线和数据线之间尤其要小心。时钟信号是周期性跳变的,它的串扰会直接导致数据信号的抖动。我习惯把时钟线用地线包围起来,或者至少保证它和敏感信号线之间有足够的距离。

4.3 阻抗不匹配——信号的高速公路堵车

阻抗不匹配,就是信号在传输过程中,遇到了和它预期不一样的阻抗。你可以把信号想象成一辆车,传输线是高速公路。如果路面突然变窄(阻抗变小),车就会堵一下;如果路面突然变宽(阻抗变大),车就会冲一下。

常见的阻抗不匹配场景:

  1. 驱动端阻抗和传输线不匹配——源端反射
  2. 负载端阻抗和传输线不匹配——终端反射
  3. 走线宽度变化——比如从窄线变宽线,或者过孔
  4. 分支结构——T 型分支、星型分支
  5. 连接器——板间连接器、线缆接头

我做过一个项目,板子上的 SPI 总线跑到 50MHz 就出错了。用 TDR(时域反射计)一测,发现走线在 BGA 扇出区域从 50Ω 变成了 70Ω。原因是 BGA 焊盘和走线之间有一段很细的引线。调整了走线宽度,让阻抗连续,SPI 就能跑到 80MHz 了。

阻抗控制的关键参数:

  • 线宽——越宽阻抗越低
  • 介质厚度——越厚阻抗越高
  • 介电常数——越大阻抗越低
  • 铜厚——越厚阻抗越低

4.4 端接策略——给信号一个安稳的终点

端接的目的,就是让信号到达终点时,能量被吸收掉,而不是被反射回来。不同的端接方式适用于不同的场景。

我常用的端接方式有这几种:

端接方式 接法 优点 缺点 适用场景
串联端接 驱动端串电阻 功耗低、简单 信号幅度减半 点对点、低速
并联端接 接收端对地/对电源接电阻 信号完整 功耗大 高速、长线
戴维南端接 两个电阻分压 匹配灵活 功耗更大 差分信号
RC 端接 电阻串电容到地 功耗低、滤高频 占用面积大 时钟信号
差分端接 差分对之间接电阻 匹配差分阻抗 需要差分走线 高速差分信号

个人经验:我习惯在驱动端先加一个串联电阻,阻值等于 Z0 减去驱动端输出阻抗。比如驱动端输出阻抗是 10Ω,传输线是 50Ω,那就串一个 39Ω 的电阻(留点余量)。这样源端反射就被吸收了。如果信号还是有问题,再考虑在接收端加并联端接。

端接电阻的摆放位置也很重要。串联电阻要靠近驱动端,并联电阻要靠近接收端。我曾经见过有人把端接电阻放在走线中间,结果反射照样存在,因为不连续点还在。

4.5 知识体系总览

下面这张图总结了信号完整性的核心问题、原因和解决思路。你可以把它当作排查启动抖动时的检查清单。

信号完整性知识体系 信号完整性核心问题与排查路径 信号完整性问题 反射 串扰 阻抗不匹配 端接策略 过冲 / 下冲 / 振铃 源端反射 / 终端反射 串联端接 / 并联端接 容性耦合 / 感性耦合 增大间距 / 加屏蔽地 分离模拟/数字地 走线宽度变化 过孔 / 连接器 分支结构 / T型节点 串联 / 并联 / 戴维南 RC 端接 / 差分端接 端接位置选择 排查启动抖动:先看反射 → 再看串扰 → 检查阻抗 → 最后选端接 排查建议:用示波器抓波形看有无过冲/振铃 用 TDR 测阻抗连续性,用仿真工具验证端接效果 从源头到终点,逐段排查不连续点

排查启动抖动的时候,我一般会按这个顺序来:先用示波器看波形,有没有过冲、振铃?如果有,大概率是反射。再看相邻信号线有没有串扰,可以关掉相邻通道对比。然后用 TDR 测一下走线阻抗,看看有没有突变点。最后根据问题类型选择合适的端接方式。

最后提醒一句:信号完整性问题往往是多个因素叠加的。反射和串扰可能同时存在,阻抗不匹配和端接不当也会互相影响。别指望改一个地方就能解决所有问题。我习惯每次只改一个参数,测一次波形,这样才知道哪个改动真正起了作用。