第二章 物理层基础:传输线理论、信号完整性基础、阻抗匹配概念
各位同学,咱们今天聊聊物理层。说实话,很多做数字设计的同事觉得这是模拟工程师的事,跟我没关系。我以前也这么想,直到第一次遇到高速信号眼图闭合的问题,才明白——不懂物理层,你连问题出在哪都找不到。
2.1 传输线理论——信号不是瞬间到达的
先问个问题:一根PCB走线,信号从驱动端到接收端需要多久?
你可能觉得,电信号速度接近光速,几厘米的走线,那不就是一瞬间的事吗?
嗯,理论上没错。但实际工程中,当信号上升时间小于走线延迟的2倍时,这根走线就不能再当成理想导线了。它变成了——传输线。
关键判断准则:
如果走线长度 > 信号上升时间 × 光速 / 6,就必须按传输线处理。
举个例子:DDR4的上升沿约100ps,光速3×10⁸ m/s,算下来临界长度约5mm。超过5mm的走线,就得认真对待了。
传输线有两个核心参数:特性阻抗Z₀和传播延迟Td。Z₀由线宽、介质厚度、介电常数决定。我习惯用Polar SI9000做快速计算,但心里得有数——FR4板材的微带线,50Ω阻抗大概对应线宽是介质厚度的2倍左右。
这里有个坑:特性阻抗不是直流电阻。直流电阻是几欧姆甚至更小,但特性阻抗是50Ω或100Ω。它描述的是信号在传输过程中感受到的瞬时阻抗。你想想看,信号每往前走一步,都要给前面的分布电容充电,这个充电的阻力就是特性阻抗。
2.2 信号完整性基础——信号也会生病
信号完整性,说白了就是保证信号从发送端到接收端,波形别走样得太厉害。
常见的信号完整性问题有这几类:
- 反射——阻抗不连续造成的信号回弹
- 串扰——相邻走线之间的电磁耦合
- 振铃——信号过冲和下冲的振荡
- 地弹——多个信号同时切换引起的参考电平波动
我在项目中遇到过最典型的是反射问题。一块FPGA板子,DDR3跑800MHz,眼图总是有毛刺。查了半天,发现是走线过孔处的阻抗突变。过孔的焊盘和反焊盘没处理好,阻抗从50Ω跳到了70Ω。信号到了那里,一部分能量反射回来,跟后面的信号叠加,波形就乱了。
我的经验:做高速设计时,每个过孔都要当成一个元件来对待。过孔的寄生电容和寄生电感会改变局部阻抗。我一般会在过孔周围加地过孔,把回流路径缩短,这样能减少约30%的反射。
串扰的问题也常见。两条平行走线,间距越小,耦合越强。我记得有个项目,时钟线和数据线挨得太近,时钟的跳变沿串扰到数据线上,导致数据采样出错。后来把间距拉到3倍线宽,问题就解决了。
为什么会这样?因为串扰跟距离的平方成反比。间距从1倍线宽增加到3倍线宽,串扰能降低约80%。
2.3 阻抗匹配概念——给信号一个舒服的家
阻抗匹配,就是让信号路径上的阻抗处处相等。信号走在均匀阻抗的路径上,就像人在平坦的路上跑步,轻松愉快。一旦遇到阻抗突变,就像路上突然出现一个坑,信号会摔跤——也就是反射。
匹配的方式主要有三种:
| 匹配方式 | 适用场景 | 优缺点 |
|---|---|---|
| 源端串联匹配 | 点对点传输,如时钟线 | 功耗低,但只能吸收一次反射 |
| 末端并联匹配 | 多负载总线,如DDR地址线 | 效果好,但静态功耗大 |
| AC匹配 | 需要隔直流的场景 | 无直流功耗,但占用面积大 |
我个人习惯用源端串联匹配。做法很简单:在驱动端串一个电阻,阻值等于传输线特性阻抗减去驱动器的输出阻抗。比如驱动器输出阻抗是20Ω,传输线是50Ω,那就串一个33Ω的电阻(常用标称值)。
注意:电阻要尽量靠近驱动端放置,越近越好。我曾经见过有人把匹配电阻放在走线中间,结果反射照样严重。因为信号在到达电阻之前已经遇到了阻抗突变。
还有一种情况是差分信号,比如USB、HDMI、以太网。差分对的特性阻抗通常是100Ω。匹配时需要在接收端并一个100Ω的电阻。这个电阻不能省,我见过有人为了省一个电阻,结果信号质量差到无法通过一致性测试。
2.4 知识体系总览
下面这张图是我自己整理的物理层知识框架,你可以把它当成一个快速索引。
这张图把三个模块的关系串起来了。传输线理论是基础,它告诉你信号在走线上怎么传播。信号完整性是现象,它描述信号出了什么问题。阻抗匹配是手段,它帮你解决问题。
一个小建议:刚开始学的时候,别急着啃公式。先理解物理概念。我当年就是先搞懂了「信号为什么反射」,再去算反射系数,发现那些公式其实很直观。
好了,物理层的基础就聊到这。下一节我们会深入讲反射的具体计算和仿真方法。到时候我会拿一个实际项目的案例来拆解,看看反射到底怎么算、怎么测、怎么修。