第四章:阻抗匹配与反射

阻抗匹配这东西,说白了就是让传输路径上的阻抗处处相等。你想想看,信号在传输线上跑,就像水在水管里流。水管粗细突然变了,水就会溅出来。信号也一样,遇到阻抗突变,一部分能量就会被弹回来——这就是反射。

为什么会反射?

我刚开始做PCIe设计时,总觉得反射是玄学。后来自己搭了个简单的测试板,用TDR(时域反射计)一看,才明白其实特别直观。信号在传输线上传播,每秒大约走15厘米(在FR4板材中)。如果走线上的阻抗是50Ω,进入接收端却是80Ω,那多出来的30Ω怎么办?

电信号只能“挤”回去——一部分能量折返,形成反射波。反射波的极性和大小,由阻抗变化的幅度决定。

核心公式:反射系数 Γ = (ZL - Z0) / (ZL + Z0)

Z0——传输线特性阻抗,ZL——负载阻抗。Γ=0时无反射,Γ=±1时全反射。

反射带来的麻烦

反射会叠加到原始信号上,造成过冲、下冲、振铃。PCIe Gen4跑16GT/s,一个UI(单位间隔)才62.5ps。反射波如果延迟几个ps回来,正好撞上下一个数据位——时序就乱了。

反射现象典型表现对PCIe Gen4的影响
过冲信号电压超过接收端承受极限可能损坏端接管脚或引发误判
下冲信号电压低于阈值接收端无法正确锁存数据
振铃信号来回振荡衰减增加抖动,减少眼图开度

我印象最深的一次调试,板子眼图测试总是没过。示波器上看那信号,就像被人弹了一下的弦,抖个不停。后来发现是过孔阻抗没控制好——50Ω线换层后变成了70Ω,信号弹回来又弹回去。

怎么做到阻抗匹配

匹配不是点石成金,而是一整套设计习惯。我把它拆成三个层面:

  1. PCB叠层与线宽控制——PCIe Gen4推荐差分100Ω(单端50Ω)。叠层结构决定了Z0。我记得早期一个项目,为了省钱用了2层板,结果阻抗死活做不准。后来换了4层板,问题就解决了。
  2. 端接电阻——发送端串阻(通常22Ω~33Ω)+ 接收端直流偏置。PCIe规范里RX端有内部端接,但外部还是建议留阻容网络做交流耦合。
  3. 拓扑优化——PCIe是点对点,不许有分支。Length matching也要注意,不要把蛇形线扭得太密,否则阻抗会降。

避坑指南:我曾经遇到一个案例,端接电阻焊错了封装(0603焊成0402),寄生电感大了,反射系数从0.05直接变成0.15。眼图闭合了一半。所以layout时,端接电阻离器件脚越近越好,线不能长于1mm。

反射的定量分析

反射系数Γ的幅值直接告诉你能量损失了多少。举个例子:Z0=50Ω,接收端阻抗60Ω,则Γ=(60-50)/(60+50)=0.091,反射能量大约0.83%(|Γ|²)。看起来不大,但在16GT/s的链路预算里,这点损失可能直接让眼高从400mV掉到350mV——不够了。

  • Vreflected = Γ × Vincident
  • 回波损耗(RL) = -20 log |Γ| (dB)
  • PCIe Gen4规范要求RL: TX > 10dB, RX > 8dB

我常用的三项实用措施

措施做法效果
走线宽度控制根据叠层用厂家的计算工具微调线宽(±0.1mil)将阻抗偏差控制在±5%以内
过孔反焊盘处理信号过孔周围掏空铜皮,减小寄生电容减少过孔处阻抗突变约70%
AC耦合电容选型用0402/0201封装,X7R介质,容值100~330nF截止频率<10kHz,不影响高频信号

一个经典反射场景

假设发送端输出阻抗30Ω,传输线50Ω,接收端开路(ZL=∞)。第一次反射:Γ1=(30-50)/(30+50)=-0.25,发送端输出信号被反射掉1/4。到接收端看:Γ2=(∞-50)/(∞+50)=1,全反射。来回几次,信号就乱套了。

PCIe不允许开路接收,内部端接会拉到VRX level。但电源纹波太大时,端接点的等效阻抗会变,照样出反射。所以去耦电容也要放到位。

特别注意:PCIe Gen4对阻抗的容忍度很窄。我见过一些板子,单端50Ω实际测出来只有46Ω,反射系数0.042,感觉不大。但整条链路加起来(TX+过孔+connector+RX),累计反射会让眼图开度掉15%以上。

所以,设计阶段一定要打样试板,用VNA或者TDR测阻抗,别光靠仿真。

阻抗不匹配 → 反射 → 信号劣化流程图 发送端TX Z_s=30Ω 传输线 Z₀=50Ω 接收端RX Z_L=80Ω 反射波 (Γ=0.23) 多次反射 → 振铃 眼图闭合 关键要点 ① 反射系数 Γ = (Z_L − Z₀)/(Z_L + Z₀) ② Z₀不匹配 → 能量反射 → 过冲 / 振铃 / 眼图缩小 ③ 解决:控制PCB阻抗、优化过孔、端接电阻、减少stub

这张图从左侧发送端出发,经过50Ω传输线,到80Ω接收端。红色虚线是第一次反射波,紫色是后续来回反射。结果就是接收端看到的波形叠加了多个反射分量,眼图自然就塌了。

总结一下我的经验

阻抗匹配不是玄学,是数学。只要记住Γ公式,再结合TDR实测,绝大多数反射问题都能提前发现。我个人习惯在设计阶段就用HyperLynx或者SiWave跑几遍时域反射仿真,看看每个过孔、每个连接器的阻抗突变有多大。等板子打回来,第一件事就是上TDR量差分布线的阻抗。

嗯,还有一个容易被忽视的——AC耦合电容的焊盘。如果焊盘尺寸太大,寄生电容会把阻抗拉低。我一般把耦合电容的焊盘宽度控制在线宽的80%以内。细节决定成败。

这章最核心的就一句话:让信号看到的阻抗处处相等,反射自然消失。