3. 眼图参数:眼高、眼宽、抖动、交叉点

眼图这东西,说白了就是把一串数字信号的比特叠加在一起,形成的那只“眼睛”。但我入行头两年,盯着屏幕上的眼图,顶多说一句“嗯,眼睛睁得挺大”。真正去拆解里面的参数,是从第一次MIPI链路调不通开始的。

那回我测一块摄像头模组,图像时不时闪条纹,示波器一看,眼图睁得也不算小,但就是有毛刺。后来跟FAE聊,他说了一句:“你量过眼高没?”我愣住了。从那时起我才意识到,眼睛睁得大不代表信号健康——四个核心参数:眼高、眼宽、抖动、交叉点,一个都不能放过。

眼图四参数关系结构 眼图测量 四个核心参数 共同决定链路质量 眼高 电压裕量 决定噪声容限 眼宽 时间裕量 决定抖动容忍 抖动 信号时序偏差 分RI/TJ/DJ 交叉点 占空比平衡 影响AC耦合 注意:眼图四个参数互相关联,单独改善一个参数 可能引发其他参数恶化,需要综合调试。

3.1 眼高

先讲眼高。眼高就是眼睛垂直方向开口的大小,它直接告诉你信号的电压裕量还有多少。单位通常是mV或V。看眼图的时候,我会用示波器的直方图功能卡在眼睛中间最宽处,量一下上沿到那一条线的垂直距离——你想想看,接收端判断“0”还是“1”,靠的就是这个电压差。眼高太小,噪声稍微大一点就会误判。

个人经验:我在调试一款MIPI D‑PHY的时候,发现眼高只有150mV,而规格书要求最小180mV。查了半天,原来是PCB走线阻抗不连续,反射把信号幅度吃掉了。把端接电阻调到49.9Ω后,眼高跳到了210mV。所以遇到眼高偏低,先别急着换驱动,检查一下阻抗匹配更靠谱。

眼高的测量方法很简单:在眼图垂直方向,找到眼张开最大的位置,用示波器的“眼高测量”或者手动卡两个直方图(上沿分布均值、下沿分布均值),相减即可。但要注意——一定要用足够长的码型,比如PRBS7或PRBS15,否则统计样本不够,测出来的眼高是虚的。

3.2 眼宽

眼宽是水平方向眼睛开口的宽度,单位是ps或ns。它反映了数据有效的采样窗口有多大。说白了,接收端时钟在眼皮中间采样,如果眼宽太小,哪怕一丁点抖动都能把采样点推到眼皮外面去。

我记得有一次客户反馈某款手机用我们的屏,偶尔闪白条。上去拿示波器一点,眼宽只剩0.32UI(单位间隔),正常应该在0.5UI以上。追踪下去发现是时钟走线绕了太多弯,相位噪声把眼宽吃掉了。后来把时钟走线拉直、加地孔屏蔽,眼宽恢复到0.61UI,问题消失。

眼宽的计算公式其实就是眼图水平方向两边的交叉点之间的距离。在实际测量中,示波器会自动在过零点附近做统计,给出平均值。我个人习惯同时看两个值:眼宽(peak) 和 眼宽(RMS),前者是测量到的最大值,后者是统计的均方根值。用RMS值更可靠。

3.3 抖动

抖动——这名字听着就让人头疼。它指的是信号在时间轴上的偏移:上升沿或下降沿应该到的时候却没到,提前了或推迟了。在眼图上,你能看到眼皮变粗、眼睛变窄,那就是抖动的直观表现。

抖动有几个分类,你想想看就能理解:

抖动类型来源特点测量方法
随机抖动 RJ热噪声、散弹噪声高斯分布,不可消除,带宽决定下限直方图尾部拟合,分离率
确定性抖动 DJ串扰、ISI、限幅效应有界、可辨识,有特定的谱特征分离后用眼图模板测试
总抖动 TJRJ+DJ实际看到的抖动总和BER=10⁻¹²下的峰值抖动
曾经踩过的坑:有回我测一块高速MIPI发射芯片,总抖动测出来很大,就把锅甩给了芯片厂商。结果人家让我测随机抖动和确定性抖动分离后的值,分离后发现DJ只有2ps,而RJ达到了15ps——居然是示波器本身的时钟恢复PLL带宽设错了!从那以后,每次测抖动我都会先确认示波器的时钟恢复类型:是PLL恢复还是CDR?带宽设到多少?

抓抖动的命令(以keysight示波器为例)通常长这样:

// 启用抖动测量项
:MEASure:JITTer:EYE:DJITter ON
:MEASure:JITTer:EYE:RJITter ON
:MEASure:JITTer:EYE:TJITter BER 1E-12
:MEASure:JITTer:EYE:PLOT?  // 读取抖动浴盆曲线

注意,抖动测量对信号触发要求极高,一定要用PLL时钟恢复做触发源,不能用外触发。

3.4 交叉点

最后一个参数是交叉点。在差分信号里,交叉点指的是正/负信号的交汇电压位置,通常用相对眼图摆幅的百分比表示。比如说50%交叉点,意味着正负信号刚好在中间交叉。

交叉点位置会影响信号的占空比。如果交叉点偏上(比如60%),意味着正信号更早被拉高、更晚被拉低,占空比失衡,信号质量下降。尤其对AC耦合的链路,交叉点偏差会把直流分量耦合到后面,造成接收端DC偏置漂移。

我之前做过一个车载MIPI项目,长线缆传输后交叉点跑到38%,接收端死活锁不住PLL。后来发现是线缆的衰减特性不匹配,加了一个预加重后交叉点回到了49%,问题解除。

交叉点的可接受范围:MIPI联盟对D‑PHY的交叉点要求是40%~60%,对C‑PHY会宽松一些。但我的经验是,最好控制在45%~55%之间,留点裕量给温度漂移。

3.5 四个参数的联动关系

这四个参数不是孤立的。你想想看:

  • 抖动过大 → 眼宽缩小 → 采样窗口变窄
  • 眼高超了 → 可能压低了边沿斜率 → 抖动增大
  • 交叉点偏移 → 占空比失真 → 增加确定性抖动

我记得有一次为了解决眼高问题,我把驱动电流调大了,结果眼宽反而小了。因为更大电流导致更陡的边沿,反射和串扰也跟着放大。所以调参的时候一定要来回看,不要只盯一个数。

总结一下我的判断逻辑:

  1. 先看眼高——低于规格书下限,先排查阻抗、电压驱动、ESD保护。
  2. 再看眼宽——小于0.45UI,多半是抖动问题,去分离RJ/DJ。
  3. 抖动确认后,看是不是RJ超了(噪声/电源纹波),还是DJ超了(布线/串扰)。
  4. 最后看交叉点——偏离50%太多,检查AC耦合电容、端接对称性。