3. 反射与端接:反射的形成机制、源端端接、末端端接、AC端接、戴维南端接

反射,说白了就是信号在传输线上跑的时候,遇到了阻抗不连续的地方,一部分能量被弹了回来。你想想看,信号就像一列火车,轨道(传输线)的宽度突然变了,火车能不颠簸吗?

我刚开始做SI的时候,有一次调试一块高速板,眼图总是张不开。折腾了好几天,最后发现就是一个过孔的阻抗突变引起的反射。从那以后,我对反射这玩意儿就特别上心。

3.1 反射的形成机制

反射的根本原因,就是阻抗不匹配。信号在传输线上传播时,每时每刻都“看到”一个瞬时阻抗。如果这个阻抗变了,信号就会分裂成两部分:一部分继续往前传,另一部分被反射回来。

反射系数 Γ 决定了反射的幅度:

Γ = (Z_load - Z_0) / (Z_load + Z_0)

其中 Z_load 是负载阻抗,Z_0 是传输线的特性阻抗。

举个例子:

  • 如果 Z_load = Z_0,Γ = 0,没有反射——这是理想情况。
  • 如果 Z_load = ∞(开路),Γ = 1,信号全反射,幅度加倍。
  • 如果 Z_load = 0(短路),Γ = -1,信号全反射,幅度反相。

关键点:反射不仅发生在末端,任何阻抗不连续的地方都会产生反射——过孔、连接器、分支、拐角,都是潜在的反射源。

反射的后果是什么?过冲、下冲、振铃、台阶波形,这些都是反射的“杰作”。严重的时候,逻辑电平误判,系统直接罢工。

3.2 端接策略:让信号“安静”下来

既然反射是因为阻抗不匹配,那解决办法就是让阻抗匹配。端接,就是在传输线的某个位置加上电阻,把反射吃掉。

我个人习惯把端接分成两大类:源端端接和末端端接。下面一个个说。

3.2.1 源端端接(串联端接)

源端端接,就是在驱动器的输出端串一个电阻。这个电阻加上驱动器的输出阻抗,要等于传输线的特性阻抗。

公式很简单:R_s + R_driver = Z_0

比如,驱动器的输出阻抗是 10Ω,传输线特性阻抗是 50Ω,那串联电阻就是 40Ω。

源端端接的原理是:让驱动端输出的信号幅度减半(因为电阻分压),这个半幅信号跑到末端,遇到开路(或高阻)反射回来,幅度加倍,正好恢复到满幅。反射回来的信号到了源端,又被匹配的阻抗吸收掉,不再产生二次反射。

我的经验:源端端接在点对点拓扑中特别好用。我曾经在一个DDR3地址线项目里用过,效果不错。但要注意,串联电阻要尽量靠近驱动端放置,越近越好。

优点:功耗低,不增加直流负载,适合点对点。

缺点:信号幅度减半,对接收端灵敏度有要求;不适合多负载拓扑。

3.2.2 末端端接(并联端接)

末端端接,就是在传输线的末端,对地(或对电源)并联一个电阻,让末端阻抗等于 Z_0。

最简单的形式:R_p = Z_0,一端接信号线,一端接地。

这样,信号跑到末端,直接“看到”匹配的阻抗,没有反射。

末端端接又分几种:

类型 接法 特点
并联到地 R = Z_0,一端接信号,一端接地 简单,但增加直流功耗,低电平会被拉高
并联到电源 R = Z_0,一端接信号,一端接Vcc 适合TTL电平,高电平会被拉低
戴维南端接 两个电阻,一个到Vcc,一个到地 等效阻抗匹配,同时提供直流偏置
AC端接 电阻串联电容到地 只吸收高频反射,不消耗直流

注意:末端端接会持续消耗直流电流。在低功耗设计中要慎重。我曾经在一个电池供电的项目里用了并联端接,结果静态功耗超标,后来换成了AC端接才解决问题。

3.2.3 戴维南端接

