4. 接收端电气特性测试

接收端测试,说白了就是验证你的SATA设备能不能正确理解对方发过来的信号。我在SATA认证实验室里蹲了三年,发现最容易被卡住的就是这章的内容——很多人把精力都花在发送端,结果接收端一测就垮。

记得有一次,一个硬盘厂商送测的样品,发送端眼图漂亮得跟教科书一样,可一测接收灵敏度,死活过不了。最后查出来,是接收端时钟恢复环路带宽设错了。你想想看,发得好不代表收得好,这是两码事。

接收灵敏度测试

接收灵敏度,说白了就是你的设备在信号差到啥程度时还能正常工作。

SATA-IO对这个指标有明确要求。我们来看看不同代的规格:

参数 SATA 1.5Gbps SATA 3Gbps SATA 6Gbps
最小接收眼高 200 mV 240 mV 275 mV
最小接收眼宽 0.45 UI 0.40 UI 0.35 UI
最大总抖动 0.35 UI 0.40 UI 0.45 UI
测试码型 JTPAT JTPAT JTPAT

测试的时候,我们会用一台精密的误码仪来发送特定的测试码型。我个人习惯先跑一个基准误码率,然后再逐步衰减信号,找到那个误码率开始飙升的临界点。

我的小技巧: 测试接收灵敏度时,别只盯着一组参数。我记得有一次,眼高明明达标了,可眼宽差了一点点,结果高温下直接崩掉。两个指标要同时看,别偷懒。

具体测试步骤,我一般按这个流程走:

  1. 先确认测试链路校准过了。链路损耗每差1dB,结果能差出10个dB的灵敏度。
  2. 用码型发生器输出JTPAT测试码型,速率设到标称值。
  3. 逐渐减小信号幅度,同时观察DUT的误码率。
  4. 找到误码率达到1E-12时的信号幅度,这就是接收灵敏度。
  5. 在这个幅度下,再跑至少30秒,确认误码率稳定。

抖动容限测试

抖动容限,这个名字听着挺唬人。其实说白了,就是看你的设备在信号抖来抖去的时候,还能不能保持清醒。

我见过太多设备,在理想信号下跑得好好的,可一旦注入点抖动就全线崩溃。为什么会这样?因为真实场景下的信号不可能那么干净。线缆、连接器、PCB走线,每样东西都在往信号里加抖动。

测试抖动容限,我们常用的方法是注入正弦抖动:

注意: 我曾经有个项目,在注入抖动时没注意相位关系,结果测试结果自相矛盾。折腾了两天才发现,是注入抖动的初始相位没对齐。这个坑我不希望你踩到。

抖动容限的测试频率点是有讲究的:

抖动频率范围 典型振幅 主要关注点
50 kHz – 500 kHz 0.15 UI 时钟恢复环路跟踪能力
500 kHz – 5 MHz 0.10 UI CDR中间区域响应
5 MHz – 20 MHz 0.05 UI 高频抖动抑制能力

我个人习惯是先从低频开始扫,一路扫到高频。每个频率点至少停留3秒,用误码率说话。

测试中的几个关键点

这里有几个我踩过的坑,跟大家分享下:

  • 码型选择很重要。 JTPAT是标准码型,但别忘了跑一些特定序列。我之前就用一个长连0的序列,抓到了某个设备CDR的锁定问题。
  • 校准链路长度。 测试夹具和线缆会引入额外的损耗和抖动。我的做法是先做一次直连测试,得到基线数据,再去算DUT的真实表现。
  • 温度和电压。 SATA-IO要求在Extreme条件下也达标。我习惯先做常温,再拉高温和低温,最后压电压。这样能最快暴露问题。
  • SSC的影响。 别忘了SATA是支持展频时钟的。我曾经处理过一个案例,设备在非SSC模式下好好的,一开SSC就疯狂报错。

总结一下接收端测试的核心逻辑:

整个接收端测试可以看成一道防线。第一道是灵敏度,保证信号幅度够;第二道是抖动容限,保证信号质量够。两道防线都过了,你的设备才算真正可靠。

下面这张图,是我自己整理的接收端电气特性测试流程。你可以看看,整个测试的脉络其实很清晰:

接收端电气特性测试流程 误码仪/码型发生器 链路校准 (去嵌/参考平面) 注入抖动 + 信号衰减 DUT (待测设备) 误码率检测 (BER < 1E-12) 关键:每一步的链路损耗和抖动注入量都必须精确校准,否则测试结果无意义

这张图的逻辑其实很简单。从信号源出发,经过链路校准和抖动/衰减注入,再到DUT,最后看误码率。每一步都不能跳,跳了测出来的数据就是错的。

嗯,接收端测试的内容差不多就这些了。核心就两件事:灵敏度够不够、抖动扛不扛得住。把这两件事做扎实了,SATA认证的接收端部分基本就稳了。