数据时钟恢复CDR(Clock and Data Recovery)

目前蛮多的数据通讯为了简化硬件线路都不会采用源同步(发送端同时发送数据和CLK)方式传送/接受数据,而是只发送数据,然后通过CDR技术,从数据中还原出CLK信号.比如USB,SATA,HDMI, PCIE等等.

这类信号通常都要求DC balance要求比较高(接近50%),换句话说就是AC-Coupled(就是在信号线上加串联电容,电容一般建议放在靠近终端,降低串联电容造成的阻抗不连续点反射信号的影响).

通常这类信号要避免出现长1和0的情况,会额外用一些编码方式,比如8B/10B(8bità10bit传输,曼彻斯特编码(跳变方式来表示0,1)等等.

CDR的原理(讲的最清楚的Keysight高阶示波器里面的资料,但因为离职没办法看了,网上找的资料),下面这篇讲的很详细了,还讲了基于过采样的数据时钟恢复方式,这块没接触过.我当时接触的都是基于PLL的CLK Recovery(基本思想是先通过控制VCO去跟踪数据速率,然后再让PLL工作同步信号)

http://blog.csdn.net/yijingjijng/article/details/48024059

继续回到Jitter分析方法(TIE),还是基于Agilent的研讨会资料,仅做技术交流使用

TIE中文名称时间间隔错误或相位抖动测量(个人觉得太经典了~~)

具体TIE方法参见下图

上图中的Data就是传输的数据(仅是示意而已,如果是CDR数据传输,正常是不会出现如此长的1和0)

Clock信号:通过CDR还原出来的理想CLK信号(也可以理解为源同步的CLK信号)

Trend:Y轴=对比数据边沿和理想时钟边沿的时间,进行时间误差测量得到的值,X轴=时间(上图只是示意,目测和Data结果对不起来,不要太纠结ORZ)

Spectrum:对Trend图进行频谱(FFT)分析,观察jitter的趋势.

 

接下来讲如何分离和测试各种jitter信号

1.  DCD的量测

a.  用的测试信号是”10101010101010…”信号, 这样就可以排除ISI干扰(因为前后码都是一致的);

b.  为了尽可能消除非相关Pj和RJ影响,我们可以对Trend曲线做平均,这样就可以消除了这些影响了.

c.  通常DCD造成的jitter会是个常量,做平均后这个值会保留下来,我们可以用示波器的量测功能量测DCD

 

2.  ISI量测

a.  使用的是PRBS信号,得到Trend图;

b.  对Trend曲线做平均,消除非相关Pj和Rj影响;

c.  这样得到的jitter结果是DCD+ISI的结果,上面已经得到DCD的结果,所以减去DCD就是ISI的结果

d.  如果你想明确你的ISI是由系统带宽为主因还是阻抗不连续是主因,你可以试着降低输出端信号频率来判断.

 

3.  非相关PJ的量测

a.  使用的是PRBS信号,得到Trend图;

b.  对Trend曲线进行FFT分析;

c.  整个频谱内,你可以看到很多的频点,而大多数的频点都是高速信号的谐波或者次谐波.你的工作就是在频谱中寻找那些和数据信号频率非相关频点.

d.  这些频点就是我们要找的非相关Pj.

 

4.  相关的Pj量测

a.  因为干扰信号和数据信号是同一个频率,不可能通过3的方式去量测;

b.  按照研讨会的说法,这个方法只能排除示波器其他通道带进来的Pj影响,看起来并不能排除板子自身的相关Pj影响;

c.  关闭其他通道,使用示波器的深度存储功能,对Trend 曲线进行频谱分析,然后经过多次测量,对Trend 曲线的频谱取均值(尽可能减小Rj的影响);

d.  打开其他通道,重复c,两个结果比对,就可以得到其结果了;

 

5.  Rj的量测

a.  使用的是101010……信号,得到Trend图,但需要量测多次;

b.  利用示波器计算功能,做出平均Trend图,然后用多次量测曲线去减均值Trend图,得到一系列图; 这些曲线包含了随机抖动RJ 和非相关周期抖动PJ

c.  对这些曲线做均方根计算RMS;

d.  如果你觉得这个结果中,非相关性周期抖动PJ 的成份比较大,使用前面介绍的方法来消除非相关性周期抖动(但不要用p-p值计算),要用rms计算;

e.  把c-d的结果就是大概的Rj值

 

High speed signal本来还想写下示波器sinx/x差值算法(这个是和我们直观理解的示波器不一样的地方),但之前整理的资料好像没带回来,就算了,会开始介绍十年中花了最多时间和精力的RF部分了~~