随着串行通信链路的吞吐率和数据率越来越高,对系统总体性能的要求也越来越高,接收机的接收质量和误码率测试就变得日益重要。BERTScope 是理想的选择(现已加入泰克产品家族),这里先做个预告,我们将在下篇中重点讨论BERTScope 。而 通过一台带有误码检测功能的实时示波器和一台信号源也可以完成高速串行信号的接收端测试验证:例如可以进行PCIE GEN2 和SATA6G 的误码检测,误帧检测,也可以方便的进行USB3.0 的符号(Symbol) 错误检测 等等;在检测误码的同时也可以检测显示串行总线上传输时非法的特征(Character) 字符与不一致(Disparity) 错误;并且支持扩频时钟SSC 。
Error Detector与Bert相比有如下优点:首先,在检测到误码的同时可以触发波形,便于用户在发现误码时获取相应波形,以进行深入的分析;其次,当不知道所发码型为何标准时,Error Detector可以对其进行学习(Learn)以进行自适应,得到参考评判波形,然后将实际波形与之比对判断有无误码;另外它同时具备误码,误帧,符号和极性错误检测功能;并且可以指定忽略像AlignPrimitives,SkipOrderSets这样的原语或有序集。
原理简介下面我们来看看Error Detector 是如何工作的:在Error Detector内部有内存控制逻辑以及内存模板,用户将必要的控制信息:比如码型长度,同步头,对齐码,以及发送学习命令等等,输入内存控制逻辑单元,Error Detector得到所需信息后,将波形存入内存模板中,当实际串行序列输入时,通过比较器将内存模板的参考波形与之比较,得到误码统计。
大家可以从简要框图1中看出,像Align Primitives 或者 Skip Order Sets 是可以有选择的被检测到或者忽略掉的。
Error Detector的使用可以通过PI 命令来手工控制ED,也可以直接通过调用设置好PI命令的文件来控制它,大部分自动测试软件包就采取后者的方法。
手工调试控制ED的PI命令类似于以下USB3.0 symbol error detect的示例:
TRIG:A:SERIAL:ERROR:ENABLE ON /* 打开Error Detector */
TRIGGER:A:SERIAL:ERRORDETECTOR:PATTERN CP0_SKP /* 以下均为进行配置,如码型,总线类型,码型长度,同步码型,极性设置等...*/
TRIGGER:A:SERIAL:ERRORDETECTOR:STANDARD USB
TRIGGER:A:SERIAL:ERRORDETECTOR:TYPE SYMBOL
TRIGGER:A:SERIAL:ERRORDETECTOR:DURATION:COUNT -1
TRIGGER:A:SERIAL:ERRORDETECTOR:BIT:LENGTH 2640
TRIGGER:A:SERIAL:ERRORDETECTOR:BIT:SYNCPATTERN "1101001010"
…
TRIGGER:A:SERIAL:ERRORDETECTOR:SSC ON
TRIG:A SETLEVEL /* 锁定时钟,进行同步*/
TRIG:A:SERIAL:ERROR:SYMBOL:TEST START /* 开始测试误码*/
也可以将设置全部写在文件中,通过recall命令调用,此为最常用的方法,也是自动测试软件使用的方法:
TRIG:A:SERIAL:ERROR:ENABLE ON
TRIG:A:SERIAL:ERROR:FILE:RECALL “C:\TekScope\ErrorDetector\UsbCP0_SKPsymbolErrorSetup.txt”
TRIG:A SETLEVEL
TRIG:A:SERIAL:ERROR:SYMBOL:TEST START
通过手工控制Error Detector,可以任意控制Error Detector的状态,尤其是在调试DUT 进入loopback模式和注入抖动进行容限测试调试时非常有用。所有的控制都在TekVisa 命令窗口中输入并执行。
应用实例:当DPO/DSA70000B,MSO70000系列的示波器具备了STU(6.25Gbps串行序列触发能力)选项后,配置ERROR,Detector就可以进行SATA/USB3.0等接收端的测试了。
USB3.0 RX的实时示波器的解决方案在USB3.0 Rx测试时需要将DUT设置成LOOPBACK 模式,然后需要一个符号(Symbol)错误检测机制在TX端来验证从Rx端注入的带抖动的波形环回到TX端是否出错,USB-RMT 软件自动设置Error detector接口,无需任何手工输入。在调试DUT进入loopback 模式时,使用实时示波器观察波形可以非常容易的判断DUT是否正确进入环回, Error Detector可以同时支持USB的符号(symbol)和位(Bit)错误的检查。
图2:使用Scope Error Detector 进行USB3.0 Symbol error 检测
图3:USB-RMT软件通过Error Detector统计DUT误码:除了33M的频点fail外其它所有的测试频点上均pass
在SATA RSG-RMT测试时需要将DUT设置成BIST-L 模式,然后需要一个误帧(Frame Error)检测机制在TX端来验证从Rx端注入的特定频点带带有特定幅值的抖动的波形环回到TX端是否出现误帧,TekExpress-SATA软件自动控制AWG任意波形发生器,调用波形库文件将DUT设置进入BIST-L 模式,然后注入抖动后,自动调用示波器的Error detector进行误帧检测。使用实时示波器观察波形可以非常容易的判断DUT是否正确进入BIST-L环回模式,以及出现误帧时实时波形的状况。下图4显示了Error detector运行时的状态,显示了实时统计帧数以及误帧个数以及对应的误帧率(FER Rate),同时给出了Align Primitive个数统计以及Character和Disparity的出错个数统计情况。图5为SATA-RMT(Receiver Margin Test)测试结果。
图4:使用Error Detector 进行SATA FER 检测
图5: SATA-RMT测试结果图