新闻中心

EEPW首页>嵌入式系统>设计应用> CAN总线错误帧分析

CAN总线错误帧分析

作者: 时间:2016-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(接收端检测到帧结束最后一位为显性时帧错误忽略);


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


2、CAN错误界定(Error Confinement)

本文引用地址: //m.amcfsurvey.com/article/201612/330445.htm
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”。这三种状态之间关系为:


关键词:CAN总线错误

评论


技术专区

关闭