第2章:SATA物理层电气特性归纳总结

做SATA链路排查,有个事我特别想强调——你永远绕不开物理层的电气特性。很多工程师一上来就抓协议层,抓了半天发现根本问题是信号质量不行,复位都过不了。嗯,这章我就把SATA物理层那些关键电气参数掰开揉碎讲清楚,你记下这些,以后排查误码时心里就有谱了。

2.1 差分信号——SATA的传输基础

SATA用的是差分信号对,一对线叫A+和A-,另一对是B+和B-,一共四条线。差分信号的好处是抗共模噪声强,说白了就是外面干扰来了,两根线上噪声一样,差一减就抵消了。

我个人的小习惯:看差分信号波形时,别只看单端波形,要同时看两根线,再算出差分波形。单端看上去乱七八糟,差分可能干干净净。我曾经在产线上碰到一个案例,单端信号毛刺很多,结果测差分眼图特别漂亮,最后锁相环也没问题——这种情况根本不用改硬件。

差分信号的共模电压范围是0V~2.0V,差模摆幅是400mV~600mV(峰峰值)。不同SATA版本有细微差别,我们看个表:

参数 SATA 1.5 Gbps (Gen1) SATA 3.0 Gbps (Gen2) SATA 6.0 Gbps (Gen3)
差分输出摆幅(VOD) 400~600 mV 400~600 mV 400~600 mV
共模电压(VCM) 0~2.0 V 0~2.0 V 0~2.0 V
差分阻抗目标值 100 Ω ± 15% 100 Ω ± 15% 100 Ω ± 10%

关键点:差分阻抗100Ω是SATA的铁律。你想想看,一块PCB上走差分线,但凡阻抗出现20%的波动,反射就会导致眼图闭合。我见过太多因为PCB走线没控好阻抗而出问题的案例了。

2.2 电压摆幅与眼图——信号质量的“心电图”

差分摆幅一般在400mV到600mV之间。Gen3对信号质量要求更严,摆幅不能太小,否则接收器很难正确识别0和1。眼图是衡量信号质量最直观的工具——其实就是把很多个bit叠加起来看。

踩过的坑:我以前做过一个项目,眼图测试看起来一直很“胖”,但误码率就是降不下去。后来仔细一看,眼图的垂直方向有个很窄的塌陷,大概持续100ps——那是电源噪声耦合到了差分对的共模上。换成更好去耦的方案,问题就解决了。所以看眼图不能只看“开合程度”,还要看眼高、眼宽、抖动、甚至眼图内部的“毛发”。

眼图的关键指标:

  • 眼高(Eye Height):信号幅度裕量,SATA Gen3要求≥120mV。
  • 眼宽(Eye Width):时间裕量,Gen3要求≥0.35个UI(单位间隔)。
  • 抖动(Jitter):后面单独讲。
  • 信噪比(SNR):一般要求≥10dB。

2.3 抖动——位错乱的真正元凶

抖动就是时钟边沿相对于理想位置的偏移。说白了,信号该在哪个时间点跳变,结果它早了或晚了,接收器就会采到错误位。抖动分两大类:

  1. 确定性抖动(DJ):有固定来源,比如串扰、电源纹波、符号间干扰。可预测,能通过设计来抑制。
  2. 随机抖动(RJ):来自热噪声、1/f噪声等,服从高斯分布,只能靠时间平均来抑制。

我一般用总抖动TJ(Total Jitter)来评估链路能不能跑。SATA规范规定,在误码率<10-12时,TJ不能超过0.35 UI。举个例子,Gen3的UI大约是166.7ps,0.35 UI ≈ 58.3ps ——也就是说所有抖动的峰峰值不能超过58ps,不然接收器就很难正确采样了。

抖动类型 来源 特征 如何降低
确定性抖动(DJ) 串扰、阻抗不连续、PLL杂散 有界、可重复 改善PCB走线、增加屏蔽、优化电源去耦
随机抖动(RJ) 热噪声、散粒噪声 无界、高斯分布 提高信噪比、降低链路衰减
周期性抖动(PJ) 开关电源、时钟馈通 固定频率正弦扰动 调整去耦位置、添加LDO

避坑指南:我曾经在一个多盘背板项目里,串扰问题导致眼图抖动很大。当时我用了抖动分离(Jitter Separation)的功能——示波器把DJ和RJ分开显示,发现大部分抖动是PJ,频率正好是背板上一个DC-DC的开关频率。换了去耦电容位置,抖动直接降了40%。这件事之后,我做抖动排查时一定会先问自己:“这个抖动是随机的还是确定的?确定了来源再动手。”

2.4 阻抗匹配与预加重——从根源上防止反射

SATA链路上,发射器输出阻抗、PCB特性阻抗、接收器输入阻抗三者的匹配,直接决定了反射的大小。反射会导致信号过冲、下冲,甚至误码。规范要求差分阻抗为100Ω±10%(Gen3)。

预加重(Pre‑emphasis)和去加重(De‑emphasis)是什么?我打个比方:高速信号经过连接器和线缆时会衰减,高频成分掉得厉害。发射器在跳变沿时多给一点电流,后面稳定时降低,这样接收端看到的信号就比较平整。Gen2和Gen3都强制要求支持去加重,典型值是3.5dB~6dB。

一句话记住:预加重是“帮信号过冲一下,补偿线缆衰减”;阻抗匹配是“让信号不弹回来”。这两样缺一个,你的误码率都可能翻倍。

2.5 电气测试要点——做排查前必须会看的数据

日常排查时,示波器是主力武器。我建议你重点关注这几个指标:

  • 差分眼图——看眼高、眼宽、抖动直方图。
  • 模板余量——示波器自带的SATA合规模板,眼图不能碰到模板边界。
  • 共模电压波动——拿单端探头分别看A+/A-,看共模是否稳定在50%电源附近。
  • 上升/下降时间——Gen3要求20%~80%上升时间≤100ps。
  • S参数(Sdd21, Sdd11)——链路插入损耗和回波损耗,规范给出了频率点的mask。

别犯的低级错误:有的工程师拿普通单端探头去测差分信号,结果波形全是鬼影。记住!SATA必须用差分探头或者差分量测脚。另外,探针的地线要尽量短,长了就会引入寄生电感,抖动直接翻倍。

好了,这一堆参数和概念你可能觉得有点乱。我画了张图帮你理清关系——

SATA物理层电气特性知识结构 SATA物理层电气特性 差分信号与摆幅 眼图与抖动 阻抗与预加重 VOD 400-600mV VCM 0-2.0V 眼高/眼宽 TJ ≤ 0.35UI 100Ω ±10% 去加重3.5-6dB 排查口诀 摆幅不够查眼高,抖动超标看分离; 阻抗不匹配必反射,预加重不够补衰减。

这张图把电气特性分成了三大块:差分信号与摆幅、眼图与抖动、阻抗与预加重。它们之间相互影响——比如阻抗不连续会加大抖动,抖动恶化会导致眼高降低,眼高不够叠加摆幅问题就会直接产生误码。排查的时候,按这个结构一层层往下挖,很少会跑偏。

我的习惯:每次拿到有误码的SATA链路,我先看一眼差分眼图模板余量,如果模板都碰上了,再测阻抗和去加重;如果模板余量很大但依然有误码,我反而会先去查电源纹波和串扰——经验告诉我,有时信号本身挺好,是干扰把接收器锁相环带偏了。