4、反射与端接:反射的形成机制、源端端接、并联端接、AC端接、戴维南端接
说到信号完整性,反射这个话题是绕不开的。我刚开始做高速设计那会儿,就被反射坑过好几次。有一次调试一块DDR3板子,波形简直没法看,后来一查,就是端接没做好。今天咱们就把反射和端接这事儿彻底聊透。
4.1 反射是怎么形成的?
反射的本质,说白了就是阻抗不连续。信号在传输线上跑,就像水流在管道里流。管道粗细均匀,水流就顺畅。突然管道变细了,水就会反弹回来。信号也是一样。
信号遇到阻抗变化点,一部分能量继续往前走,另一部分就反射回来了。反射系数Γ就是描述这个比例的:
Γ = (Z_load - Z0) / (Z_load + Z0)
其中Z0是传输线的特性阻抗,Z_load是负载端的阻抗。
我给大家几个典型值感受一下:
| 负载情况 | Z_load | 反射系数Γ | 反射现象 |
|---|---|---|---|
| 开路 | ∞ | +1 | 全反射,电压翻倍 |
| 短路 | 0 | -1 | 全反射,电压反相 |
| 匹配 | Z0 | 0 | 无反射 |
| 失配 | ≠Z0 | ≠0 | 部分反射 |
嗯,这里要注意。反射不是一次就完事了。反射回来的信号跑到源端,如果源端也不匹配,又会反射回去。来回折腾,就形成了振铃。我在项目中见过最夸张的一次,振铃幅度都快赶上信号本身了,那板子根本没法用。
4.2 源端端接
源端端接,也叫串联端接。做法很简单:在驱动器的输出端串一个电阻,让源端阻抗加上这个电阻等于传输线的特性阻抗。
公式长这样:
R_s + R_driver = Z0
其中R_s是串联电阻,R_driver是驱动器的输出阻抗。
我个人习惯用源端端接,原因有三:
- 功耗低——电阻上不消耗直流功率
- 简单——一个电阻搞定,不占地方
- 适合点对点——一条线只带一个负载时特别好用
但源端端接有个特点:它不消除反射,而是吸收反射。信号发出去的时候只有一半幅度,到了远端开路处反射回来,幅度叠加才变成完整电平。所以远端看到的波形是慢慢爬上去的,不是陡峭的边沿。
4.3 并联端接
并联端接,就是在接收端把电阻拉到地或者电源上。最常见的做法是拉到地,电阻值等于Z0。
并联端接的好处是:信号边沿保持陡峭,适合高速信号。但它有个大问题——直流功耗。想想看,信号为高电平时,电流一直通过电阻流到地。对于3.3V、50Ω的系统,静态电流就有66mA。一条线还好,几十条线呢?功耗就上去了。
我记得有个项目,用了并联端接,板子一上电就发热。后来一算,光端接电阻就耗了将近2W。从那以后,我对并联端接就谨慎多了。
4.4 AC端接
AC端接是并联端接的改良版。在电阻后面串一个电容,再接到地。这样直流路径被电容隔断,只有交流信号才通过电阻被吸收。
电容值怎么选?有个经验公式:
C ≥ 3 × (Tr / Z0)
其中Tr是信号的上升时间。比如Tr=1ns,Z0=50Ω,那C至少60pF。我一般取100pF到1000pF之间。
AC端接的好处很明显:
- 直流功耗几乎为零
- 信号边沿保持陡峭
- 适合高频信号
但缺点也有:电容会占用PCB面积,而且电容本身有寄生参数。高频时电容的ESL(等效串联电感)会影响效果。我曾经在2GHz以上的信号上用AC端接,发现效果不如预期,后来换成戴维南端接了。
4.5 戴维南端接
戴维南端接,也叫分压端接。用两个电阻,一个拉到电源,一个拉到地。两个电阻的并联值等于Z0,同时分压点电压等于信号的中间电平。
公式:
R1 || R2 = Z0
Vcc × R2 / (R1 + R2) = V_swing/2
对于常见的3.3V CMOS信号,摆幅0到3.3V,中间电平1.65V。如果Z0=50Ω,可以取R1=R2=100Ω,并联正好50Ω。
戴维南端接的好处是:
- 同时提供上拉和下拉,对信号的双向传输都友好
- 适合总线结构,多个负载共享一组端接
- 信号质量好,振铃抑制彻底
代价就是功耗比并联端接还大。两个电阻都有电流流过。还是3.3V、100Ω的例子,静态电流33mA,功耗约55mW。一条线还行,多了就受不了。
4.6 怎么选?一张表说清楚
| 端接类型 | 功耗 | 信号质量 | PCB面积 | 适用场景 |
|---|---|---|---|---|
| 源端端接 | 低 | 良(边沿变缓) | 小 | 点对点、低速 |
| 并联端接 | 高 | 优 | 小 | 点对点、高速 |
| AC端接 | 极低 | 优 | 中 | 高频、低功耗 |
| 戴维南端接 | 高 | 最优 | 中 | 总线、双向信号 |
最后说一句,没有万能的端接方案。每个项目都要根据实际情况来选。我现在的习惯是:先仿真,再选型,最后在样板阶段用示波器实测验证。纸上谈兵容易翻车,动手测一测才踏实。