抖动分类与测量李惠民力科公司华南区应用工程师在现在的协议一致性测试中,“抖动”似乎已经成为了一个绕不开的名词,它是评估信号质量的一个关键指标。
然而,各个通信协议对抖动似乎有着不同的要求,到底抖动的各个分量有什么意义呢?它们又是如何测量得到准确的结果呢?在系统设计中又该如何改善抖动指标呢?希望看完本文之后您能够得到一些帮助。
抖动的定义过去,时钟频率只有10MHz。
电路板或者封装设计的主要挑战就是如何自双层板上布通所有的信号线以及如何在组装时不破坏封装,在那个时代,数字信号基本上不需要考虑“信号质量”的;然而随着时钟频率的提高,信号周期和上升沿也已经普遍变短,这个时候,信号完整性就变得十分重要。
特别的,当时钟频率超过1GHz时,由于时钟周期变短,“抖动”这个指标在信号质量也变得十分重要。
抖动是指信号与理想时钟之间的偏差[1]。
如下面图1和图2两个时序中,可以明显看出,图2中信号与理想时钟之间偏差相对较图1比更大,若两个信号时钟频率相同,我们就可以说图2中的抖动比图1中大。
图1信号和理想时钟之间的偏差图2更“大”的抖动需要注意的是,抖动和频偏并不是不是相同的概念,一般讨论抖动是要在一段时间内实际信号和理想时钟之间速率相同或者相差很小的情况。
图3中,这段时间内,实际信号和理想时钟之间的频率偏差约为7%,一般来说我们讨论抖动的时候频偏不会超过5000ppm(即0.5%),图3这种情况不再我们的讨论范围之内。
图3“频偏”并不是我们所讨论的抖动另外,抖动的绝对值在有些情况下参考意义并不太大。
假若是10MHz的时钟频率,每个周期为100ns,1ns的抖动似乎对信号没有太大的影响。
然而当频率为500MHz时,1ns的抖动就很的能会影响信号信号质量,使得信号在传输过程在出现误码。
所以我们在很多情况下会用UI这个相对单位;1UI即为1个时钟周期所花费的时间。
若信号的时钟周期为10MHz时,1UI对应为100ns。
相应的还有mUI,1mUI即0.001UI。
相对单位比绝对时间单位更能看出抖动对信号质量的影响。
抖动的分类在说抖动分类之前,首先我想说一下源同步与时钟恢复技术。
想必大家在学习和使用单片机的时候应该对同步通信和异步通信有比较深刻的认识;同步通信的典型代表就是SPI,特点就是同时传送时钟和数据;异步通信的经典代表是UART,只需要两根线就可以实现全双工。
源同步和SPI类似,在通信的时候同时传输时钟和数据,但是高速的时钟信号在传输过程中衰减很大,而且容易引起EMI,所以一般会对同步时钟进行分频,源同步的代表有HDMI,其时钟频率是信号速率的1/10。
时钟恢复技术可以在串行数据中提取出时钟,然后用恢复出来的时钟对信号进行采样,克服异步通信中由于不同源带来的的频偏和抖动,时钟恢复的代表有USB,万兆以太网等。
首先,我们需要明确的一点就是——抖动是时间的函数,确切的来说,抖动是和时钟周期相关的。
在讨论抖动分类的时候,我们一般会从三个维度去讨论。
从关注抖动参数的类型,可以分成TIE(Time interval error),Periodjitter和Cycle to cycle jitter。
这种分类是根据不同的关注点对同一信号的不同描述,如图所示,这三类抖动的计算公式如下,其中T是理想的时钟周期,Tn-1和Tn分别是第n-1和n个信号的周期,tn是信号前n个周期的总时间。
不难看出,这三者之间有如下的关系:Period Jitter是TIE的微分,Cycle to cycle jitter是 Period jitter的微分;Period jitter是Cycle jitter 的积分,TIE是Period jitter的积分。
图4 TIE、Period jitter和Cycle to cycle jitter其中,TIE表示某时刻信号与理想时钟的偏移量,我们常说的抖动一般是指的TIE,,Period jitter表示某时刻信号与理想时钟的瞬时频偏;Cycle to Cyclejitter表示信号频率的变化快慢程度,如果信号的Cycle to cycle jitter很大的话,说明信号边沿位置变换很快,信号将变得难以追踪。
从被测信号的类型,可以分为时钟抖动和和数据抖动。
其实,抖动和我们日常生活中的运动一样,是是有一定的参照的,正如,我们在说车速或者说步速是多少的时候,一般都默认是以地球为参照系;前面我们在提到抖动的时候,都是以理想时钟作为参照系。
其实,在很多的情况下,我们是不需要关心“我们自己”所看到的抖动,而是需要关心“设备接收端”所看到的信号。
使用同源时钟进行采样的信号,一方面对时钟的信号质量有要求,即需要测量时钟抖动,另一方面需要测量使用同源时钟做参考时钟时数据的信号质量,即数据抖动。
使用时钟恢复技术的信号,一般只涉及到数据抖动的测试,但是没有了同源时钟作为参照系,我们应该如何测量“设备接收端”所看到的信号呢?设备的接收端会有CDR(Clock & data recovery)模块,用CDR恢复出来的时钟对数据进行采样;CDR会对数据中的低频抖动进行跟踪,这样就能过滤掉一些低频的抖动。
但是CDR的恢复时钟基本上不会引出来,所以需要使用标准的CDR进行测试;不同的通信协议对与CDR的参数有不同的要求,比较普遍的一种就是Golden PLL,即用波特率/1667对抖动进行高通滤波,这也就是我们常见的示波器上的1/1667设置。
在测试过程中,如果没有有特殊说明,我们所说的抖动,都是相对于协议要求的参考时钟来说的。
根据抖动的测量结果,一般可以分为TJ(Total jitter)、DJ(Deterministic Jitter,确定性抖动)、RJ(Random jitter,随机抖动)等。
这是我们最常见到的抖动分类维度。
其中TJ指的是一段确定的时间内信号TIE的最大值。
TJ是在高速信号水平方向测试当中最重要、最关键的一个参数,TJ是否满足要求决定了通信是否会产生误码。
在测试的时候,如果大家注意观察的话,TJ后面都会跟随着“(1E-12)”之类的备注,其中(1E-12)是对数据传输过程中误码率的要求,也是对测量时间的定义;比如说对与1Gbps的信号,TJ(1E-12)=200ps就意味着1000秒时间内TIE的最大值等于200ps。
对于消费类产品,误码率的要求一般在1E-12左右,对于通信类的产品,误码率要求会更高,需要达到1E-15甚至1E-17。
传统的TJ可以用余辉模式进行测量,图5就是使用余辉模式测量TJ的结果,这种测试方法直观明了,能够很容易地得到想要的TJ。
图5余辉模式测量抖动但是如果使用传统的方法测量TJ的话,对于1个1bps的信号,如果要测到1E-12的误码率,需要花费进17分钟,如果需要测到1E-15的误码率,则需要11天以上,速率越低相应的测试所需时间就越长。
在实际测试过程中,我们无法花费这么多的时间来测一个TJ,另外,示波器也无法连续捕获这么多的数据,需要分段捕获和处理,这样的话耗费的时间就更加长了。
现在测量TJ的时候会将TJ进行分解,这样的做法有两方面的优点:一方面可以先算出各个抖动成分的值,然后通过各个分量再计算出TJ,这样可以用较短的时间计算出低误码率条件下TJ的大小;另一方面,如果TJ超标的话,可以再根据各个组成成分进行分析,看看主要由什么问题导致TJ超标,根据问题对系统进行整改。
经典的抖动分类法会把TJ按照如图6所示进行分解。
首先根据抖动是否有界,分成DJ和RJ。
在DJ中,按照抖动是否和码型相关,分成DDJ和BUJ两种,以下是各抖动成分的详细介绍:RJ:RJ是Random Jitter的缩写,RJ又被称为Gaussian Jitter(GJ),它主要是由于集成电路中的热燥声造成的,是芯片的固有特性;RJ无界而且和发送的码流不相关,RJ服从高斯分布。
需要注意的是RJ是无界的——RJ的峰峰值是随着时间的增长会不断增加,所以我们在说RJ峰峰值的时候也会像TJ一样加上像(1E-12)表示时间;但是RJ呈高斯分布,所以能够以有效值(RMS)的形式表示,我们一般看到的RJ都是以RMS表示的。
另外RJ随时间的增长会导致TJ 过大,也就是说,由于RJ的存在,只要时间足够长,一定会导致通信产生误码,所以RJ是衡量高速集成设计的的最关键技术指标之一。
需要注意的是,参考时钟的质量也会直接影响RJ的测量结果,如果要获得一个“干净”的信号,请使用低噪声的参考时钟。
图6Jitter分解DJ:DJ是Deterministic Jitter的缩写,它的特点是有界的,如果没有RJ 的存在,我们能较为容易地测得DJ的峰峰值,所以DJ又被称为High Probability Jitter(HPJ)。
根据是否和码流相关,我们又可以把DJ分为DDJ和BUJ。
DDJ:DDJ是Data Dependent Jitter的缩写,有些地方也会把DDJ叫做Correlated Bounded High Probability Jitter(CBHPJ),它的特点是和发送的码流相关,DDJ又可以分为ISI和DCD。
ISI:ISI是Inter Symbol Interference的缩写,有时候在对抖动进行分类的时候,会把ISI和DDJ进行等同,因为在通信过程中,ISI是DDJ最主要的组成部分。
ISI主要是由于通道的不理想因素造成的,通道的介质损耗会使得高频成分比低频成分衰减更大,例如在一串如’1111101’这样的信号,先出现了长串’1’,然后在1个’0’之后再是’1’,由于’101’这三个信号高频成分大,放电时间不足,以至于’0’、’1’信号的中心点偏离垂直参考电平,这样会导致ISI的产生,如图7所示,两白线间就是ISI。
减小这部分抖动的最好方法就是均衡,发送端的预加重和接收端的均衡都会有效的图7 ISI jitter产生的示意图削减低频,放大高频,使得任意上升沿和下降沿的中点接近垂直参考电平(一般为零电平),有效减小ISI。
DCD:DCD是Duty Cycle Distortion的缩写,主要来源于芯片的时钟,一般来说对TJ的贡献很小,如果在测试过程中发现DCD偏大,可以尝试调节示波器测试的参考电平。
图8是用同一个信号在不同的垂直参考电平的分析结果。
图8垂直参考电平对DCD的影响PJ:PJ是Periodic Jitter的缩写,这里需要注意的是PJ和我们之前所说的Period jitter是完全不同的两个概念。
Period jitter指的是每个周期都对信号和我们的参考时钟进行一次比对,是瞬时频偏的一种表达方式;而PJ是指信号相对与参考时钟的偏移呈现出周期性的变化规律,Sine Jitter(SJ)是非常常见的一种PJ,这时信号边沿相对参考时钟边沿呈现正弦型的周期变化。