第3章 SATA电气特性测试:电压摆幅、上升时间、抖动测量

3.1 电气特性测试概述

SATA 合规测试里,电气特性测试是最先碰到的硬骨头。说白了,就是验证信号从 TX 走到 RX,质量到底过不过关。我个人习惯把这部分放在整套测试的第一步——电气过不去,协议层跑得再欢也没用。

核心指标有三个:电压摆幅、上升时间、抖动。三者互相影响,但测试时可以分开看。你想想看,摆幅不够,接收端压根认不出 0 和 1;上升时间太慢,眼图就闭了;抖动大了,误码率直接起飞。

下面这张图能帮你快速建立整体认知:

SATA 电气特性测试体系结构 SATA 电气特性测试 电压摆幅 上升时间 抖动测量 差分峰峰值 共模电压 20%-80% 时间 上升速率 确定性抖动 (DJ) 随机抖动 (RJ)

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 是热噪声等随机因素引起的,服从高斯分布。

抖动的测量套路是这样:

  1. 用示波器捕获长序列信号,至少 1M UI
  2. 做眼图分析,测出总抖动 (TJ)
  3. 用抖动分离算法拆出 DJ 和 RJ
  4. 分别对比规范: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% 的返工时间。