出错管理CAN协议描述的出错管理,完全由硬件通过发送错误计数器(CAN_ESR寄存器里的TEC域),和接收错误计数器(CAN_ESR寄存器里的REC域)来实现,其值根据错误的情况而增加或减少
关于TEC和REC管理的详细信息,请参考CAN标准
软件可以读出它们的值来判断CAN网络的稳定性
此外,CAN_ESR寄存器提供了当前错误状态的详细信息
通过设置CAN_IER寄存器(比如ERRIE位),软件可以灵活地控制中断的产生――当检测到出错时
离线恢复当TEC对于255时,bxCAN就进入离线状态,同时CAN_ESR寄存器的BOFF位被置’1’
在离线状态下,bxCAN无法接收和发送报文
根据CAN_MCR寄存器的ABOM位的设置,bxCAN可以自动或在软件的请求下,从离线状态恢复(变为错误主动状态)
在这两种情况下,bxCAN都必须等待一个CAN标准所描述的恢复过程(CANRX引脚上检测到128次11个连续的隐性位)
如果ABOM位为’1’,bxCAN进入离线状态后,就自动开启恢复过程
如果ABOM位为’0’,软件必须先请求bxCAN进入然后再退出初始化模式,随后恢复过程才被开启
注:在初始化模式下,bxCAN不会监视CANRX引脚的状态,这样就不能完成恢复过程
为了完成恢复过程,bxCAN必须工作在正常模式STM32之CAN---错误管理分析分类:ARMSTM322012-11-0816:362444人阅读评论(0)收藏举报目录(
)[+]1几个重要概念根据ISO11898有如下几个重要的与CAN相关的定义:Faultconfinement(错误界定)CANnodesshallbeabletodistinguishshortdisturbancesfrompermanentfailures
Defectivetransmittingnodesshallbeswitched