2. SATA物理层信号特征
聊 SATA 的稳定性,咱们得从物理层说起。我入行那会儿,总觉得协议层、驱动层才是关键,物理层不就是个电平吗?结果被一板子眼图闭合的问题教做人……后来才明白,物理层的信号特征,是整个稳定性的地基。
什么叫物理层信号特征?说白了,就是数据在 SATA 线路上传输时,电压怎么摆、时序怎么对齐、噪声怎么控制。你想想看,如果这个层次抖一下,上层再好的校验也救不回来。
1. 信号类型与差分传输
SATA 全链路采用差分信号,用两条线(A+, A−)来传。为什么不用单端?因为高速信号容易受共模噪声干扰,差分结构天然能抵消它。我个人习惯用“两条腿走路”来比喻——就算地面有点颠簸,两条腿产生的差值依然能帮你站稳。
在项目中我遇到过一例:某款国产主控,单板走线时把差分对拉得太长,结果链路在一米多的线缆上频繁掉盘。后来乖乖按规范控制等长和 100Ω 差分阻抗,问题才消失。
| 参数 | Gen1 (1.5 Gb/s) | Gen2 (3.0 Gb/s) | Gen3 (6.0 Gb/s) |
|---|---|---|---|
| 差分摆幅 (Vpp) | 400–600 mV | 400–600 mV | 400–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 下眼图始终碰模板,最后发现是走线经过了一个过孔残桩——切掉后眼睛立刻睁开了。
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
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,否则考虑中继器 |
知识体系图:物理层信号特征与验证流
上图画出了物理层五大信号特征,以及对应的验证手段。实际工作中,我个人会先抓眼图,再扫 OOB 时序,最后查 SSC 设置——大概按这个优先级走,很少出纰漏。记住:物理层稳了,后面的协议层才有意义。