CAN 出错如何处理

一、CAN出错管理

CAN 协议描述的出错管理,完全硬件通过发送错误计数器(CAN_ESTS 寄存器里的TXEC 域),和接收错误计数器(CAN_ESTS 寄存器里的RXEC 域)来实现,其值根据错误的情况而增加或减少。关于TXEC和RXEC 管理的详细信息,请参考CAN 标准。
软件可以读出发送/接收错误计数器的值来判断CAN 网络的稳定性。
通过读取错误状态寄存器CAN_ESTS 的LEC[2:0]位来获取当前错误状态的详细信息。通过设置CAN_INTE寄存器(比如ERRITE 位),当检测到出错时软件可以灵活地控制中断的产生。

二、离线恢复

当TXEC 大于255 时,bxCAN 就进入离线状态,同时CAN_ESTS 寄存器的BOFFL 位被置’1’。在离线状态下,bxCAN 无法接收和发送报文
根据CAN_MCTRL 寄存器中ABOM 位的设置,bxCAN 可以自动或在软件的请求下,从离线状态恢复(变为错误主动状态)。在这两种情况下,bxCAN 都必须等待一个CAN 标准所描述的恢复过程(CAN RX 引脚上检测到128 次11 个连续的隐性位)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值