第1章 抖动基础概念
各位工程师朋友,我们开始搞抖动。说白了,抖动这东西,就是信号在时间轴上的「晃动」。你在示波器上看一个理想的时钟边沿,它应该精准地出现在某个时刻。但实际上呢?每次触发,它都会前后偏一点。这一点,就是抖动。
我做硬件测试这些年,处理过的最头疼的问题之一,就是这个玩意。它不像直流偏压,测个万用表就出来了。它藏在信号里,需要特定的方法和工具才能「揪」出来。
嗯,我们先从最基础的定义聊起。
1.1 抖动的定义
抖动的官方定义,是信号边沿相对于其理想位置的短期偏离。说白了,就是信号「不准时」。这个不准时的程度,通常用时间单位来衡量,皮秒(ps)或者纳秒(ns)。
你想想看,如果一个时钟周期是1 ns,结果每次边沿都抖动±50 ps,那这个时钟的有效精度就被降低了。我个人习惯把抖动理解为一种「时域噪声」。它是高速信号测试里,绕不开的第一道坎。
核心概念:抖动是时间偏移,不是幅度偏移。这个区别很重要。很多人把抖动和噪声混为一谈,其实一个影响时间,一个影响幅度。
1.2 抖动的分类
抖动不是铁板一块。它分成两大类:随机抖动和确定性抖动。搞清楚这两类,后面的分离工作才能做。
1.2.1 随机抖动
随机抖动,英文叫Random Jitter,简称RJ。它的来源,是热噪声、散弹噪声这些物理底噪。它服从高斯分布,没有上界。你测的时间越长,看到的抖动峰值就越大。
为什么会这样?因为高斯分布的尾巴在延伸。理论上,你等得足够久,可能会看到一个极其离谱的抖动值。所以RJ是无法彻底消除的,只能评估它的均方根值。
我在项目中遇到最折磨人的一次,就是RJ把系统的裕量吃掉了一大半。记得那是一块25 Gbps的背板,怎么调都过不了误码率测试。后来我用长时采样一看,RJ的RMS值比预期大了近一倍。最后查到是板子上一颗LDO的噪声串到了时钟芯片。
一个小技巧:评估RJ时,至少要采100k个边沿。采样数太少,统计结果会骗人。
1.2.2 确定性抖动
确定性抖动,Deterministic Jitter,简称DJ。它是有界的,有固定来源的。你可以找到它、分析它、消除它。
DJ里面还有几个子类,我列个表给你看:
| 子类 | 来源 | 特点 |
|---|---|---|
| 数据相关抖动 | 码间干扰、占空比失真 | 与发送的数据图案有关 |
| 占空比失真 | 时钟高低电平不对称 | 造成奇数位和偶数位的边沿偏移 |
| 正弦抖动 | 电源纹波、串扰 | 表现为周期性抖动 |
| 有界不相关抖动 | 邻近通道串扰 | 不相关但有界 |
我曾经吃过一次亏:以为抖动全是RJ,结果怎么加滤波都没用。后来用抖动分离工具看了一眼,发现占空比失真占了大头。一查,时钟树的P/N端走线差了1毫米。就那么1毫米,让我折腾了三天。
注意:不要把DJ和RJ混在一起分析。它们对系统的影响逻辑完全不同。RJ影响的是误码率的概率尾巴,DJ直接吃掉的是眼图的张开度。
1.3 抖动与误码率的关系
这块是核心。你的信号抖成什么样,最终反映在误码率上。
误码率,Bit Error Ratio,BER,就是错误的比特数除以总的比特数。在10⁻¹²量级上,意味着发送一万亿个bit,只允许错一个。要求很苛刻,对吧?
抖动和误码率的定量关系,可以用浴盆曲线来描述。但这里我不讲公式,我讲直觉。
你设想一下眼图。眼图的中间是张开最大的区域,采样点应该放在那里。但如果抖动太大,眼图闭合了,采样点就没地方放了。稍微抖一下,就采到旁边的比特上了。
所以,抖动直接决定了你的系统能在多低的误码率下工作。想达到10⁻¹²的BER,总抖动的峰值不能超过系统容忍的裕量。RJ越大,你需要留的裕量就越大;DJ直接破坏眼图的张开度。
我记得有一次做客户支持,对方说他们的设备在实验室测没问题,到了机房就偶尔丢包。我一测,发现RJ没变,但DJ里的正弦抖动多了一个频率分量。最后定位到是机房空调变频器的干扰,一路串到了电源上。
实战建议:做抖动预算时,通常把总抖动的70%留给RJ,30%留给DJ。但如果你的DJ成分很高,这个比例就要倒过来。
下面这张图,把刚聊的这些概念串了起来。你一看就清楚了。
嗯,这张图把抖动分类的脉络理清楚了。从总抖动出发,分成了随机和确定两大类,而确定性抖动下面又挂了几个常见的子类。最终它们都影响到误码率,而我们做测试的目的,就是要把各个分量分离出来,找到源头。
有的人可能会问,知道RJ和DJ分开有什么用?用处大了。RJ是物理底噪,你改不了,只能评估它的下限。但DJ是你可以动手脚的。查出是占空比失真,就去修时钟占空比;查出是正弦抖动,就去查电源纹波或串扰。对症下药,才有效率。
我个人做测试的习惯是:先看总抖动是否超标。超标了,先用抖动分离工具看各分量占比。哪个分量大,先搞哪个。这叫「找大头」。不要一开始就去扣那个1 ps的RJ,那是浪费时间。