- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
胡为东系列文章之三--高速串行信号的接收端测试
录入:edatop.com 点击:
一、接收端的基本结构
1、最简单的接收端结构
图1基本D触发器的锁存数据示意图
最简单的接收端可以看着一个D触发器,有一个时钟输入接口和一个信号输入接口及一个信号输出接口。输入时钟对D触发器和输入数据进行触发和采样后输出数据。如上图1所示为一个基本的D触发器锁存串行数据基本示意图。
一般低速信号接收端的结构和工作原理相对来说比较简单。且传输的信号速率也往往很低,信号即使经过较长的通道传输后也不会有太大的衰减,因此接收端出现问题的概率会小很多,所以一般5Gbps速率以下的信号的规范通常不会将接收端测试作为必选的测试项目。
2、典型高速串行数据的基本结构
图2典型的并行/串行数据的基本传输结构
并行数据转换成串行数据并辅以相应的编码,可以以LVDS或者CML等差分电平的方式实现高速、高可靠的传输,传输通道结构也可实现极大的简化。从上述结构图中我们可以看出,串行数据传输链路中是没有专门的时钟信号传输的,那么接收端如何实现对串行数据的解串、解码呢?事实上接收端会有专门的CDR(Clock Data Recovery)电路用以从串行数据中恢复出时钟。因此,一个最典型的串行数据链路的发送端的内部结构至少应包括:串行化(Serializer)电路、8B/10B编码电路(通常在8B/10B编码电路之前还有一级Scramble编码电路以减小信号的高频谐波分量及信号失真);接收端应至少包括解串电路(Deserializer)、8B/10B解码电路、CDR时钟数据恢复电路等。
当串行数据的速率进一步提高,比如说数据速率达到5Gbps以上,如USB3.0,PCIE GEN3等,串行数据链路中各个组成成分都会影响到信号的质量。如传输线、接插件、阻抗不连续、芯片封装等,在实际应用中我们常会发现在接收端芯片管脚处测试得到的信号眼图已经接近闭合,眼图闭合的主要原因来自于高速信号传输过程中受到传输链路各组成成分的影响而导致的。为了改善信号眼图的质量,芯片端会采用一些补偿的措施,如在发送端采取预加重的方法对信号的幅度和边沿提前进行优化,来补偿高速信号通过传输链路后可能带来的损耗;而在接收端芯片中还可以使用均衡的方法来实现对信号的补偿。这样接收端和发送端的结构会变得更为复杂。如下图3所示,接收端有均衡器、时钟数据恢复电路、解串电路、8B/10B解码、Scramble解码、弹性缓冲器(Elastic Buffer,通过插入或者丢掉时钟对齐符号码来实现发送端和接收端的时钟速率的一致)等。 [p]
图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后,再来计算是否有误码。 [p]
因此测试仪器需要能够识别Elastic Buffer插入或者丢掉了多少时钟对齐符号码才能够准确的进行误码的测试。
图6接收端LOOPBACK/Elastic Buffer工作图示
图7 USB3.0的Elasticity Buffer处理SKP的示意图
4、传统的测试仪器通常使用通用的误码测试仪器或者通用的信号源来进行误码的测试,这类仪器由于是通用型的,因此价格往往极其昂贵且使用起来也很复杂,而当前流行的接收端测试主要是针对一些特定标准的高速串行信号,如PCE GEN1/2/3,SATA I/II/III,SAS I/II/III,USB3.0等。如果用户主要针对这几类信号进行测试,则应选择一款更有针对性的接收端测试仪器。
五、力科针对接收端测试的解决方案(PeRT3)
力科针对高速串行数据的接收端测试专门推出了一款具有创新意义的测试仪器PeRT3(Protocol-enabled Receiver and Transmitter Tolerance Tester),专门针对当前流行的高速串行数据的接收端测试,支持PCE GEN1/2/3,SATA I/II/III,SAS I/II/III,USB3.0等标准的接收端测试,并可与力科的实时数字示波器组合起来完成特定串行信号的全套自动化测试解决方案。PeRT3家族产品包括PeRT3 Eagle和PeRT3 Phoenix两款产品,前一款速率支持到6Gbps,后一款速率支持到8.5Gbps。产品主要特点有:
l具有特别的协议握手功能,可方便与被测件进行握手,可通过协议握手方式设定被测件工作在Loopback模式
l能够识别由Elastic Buffer插入的时钟对齐符号码(传统的BERT通常无法实现此功能),从而准确的测量出误码率的结果
l可测量误码率(Bit Error Ratio)、丢帧率(FER Error Rate)、抖动容限(Jitter tolerance)
l支持USB3.0、SATA1.5/3/6Gbps、SAS1.5/3/ 6Gbps、PCIe 2.5/5Gbps/8Gbps的接收机测试
l可以调节码型发生器输出信号的幅度、SSC、去加重、随机抖动、正弦抖动
l内置3-taps De-emphasis
l方便自定义具有特定协议的码型
l是一款专门针对高速串行信号接收端测试的仪器,因此不仅使用简单方便,而且性价比高
图8PeRT3 Eagle和PeRT3 Phoenix
附:使用力科PeRT3(可选Keithley电子开关)实现的USB3.0的Tx和Rx端的全套测试解决方案
图9力科USB3.0发送端和接收端全套自动化测试解决方案
六、小结
本文简要介绍了高速串行信号的接收端的基本组成及接收端测试的基本原理、以及力科针对当前常见的高速串行数据信号的接收端测试解决方案。由于接收端测试相对发送端测试更为复杂,不仅需要测试仪器能够实现具有特定协议的码型的输出,还需要能够实现预加重、随机抖动、正弦抖动的注入、误码比较,而且需要能够和被测件具有一定的协议握手能力并能够处理识别为了协调接收端和发送端异步工作而插入或者丢掉的时钟对齐码(如SKP等)。力科的PeRT3是专门针对接收端测试而开发的创新型的高性价比产品,因此能够非常有针对性的解决接收端测试中遇到的难点问题。
七、参考文献
1、USB3.0的物理层测试简介与难点分析张昌骏
2、Handbook of Digital Techniques for High-Speed Design
1、最简单的接收端结构
图1基本D触发器的锁存数据示意图
最简单的接收端可以看着一个D触发器,有一个时钟输入接口和一个信号输入接口及一个信号输出接口。输入时钟对D触发器和输入数据进行触发和采样后输出数据。如上图1所示为一个基本的D触发器锁存串行数据基本示意图。
一般低速信号接收端的结构和工作原理相对来说比较简单。且传输的信号速率也往往很低,信号即使经过较长的通道传输后也不会有太大的衰减,因此接收端出现问题的概率会小很多,所以一般5Gbps速率以下的信号的规范通常不会将接收端测试作为必选的测试项目。
2、典型高速串行数据的基本结构
图2典型的并行/串行数据的基本传输结构
并行数据转换成串行数据并辅以相应的编码,可以以LVDS或者CML等差分电平的方式实现高速、高可靠的传输,传输通道结构也可实现极大的简化。从上述结构图中我们可以看出,串行数据传输链路中是没有专门的时钟信号传输的,那么接收端如何实现对串行数据的解串、解码呢?事实上接收端会有专门的CDR(Clock Data Recovery)电路用以从串行数据中恢复出时钟。因此,一个最典型的串行数据链路的发送端的内部结构至少应包括:串行化(Serializer)电路、8B/10B编码电路(通常在8B/10B编码电路之前还有一级Scramble编码电路以减小信号的高频谐波分量及信号失真);接收端应至少包括解串电路(Deserializer)、8B/10B解码电路、CDR时钟数据恢复电路等。
当串行数据的速率进一步提高,比如说数据速率达到5Gbps以上,如USB3.0,PCIE GEN3等,串行数据链路中各个组成成分都会影响到信号的质量。如传输线、接插件、阻抗不连续、芯片封装等,在实际应用中我们常会发现在接收端芯片管脚处测试得到的信号眼图已经接近闭合,眼图闭合的主要原因来自于高速信号传输过程中受到传输链路各组成成分的影响而导致的。为了改善信号眼图的质量,芯片端会采用一些补偿的措施,如在发送端采取预加重的方法对信号的幅度和边沿提前进行优化,来补偿高速信号通过传输链路后可能带来的损耗;而在接收端芯片中还可以使用均衡的方法来实现对信号的补偿。这样接收端和发送端的结构会变得更为复杂。如下图3所示,接收端有均衡器、时钟数据恢复电路、解串电路、8B/10B解码、Scramble解码、弹性缓冲器(Elastic Buffer,通过插入或者丢掉时钟对齐符号码来实现发送端和接收端的时钟速率的一致)等。 [p]
图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后,再来计算是否有误码。 [p]
因此测试仪器需要能够识别Elastic Buffer插入或者丢掉了多少时钟对齐符号码才能够准确的进行误码的测试。
图6接收端LOOPBACK/Elastic Buffer工作图示
图7 USB3.0的Elasticity Buffer处理SKP的示意图
4、传统的测试仪器通常使用通用的误码测试仪器或者通用的信号源来进行误码的测试,这类仪器由于是通用型的,因此价格往往极其昂贵且使用起来也很复杂,而当前流行的接收端测试主要是针对一些特定标准的高速串行信号,如PCE GEN1/2/3,SATA I/II/III,SAS I/II/III,USB3.0等。如果用户主要针对这几类信号进行测试,则应选择一款更有针对性的接收端测试仪器。
五、力科针对接收端测试的解决方案(PeRT3)
力科针对高速串行数据的接收端测试专门推出了一款具有创新意义的测试仪器PeRT3(Protocol-enabled Receiver and Transmitter Tolerance Tester),专门针对当前流行的高速串行数据的接收端测试,支持PCE GEN1/2/3,SATA I/II/III,SAS I/II/III,USB3.0等标准的接收端测试,并可与力科的实时数字示波器组合起来完成特定串行信号的全套自动化测试解决方案。PeRT3家族产品包括PeRT3 Eagle和PeRT3 Phoenix两款产品,前一款速率支持到6Gbps,后一款速率支持到8.5Gbps。产品主要特点有:
l具有特别的协议握手功能,可方便与被测件进行握手,可通过协议握手方式设定被测件工作在Loopback模式
l能够识别由Elastic Buffer插入的时钟对齐符号码(传统的BERT通常无法实现此功能),从而准确的测量出误码率的结果
l可测量误码率(Bit Error Ratio)、丢帧率(FER Error Rate)、抖动容限(Jitter tolerance)
l支持USB3.0、SATA1.5/3/6Gbps、SAS1.5/3/ 6Gbps、PCIe 2.5/5Gbps/8Gbps的接收机测试
l可以调节码型发生器输出信号的幅度、SSC、去加重、随机抖动、正弦抖动
l内置3-taps De-emphasis
l方便自定义具有特定协议的码型
l是一款专门针对高速串行信号接收端测试的仪器,因此不仅使用简单方便,而且性价比高
图8PeRT3 Eagle和PeRT3 Phoenix
附:使用力科PeRT3(可选Keithley电子开关)实现的USB3.0的Tx和Rx端的全套测试解决方案
图9力科USB3.0发送端和接收端全套自动化测试解决方案
六、小结
本文简要介绍了高速串行信号的接收端的基本组成及接收端测试的基本原理、以及力科针对当前常见的高速串行数据信号的接收端测试解决方案。由于接收端测试相对发送端测试更为复杂,不仅需要测试仪器能够实现具有特定协议的码型的输出,还需要能够实现预加重、随机抖动、正弦抖动的注入、误码比较,而且需要能够和被测件具有一定的协议握手能力并能够处理识别为了协调接收端和发送端异步工作而插入或者丢掉的时钟对齐码(如SKP等)。力科的PeRT3是专门针对接收端测试而开发的创新型的高性价比产品,因此能够非常有针对性的解决接收端测试中遇到的难点问题。
七、参考文献
1、USB3.0的物理层测试简介与难点分析张昌骏
2、Handbook of Digital Techniques for High-Speed Design