第2章 高速串行链路基础:差分信号与阻抗匹配
2.1 为什么非要用差分信号?
记得我刚入行那会儿,第一次看到高速示波器上的差分眼图,心里嘀咕:不就是两根线一起走吗?后来被老工程师带着调一块 28Gbps 的背板,才真正明白——差分信号,说白了就是用两条线传输一个信号。正端送 Vp,负端送 Vn,接收端只看它俩的差值 (Vp - Vn)。
好处在哪儿?我列几个实际中感受最深的:
- 抗共模噪声:外界干扰同时耦合到两根线上,正负相减,干扰自己抵消了。我在项目中遇到过机箱内电源噪声串扰严重的情况,换成差分线后眼图立刻干净多了。
- 减少电磁辐射:两根线的电流方向相反,产生的磁场互相抵消。这比单端线更环保,EMI 测试容易过。
- 共模电平灵活:差分对不需要严格的参考地,不同芯片之间电平转换更方便。
核心要点:差分对的抗干扰能力,取决于两条走线的对称性。你想想看,如果两根线一个长一个短,干扰抵消效果就会打折扣。这就是为什么 SerDes 布线那么强调等长。
2.2 差分阻抗:一个被忽视的关键参数
很多人只盯着单端 50Ω 阻抗,却忘了差分也是阻抗匹配问题。差分阻抗 Zdiff 指的是差分信号感受到的瞬时阻抗,通常取 100Ω 或 90Ω。
这里有一个常见误区:差分阻抗不是两个单端阻抗的简单相加。我曾经遇到过一块高速板,设计者算出单端 50Ω×2=100Ω,就直接投板了,结果 TDR 测试显示差分阻抗只有 85Ω。为什么呢?
因为两根线之间有耦合。耦合越强,差分阻抗就越低。具体关系是:
| 参数 | 符号 | 典型值范围 | 我的经验 |
|---|---|---|---|
| 差分阻抗 | Zdiff | 90~100Ω | PCIe Gen5 通常取 90Ω |
| 共模阻抗 | Zcomm | 25~30Ω | 不要忽略它,共模噪声抑制靠这个 |
| 偶模阻抗 | Zeve | 40~55Ω | 偶模模式下阻抗降得厉害,注意 |
| 奇模阻抗 | Zodd | 45~55Ω | 奇模才是正常差分信号的模式 |
个人技巧:我习惯在 PCB 布局前先用 Polar SI9000 或者层叠计算器算一遍差分阻抗,然后和 PCB 厂商确认他们的实际介电常数和铜厚。别完全相信理论值,加工偏差会让你怀疑人生。
2.3 阻抗不匹配会怎样?
阻抗不匹配,后果就是反射。反射会在接收端产生振铃、过冲,严重时眼图闭合,误码率飙升。
我记得有一次调试一块 56Gbps PAM4 的板卡,眼图总是不开。折腾了三天,最后用 TDR 一看——过孔处的差分阻抗掉到了 35Ω。原因就是过孔反焊盘没有掏足够大,回流路径被切断,等效电感变大,阻抗突然塌陷。
常见的阻抗不连续点:
- 过孔:最普遍的罪魁祸首。我建议高速信号最好少换层,非要换层时,加回流过孔。
- 连接器:连接器引脚区域的阻抗控制很难做,选型时一定要看厂家的 TDR 报告。
- 分支/焊盘:SerDes 信号不能有 stub!不能有 stub!不能有 stub!重要的话说三遍。
- 走线变宽/变窄:经过 BGA 扇出区域时,走线经常需要收窄,这一段阻抗肯定会跳。
2.4 阻抗匹配的实际操作
匹配不是玄学,是可以量化的。我一般按下面的流程来走:
- 确定目标阻抗:看协议标准。USB4 要求 90Ω 差分,以太网 100Ω,SATA 100Ω。别自己想当然。
- 设计层叠结构:根据板厚、层数、参考层间距,计算线宽和线距。
- 走线参数:
- 线宽:典型值 4~6 mil(1oz 铜厚,内层)
- 线距:典型值 6~10 mil,间距越小耦合越强,Zdiff 越低
- 参考层:必须是完整的地平面,不能有分割
- 共面地线:差分对两侧放地线,可以抑制串扰。但地线不能离太近,否则会改变差分阻抗。
- 仿真验证:用 HyperLynx 或者 ADS 跑一下 TDR,看看阻抗是否在 ±10% 以内。
2.5 差分信号与阻抗匹配知识体系
下面这张图我把本章的核心逻辑串了一遍,方便你对照理解:
2.6 差分信号常见标准与阻抗对照
不同的 SerDes 协议对差分阻抗要求不一样,我在实际项目中遇到过因为混用标准导致链路不兼容的情况。这里整理了一个对照表:
| 协议标准 | 数据速率 | 差分阻抗 | 共模电压范围 | 典型应用 |
|---|---|---|---|---|
| PCIe Gen4/5 | 16~32 GT/s | 85 Ω (±5%) | 0~0.8 V | 服务器、AI 加速卡 |
| SAS 4/5 | 22.5~24.0 Gbps | 100 Ω (±5%) | 0~1.2 V | 存储背板 |
| USB 3.2 Gen2 | 10 Gbps | 90 Ω (±5%) | 0~0.5 V | 消费电子 |
| Ethernet 100GBase-KR4 | 25.78125 Gbps | 100 Ω (±5%) | 0~1.0 V | 数据中心 |
| SATA Gen3 | 6.0 Gbps | 100 Ω (±5%) | 0~0.8 V | 硬盘接口 |
踩坑提示:我曾经为了省成本,在一款 PCIe Gen4 板卡上用了 100Ω 的差分线,结果 TDR 波形一塌糊涂,眼高直接掉了一半。后来换回 85Ω 层叠,问题立刻解决。协议规定的阻抗,别自作主张改。
2.7 差分信号的回流路径
很多人只看信号走线,不看回流路径。这是个致命错误。
单端信号的回流电流走在信号线正下方的参考平面上。差分信号的回流电流主要在两根信号线之间流动——它们自己形成了一个回路。所以差分信号对参考平面的依赖比单端信号小一些,但并非完全不受影响。
我个人的经验是:
- 差分对下方一定要有完整的地平面,不要跨分割。
- 如果非要跨层,必须加回流过孔,且距离差分对过孔不能超过 20 mil。
- 回流路径上的任何开槽、禁布区域,都会导致差分阻抗突变。
2.8 设计时的几条铁律
最后,我把这些年做 SerDes 走线设计攒下来的几条规矩直接摆出来:
- 等长是最基本的底线:差分对内等长,误差控制在 ±5 mil 以内。越高速越严格,56Gbps 时我要求 ±2 mil。
- 保持间距恒定:走线不能忽远忽近,间距一变,耦合度就变,阻抗就跟着跳。
- 尽量避免拐角:非要拐,走圆弧或 45 度斜角,千万别走直角。我曾经在 28Gbps 链路上量过一个直角拐弯,S22 在奈奎斯特频率上高了 3 dB。
- 远离其他信号:差分对之间保持 3 倍线距以上,防止串扰。
- AC 耦合电容要对称放置:容值一致,封装一致,位置一致。不对称就会产生共模转差模的噪声。
好了,这一章咱们聊了差分信号为什么好、阻抗匹配怎么算、以及实际设计时怎么避免踩坑。记住,SerDes 链路上每一毫米的阻抗不连续,都会直接反映在误码率上。做个规矩的 layout,比事后加一堆补偿电路有效得多。