传输线理论与反射成因:特征阻抗与不连续性

为什么 PCIe Gen4 信号离不开传输线理论?

咱们做高速数字设计,尤其是 PCIe Gen4 这种 16 Gbps 的接口,信号已经不是简单的电压高低跳变了。16 Gbps 的上升沿大概只有 30 ps 左右,换算成波长——嗯,大约 1.2 厘米(PCB 上)。这意味着走线长度只要超过波长的 1/10(也就是 1.2 mm),就必须当作传输线来处理,不能再用集总模型去分析。

我在早期做 PCIe Gen3 项目时,就因为忽略了过孔的阻抗突变,导致链路训练失败。后来用 TDR 一测,好家伙,那个过孔的阻抗掉到 35 Ω,反射直接让眼图闭合了。所以,理解传输线理论和反射成因,是解决 PCIe 信号完整性问题的基本功。

特征阻抗:到底在说什么?

特征阻抗 Z₀ 是传输线本身的固有特性,既不等于直流电阻,也不等于负载阻抗。它由单位长度的分布电感和分布电容决定:

Z₀ = √(L / C)   (无损传输线近似)

在 PCB 上,微带线和带状线的 Z₀ 取决于介质厚度、介电常数、铜箔宽度和铜厚。PCIe 规范要求的单端阻抗是 50 Ω ± 10%,差分阻抗 85 Ω ± 10%。

传输线类型典型 Z₀ (Ω)PCIe 要求常见调整手段
微带线(表层走线)50 ~ 6050 ± 10%调整线宽、介质厚度
带状线(内层走线)40 ~ 5550 ± 10%调整线宽、层间介质厚度
差分微带线85 ~ 100(差分)85 ± 10%调整线宽、线距、介质厚度
差分带状线80 ~ 95(差分)85 ± 10%调整线宽、线距、层间介质
个人习惯:我会在设计阶段就用仿真软件扫描关键走线的 Z₀,而不是只靠 PCB 工厂的阻抗测试条。有一次,我查出板厂给的阻抗测试条跟实际走线环境差了 15%,后来才发现是介质厚度没按我要求控制。

反射是怎么产生的?

信号在传输线上传播时,每遇到一个阻抗不连续点,一部分能量就会反弹回来——这就是反射。反射系数 Γ 的定义很简单:

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

其中 Z_L 是负载或突变点的等效阻抗,Z₀ 是前面那段传输线的特征阻抗。当 Z_L = Z₀ 时,Γ = 0,无反射;当 Z_L 开路(∞)时,Γ = +1;当 Z_L 短路(0)时,Γ = -1。

反射波往回走,跟入射波叠加,就会让信号波形出现过冲、下冲、振铃,甚至台阶。PCIe Gen4 接收端对电压摆幅和时序抖动的要求极严,反射很容易把眼图搞到不合格。

不连续性的常见来源

我总结了几个最容易踩坑的点,你想想看,自己排查时有没有遇到过?

  • 过孔(via):焊盘、反焊盘、残桩(stub)都会改变阻抗。特别是信号换层时,过孔阻抗可能低到 35 Ω。我以前有个项目,就因为残桩太长,导致 PCIe Gen4 的 16 Gbps 信号眼图完全闭合,后来把残桩背钻掉才救回来。
  • 走线宽度变化:从 BGA 扇出区到外层走线,宽度从 3 mil 变到 6 mil,阻抗直接跳个 10 Ω。
  • 分支/过孔返绕:PCIe 要求点到点拓扑,但有时候测试点或交流耦合电容的焊盘会引入分支,造成阻抗凹陷。
  • 连接器:同轴连接器到 PCB 的过渡区域,阻抗匹配不好就会产生大反射。
不连续性来源典型阻抗突变对 PCIe Gen4 的影响排查方法
过孔(残桩未背钻)由 50 Ω 降至 30~40 Ω过冲、眼图闭合TDR 扫描
走线宽度突变50 Ω 变为 45~55 Ω轻微反射,抖动增加阻抗仿真
交流耦合电容焊盘50 Ω 降至 35~45 Ω(焊盘比线宽大)振铃、码间串扰S参数测量
连接器过渡50 Ω 变为 40~60 Ω回损增大,信号衰减矢量网络分析仪

从 TDR 波形看反射

时域反射计(TDR)是排查反射的利器。它发一个阶跃脉冲进去,看回波的时间位置和幅度,就能算出每处不连续点的阻抗和位置。

举个例子:你测一条 50 Ω 的走线,中间有个过孔。TDR 波形显示:最开始 50 Ω,然后突然掉到 38 Ω,再回到 50 Ω。那 38 Ω 那一段,就是过孔的阻抗洼地。那次我亲眼看到波形,心里就咯噔一下——果然链路训练失败。

避坑指南:我曾经在调试一块 PCIe Gen4 卡时,TDR 怎么看都正常,但误码率就是高。后来发现是测试线缆的阻抗跟 DUT 不匹配造成的误判。记得校准!校准!校准!

知识体系:传输线、阻抗与反射的关系

下面这张图总结了本章的核心逻辑:信号从源出发,经过一段均匀传输线(Z₀),遇到阻抗不连续点,一部分反射回源,剩余继续传播到负载。反射的大小和符号由阻抗失配程度决定。

传输线反射原理 信号源 均匀传输线 Z₀ 阻抗 不连续点 均匀传输线 Z₀ 负载 反射波 入射波 传输波 反射系数 Γ = (Z_L - Z₀)/(Z_L + Z₀) Z₀=50Ω, Z_L=35Ω → Γ = -0.176

看到这个图你就明白了:反射不是坏事,它只是阻抗不匹配的信号学表达。关键是要让整个链路的阻抗尽量连续。PCIe Gen4 对反射的要求很苛刻,一般要求回波损耗(Return Loss)在 16 GHz 以内优于 -10 dB,换算成反射系数大约是 Γ < 0.316。如果你用 TDR 测到某个地方的阻抗跳变超过 ±10%,基本就要小心了。

怎么避免反射?

  1. 控制阻抗:严格按照 PCB 叠层计算线宽,跟板厂确认介质厚度和铜厚公差。我个人习惯在 layout 之前就用 Polar SI 把各层阻抗算一遍。
  2. 过孔优化:信号过孔要加禁布环(反焊盘),内层焊盘尽量小,并背钻掉残桩。如果不得不换层,最好在过孔两侧各留一段短传输线作过渡。
  3. 分支处理:PCIe 是点对点拓扑,不要画 T 型分支。如果需要放测试点,用 0402 小焊盘或者直接引出到测试过孔。
  4. 交流耦合电容:选 0402 或 0201 封装,焊盘做阻抗补偿(例如把焊盘下方的参考地挖空一段)。我见过一块板子因为用了 0603 电容,反射大到直接把眼图干掉。
小结:传输线理论不是什么高深玩意,它就是告诉你:信号在 PCB 上跑,阻抗必须连续。不连续就反射,反射就去不掉。排查 PCIe Gen4 问题,TDR 是第一步,看懂反射系数是第二步。多上手试试,你就能形成直觉。就像我一样,现在看到一条走线,心里就能估算出它的阻抗大概多少,哪里会出问题。