戴维南端接,就是用两个电阻组成分压器,一个接到Vcc,一个接到地。两个电阻的并联值等于Z_0,同时分压点提供合适的直流偏置电平。

计算公式:

R1 || R2 = Z_0
V_bias = Vcc * R2 / (R1 + R2)

比如,对于3.3V的CMOS电平,希望偏置在1.65V,Z_0=50Ω:

R1 = R2 = 100Ω
并联值 = 50Ω ✓
偏置电压 = 1.65V ✓

戴维南端接的好处是:既匹配了阻抗,又提供了稳定的直流电平,适合总线型拓扑。但缺点也很明显——两个电阻一直有电流流过,功耗比单电阻并联端接还大。

3.2.4 AC端接

AC端接,就是在末端串联一个电容再接地。电容的作用是隔断直流,只让高频信号“看到”匹配的电阻。

典型接法:R = Z_0,C 的选择要满足时间常数远大于信号上升时间。

C > 10 * t_r / R

比如,上升时间 t_r = 1ns,R = 50Ω,那么 C > 200pF。实际中常用 100pF ~ 1nF。

AC端接最大的优势:不消耗直流功耗。适合高频、低功耗设计。但要注意,电容会引入额外的延迟,而且电容的寄生参数在高频下会影响效果。

我的建议:如果你在做DDR4或更高频率的设计,AC端接是个不错的选择。但电容的选型要小心,我一般用NP0/C0G材质的MLCC,温度稳定性好,寄生电感小。

3.3 端接策略对比与选择

这么多端接方式,到底选哪个?我整理了一个对比表,方便你快速决策:

端接类型 功耗 拓扑适用性 信号幅度 复杂度 推荐场景
源端串联 低 点对点 减半 低 时钟、单点信号
末端并联 高 点对点、总线 正常 低 高速总线末端
戴维南 很高 总线 正常 中 多负载总线
AC端接 极低 点对点 正常 中 低功耗高频

选型时,我一般按这个思路来:

  1. 先看拓扑:点对点?还是多点总线?
  2. 再看功耗:电池供电?还是插电设备?
  3. 最后看频率:1GHz以下?还是更高?

点对点、低频、低功耗 → 源端串联

点对点、高频、功耗不敏感 → 末端并联

多点总线、需要稳定偏置 → 戴维南

高频、低功耗、点对点 → AC端接

3.4 反射与端接知识体系

下面这张图,把反射和端接的核心逻辑串起来了:

反射与端接知识体系 反射与端接知识体系 反射的形成机制 根本原因:阻抗不连续 后果:过冲/振铃/台阶 反射系数 Γ = (ZL-Z0)/(ZL+Z0) 端接策略:阻抗匹配 源端串联端接 末端并联端接 戴维南端接 AC端接 💡 选型建议 点对点低功耗 → 源端串联 | 高速总线 → 戴维南 | 低功耗高频 → AC端接 功耗不敏感高频 → 末端并联 | 所有端接电阻尽量靠近源端或末端放置

3.5 避坑指南

做反射和端接设计,有几个坑我踩过,分享给你:

  • 电阻位置不对:我曾经把串联端接电阻放在了走线中间,结果反射没消除,反而多了一个反射点。记住,源端串联电阻要贴着驱动器的输出引脚放。
  • 电容选型不当:AC端接的电容,如果用X7R或者Y5V材质,在高频下容值会大幅下降。我吃过这个亏,后来一律用NP0/C0G。
  • 忽略封装寄生:端接电阻的封装寄生电感在高频下会“失效”。0402封装的电阻,寄生电感约0.5nH,在5GHz时感抗约15Ω,已经不能忽略了。
  • 戴维南端接功耗估算:两个电阻一直通电,功耗是持续的。我曾经算漏了,导致电源余量不足。公式很简单:P = Vcc² / (R1 + R2),别忘了乘以电阻数量。

重要提醒:端接不是万能的。如果拓扑本身有问题(比如过长的stub、过多的分支),端接只能缓解,不能根治。先优化拓扑,再考虑端接——这个顺序不能乱。