图5 干扰位置
CAN总线通常工作在比较恶劣的环境中,常常有干扰信号的存在,CAN总线组网时为了保证解码的一致性,要求所有节点的采样点位置设置应该一致。CANScope中的报文处理和波形处理两部分电路可看成2个CAN节点,CANScope的波形解码的采样点位置设置是跟报文解码的采样点位置保持一致的,然而,当高频干扰信号出现在采样点位置时,即使是在相同采样点位置进行采样,因为波形处理和报文处理电路的带宽差异,还是有较大概率出现波形解码和报文解码不一致的现象。
软件逻辑滤波
CANScope采用软件滤波的方式,即对采集到的CAN总线模拟波形信号经过软件差分和逻辑化后的数字信号进行软件滤波,滤波后允许通过的信号带宽随着波特率的不同而不同,波特率越小,滤波后允许的信号带宽越小;通过这样的滤波处理,最大程度提高了对干扰信号的容忍度,甚至在报文解码出现错误的情况下仍然能对波形做出正确的解码。这样,在干扰很严重的情况下就可能会出现文章开头所说的报文解码正确而波形解码错误或者报文解码错误而波形解码正确的现象。
解码差异存在的意义
使用过CAN卡的人可能会有这样一个印象:在使用CAN卡的过程中,几乎遇不到有些节点收到正确报文而有些节点收到错误报文的现象,因为只要一个节点(处于错误主动状态的节点)收到错误报文,其它所有节点都会收到错误报文,最多就是错误的类型不同而已。这一点跟CANScope的报文解码和波形解码的差异现象是不同的,那这又是何原因呢?这是因为正常的CAN网络中,当某个节点解码到有错误时,会向总线发出错误帧破坏当前报文,从而导致所有节点都接收到错误报文。与之不同的是,CANScope作为测量设备,只对CAN总线进行监听和采集,不影响CAN总线,将总线上的波形细节(包括波形细节导致的解码差异)尽可能地展示出来,这正是解码差异存在的意义。
图6 解码错误不影响总线
如图6所示,CAN总线被严重干扰,CANScope的报文解码出错,但这时CANScope并不会向总线发出错误帧,而其它节点没有解码出错,当前帧被正常应答并正常完成传输,这些情况可通过波形及波形解码全部展现出来且不影响CAN总线网络。
总结
使用CANScope测量CAN总线信号,在总线信号干扰很严重的情况下会出现CAN波形解码与CAN报文解码不一致的情况,这是由于CANScope独立两路的报文处理和波形处理所导致,而CANScope作为测量设备,只对CAN总线进行静默监听,不影响CAN总线,并将总线上的波形细节(包括波形细节导致的解码差异)尽可能地展示出来,这正是CANScope的价值所在。