第3章:眼图测量方法 —— 示波器设置、触发方式、余辉模式、测量步骤
眼图测量这事,说难不难,说简单也容易翻车。我刚开始调UFS PHY的时候,逮着示波器就是一通乱按,结果出来的眼图跟鬼画符似的,根本没法看。后来被老工程师带着做了几次,才摸到门道。这一章我就把那些坑和技巧都抖出来,保证你少走弯路。
3.1 示波器设置 —— 别让仪器骗了你
测眼图首先得有一台带宽足够的实时示波器。UFS 3.1的信号速率跑到11.6 Gbps,示波器带宽至少得是信号速率的1.5倍,我个人习惯用到2倍以上。换句话说,你得有台23 GHz带宽以上的家伙。
另外别忘了配上高阻探头?不,测高速差分信号必须用差分有源探头或者直接焊接到板上的SMA电缆。探头负载电容一高,眼图直接塌掉。我在项目里见过有人用无源探头去戳UFS差分对,眼图打开度只剩40%,换了差分探头后瞬间恢复到85%。
3.2 触发方式 —— 眼图稳定的关键
触发不对,眼图根本停不下来。UFS链路上一般有三种触发方式可选:
| 触发方式 | 适用场景 | 优缺点 |
|---|---|---|
| 时钟恢复(CDR)触发 | UFS工作时数据流连续,时钟嵌入在数据中 | 最准确,眼图抖动最小;但需要示波器支持CDR模块 |
| 外部参考时钟触发 | 有稳定的REFCLK引出 | 简单,但无法跟踪数据通道上的PLL相位偏移,眼图会有额外抖动 |
| 数据自触发(边沿触发) | 没有时钟信号,只有差分数据 | 最容易;但触发点随数据模式变化,眼图叠加后眼睛张开会变差,仅用于快速定性 |
我自己做UFS眼图合规性测试时,会用CDR触发。为什么呢?因为UFS接收端本身就有CDR,测出来的才是“芯片真正看到的”眼图。记得有一次我拿了外部时钟触发,眼图margin足足差了20 ps,误导了整版PCB布线。
3.3 余辉模式 —— 时间积累的力量
眼图不是一拍就出来的,得靠无数次波形叠加。示波器有两种主流模式:
- 无限余辉:每次触发都叠加新波形,旧的不消失。适合观察长时间内的抖动和噪声边界——说白了,那些偶尔冒出来的毛刺和ISI尾巴都能被抓到。
- 可变余辉(比如1秒、10秒):旧波形慢慢衰减。适合观察动态变化,比如加电瞬间眼图从关闭到打开的过程。
我个人建议:先开无限余辉跑一分钟,看眼图轮廓是不是稳定了。如果上/下边界一直在飘,说明示波器触发没锁住,或者被测信号有低频相位调制。这时候别急着保存,先把触发调稳再说。
3.4 测量步骤 —— 按部就班不出错
废话不多说,我把全套测量流程列出来。照着做,基本不会漏掉关键项。
- 连接待测链路:UFS Host和Device之间通过测试夹具或差分探头接入示波器。保证链路终端匹配是正确的(通常差分100Ω)。
- 设置触发源:选差分通道对“D+ 和 D-”,或者选第三通道的外部参考时钟。我个人偏好直接选CDR Recovery作为触发源。
- 设定垂直刻度:差分信号幅度一般在200~400 mVpp。垂直刻度设到50~100 mV/div,让眼图上下留出余量。
- 设定水平刻度:一个UI的长度要能看清楚。UFS 3.1一个UI约86 ps,水平刻度设到20 ps/div左右,屏幕上显示3~4个UI就够。
- 打开眼图测量模式:绝大多数示波器有“Eye/Mask”按钮,直接点开。如果没有,可以用“Persistence + Infinite + Display Bit Map”硬凑。
- 调整阈值:设置电压参考电平(通常是0V,因为差分信号过零点)。有些示波器需要手动设“Upper Threshold”和“Lower Threshold”。UFS规范里一般用AC耦合,阈值为0V。
- 积累波形:等待至少10000个UI以上,或者等眼图轮廓不再明显变化。我习惯等1分钟,再看统计的抖动值(Tj,Rj,Dj)是否稳定。
- 测量关键参数:
- 眼高 / Eye Height(电压裕量)
- 眼宽 / Eye Width(时间裕量)
- 抖动(总抖动Tj、随机抖动Rj、确定性抖动Dj)
- 上升/下降时间
- 交叉点百分比
- 保存与报告:截屏同时保存波形数据(.csv或.mat),方便后续用脚本分析。示波器上的Mask测试自动告诉我眼图是否通过MTS(Mask Test Specification)。
3.5 眼图测量整体流程
下面这张图总结了从链路连接到参数提取的完整链条,看一眼就能记住。
嗯,看完这张图你应该对整个测量流程有数了。记住,每一步都有坑,尤其是触发和累积时间。不要急着按“Auto Setup”,那玩意儿出来的眼图多半没法用。
眼图测量方法就聊到这儿。下一段我们该讨论实际中怎么通过仿真和调试来优化那些测出来的参数了。不过在动手调优之前,先确保你的测量手段是可靠的——否则调了半天,调的其实是示波器设置。