在嵌入式系统的开发过程中,串行总线的协议分析一直是一件令工程师头疼的工作。在有逻辑分析仪的情况下,工程师需要进行复杂的触发条件设定,才能捕获到需要的数据,这样既需要昂贵的设备投资也要花费大量的时间进行仪器设置;随着示波器技术的不断发展,串行总线触发和分析功能在一些高端示波器中出现,并受到嵌入式工程师的欢迎。但不同厂家的示波器在串行总线分析方面的功能和性能是有很大区别的。
使用示波器进行串行总线触发
使用普通示波器只能进行一般的边沿触发和脉宽触发,很难捕捉到复杂的串行总线波形。而使用带有串行总线触发功能的示波器可以方便地捕获到需要的串行数据。横河公司的DLM2000系列数字示波器支持多种常用串行总线的触发,包括CAN/LIN/I2C/SPI/UART,甚至可以对用户自己定义的非标准串行总线进行触发。根据每种总线结构的不同,可以设置多种触发模式。触发模式越多,捕获数据的能力就越强。
在嵌入式系统中,往往同时存在两种甚至两种以上的串行总线结构,例如汽车电子中CAN和LIN总线经常同时被使用,也经常需要分析两种总线的通讯配合是否出现问题。而多数带串行总线触发功能的示波器同时只能触发一种总线,要实现CAN和LIN总线同时触发,只能使用两台示波器,而两台示波器的同步问题也很难解决。DLM2000系列示波器的双总线触发功能则可以轻松实现任意两种串行总线的组合触发。
使用示波器进行串行总线解码分析
触发到需要的串行数据后,工程师面对的仍然是数据的原始波形,要想进行高效的总线分析,需要对波形进行解码。目前,数字示波器中所用的解码技术包括软件解码和硬件解码。软件解码是将波形数据通过示波器中的软件进行运算获得解码结果,虽然可以降低硬件成本,但对CPU的运算速度要求很高。在实际应用中,采用软件解码的示波器解码一次需要几秒甚至十几秒的时间。这样的解码速度已经失去了实时分析的意义,因为大多数数据已经在等待解码中丢失了。少数高端示波器采用了硬件解码技术解决了这一问题,使实时解码分析成为可能。
在显示解码结果的同时,还可以显示所有捕获帧的解码列表,非常便于波形与解码结果的对应观测。
要获得正确的解码结果,需要根据不同的总线参数对示波器进行设置。以CAN总线分析为例,需要指定总线类型为CAN,设置CAN信号对应的通道,通过调节触发电平和时间轴对CAN总线进行触发,然后调节比特率,设置隐形电平等,如果是SPI总线,还要指定3线制或4线制,指定时钟信号,片选信号。这个设置过程需要非常仔细,其中任何一项设置得不合适,解码结果都有可能出不来。尤其是比特率设置,稍有误差,得到的解码结果有可能就是错的。
复杂的设置过程浪费了一部分调试时间,没有充分发挥示波器提高开发效率的作用。而DLM2000示波器实现了串行总线触发和解码分析的自动设置,用户只需要设置好总线类型和信号源通道,系统便可以自动调整比特率,触发电平,隐形电平等其他设置,在短短两秒钟内就可以将触发波形和解码结果同步显示出来。这一功能使繁琐的串行总线设置变得非常方便,大大提高了工程师的开发效率。
下面就几种常用的串行总线介绍一下使用示波器进行串行总线分析的技巧。
CAN总线控制过程的记录和分析
在进行CAN总线分析时,工程师通常希望示波器能够捕获某个完整的控制过程,比如车窗的开启或关闭过程。这些过程通常会持续几秒钟或十几秒钟时间,记录这么长时间的数据要求示波器有很大的存储深度。而目前200MHz~500MHz带宽的示波器一般每个通道的存储深度只有10Mpoints以下,想记录几秒钟的CAN总线波形是很难做到的。DLM2000可以扩充到单通道125Mpoints,这样就可以完整地记录一个十几秒甚至更长的控制过程。
对于一个过程的分析,最重要的就是这个过程的开始阶段和结束阶段。当捕获到一个控制过程之后,用户可以打开一个放大窗口,移动到过程的起始点,观测起始点的细节情况。如果想同时观测结束点的细节,一般示波器就无能为力了,而DLM2000继承了横河DL系列示波器的双窗口放大的独特功能,可以同时观测两个位置的波形细节,并独立调节缩放比例。
偶发异常信号的捕获
在将时基Time/Div调节到比较小用来观测波形细节时,有可能会有一些偶发的异常信号或者错误帧,当用户想抓住这些波形时已经来不及了,如果使用历史存储功能(也被称为分段存储技术)就可以解决这一问题。DLM2000可以将大内存平均分割成若干块,捕获到的一屏屏波形没有被马上覆盖掉,而被存入了历史内存中。这样的话,即使发现异常信号没有被锁定在屏幕上,只要用户及时按下了采集停止键,异常信号很容易在历史内存中被检索出来。
CAN/LIN两种总线同时触发分析
在汽车电子应用中,CAN总线总是与LIN总线配合使用,所以经常会需要同时分析CAN总线和LIN总线。前面已经介绍过,DLM2000具有双总线触发功能,可以同时进行CAN和LIN总线的组合触发。不但如此,两种总线的解码分析也可以同步进行。如图5所示,两种总线的解码结果列表可以同时显示在屏幕上,利用双窗口放大功能可以分别观测两种总线的波形细节。当在列表中选择不同的解码项时,放大窗口的波形会自动切换到所对应的波形,非常便于观测。
CAN总线比特率设置
CAN总线的标准速率一般是250kbit/s或500kbit/s。但是在研发阶段,出于开发测试需要,工程师经常会将比特率调低或者调高,这样如果示波器的总线参数只能设定为250kbit/s或500kbit/s,则不能对非标准速率的CAN总线进行解码。DLM2000可以灵活设置总线比特率,CAN总线速率可以在10.0kbit/s至1.000Mbit/s的范围内以0.1kbit/s的步进值任意设定。
灵活使用滤波功能
在汽车电子实验室的实际测试中,CAN总线信号会受到马达点火等因素的干扰,使捕获的波形带有很多噪声。如果想获得清晰的总线信号需要将噪声滤除。而一般示波器最低只有200MHz和20MHz两种低通滤波器,对于20MHz以下的噪声就无能为力了。而DLM2000标准配置中带有200MHz至8kHz的14种滤波器,可有效滤除各种高频噪声。
如果使用内置的运算滤波功能,可以实现0.01Hz至满带宽的高通及低通滤波,既可以滤掉高频噪声,也可以滤掉基本信号来观测高频噪声。另外,通过设置合适的截止频率可以很容易获得调制信号的基波。
串行总线应用越来越广泛,出现了专门的串行总线协议分析工具,一般包括数据采集硬件和PC端软件。这种设备可在PC端对串行总线协议进行详细的解析和分析,但是其价格一般非常昂贵,功能局限于总现协议分析。另外,这类设备的硬件部分的采样率比较有限,对于波形的细节分析,无法和示波器相比,由外部噪声干扰产生的总线错误将很难检测出来。而带有强大滤波功能的示波器既可以观测真实的物理波形,又可以通过滤波功能获得清晰的总线信号。
随着科技的飞速发展,串行总线技术也在不断更新,应用越来越广泛。在嵌入式开发非常普遍的今天,使用一款功能强大的示波器进行串行总线分析可以达到事半功倍的效果,简化调试方式,提高开发效率。