第3章 SATA电气特性测试:电压摆幅、上升时间、抖动测量
3.1 电气特性测试概述
SATA 合规测试里,电气特性测试是最先碰到的硬骨头。说白了,就是验证信号从 TX 走到 RX,质量到底过不过关。我个人习惯把这部分放在整套测试的第一步——电气过不去,协议层跑得再欢也没用。
核心指标有三个:电压摆幅、上升时间、抖动。三者互相影响,但测试时可以分开看。你想想看,摆幅不够,接收端压根认不出 0 和 1;上升时间太慢,眼图就闭了;抖动大了,误码率直接起飞。
下面这张图能帮你快速建立整体认知:
3.2 电压摆幅测试
电压摆幅,就是差分信号的峰峰值。SATA 用差分传输,摆幅大小直接决定接收端能不能正确判读。标准里写得明白:不管哪一代,差分摆幅都要求在 400–600 mVpp 之间。
我在项目中遇到过摆幅偏低的情况。当时查了好久,最后发现是 TX 端驱动器的供电滤波电容虚焊了。换了电容,摆幅立马回到 480 mVpp。所以说,测摆幅不仅是看它合不合格,还能帮你反推电源完整性。
测试要点:
- 用差分探头接到 TX 端的测试点
- 示波器设置为无限余辉,捕获 1M 个以上 UI
- 读取差分信号的峰峰值(Vpp)
- 对比规范:400 mV ≤ Vpp ≤ 600 mV
不同代际的 SATA,其他参数差异不小,但摆幅范围基本一致。来看这张表:
| 电气参数 | SATA 1.5 Gbps | SATA 3 Gbps | SATA 6 Gbps |
|---|---|---|---|
| 差分电压摆幅 (mVpp) | 400 – 600 | 400 – 600 | 400 – 600 |
| 上升时间 20%-80% (ps) | 100 – 273 | 50 – 136 | 25 – 68 |
| 总抖动 TJ (UI) | < 0.47 | < 0.47 | < 0.47 |
| 确定性抖动 DJ (UI) | < 0.27 | < 0.27 | < 0.27 |
| 随机抖动 RJ (UI) | < 0.20 | < 0.20 | < 0.20 |
小技巧: 测摆幅时别忘了看共模电压。SATA 规范里共模范围是 150–350 mV。如果共模漂了,摆幅再好看也没用。我习惯把共模和差模一起抓,省得返工。
3.3 上升时间测试
上升时间用 20%–80% 来定义,不是常见的 10%–90%。为什么要用 20%–80%?因为 SATA 信号的边沿不是纯线性的,高低两端有缓坡,取中间段更稳定。你想想看,如果用 10%–90%,噪声稍微一抖,测量值就飘了。
标准要求跟速率走:1.5 Gbps 时 100–273 ps,3 Gbps 时 50–136 ps,6 Gbps 时 25–68 ps。我建议用带宽至少 4 GHz 的示波器来测 6 Gbps 的上升时间,否则测出来会偏慢。
特别注意: 上升时间不能太短,也不能太长。
- 太短(< 25 ps @ 6 Gbps):信号高频分量过强,EMI 超标
- 太长(> 68 ps @ 6 Gbps):眼图张开度不够,接收端采样困难
我曾经碰到过一块板子,上升时间只有 18 ps,辐射骚扰测试直接 FAIL。后来在 TX 线路上串了 10 Ω 电阻,把上升时间调到 35 ps,问题解决。
3.4 抖动测量
抖动是信号边沿在时间轴上的偏移。SATA 把抖动分成两大类:确定性抖动 (DJ) 和 随机抖动 (RJ)。DJ 有固定来源,比如串扰、电源噪声、阻抗不连续;RJ 是热噪声等随机因素引起的,服从高斯分布。
抖动的测量套路是这样:
- 用示波器捕获长序列信号,至少 1M UI
- 做眼图分析,测出总抖动 (TJ)
- 用抖动分离算法拆出 DJ 和 RJ
- 分别对比规范:DJ < 0.27 UI,RJ < 0.20 UI
我记得有一次在实验室测抖动,怎么测都超标。折腾了两小时,发现是示波器的地线夹子松了。重新夹好地线,抖动直接降了一半。嗯,这里要注意——接地不好,抖动数据全是假的。
实战建议: 做抖动分离时,别只依赖示波器自动测量。我个人习惯把原始波形导出,用脚本再验一遍。下面是一段用 Python 控制示波器抓波形测摆幅的代码片段,类似的思路也可以用在抖动分析上:
import pyvisa
rm = pyvisa.ResourceManager()
scope = rm.open_resource('TCPIP0::192.168.1.100::inst0::INSTR')
scope.write(':MEASure:VPP? CHAN1')
vpp = float(scope.read())
print(f'Voltage Swing: {vpp*1000:.1f} mV')
scope.close()
3.5 测试设备与设置要求
想把电气特性测准,设备得到位。这是我的最低配置清单:
- 示波器: 带宽 ≥ 4 GHz(测 6 Gbps),采样率 ≥ 20 GS/s
- 差分探头: 带宽 ≥ 4 GHz,共模抑制比 ≥ 20 dB @ 3 GHz
- 测试夹具: 符合 SATA 规范定义的参考通道,阻抗 100 Ω ± 5%
- 校准件: 开路、短路、负载校准,消除夹具和线缆的寄生效应
设置上,我会先做探头补偿,再跑一遍夹具去嵌入。不校准直接测?测出来的数据你自己都不敢信。
避坑指南: 我曾经因为探头补偿没校准,测出来的上升时间偏差了 15%。后来规范审核被打回来重测。教训就是:每次换通道或换探头,必须重做补偿,别偷懒。
3.6 常见问题与避坑指南
做电气特性测试,坑不少。我把这些年踩过的坑整理了一下:
- 地线回路: 探头地线过长会引入共模噪声,测抖动时尤其明显。用地针代替接地线,效果立竿见影。
- 测试点选择: 离 TX 端越近越好。我之前在靠近连接器的地方测,结果摆幅被 PCB 走线损耗吃掉了一截,误判了。
- 温度影响: 电气参数在高温下会漂。合规测试要求在 25°C ± 5°C 环境下做,但实际项目中我建议再补测一组 85°C 的数据,提前摸底。
- 参考通道校准: 夹具和线缆的插损会吃掉高频分量。不做去嵌入,上升时间和抖动都会偏大。别问我是怎么知道的…
一句话总结: 电压摆幅看供电,上升时间看信号完整性,抖动看地噪。三者测齐了,SATA 电气特性才算过关。测的时候多留个心眼,每次换探头都重新校准,能省掉 90% 的返工时间。