2. SATA物理层信号特征

聊 SATA 的稳定性,咱们得从物理层说起。我入行那会儿,总觉得协议层、驱动层才是关键,物理层不就是个电平吗?结果被一板子眼图闭合的问题教做人……后来才明白,物理层的信号特征,是整个稳定性的地基。

什么叫物理层信号特征?说白了,就是数据在 SATA 线路上传输时,电压怎么摆、时序怎么对齐、噪声怎么控制。你想想看,如果这个层次抖一下,上层再好的校验也救不回来。

核心结论: SATA 物理层稳定性的本质,是 Tx(发送端)和 Rx(接收端)之间建立并维持一套精确的电气握手规则。

1. 信号类型与差分传输

SATA 全链路采用差分信号,用两条线(A+, A−)来传。为什么不用单端?因为高速信号容易受共模噪声干扰,差分结构天然能抵消它。我个人习惯用“两条腿走路”来比喻——就算地面有点颠簸,两条腿产生的差值依然能帮你站稳。

在项目中我遇到过一例:某款国产主控,单板走线时把差分对拉得太长,结果链路在一米多的线缆上频繁掉盘。后来乖乖按规范控制等长和 100Ω 差分阻抗,问题才消失。

参数Gen1 (1.5 Gb/s)Gen2 (3.0 Gb/s)Gen3 (6.0 Gb/s)
差分摆幅 (Vpp)400–600 mV400–600 mV400–600 mV
上升/下降时间~100 ps~50 ps~30 ps
抖动容限 (TJ)≤ 0.35 UI≤ 0.25 UI≤ 0.20 UI
小技巧: 示波器测量差分信号时,务必用差分探头。我见过有人拿两个单端探头拼,测出来的电压摆幅直接翻倍——那是不对的。

2. 眼图与模板测试

眼图,算是物理层验证的“CT 报告”。把多次采样的波形叠在一起,就能看到信号质量。中间那个“眼睛”睁得越大,误码率越低。Gen3 的眼图模板(Mask)长什么样?我记不太清具体坐标,但有一套经验:眼睛高度至少占模板高度的 80%,宽度要有 0.5 UI 以上。

为什么会这样要求?因为链路不止有自身的损耗,还有连接器、线缆、板间过孔带来的反射。我以前测一块硬盘背板,6 Gb/s 下眼图始终碰模板,最后发现是走线经过了一个过孔残桩——切掉后眼睛立刻睁开了。

避坑指南: 我曾经以为眼图合格就等于链路稳定,后来发现部分 SSD 在低温环境下眼图会收缩 10%–15%。所以温度循环测试不能省。

3. OOB(带外信号)与边带协商

SATA 物理层还有一个独特的东西叫 OOB(Out-of-Band)信号。它指的是在链路空闲时,发送端发出特定的脉冲序列来完成设备探测、速率协商等功能。OOB 的幅度和时序直接影响是否能建立连接。

具体来说,OOB 信号有 COMINIT、COMWAKE、COMRESET 三种。它们的脉宽、间隔都不一样。我建议你在做整机验证时,至少用逻辑分析仪测一次 OOB 波形,确认脉宽在规范范围内。

  • COMRESET:主机发,脉宽 6.0 µs ± 0.3 µs,间隔 1.0 µs
  • COMINIT:设备发,脉宽 6.0 µs ± 0.3 µs,间隔 1.0 µs
  • COMWAKE:双方均可发,脉宽 0.5 µs ± 0.1 µs,间隔 0.5 µs
项目经验: 我遇到过某个国产主控在 OOB 脉冲后沿抖动超过 200 ns,导致部分硬盘只能协商到 Gen1,加个 0.1 µF 电容滤掉高频噪声就好了。

4. 时钟恢复与 SSC(展频时钟)

SATA 使用的是嵌入式时钟,接收端必须从串行数据流中恢复出时钟。这里常开的一个坑是 SSC(Spread Spectrum Clocking)导致的问题。SSC 会把时钟频率在 ±5000 ppm 之间周期性摆动,目的是降低 EMI,但也会让 CDR(时钟数据恢复)锁不住。

我一同事在调试一款工控主板时,SATA 偶尔掉盘,排查了三天才发现 BIOS 里开启了 SSC,而硬盘的 SSC 深度比主板大,频率正好差了一点。关掉 SSC 后问题不复现。所以,我建议你在验证稳定性时,先确认主机和硬盘的 SSC 模式是否匹配。

// 常用测试:通过以下指令查看链路 SSC 状态(Linux 环境)
cat /sys/class/tty/ttyS0/device/sata_link/link_speed
cat /sys/class/tty/ttyS0/device/sata_link/ssc_status

5. 信号衰减与预加重

SATA 线缆和 PCB 走线都会导致高频成分衰减,特别是 6 Gb/s 以上的信号。为了补偿,发送端会做预加重(Pre-emphasis),即对跳变沿瞬间加大驱动电流。接收端则做均衡(Equalization)。

验证时有两个关键点:一是预加重等级是否在规范内(通常有 3–4 档可调);二是回波损耗(Return Loss)是否低于 -10 dB,这一点很多硬件工程师会忽略。我上次做完整性仿真时发现,如果预加重过强,反而会激发出额外的振铃,还不如不加重。

衰减因素影响程度(Gen3)典型应对
PCB 介质损耗中选用低损耗板材(如 M4)
连接器插损高确保单次连接 ≤ 0.5 dB
线缆长度 1 m极高建议 ≤ 0.5 m,否则考虑中继器
一句话总结: SATA 物理层验证不是测个电压就完事,要把差分传输、眼图模板、OOB 时序、SSC 匹配、预加重均衡组合成一个整体检查清单。

知识体系图:物理层信号特征与验证流

SATA 物理层信号特征·验证知识体系 SATA 物理层 差分信号特征 眼图模板测试 OOB 协商时序 时钟恢复 & SSC 预加重与均衡 差分阻抗测量 眼图 Mask 合规 逻辑分析仪 OOB SSC 偏差检测 SI 仿真确认 每一项信号特征都对应至少一种验证手段

上图画出了物理层五大信号特征,以及对应的验证手段。实际工作中,我个人会先抓眼图,再扫 OOB 时序,最后查 SSC 设置——大概按这个优先级走,很少出纰漏。记住:物理层稳了,后面的协议层才有意义。