1. 信号完整性与反射:传输线理论、特性阻抗、反射形成机理、端接策略

大家好,我是你们的老朋友。今天咱们聊聊信号完整性里最基础、也最让人头疼的一个问题——反射。

说实话,我入行那会儿,第一次看到示波器上那乱七八糟的波形,真以为是芯片坏了。后来才明白,这其实是传输线和阻抗不匹配搞的鬼。你想想看,信号在PCB上跑,就像水在管道里流。管道粗细一变,水就会溅出来。信号也一样,阻抗一变,能量就反射回来了。

1.1 传输线理论:信号不是瞬间到达的

很多新手会问:信号从驱动端到接收端,不是一瞬间的事吗?

嗯,在低速电路里,你可以这么想。但在高速数字电路里,信号的上升沿可能只有几百皮秒。这时候,PCB走线就不能再当成一根理想的导线了。它得被看作一条传输线。

传输线有两个关键参数:特性阻抗时延。信号在传输线上传播时,会感受到一个瞬态的阻抗,这就是特性阻抗。它由走线的宽度、厚度、介质高度和介电常数决定。

我个人习惯用微带线和带状线来区分。微带线在表层,参考平面在下面;带状线在内层,上下都有参考平面。两者的阻抗计算公式略有不同,但核心思想一样——控制好几何尺寸,才能得到稳定的阻抗。

核心要点:当信号的上升时间小于2倍的传输线时延(即走线长度大于1/6的上升沿空间长度)时,就必须按传输线来处理。

1.2 特性阻抗:你绕不开的50欧姆

为什么PCB上大家都用50欧姆?其实不是绝对的。50欧姆是个折中值。它兼顾了功耗、制造工艺和信号衰减。

我记得有一次做项目,为了省成本,把阻抗放宽到了60欧姆。结果呢?信号反射得一塌糊涂,眼图都睁不开了。后来老老实实改回50欧姆,问题就解决了。

特性阻抗的计算公式如下(微带线近似公式):

Z0 = 87 / sqrt(εr + 1.41) * ln(5.98 * H / (0.8 * W + T))

其中:

  • εr:介电常数(FR4通常取4.2~4.5)
  • H:介质厚度
  • W:走线宽度
  • T:铜箔厚度

你想想看,这个公式里变量不少。实际做板时,板厂会微调线宽来保证阻抗。所以,设计时一定要和板厂沟通好叠层结构。

1.3 反射形成机理:为什么波形会过冲?

反射的本质,就是阻抗不连续。信号走到一个阻抗突变的地方,一部分能量继续前进,另一部分被弹回来。

反射系数Γ的计算很简单:

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

当负载阻抗等于特性阻抗时,Γ=0,没有反射。当负载开路(Z_load=∞),Γ=1,信号全反射回来,形成过冲。当负载短路(Z_load=0),Γ=-1,信号反相反射,形成下冲。

我在项目中遇到过最典型的情况:一个DDR3的数据线,接收端没做端接,结果波形上冲到了1.8V(正常1.5V)。芯片直接烧了。嗯,这就是反射的代价。

警告:反射不仅会造成过冲/下冲,还会产生振铃(ringing)。振铃会导致误触发,严重时直接让系统崩溃。

1.4 端接策略:把反射扼杀在摇篮里

既然反射是因为阻抗不匹配,那我们就想办法匹配它。端接就是干这个的。

1.4.1 串联端接

串联端接是最简单、最省钱的方法。在驱动端串一个电阻,阻值等于Z0减去驱动器的输出阻抗。

举个例子:如果Z0=50Ω,驱动器的输出阻抗是10Ω,那串一个40Ω的电阻就行。

我曾经在一个FPGA项目里用过串联端接。效果不错,波形干净多了。但要注意,串联端接只适合点对点的连接。如果是多点总线,就不太灵了。

1.4.2 并联端接

并联端接是在接收端对地(或对电源)接一个电阻,阻值等于Z0。这样信号到了接收端,能量被电阻吸收,不会反射回来。

并联端接效果好,但功耗大。因为直流电流一直在流。我记得有个项目,用了并联端接后,整个板子功耗多了2W,散热成了大问题。

1.4.3 AC端接

AC端接是并联端接的变种。在电阻后面串一个电容,隔断直流,只吸收交流分量。这样功耗就小多了。

但AC端接有个坑:电容的容值要选好。太小了,低频信号反射;太大了,又起不到隔直作用。我一般选0.1μF,配合50Ω电阻,效果还行。

小技巧:如果你不确定用哪种端接,优先考虑串联端接。它简单、便宜、功耗低。只有在串联端接搞不定的时候,再上并联或AC端接。

1.5 IBIS模型仿真:别光靠经验,跑个仿真看看

光靠公式和经验,有时候不够。尤其是现在信号速率越来越高,2.5Gbps、5Gbps甚至更高。这时候,我建议你跑个仿真。

IBIS(I/O Buffer Information Specification)模型是芯片厂商提供的,描述了芯片的I/O特性。用IBIS模型做仿真,比用SPICE模型快得多,而且不涉及芯片内部电路,保护了厂商的IP。

仿真步骤大致如下:

  1. 从芯片官网下载IBIS模型(.ibs文件)
  2. 在仿真工具(如HyperLynx、ADS)中导入模型
  3. 设置传输线参数(阻抗、长度、损耗)
  4. 设置驱动端和接收端的端接
  5. 跑时域仿真,看波形和眼图

我记得有一次,一个SATA接口的信号,按经验算好了端接,结果仿真一看,眼图闭合了。后来调整了端接电阻值,眼图才打开。所以说,仿真真的能救命。

避坑指南:我曾经遇到过IBIS模型版本不对的情况。芯片厂商更新了模型,但我用的还是旧的。结果仿真结果和实测差了20%。所以,一定要用最新版本的IBIS模型。

1.6 小结

好了,这一章的内容就到这里。咱们聊了传输线理论、特性阻抗、反射的形成、端接策略和IBIS仿真。说白了,反射问题就是阻抗匹配问题。你只要把阻抗控制好,反射就自然消失了。

下一章,咱们聊聊串扰。那玩意儿比反射更隐蔽,也更难搞。到时候见。