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 阻抗不匹配——信号的高速公路堵车
阻抗不匹配,就是信号在传输过程中,遇到了和它预期不一样的阻抗。你可以把信号想象成一辆车,传输线是高速公路。如果路面突然变窄(阻抗变小),车就会堵一下;如果路面突然变宽(阻抗变大),车就会冲一下。
常见的阻抗不匹配场景:
- 驱动端阻抗和传输线不匹配——源端反射
- 负载端阻抗和传输线不匹配——终端反射
- 走线宽度变化——比如从窄线变宽线,或者过孔
- 分支结构——T 型分支、星型分支
- 连接器——板间连接器、线缆接头
我做过一个项目,板子上的 SPI 总线跑到 50MHz 就出错了。用 TDR(时域反射计)一测,发现走线在 BGA 扇出区域从 50Ω 变成了 70Ω。原因是 BGA 焊盘和走线之间有一段很细的引线。调整了走线宽度,让阻抗连续,SPI 就能跑到 80MHz 了。
阻抗控制的关键参数:
- 线宽——越宽阻抗越低
- 介质厚度——越厚阻抗越高
- 介电常数——越大阻抗越低
- 铜厚——越厚阻抗越低
4.4 端接策略——给信号一个安稳的终点
端接的目的,就是让信号到达终点时,能量被吸收掉,而不是被反射回来。不同的端接方式适用于不同的场景。
我常用的端接方式有这几种:
| 端接方式 | 接法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 串联端接 | 驱动端串电阻 | 功耗低、简单 | 信号幅度减半 | 点对点、低速 |
| 并联端接 | 接收端对地/对电源接电阻 | 信号完整 | 功耗大 | 高速、长线 |
| 戴维南端接 | 两个电阻分压 | 匹配灵活 | 功耗更大 | 差分信号 |
| RC 端接 | 电阻串电容到地 | 功耗低、滤高频 | 占用面积大 | 时钟信号 |
| 差分端接 | 差分对之间接电阻 | 匹配差分阻抗 | 需要差分走线 | 高速差分信号 |
个人经验:我习惯在驱动端先加一个串联电阻,阻值等于 Z0 减去驱动端输出阻抗。比如驱动端输出阻抗是 10Ω,传输线是 50Ω,那就串一个 39Ω 的电阻(留点余量)。这样源端反射就被吸收了。如果信号还是有问题,再考虑在接收端加并联端接。
端接电阻的摆放位置也很重要。串联电阻要靠近驱动端,并联电阻要靠近接收端。我曾经见过有人把端接电阻放在走线中间,结果反射照样存在,因为不连续点还在。
4.5 知识体系总览
下面这张图总结了信号完整性的核心问题、原因和解决思路。你可以把它当作排查启动抖动时的检查清单。
排查启动抖动的时候,我一般会按这个顺序来:先用示波器看波形,有没有过冲、振铃?如果有,大概率是反射。再看相邻信号线有没有串扰,可以关掉相邻通道对比。然后用 TDR 测一下走线阻抗,看看有没有突变点。最后根据问题类型选择合适的端接方式。
最后提醒一句:信号完整性问题往往是多个因素叠加的。反射和串扰可能同时存在,阻抗不匹配和端接不当也会互相影响。别指望改一个地方就能解决所有问题。我习惯每次只改一个参数,测一次波形,这样才知道哪个改动真正起了作用。