CAN总线局部错误及全局通知分析
扫描二维码
随时随地手机看文章
局部错误,全局通知是CAN总线错误类型中较为典型的一种,如何通过错误报文及波形快速定位错误原因呢?本文结合现场实测案例简要分析。
一、CAN总线错误简介
在CAN总线中存在5种错误类型,如图1所示:它们互相并不排斥,下面简单介绍一下它们的区别、产生的原因。
图1 5种错误类型
位错误:向总线送出一位的某个节点同时也在监视总线,当监视到总线位的电平和送出的电平不同时,则在该位时刻检测到一个位错误。但是在仲裁区的填充位流期间或应答间隙送出隐性位而检测到显性位时,不认为是错误位。
填充错误:在使用位填充方法进行编码的报文中(帧起始到CR序列),出现了第6个连续相同的位电平时,将检 测出一个填充错误。
CRC错误:CRC序列是由发送器CRC计算的结果组成的。接收器以和发送器相同的方法计算CRC。如果计算的结果和接收到的CRC序列不同,则检测出一个CRC错误。
格式错误: 当固定格式的位区中(如CRC认可位、ACK认可位、帧结束位)出现一个或多个非法位时,则检测到一个形式错误。
应答错误:在应答间隙,每一个接收端都会向总线回一个显性位,如果发送端在ACK场检测不到显性位应答,将产生应答错误。
当出现5种错误类型之一时,发送或接收节点将发送错误帧。其中错误帧 又分主动错误帧和被动错误帧。
主动错误帧由处于主动错误状态的节点发送 ,帧格式由主动错误标志(6个连续显性位)+错误标志叠加(0~6个连续显性位)+错误界定符(8个连续的隐性位)组成。主动错误帧格式如图2所示:
图2 主动错误帧格式
被动错误帧由被动错误状态的节点发送,帧格式由被动错误标志(6个连续隐性位)+错误标志叠加(0~6个连续显性位)+错误界定符(8个连续的隐性位)组成。被动错误标志能够部分或全部被其它节点的显性位覆盖。如下:
图3被动错误帧格式
二、什么是局部错误?
在整个CAN网络中,由于干扰等原因引起总线局部错误(即某一个CAN节点出错,其他节点正常),CAN总线上的主动报错站点首先检测到错误,并立即主动向总线上发出错误标识,通知其他未发现错误的节点,如图4所示:
图4 错误帧的发送(局部错误)
检测错误---发送错误帧---通知报文错误:首先,发送节点检测到总线错误,发出错误标识——六个连续的显性电平位,总线接收到错误标识后进行全局通知——0~6个连续的显性电平位+8个连续的隐性电平位,告知其他节点总线错误。
三、局部错误,全局通知案例分析
某纯电动公交车,在启动车辆未启动电机时,总线报文成功率很高,基本没有错误帧,但在启动电机后,特别是踩气泵刹车时,每踩一次踩气泵就会涌现出较多的错误帧。整车的简单拓扑如图5所示:
图5 整车通信简易拓扑
使用ZLG致远电子总线分析仪CANscope连接方向盘下的OBD接口测试,通过踩气泵刹车,产生了较多的错误帧,主要为填充错误和格式错误,分析错误帧波形如图6:
图6 错误帧的波形图
从蓝色标记可以看到,ACK应答后,先有一个低台阶,再二次抬高的错误帧。
图7 错误标志分析
CAN网络波特率为250 Kbps,即每个位为4us,由图7知,错误标志为7个显性位(主动错误标志+错误标志叠加)组成,二次抬高的6个连续显性电平,是局部错误后全局通知,各节点错误标志叠加造成的。也就是说车网络上有某一CAN节点较容易受到干扰,出现局部错误。
如何快速分析局部错误,定位干扰源呢?
由于是局部错误,干扰源在不同的测试点幅值是不同的,使用致远电子CANScope接入车前端的OBD接口和车尾部的电机控制器分别测试,结果如图8所示:
图8 共模干扰对比
由上图所示,在OBD接口测试的共模幅值为700多mV,在电机控制器节点测试的共模幅值为1.3V左右,同时可看到周期性的干扰脉冲。通过对异常共模信号做FFT频谱分析,快速定位共模干扰频率,测试结果如图9所示:
图9 共模干扰分析
测试出的干扰频率与电机驱动器频率吻合,推断为驱动器逆变产生的巨大电流形成强干扰,串扰到CAN总线上,导致距离其较近的节点出现局部错误。
局部错误,全局通知是一种常见的错误类型,如何快速定位到错误报文及其对应的波形是分析问题的关键,通过CANScope总线分析仪的报文接收和示波器,可将每一帧报文与波形做一一对应,快速分析报文及波形情况,实现CAN总线的快速故障定位和干扰排除。[!--empirenews.page--]