电子说
局部错误,全局通知是CAN总线错误类型中较为典型的一种,如何通过错误报文及波形快速定位错误原因呢?本文结合现场实测案例简要分析。
在CAN总线中存在5种错误类型,如图1所示:它们互相并不排斥,下面简单介绍一下它们的区别、产生的原因。
图1 5种错误类型
位错误:向总线送出一位的某个节点同时也在监视总线,当监视到总线位的电平和送出的电平不同时,则在该位时刻检测到一个位错误。但是在仲裁区的填充位流期间或应答间隙送出隐性位而检测到显性位时,不认为是错误位。
填充错误:在使用位填充方法进行编码的报文中(帧起始到CR序列),出现了第6个连续相同的位电平时,将检 测出一个填充错误。
CRC错误:CRC序列是由发送器CRC计算的结果组成的。接收器以和发送器相同的方法计算CRC。如果计算的结果和接收到的CRC序列不同,则检测出一个CRC错误。
格式错误: 当固定格式的位区中(如CRC认可位、ACK认可位、帧结束位)出现一个或多个非法位时,则检测到一个形式错误。
应答错误:在应答间隙,每一个接收端都会向总线回一个显性位,如果发送端在ACK场检测不到显性位应答,将产生应答错误。
当出现5种错误类型之一时,发送或接收节点将发送错误帧。其中错误帧 又分主动错误帧和被动错误帧。
主动错误帧由处于主动错误状态的节点发送 ,帧格式由主动错误标志(6个连续显性位)+错误标志叠加(0~6个连续显性位)+错误界定符(8个连续的隐性位)组成。
被动错误帧由被动错误状态的节点发送,帧格式由被动错误标志(6个连续隐性位)+错误标志叠加(0~6个连续显性位)+错误界定符(8个连续的隐性位)组成。被动错误标志能够部分或全部被其它节点的显性位覆盖。
在整个CAN网络中,由于干扰等原因引起总线局部错误(即某一个CAN节点出错,其他节点正常),CAN总线上的主动报错站点首先检测到错误,并立即主动向总线上发出错误标识,通知其他未发现错误的节点,如图4所示:
图4 错误帧的发送(局部错误)
检测错误---发送错误帧---通知报文错误:首先,发送节点检测到总线错误,发出错误标识——六个连续的显性电平位,总线接收到错误标识后进行全局通知——0~6个连续的显性电平位+8个连续的隐性电平位,告知其他节点总线错误。
全部0条评论
快来发表一下你的评论吧 !