使用前沿的串行总线和窄总线(如HDMI和SATA)的设计师早就知道,示波器是进行一致性测试、容限分析和性能验证的出色工具。设计师进行产品设计时,这些总线及其性能非常重要,他们选择的一致性工具和调试工具可反映出这种重要性。
嵌入式系统设计师对串行通信持不同态度。尽管一些关键的通信任务中使用高性能总线(如PCle),但大部分芯片间通信中的嵌入式设计还是使用CAN、LIN、I2C、SPI、RS-232/UART和低速USB总线。嵌入式系统设计师选择这些工业标准串行总线的原因与SATA设计师不同。通常,嵌入式系统设计师构建自己的并行总线,或是使用基于UART的定制平台。然而近10年来工程师们认识到,与定制标准相比,为汽车电子设备或计算机外围设备等领域设计的总线标准具有更稳定的供应链、更好的开发工具、易于集成而且成本更低
对这些总线的测试要求也不尽相同。最重要的要求是总线的稳定性和经过总线的通信量,其次是互操作性和与标准的一致性。我们不想把时间浪费在调试数据总线上,而是想利用总线上的数据来考察设计中的其他元件如何工作。对此,我们将讨论一些技巧,用以改善示波器对低速串行总线的分析能力。这些例子中使用的是AgilentInfiniiVision示波器,但大多数技巧也适用于其他制造商生产的示波器。此外,目前使用的示波器可能不需要升级或稍加升级便可适应这些任务。
1.使用符号解码更深入理解总线通信量
大多数富有经验的工程师都知道,示波器通常是与内部打印机一起出售的。打印机用来建立“条形图”。工程师建立条形图可通过一次长时间缓慢采集,或多次快速采集(纸带是重要的实验室工具)。然后将条形图贴到实验室的墙壁上,之后设计师以手动方式对示波器迹线的含义进行解码。
显然,这个过程十分繁琐而容易出错。另一个问题是这种手动方法难以从结果推导出一个高度抽象的概念。他们必须将波形转化为二进制,然后是数据包,并进一步变为数据包内容,最后是数据包内容的ASCII或符号意义。许多工程师仍在使用从此项技术衍生出的其他方法。最好的衍生方法使他们能够观察显示结果,并推断出系统中发生的情况。即便如此,他们也不能一边解释显示结果,一边分析其在系统中的含义。
现代数字示波器可在内部进行这种分析,只需几秒钟的配置,即可查看读/写数据,数据包内容和误差代码。甚至还能在硬件内进行这种分析,因而不会影响示波器的性能。基于软件的解码可能会影响性能。
2.采用数字通道提高灵活性
对于嵌入式设计,芯片间和系统内通信总线通常只是其中的一小部分,其他组成部分还包括DAC(数模转换器)、ADC(模数转换器)、传感器、显示器、控制环路、处理器和机电元件,所有这些组成部分都必须协调一致地工作。
如果示波器只有2个或4个通道,低速串行总线可能很快就会占用所有调试资源。因此,混合信号示波器能提高分析工具的灵活性。
混合信号示波器(MSO)不仅拥有模拟通道,还拥有许多(至少16个)数字通道。设计优良的MSO能将数字通道与模拟通道保持完美同步,并支持模拟数据和数字数据的无缝交叉触发,而不会因为使用数字通道而导致性能下降。在显示器上同时使用20个或更多时间同步通道时,可以灵活分析多模拟事件、数字事件和串行事件之间的相互作用。
嵌入式系统分析的最大好处在于,可以将数字通道分配给串行总线定时和解码,从而让出模拟通道对其他部分进行时间同步分析。可以用模拟通道检验串行总线部分的物理层性能,之后切换到数字通道查看定时和协议层,然后测量事件从传感器到处理器再到输出的延迟时间,或者验证对争用总线资源的多个输入的优先级仲裁。
3.利用计数器快速表征总线活动
计数器好比了解总线健康状况的听诊器。总线就像人的动脉,错误的数据会阻塞总线,从而限制正确数据的流动。系统就像心脏,可能存在威胁系统完整性的异常现象(如误码)。使用事件计数器可快速检查总线上的通信量的状态。
在以下例子中,我们查看了用于CAN总线上通信量的计数器。在分析完100000个数据包之后,可以看出没有过载帧信号,但大约2%的帧信号包含有错误信息。还可以看出,总线利用率约为24%。这与观察示波器显示屏上半部分所预期的利用率一致。还可对特定类型的误码、总线事件或数据值进行触发,通过计数器进行参数测量并作更细致的分析。
[pagebreak]采用计数器分析时,解码性能很重要。示波器处理串行迹线的速度越快,就能越快获得有意义的统计结果,这里指的是快速测试,而不是指长时间分析。
如果示波器没有这些计数器,可将外部计数器连接到示波器的触发输出(TriggerOut)端口。虽然无法提供完整的总线性能,但可以了解发生了多少次特定触发事件。
4.利用总线特有的触发隔离关键事件
大多数设计师认为,只要有足够多的触发工具就能找出并解决任何问题。串行总线特有的硬件触发非常有用,因为:
首先,触发使调试总线问题变得轻而易举。误码触发能隔离出传输故障事件,也可轻松隔离出帧信号的起始或终止事务,从而可以测量总线延迟时间。其次,对总线协议或数据值触发可轻松调试系统问题。例如,可以指定软件中的十六进制数据值表示错误状态(也许是缓冲器超限或传感器偏置值过大)。由于模拟信号、数字信号和串行信号呈时间相关关系,因此触发误码会迅速造成问题。最后,硬件触发可改善计数器分析,可以隔离出有问题的具体事件。此外,总线计数器的工作与测量计数器无关。这意味着不仅能跟踪事件的绝对发生次数,还能估计出现次数占全部数据包的百分比。
5.利用存储器分段查看多个事件的出现
串行总线是“猝发”信号的典型例子。有些周期性活动之后会出现周期性静寂时间。
即使深存储示波器也能在几毫秒之内耗尽采集存储器。所幸许多示波器可以对存储器进行“分段”,即在所关注事件的周围插入固定宽度分段的存储器。这样,就能显著延长在一次信号采集中可以观察的时间。在以下例子中,通过触发含有误码的第一个500CAM帧信号,则可以观察1分多钟的时间内所发生的误码,并比较这些事件中的系统行为,以找出共同根源。
即使可以捕捉到所有帧信号,对采集存储器进行分段也会使捕获的时间延长一个占空比的倒数。例如,25%占空比的总线的捕获时间将延长4倍。
结论
文中描述的方法单独使用十分有用,但是组合使用时效果最好。近10年来,嵌入式设计中采用标准串行总线,从而适应数字示波器更强的分析和调试总线的能力。捕获、分析和显示的改进大大简化了表征和调试所设计的总线和外围元件。