4. 眼图基础:眼图的定义、眼图是如何形成的、眼图包含的信息

各位工程师朋友,大家好。今天我们聊聊眼图。

眼图这东西,说白了就是高速信号质量的“心电图”。做USB物理层测试,你要是看不懂眼图,那基本等于盲人摸象。我个人习惯是,拿到一个板子,先看眼图,再看别的。为什么?因为眼图能告诉你的事情太多了。

4.1 眼图的定义

眼图,英文叫Eye Diagram。它不是某个仪器凭空画出来的,而是把一串数字信号的波形,按照比特周期叠加在一起,显示在示波器上。

你想想看,如果信号质量完美,所有波形都叠在同一个位置,那看起来就像一只睁开的眼睛。如果信号有噪声、有抖动、有反射,那这只“眼睛”就会眯起来,甚至闭上。

嗯,这里要注意:眼图不是看单个比特的波形,而是看成千上万个比特的统计叠加。它反映的是信号的统计特性,而不是瞬时特性。

核心定义:眼图是数字信号在示波器上经过多次扫描叠加后形成的图形,用于评估信号的质量和完整性。

4.2 眼图是如何形成的

我刚开始做测试时,总觉得眼图很神秘。后来自己动手搭了一次,才明白它的原理。

形成过程其实很简单:

  1. 采集波形:示波器连续采集数字信号的波形。
  2. 触发同步:用时钟信号或者数据本身的边沿作为触发,让每个波形对齐。
  3. 叠加显示:把对齐后的波形全部叠加在一起,显示在屏幕上。

举个例子,假设你有一个0101的重复序列。示波器会把第一个“0”的波形、第二个“1”的波形、第三个“0”的波形……全部叠在一起。如果信号质量好,所有“0”的波形都重合,所有“1”的波形也重合。如果信号有抖动,那这些波形就会散开。

我的经验:我曾经遇到一个项目,眼图总是闭合的。排查了很久,最后发现是触发信号没选对。触发信号抖动太大,导致眼图本身就不稳定。所以,做眼图测试时,触发源的选择非常关键。

为什么会这样?因为示波器的触发决定了波形的对齐基准。如果触发本身就有抖动,那叠加出来的眼图自然就是模糊的。

4.3 眼图包含的信息

眼图里藏着三个关键参数:眼高、眼宽、抖动。这三个参数,基本决定了信号能不能被接收端正确识别。

4.3.1 眼高(Eye Height)

眼高,就是眼睛上下开口的垂直距离。它反映了信号的电压裕量。

说白了,眼高越大,接收端越容易区分“0”和“1”。如果眼高太小,噪声稍微大一点,接收端就可能误判。

参数 定义 典型要求(USB 3.0)
眼高 眼图垂直开口的电压差 ≥ 100 mV
眼宽 眼图水平开口的时间宽度 ≥ 0.2 UI
抖动 信号边沿的时间偏差 ≤ 0.3 UI

我在项目中遇到过一块板子,眼高只有80mV,结果在高温环境下频繁丢包。后来发现是电源纹波太大,把信号幅度压低了。换了更好的LDO,眼高恢复到120mV,问题解决。

4.3.2 眼宽(Eye Width)

眼宽,就是眼睛水平开口的时间宽度。它反映了信号的时序裕量。

你想想看,接收端是在时钟的某个时刻采样数据的。如果眼宽太小,采样点稍微偏一点,就可能采到错误的电平。

眼宽通常用UI(Unit Interval,单位间隔)来表示。1 UI就是一个比特的时间长度。比如USB 3.0的速率是5 Gbps,那1 UI就是200 ps。

避坑指南:我曾经犯过一个错误,只盯着眼高看,忽略了眼宽。结果眼高很好,但眼宽只有0.15 UI。板子跑起来后,偶尔会出现CRC校验错误。后来查出来是时钟抖动太大,导致眼宽被压缩了。所以,眼高和眼宽要一起看,缺一不可。

4.3.3 抖动(Jitter)

抖动,就是信号边沿在时间轴上的随机偏移。它是影响眼宽的主要因素。

抖动分为两类:

  • 随机抖动(RJ):由热噪声、散粒噪声等随机因素引起,服从高斯分布。无法完全消除,只能控制。
  • 确定性抖动(DJ):由串扰、反射、电源噪声等确定性因素引起,有固定的模式。可以通过设计优化来减小。

我个人习惯是先看总抖动(TJ),如果总抖动超标,再分解看RJ和DJ的比例。如果RJ占主导,那可能是芯片本身的问题;如果DJ占主导,那多半是PCB设计的问题。

举个例子,有一次我测一块USB 3.0的板子,总抖动达到了0.35 UI,超标了。分解后发现,DJ占了0.25 UI,RJ只有0.1 UI。顺着DJ的来源查,发现是差分对走线长度不匹配,导致共模噪声转化成了抖动。调整走线后,DJ降到0.1 UI,总抖动回到0.2 UI以内。

总结一下:眼图就是信号的“体检报告”。眼高看电压裕量,眼宽看时序裕量,抖动看信号稳定性。这三个参数互相影响,要综合评估。

好了,眼图的基础知识就讲到这里。下一章我们聊聊如何用示波器实际测量眼图,以及测量时有哪些坑要避开。