文档介绍:网络上搜到的CAN错误笔记
CAN笔记再再续
1、CAN错误检测(Error Detection )
CAN网络具有严格的错误诊断功能,该功能已固化在硅片之中,一旦错误被检测,正在传送
的数据帧将会立即停止而待总线空闲时再次重发IDE IntiD)
RTR iMi^j i hknHMi凹];i2ld
Steal ■- «f Fcfuns
V 应答错误(Ack no wledgme nt Error)
ACK SLOT采样为隐性,则检测到一个 Acknowledgement Error;
2、CAN错误界定(Error Confinement )
CAN控制器内置两个错误计数器:Receive Error Counter 及Tranmit Error Counter (错误 计数器的计数规则后附)。当某个计数器的当前值达到128时,CANS制器将进入“Error Passive Mode,此时该节点仍然参与 CAN®讯,检测到错误时只能发送“ Error Passive Flag”,且错 误帧发送完毕重启下一个发送之前有 8bits位时的挂起状态;当Tranmit Error Counter当前值
为255接着又一个错误被检测到时,CAN控制器将进入“Bus Off Mode”,此时该节点与总线完 全脱离,整个瘫痪;计数器当前值均小于 128时,CAN控制器被标识为“Error Active Mode ”,
and「cnfi田mt nn
Erm PaiaiiCAT • Bui OCT
1TC -岀
CAN节点可正常通讯并检测到错误时发送“ Error Active Flag ”。这三种状态之间关系为:
Error counters:
Tfte CAf\l cantr^Her fnoves betv/een a number o( e/ror 如仙 that aJtov/ a rade to fail in an efegant fasf)k)f)T w^tiQut bfocfdng the bus
H FtKfcrahr- t^TwC'rwinier T ECi T^irMiWl Enr^f Covil^T
3、LPC2294中的CAN控制器错误处理
LPC2294内置的CAN控制模块完全符合 CAN Spec CAh控制器被迫进入 BusOff状态 后:CANGS寄存器中的BS位置位;CANICR中的 BEI位置位,若 CANIER寄存器的BEIE使能, 将引发CAN中断;CANMO中的RM置位,CAN控制器处于复位状态;同时发送错误计数器被设置
为127,接收错误计数器清零。CANS制器进入 BusOff状态后必须由软件复位RM位,以恢复通 讯;RM清零进入Normal Operation状态后,当检测到总线上llbits的连续隐性位流出现128 次之后,发送错误计数器清零,CANGSR中的BS ES位清零,同时若 中断允许,将产生中断, CAN控制器重返CAN通讯。
4、(Active)规范的错误计数器的计数规则:
When a RECEIVER detects an error, the RECEIVE ERROR COUNT will be increased by
1, except when the detected error was a BIT ERROR during the sending of an ACTIVE ERROR FLAG or an OVERLOAD FLAG.
Whena RECEIVEFdetects a ' dominant' bit as the first bit after sending an ERROR FLAG the RECEIVE ERROR COUNT will be increased by 8.
When a TRANSMITTER sends an ERROR FLAG the TRANSMIT ERROR COUNT is increased by 8.
Exception 1:
If the TRANSMITTEiRs 'error passive ' and detects an ACKNOWLEDGEMEERNRTORbecause of not detecting a 'dominant' ACKand does not detect a 'dominant' bit while sending its PASSIVE ERROR FLAG.
Exception 2:
If the TRANSMITTER sends an ERROR FLAG