bus off恢复机制研究

本文探讨了CAN总线的Bus Off状态及其恢复机制。当错误计数超过255时,进入Bus Off状态。主机厂通常要求在Bus Off后不自动恢复,而需采用快慢恢复策略。例如,首次50ms快速恢复,5次失败后转为200ms慢恢复。在中断处理中,需关闭CAN模块的发送和接收,切换恢复时间,并在定时器达到恢复时间后重新初始化模块并尝试发送报文。对于不同MCU如SPC560和S12XS128,配置和处理方式有所不同,但核心是管理错误计数和恢复过程。
摘要由CSDN通过智能技术生成

can模块一共有三种错误,为错误主动,错误被动和总线关闭,总线关闭就是所说的bus off,通常情况下我们也只需要对bus off进行特殊处理。在can模块内部有一个错误计数器,当错误次数超过255时就会导致bus off,如果此时bus off的恢复模式设置为禁止自动恢复,就需要认为介入设置恢复机制。

通常主机厂都要求在产生bus off后ECU不能自动恢复,并给出快慢恢复要求,供应商要根据要求来制定bus off的快慢恢复机制。比如在bus off后首先快恢复,时间为50ms,次数超过5次之后切换为慢恢复机制,时间为200ms,在恢复期间ECU不能发出或者接受报文影响整车网络。

对于spc560系列的MCU的配置,应在原来CAN模块初始化的基础上,对CR寄存器的某些位进行指定:

使能BUS OFF Interrupt(BOFFMSK = 1);

对于其他不需要关心的中断要禁止,以免造成其他影响,(ERRMSK= 0,TWRNMSK = 0,RWRNMSK= 0);

配置bus off recovery mode为disable self recovery(BOFFREC = 1)

通过以上的配置之后,在产生bus off之后会触发MCU中断,在中断函数中,

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值