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Ω。这怎么来的?

  1. 发送端(主控 SoC 或桥片)输出差分阻抗一般设计为 100Ω。
  2. PCB 走线的差分阻抗必须匹配到 100Ω(通过调整线宽、线距、介质厚度)。
  3. 接收端输入阻抗也是 100Ω(含终端电阻)。
  4. 接头与线缆也有特性阻抗要求。

我曾经处理过一个 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 链路中看出它们各自的位置和作用。

SATA 物理层关键要素结构图 发送端 TX+ / TX- 交流耦合电容 0.01~0.1μF PCB差分走线 100Ω ± 15% 接收端 RX+ / RX- 差分信号 • 两线电压差传递信息 • 抗共模噪声 • 摆幅 400~600mV 阻抗匹配 • 差分阻抗 100Ω • 单端对地 50Ω • 过孔/焊盘也需控制 交流耦合电容 • 隔直流,防共模冲突 • 0.01~0.1μF,0402/0603 • 靠近发送端放置 三板斧检查顺序:先确认电容 → 再测量阻抗 → 最后看差分眼图 任何一环不达标,链路都无法达到 Gen2/Gen3 的速率

3.5 常见 Bring-up 故障案例排查表

我整理了三个典型问题,你遇到了可以直接对号入座。

症状 怀疑根因 验证手段 我的经验解决办法
链路协商只有 Gen1 眼图裕量不足 / 阻抗偏差 示波器测眼图,TDR 测阻抗 检查过孔、连接器、电容焊盘是否破坏阻抗
间歇性断链或 CRC 错误 交流耦合电容失效或容值不对 万用表测电容,看 S 参数 换 C0G 电容,保证自谐振频率 > 2GHz
两板直连不通,但用线缆可通 共模电压不匹配 测差分对共模电压差 检查发送端是否遗漏耦合电容,或者电容位置错放接收端

嗯,物理层基础就这些。说白了就是三个点——差分信号、阻抗匹配、交流耦合电容。你下次 Bring-up 遇到物理层问题,别急着翻协议,先把这三样挨个查一遍。按我的经验,80% 的物理层问题都能在这里找到原因。