微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CAN总线错误帧分析

CAN总线错误帧分析

时间:12-15 来源:互联网 点击:
1、CAN错误检测(Error Detection)

CAN网络具有严格的错误诊断功能,该功能已固化在硅片之中,一旦错误被检测,正在传送的数据帧将会立即停止而待总线空闲时再次重发直至发送成功,该过程并不需要CPU的干涉除非错误累计该发送器退隐(Bus Off)。CAN控制器可检测如下五种错误:
√ 位错误(Bit Check Error)
发送器在发送比特流的同时也对发出的比特流采样回收,若送出的bit与所期待的bit不合,则会检测到一个Bit Check Error;



√ 位填充错误(Bit Stuff Error)
在需要执行位编码规则的位流序列中检测到第6个连续的极性相同的位序流时,则检测到一个Bit Stuff Error;

√ CRC 错误(CRC Error)
发送端送出的CRC序列由发送器算出,接收器执行同样的CRC算法,若计算结果与接收到的CRC序列不符,一个CRC Error被检测到,由发送端送出;


√ 帧格式错误(Frame Check Error)
当一个固定形式的位场含非法位,则检测到一个Frame Check Error(接收端检测到帧结束最后一位为显性时帧错误忽略);



√ 应答错误(Acknowledgment Error)
ACK SLOT采样为隐性,则检测到一个Acknowledgement Error;



2、CAN错误界定(Error Confinement)

CAN控制器内置两个错误计数器:Receive Error Counter及Tranmit Error Counter(错误计数器的计数规则后附)。当某个计数器的当前值达到128时,CAN控制器将进入“Error Passive Mode”,此时该节点仍然参与CAN通讯,检测到错误时只能发送“Error Passive Flag”,且错误帧发送完毕重启下一个发送之前有8bits位时的挂起状态;当Tranmit Error Counter当前值为255接着又一个错误被检测到时,CAN控制器将进入“Bus Off Mode”,此时该节点与总线完全脱离,整个瘫痪;计数器当前值均小于128时,CAN控制器被标识为“Error Active Mode”,CAN节点可正常通讯并检测到错误时发送“Error Active Flag”。这三种状态之间关系为:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top