在嵌入式系统的开发过程中,串行总线的协议分析一直是一件令工程师头疼的工作。在有逻辑分析仪的情况下,工程师需要进行复杂的触发条件设定,才能捕获到需要的数据,这样既需要昂贵的设备投资也要花费大量的时间进行仪器设置;随着示波器技术的不断发展,串行总线触发和分析功能在一些高端示波器中出现,并受到嵌入式工程师的欢迎。但不同厂家的示波器在串行总线分析方面的功能和性能是有很大区别的。
使用示波器进行串行总线触发
使用普通示波器只能进行一般的边沿触发和脉宽触发,很难捕捉到复杂的串行总线波形。而使用带有串行总线触发功能的示波器可以方便地捕获到需要的串行数据。横河公司的DLM2000系列数字示波器支持多种常用串行总线的触发,包括CAN/LIN/I2C/SPI/UART,甚至可以对用户自己定义的非标准串行总线进行触发。根据每种总线结构的不同,可以设置多种触发模式。触发模式越多,捕获数据的能力就越强。
在嵌入式系统中,往往同时存在两种甚至两种以上的串行总线结构,例如汽车电子中CAN和LIN总线经常同时被使用,也经常需要分析两种总线的通讯配合是否出现问题。而多数带串行总线触发功能的示波器同时只能触发一种总线,要实现CAN和LIN总线同时触发,只能使用两台示波器,而两台示波器的同步问题也很难解决。DLM2000系列示波器的双总线触发功能则可以轻松实现任意两种串行总线的组合触发。
使用示波器进行串行总线解码分析
触发到需要的串行数据后,工程师面对的仍然是数据的原始波形,要想进行高效的总线分析,需要对波形进行解码。目前,数字示波器中所用的解码技术包括软件解码和硬件解码。软件解码是将波形数据通过示波器中的软件进行运算获得解码结果,虽然可以降低硬件成本,但对CPU的运算速度要求很高。在实际应用中,采用软件解码的示波器解码一次需要几秒甚至十几秒的时间。这样的解码速度已经失去了实时分析的意义,因为大多数数据已经在等待解码中丢失了。少数高端示波器采用了硬件解码技术解决了这一问题,使实时解码分析成为可能。
在显示解码结果的同时,还可以显示所有捕获帧的解码列表,非常便于波形与解码结果的对应观测。
要获得正确的解码结果,需要根据不同的总线参数对示波器进行设置。以CAN总线分析为例,需要指定总线类型为CAN,设置CAN信号对应的通道,通过调节触发电平和时间轴对CAN总线进行触发,然后调节比特率,设置隐形电平等,如果是SPI总线,还要指定3线制或4线制,指定时钟信号,片选信号。这个设置过程需要非常仔细,其中任何一项设置得不合适,解码结果都有可能出不来。尤其是比特率设置,稍有误差,得到的解码结果有可能就是错的。