传输线理论与反射成因:特征阻抗与不连续性
为什么 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 ~ 60 | 50 ± 10% | 调整线宽、介质厚度 |
| 带状线(内层走线) | 40 ~ 55 | 50 ± 10% | 调整线宽、层间介质厚度 |
| 差分微带线 | 85 ~ 100(差分) | 85 ± 10% | 调整线宽、线距、介质厚度 |
| 差分带状线 | 80 ~ 95(差分) | 85 ± 10% | 调整线宽、线距、层间介质 |
反射是怎么产生的?
信号在传输线上传播时,每遇到一个阻抗不连续点,一部分能量就会反弹回来——这就是反射。反射系数 Γ 的定义很简单:
Γ = (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 Ω 那一段,就是过孔的阻抗洼地。那次我亲眼看到波形,心里就咯噔一下——果然链路训练失败。
知识体系:传输线、阻抗与反射的关系
下面这张图总结了本章的核心逻辑:信号从源出发,经过一段均匀传输线(Z₀),遇到阻抗不连续点,一部分反射回源,剩余继续传播到负载。反射的大小和符号由阻抗失配程度决定。
看到这个图你就明白了:反射不是坏事,它只是阻抗不匹配的信号学表达。关键是要让整个链路的阻抗尽量连续。PCIe Gen4 对反射的要求很苛刻,一般要求回波损耗(Return Loss)在 16 GHz 以内优于 -10 dB,换算成反射系数大约是 Γ < 0.316。如果你用 TDR 测到某个地方的阻抗跳变超过 ±10%,基本就要小心了。
怎么避免反射?
- 控制阻抗:严格按照 PCB 叠层计算线宽,跟板厂确认介质厚度和铜厚公差。我个人习惯在 layout 之前就用 Polar SI 把各层阻抗算一遍。
- 过孔优化:信号过孔要加禁布环(反焊盘),内层焊盘尽量小,并背钻掉残桩。如果不得不换层,最好在过孔两侧各留一段短传输线作过渡。
- 分支处理:PCIe 是点对点拓扑,不要画 T 型分支。如果需要放测试点,用 0402 小焊盘或者直接引出到测试过孔。
- 交流耦合电容:选 0402 或 0201 封装,焊盘做阻抗补偿(例如把焊盘下方的参考地挖空一段)。我见过一块板子因为用了 0603 电容,反射大到直接把眼图干掉。