4 反射与端接
反射,说白了就是信号在传输线上遇到阻抗突变时,一部分能量弹回来的现象。你想想看,信号在走线上跑,好比水在管道里流;管道突然变细或者堵个东西,水就会往回溅。电信号也一样,阻抗不连续的地方就是弹回点。
我在早期做DDR3设计时,就因为没处理好反射,导致数据眼图闭合严重,整整排查了两周。后来老老实实地把端接加上,眼图一下就开了。这一课咱们就把反射的根儿挖清楚,再把四种常用端接方案讲透。
4.1 反射是怎么产生的?
反射的核心是阻抗不匹配。信号到达驱动端、接收端,或者经过过孔、分支、连接器时,如果瞬间阻抗与传输线特性阻抗Z0不一致,就会发生反射。
反射系数Γ(gamma)定义如下:
Γ = (Z_load - Z0) / (Z_load + Z0)
- Γ 为0 → 完全匹配,无反射。
- Γ 为正 → 反射信号与入射同极性(开路时Γ=+1)。
- Γ 为负 → 反射信号与入射反向(短路时Γ=-1)。
高速信号通常要求Γ控制在±0.1以内,否则过冲/下冲就会超过10%的阈值。
为什么反射会在接收端引起过冲、下冲甚至振铃?因为反射波折返回源端又会再次反射,来回折腾形成驻波。信号质量恶化的直接表现就是时序余量缩减、误码率飙升。
4.2 端接:给信号一个“安静”的终点
端接的目的就是在阻抗突变点加一个匹配电阻,把多余的反射能量吸收掉。按位置和形式可分为四类:
| 端接类型 | 放置位置 | 匹配对象 | 典型阻值 | 功耗 |
|---|---|---|---|---|
| 源端端接 | 驱动端串联 | 驱动输出阻抗 | Rs ≈ Z0 – Rd | 低 |
| 并联端接 | 接收端对地/电源 | 传输线阻抗 | R = Z0 | 高 |
| AC端接 | 接收端串联RC | 传输线阻抗 | R = Z0, C 隔直 | 中 |
| 戴维南端接 | 接收端分压 | 传输线阻抗 | R1∥R2 = Z0 | 中 |
下面我把每种端接的细节掰开揉碎了讲。
4.2.1 源端端接(串联端接)
在驱动器的输出引脚附近串一个小电阻Rs,让驱动总输出阻抗等于Z0。这样第一次反射从接收端回来时,源端阻抗匹配就不再产生二次反射。源端端接只吸收一次反射波,但带来的好处是功耗很低——因为信号在驱动端直接就被衰减了。
// 源端端接仿真:HyperLynx 中设置
// 驱动: 3.3V CMOS, 输出阻抗 ~10Ω
// 走线 Z0 = 50Ω
// 计算 Rs = 50 – 10 = 40Ω
// 串联电阻放在距焊盘 0.5 inch 以内
优点: 只用一个电阻,不增加额外功耗,适用于点对点拓扑。
缺点: 信号幅度会被分压,接收端只能收到一半摆幅(如果源端匹配完美),且多负载时效果差。
4.2.2 并联端接
在接收端加一个对地(或对VTT电源)的电阻R,阻值等于Z0。信号到末端直接“看到”匹配阻抗,一次反射都被吸收干净。并联端接效果最好,但电阻上一直有直流电流,功耗大,而且需要额外的VTT电源轨。
我曾经在DDR2的地址线上用过并联端接到VTT=VDDQ/2,结果板子背面多了一排排电阻,电源层也加了一层。功耗和布局复杂度都要提前评估。
| 项目 | 并联到GND | 并联到VTT |
|---|---|---|
| 直流功耗 | Voh² / R | (Voh-VTT)² / R |
| 共模电平 | 0 | VTT |
| 适用信号 | 单端(LVCMOS) | 单端(SSTL/HSTL) |
4.2.3 AC端接
在接收端串联一个电容后再对地接电阻,电容隔直流,电阻匹配高频。AC端接的功耗比纯并联低,因为直流被电容阻断,只有交流信号才会被电阻吸收。
AC端接常用于时钟线或高频少量差分信号,但电容的ESR和寄生电感会影响高频性能。我一般在仿真里把电容模型换成实际厂商的S参数模型,否则仿真带宽不够会漏掉反射细节。
// AC端接典型值(100MHz时钟)
// Z0 = 50Ω,选择 R = 49.9Ω
// 隔直电容 C = 0.1µF(fc ≈ 32kHz)
// 注意:电容谐振频率要高于信号频率的3倍以上
4.2.4 戴维南端接
用两个电阻组成分压器,等效电阻等于Z0,同时提供一个中间偏置电压。戴维南端接既能吸收反射,又能设定输入阈值,特别适用于差分信号或需要共模偏置的场景。
假设Z0=50Ω,VDD=3.3V,希望等效电阻为50Ω,偏置1.65V,可以选R1= R2=100Ω(100∥100=50Ω)。
戴维南端接设计公式:
R1 = 2 * Z0 * VDD / Vbias
R2 = 2 * Z0 * VDD / (VDD - Vbias)
// 例子:VDD=3.3V, Vbias=1.65V, Z0=50Ω
// R1 = 2*50*3.3/1.65 = 200Ω
// R2 = 2*50*3.3/(3.3-1.65)= 200Ω
// 等效 = 200∥200 = 100Ω ≠ 50Ω?这个公式有问题,实际用R1∥R2 = Z0。
// 更简单:选R1=R2=2*Z0 (如100Ω),则等效Z0=50Ω,偏压=VDD/2。
戴维南端接的电阻总功耗比并联端接略低,但需要两个电阻,占板面积大。我通常在总线拓扑用戴维南,点对点直接上并联端接算了。
4.3 端接方案怎么选?
以下是我多年总结的管理原则:
- 点对点低速(<50MHz):源端端接就够了,省钱省空间。
- 点对点高速(>50MHz):并联端接最干净,接受功耗和额外电源。
- 多点负载(Fly-by 拓扑):戴维南端接或者AC端接,既能匹配又能防过冲。
- 差分信号:直接差分端接(100Ω跨在P/N之间),跟单端端接不是一回事。
你想想看,一个PCIe Gen4走线如果用源端端接,眼图根本过不了。该花成本的地方别省,这就是高速设计的代价。
好了,反射和端接的基本功就到这里。把这四类端接的原理和代价记牢,以后设计高速总线时,心里就有谱了。记住:匹配是做出来的,不是算出来的——仿真跑一跑,比纸上谈兵管用一百倍。