新闻中心

EEPW首页 > 测试测量 > 设计应用 > 胡为东系列文章之三--高速串行信号的接收端测试

胡为东系列文章之三--高速串行信号的接收端测试

作者: 时间:2017-01-12 来源:网络 收藏


图3高速串行链路物理层的基本组成结构示意图

那么当接收端接收到物理链路上接收到的数据后,接收端对数据的均衡效果怎样?时钟数据恢复电路能否准确的恢复出时钟?以及解串器、8B/10B解码器等是否工作良好等问题都可能会导致数据误码的产生,在高速串行数据测试中都需要分别进行检测和验证。如通过注入不同信号幅度的码型来验证接收端Amplifier/Equalization的最小电平输入灵敏度,并通过设置不同的预加重来确定能够补偿通道失真的最优的预加重设置,这个测试中需要具有能够调节幅度和预加重设置的信号源并需要增加通道失真导致的ISI抖动;时钟数据恢复模块的测试则需要通过施加不同幅度的正弦抖动来验证其工作范围;对解串、8B/10B电路测试则需要通过施加信号的其他影响参数如随机抖动、高频正弦抖动、时钟对齐符号码等可能导致的问题。

对接收端性能的测试也通常叫做接收机测试。接收端测试的最主要的目的是验证接收端的误码率是否满足要求。

二、接收端测试的基本原理

接收端测试的基本原理是测试仪器(通常使用误码分析仪或者信号源和能分析误码的专用协议分析仪来完成)发出特定的码型给被测接收端,接收端在Loopback模式下再将数据接收、恢复后通过其Tx端发送回测试仪器,由测试仪器完成其发出去的数据和接收到的数据的对比,从而分析出误码的数量,这种测量方法叫外部误码率测试(External BERT),此时被测件工作在重定时环回模式(Retimed Loopback);还有一种是芯片内部自带有误码检测电路,接收端接收到数据后自行统计误码,然后将误码的数量反馈给测试仪器,这种方法叫做内部误码测试方法(Internal BERT),此时被测件工作Loopback BERT模式下;如下图4所示,目前用得比较广泛的是重定时环回测量方法。由于接收端测量和调试需要验证不同条件下的接收端的特性,因此需要信号源能够发出不同的码型、调节输出信号幅度、预加重、施加不同频率、不同幅度的正弦抖动、随机抖动等。

图4内部误码测试方法和外部误码测试方法

三、接收端一致性测试和容限测试(抖动容限测试)的概念及区别


高速串行数据标准的规范通常会要求在某一特定测试条件下,接收端的各项指标需要符合一定的标准(最主要是抖动指标)。比如说USB3.0的规范就要求接收端一致性测试的环境设置条件如右边表格所示,需要设定测试仪器输出的码型信号带有规范要求数值的De-emphasis,RJ,SJ,Eye Height,TJ等参数,规范中将给出在这一环境下的抖动及误码率指标要求。表中的正弦抖动需要在不同频点下进行测试以验证CDR的性能。根据规范要求进行的测试验证就叫做一致性测试(compliance test),其目的主要是为了验证被测件是否满足规范要求。测试结果如下图5左图所示,横轴表示的是正弦抖动的频率,纵轴表示的是正弦抖动所对应的幅度,当图中的点均为绿色时说明测试结果是符合规范的,没有误码发生。

一致性测试只能验证测试结果是否满足规范。事实上我们更需要了解被测件的实际容限有多大,这时候只需要将一致性测试中固定幅度的Sj改为在一定范围内可变化的测量就可以测试接收端容限或者说抖动容限了,如下图5右图所示,不同频点处(横轴)的Sj的幅度在变化,每一个幅度都会进行一次测试,直到测试仪器检测到误码为止,图中出现红色点的位置即表示系统开始出现误码,绿色点表示没有出现误码,图中黑色曲线是规范要求的指标,抖动容限即表示出现误码(红色点位置)到规范要求的指标之间的差值。这一测试过程叫接收端容限测试。另外,如果系统有误码,测试仪器也会统计出误码的数量。通常高速串行数据规范要求测试误码率BER=10E+12的抖动容限指标及误码情况。


图5接收端一致性测试和容限测试结果示意图

四、接收端测试的难点
接收端测试的主要难点有:
1、如何能实现测试仪器与被测DUT的顺利握手(这一点在Tx发送端测试的时候尤为重要,因为对于高速串行信号来说,往往需要测试不同类型的码型,因此不仅需要误码测试仪器能够发出不同码型的激励信号,同时为了快速自动化的测试,则需要测试仪器能够自动的根据需要诱使DUT发出相应的码型给示波器进行物理层测试,这需要测试仪器与被测DUT有非常好的协调和握手能力)。
2、如何让DUT进入Loopback模式,因为接收端测试时需要让DUT工作在Loopback模式下才能进行测试,让DUT进入Loopback模式有两种方法,一种是通过内部硬件编程的方法,另外一种是通过协议层级的握手;而很多板级的应用工程师无法做到让DUT工作到Loopback模式下。
3、如何处理由于发送端数据和接收端数据由于时钟速率不一致而插入的时钟对齐符号码(如USB3.0中的SKP信号);在串行数据应用中,发送端和接收端通常是异步工作模式,两者使用的不是同一个时钟,这样就可能导致发送端数据的参考时钟和接收端数据的参考时钟的速率不一致,如下图6所示为接收端接收到测试仪器发过来的数据,当其工作在Loopback模式时,接收端会通过Tx将数据返回给测试仪器的示意图。由于Tx使用的基准时钟是板上的参考时钟,而Rx使用的是从串行数据中的恢复时钟,两个异步时钟的不一致可能会导致接收到的数据和发送出去的数据的不一致,从而导致误码的产生,这时候接收端芯片内部会有一个Elastic Buffer,这个Buffer会通过插入或者丢掉一些特定的符号码(如SKP码)来协调接收端时钟和发送端时钟的速率差异。如下图7所示为USB3.0的Elastic Buffer插入和丢掉SKP码的图示,在USB3.0中,链路两端的产品的参考时钟频率可能是不一样的,参考时钟允许的精度为+/-300ppm,SSC展频引入的频率偏差为0到-5000ppm,所以总的频率偏差在-5300ppm到300ppm。为了补偿频率偏差,在USB3.0中的数据流中每354个symbol要插入两个SKP(即K28.1码),接收端需要能识别和删除SKP,在USB3.0芯片中,添加和删除SKP是由Elastic Buffer来实现的(详见USB3.0 Specification的6.4.3节)。于是,在接收机测试时,PUT发送出的码流会加入一些SKP,误码检测器接收到的数据包括了测试码型和一些SKP,然后对比码型发生器发送出的测试码型,传统的BERT会误认为测量到了误码。而力科的PeRT3可以智能的添加和删除SKP后,再来计算是否有误码。


评论


技术专区

关闭