16.高速串行触发
除了上述针对低速串行总线的触发功能外,有些高端的示波器中还有针对高速串行(>1Gbps)总线的触发功能,即高速串行触发(High-speed Serial Trigger)。例如在PCIE、SATA、USB 3.0等总线中都采用高速的串行传输方式,要想捕获到数据流中特定的码流序列,一般有两种方式:软件解码搜索和专门硬件触发电路。
一种是借助于解码、搜索功能,现在高端示波器中提供了很多针对高速串行总线的软件解码功能,可以通过对一段波形数据做解码,然后再在其中搜索感兴趣的数据码流。这种方法不依赖于特定的硬件,只要软件支持解码就可以。但缺点是示波器的触发还是通过简单的触发条件(例如边沿或脉冲宽度触发)控制的,因此捕获到什么样的数据码流是随机的。如果正好捕获到的码流中有感兴趣的内容就可以搜索到,而如果解码后发现码流中没有感兴趣的内容就需要重新捕获并解码、搜索。所以从严格意义上说,这不是真正的触发,因为只有感兴趣的内容出现频率较高才有可能捕获到;而如果感兴趣的内容出现频率很低甚至是单次出现的,用这种方式捕获到感兴趣内容的概率就非常低。
另一种方法是有些高端的示波器中有专门的高速串行触发电路,可以对10Gbps以上的高速串行信号里的特定码流进行触发。例如在SATA 6G的测试中,其信号采用8b/10b的编码,每10个bit构成1个符号(Symbol)。在其总线上每256个Double Words(相当于4个byte,编码后对应4个10bit的符号)的数据流中前两个Double Words是Align码型,用于收发端时钟频差的调整,Align码型由图7.32所示的4个符号组成(其中K28.5为同步码型,D10.2码型对应的原始8bit数据为0x4A, D27.3码型对应的原始8bit数据为0x7B)。
图7.32 SATA总线的Align码型
在一个测试中,如果希望捕获到Align码型后面紧跟着的一组特定数据码流(0xD9、0x26、0xD9、0x26、0xD9、0x26、0xD9、0x26),这组数据加上Align码型总共16个符号长度,对应160个bit长度。如果示波器具备高速串行码流触发功能,就可以在示波器中设置相应的触发序列,然后捕获到相应位置的波形并进行解码分析(见图7.33)。从解码分析的结果可以看到,捕获到的数据码流与设置的触发条件是一致的。
图7.33 高速串行触发捕获到的信号波形
需要注意的是,这种硬件的串行码流触发是先用特定的串行码流触发再解码,所以可以保证不会漏掉感兴趣的数据流;而用软件搜索的方法是先用普通的触发(如边沿触发)功能捕获一段数据,然后用软件解码再搜索,对于感兴趣的数据流只能说有一定的捕获概率,并不能保证肯定可以捕获。