3. SATA物理层基础:差分信号、阻抗匹配、交流耦合电容
Bring-up 一上来,很多人急着调链路层、看协议交互。我的经验是——先花半天把物理层摸透,后面能省三天的抓狂时间。物理层有问题,上层再对也白搭。
这一章咱们就掰开聊聊差分信号、阻抗匹配和交流耦合电容。这三个东西,搞懂一个就能避开一半的坑。
3.1 差分信号:为什么SATA非要用它?
SATA 用的是差分信号对——一对线(TX+ / TX-,RX+ / RX-)传一路数据。接收端看的是两条线上的电压差,不是对地电压。
好处很明显:
- 抗共模噪声:外部干扰同时耦合到两根线上,差值一减就没了。
- 信号摆幅小:SATA Gen3 的差分幅度也就 400~600mV,功耗低、辐射小。
- 参考地不敏感:收发两端地电位差一点,差分管它。
我早期做过一个项目,用单端信号线查了三天问题,最后发现是地弹导致的误码。换成差分对,干净了。从那以后,我对差分信号是打心底里信服。
关键参数:SATA 规范要求差分阻抗 100Ω ± 15%,单端对地阻抗 50Ω ± 10%。别搞错。
3.2 阻抗匹配:为什么还要讲“反射”?
信号在 PCB 上走,遇到阻抗突变就会反射。反射回来的能量叠加到原信号上,轻则眼图闭合,重则误码断链。
SATA 的差分阻抗需要控制在 100Ω。这怎么来的?
- 发送端(主控 SoC 或桥片)输出差分阻抗一般设计为 100Ω。
- PCB 走线的差分阻抗必须匹配到 100Ω(通过调整线宽、线距、介质厚度)。
- 接收端输入阻抗也是 100Ω(含终端电阻)。
- 接头与线缆也有特性阻抗要求。
我曾经处理过一个 case:板子跑 Gen1 没问题,Gen2 就疯狂丢包。量眼图发现上升沿有台阶,排查下来是过孔阻抗没控制好——过孔反焊盘挖太大,局部阻抗跳到 130Ω。重新设计叠层后问题解决。你们想想看,差 30Ω 就有这么大影响。
我的习惯:每次投板前,用 HFSS 或 SIwave 做一次阻抗扫频仿真,至少保证 500MHz~3GHz 平坦。不花这个时间,后面调试会加倍还你。
3.3 交流耦合电容:0.01μF 还是 0.1μF?
SATA 物理层要求发射端的差分信号上必须有交流耦合电容。一般来说放在发送端一侧。电容的作用是隔直流,不让收发两端的共模电压打架。
电容怎么选?
- 容值:推荐 0.01μF ~ 0.1μF。太小会衰减低频分量(8B/10B 编码有低频成分),太大又会让瞬态响应变慢。
- 封装:0402 或 0603。过大引入寄生电感。
- 材质:X7R 或 C0G。COG 温度特性更好,但价格贵。我一般用 0402 / 0.1μF / X7R,十有八九都稳。
- 位置:尽量靠近发送端放置(2~3 毫米以内),远离接收端。
记得有一次,产线反馈同一批板子有的不能连、有的能连。查了半天,发现是电容的寄生谐振频率不一样——供应商换了批 MLCC,自谐振频率从 200MHz 掉到 100MHz。SATA Gen3 的基频是 3GHz 啊,电容在那个频点已经呈感性了!换回原型号就 OK。
注意:电容焊盘太大或者焊锡过多,会破坏差分阻抗。很多工程师只算走线阻抗,忘了焊盘寄生电容。我建议把电容焊盘按 0402 焊盘设计,且务必挖空下面参考层。
3.4 物理层三板斧结构总览
下面这张图把三个知识点的关系串起来了。你可以从 SATA 链路中看出它们各自的位置和作用。
3.5 常见 Bring-up 故障案例排查表
我整理了三个典型问题,你遇到了可以直接对号入座。
| 症状 | 怀疑根因 | 验证手段 | 我的经验解决办法 |
|---|---|---|---|
| 链路协商只有 Gen1 | 眼图裕量不足 / 阻抗偏差 | 示波器测眼图,TDR 测阻抗 | 检查过孔、连接器、电容焊盘是否破坏阻抗 |
| 间歇性断链或 CRC 错误 | 交流耦合电容失效或容值不对 | 万用表测电容,看 S 参数 | 换 C0G 电容,保证自谐振频率 > 2GHz |
| 两板直连不通,但用线缆可通 | 共模电压不匹配 | 测差分对共模电压差 | 检查发送端是否遗漏耦合电容,或者电容位置错放接收端 |
嗯,物理层基础就这些。说白了就是三个点——差分信号、阻抗匹配、交流耦合电容。你下次 Bring-up 遇到物理层问题,别急着翻协议,先把这三样挨个查一遍。按我的经验,80% 的物理层问题都能在这里找到原因。