首页 > 其他分享 >CAN busoff机制说明

CAN busoff机制说明

时间:2024-05-22 20:30:44浏览次数:15  
标签:状态 控制器 错误 恢复 总线 说明 机制 节点 busoff

一、何为CAN busoff?

    为了避免某个设备因为自身原因(例如硬件损坏)导致无法正确收发报文而不断的破坏总线的数据帧,从而影响其它正常节点通信,CAN网络具有严格的错误诊断功能,CAN通用规范中规定每个CAN控制器中有一个发送错误计数器和一个接收错误计数器。根据计数值不同,节点会处于不同的错误状态,并根据计数值的变化进行状态转换,状态转换如下图所示。

    以上三种错误状态表示发生故障的严重程度,总线关闭是节点最严重的错误状态。并且,节点在不同的状态下具有不同的特性,在总线关闭状态下,节点不能发送报文或应答总线上的报文,也就意味着不能再对总线有任何影响。

状态跳转和错误计数的规则使得节点在发生通信故障时有了较好的自我错误处理和恢复机制,从一种较严重的错误状态跳转到另一种严重性相对较低的状态,本质上就是一种恢复过程。图1所呈现的转换过程是CAN通用规范所要求的,我们从设备供应商买回来的CAN控制器已经把这些功能固化在硅片之中。

在通信过程中,错误主动和错误被动两种状态下节点的恢复过程一般不需要MCU进行额外的编程处理,直接使用CAN控制器固有功能即可。但对于总线关闭状态,往往不直接使用CAN控制器固有的恢复过程,而是对其进行编程控制,以实现“快恢复”和“慢恢复”机制。

 二、什么是“快恢复”,“慢恢复”?

    当节点进入总线关闭状态后,如果MCU仅是开启自动恢复功能,CAN控制器在检测到128次11个连续的隐性位后即可恢复通信,在实际的CAN通信总线中,这一条件是很容易达到的。

    以125K的波特率为例,128*11*(1/125000)= 0.011264s。这意味着如果节点所在的CAN总线的帧间隔时间大于0.011264s,节点在总线空闲时间内便可轻易恢复通信。

    我们已经知道,当进入总线关闭状态时,节点已经发生了严重的错误,处于不可信状态,如果迅速恢复参与总线通信,具有较高的风险,因此,在实际的应用中,往往会通过MCU对CAN控制器总线关闭状态的恢复过程进行编程处理,以控制节点从总线关闭状态恢复到错误主动状态的等待时间,达到既提高灵活性又保证节点在功能上的快速响应性的目的。具体包括“快恢复”和“慢恢复”策略,两种策略一般同时应用。

    快恢复和慢恢复对总线来说,仅仅是关闭通讯的时间不同,具体CAN节点做什么操作(如:进入再退出初始化状态),总线并不关心。

三、如何感知busoff?

            

 

    被动感知:通过CAN中断触发

    主动感知:查询上图的BOERR状态

四、如何恢复?

    当TECNT大于255时,CAN总线控制器进入离线状态,这时寄存器CAN_ERR中的BOERR置1,并且发送和接收失效。     根据寄存器CAN_CTL中的ABOR配置,离线恢复(变为主动错误状态)有2种方式。这两种方式都要求处于离线状态的CAN总线控制器检测到CAN协议所定义的离线恢复序列(在 CAN_RX检测到128次连续11个位的隐性位)时,才会自动恢复。     如果ABOR为1,将在检测到离线恢复序列后自动恢复。     如果ABOR为0,则必须先将CAN_CTL中的IWMOD置1进入初始化工作模式,然后进入正常工作模式并在检测到离线恢复序列后恢复。

 

标签:状态,控制器,错误,恢复,总线,说明,机制,节点,busoff
From: https://www.cnblogs.com/Hello-words/p/18207025

相关文章

  • 3562-Qt工程编译说明、GPU核心使用说明
     ......
  • 订单系统需求分析说明(抄)
    对外:官网、渠道、商城、商家后台中台:订单系统<-产品系统<-促销系统(管理优惠信息)服务:会员、仓储库存、支付、风控、消息多一个服务系统、订单系统就会多一个服务信息订单(创建、修改、支付、生产、确认、完成、取消、退货、退款)逻辑(状态规则、金额计算规则、......
  • H5 缓存机制浅析 移动端 Web 加载性能优化
     H5缓存机制浅析移动端Web加载性能优化 转自:https://www.cnblogs.com/bugly/p/5039153.html1H5缓存机制介绍H5,即HTML5,是新一代的HTML标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5引入的离线存储,这意味着web应用可......
  • 互斥锁,IPC机制,队列,生产者消费者模型
    Ⅰ互斥锁【一】什么是互斥锁互斥锁其实就是一种锁。为当前进程或线程添加额外的限制限制当前时间段只能由当前进程使用,当前进程使用完成后才能其他进程继续使用其作用是保证在同一时刻只有一个线程在访问共享资源,从而避免多个线程同时读写数据造成的问题。互斥锁的基本原......
  • Shell阶段04 shell流程之case语句, 服务启动停止脚本(rsync, nginx), shell加锁机制
    1.流程控制语句之case语句case主要作用是对程序的选择,循环等操作#语法:case变量in变量值1)命令序列;;#命令序列结束符变量值2)命令序列;;变量值3)命令序列;;变量值N)命令序列......
  • 华为云CodeArts 12大安全防护机制,端到端全面保障软件供应链安全!
    全球网络安全事件频发不断,企业纷纷损失惨重。2021年11月,知名logo4j漏洞波及全球多达6万款开源软件,70%以上企业受影响。2022年3月,大型加油站服务商遭到勒索软件攻击,要求其支付200万美元赎金,以换取解密器。为此,国内推出相关法规加强网络安全风险管控。比如2023年6月,金融监管总局......
  • Alpha版本发布说明
    1.版本的功能1.1单机游戏下棋后更换黑白棋判断胜负悔棋、和棋1.2联机游戏客户端提供房间号进行游戏服务器端建立房间给客户端使用,客户端可以挑选房间进入对局。对战时可以请求悔棋客户端提供下棋方悔棋一步操作。对战时可以请求和棋客户端提供下棋方和棋......
  • 中移ML307A(C-SDK,OpenCPU)学习开发-程序固件烧录说明
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ML307A_OPEN"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 安装驱动1,解压 2,根据自己......
  • 患者360系统说明书
    功能描述:患者 360 视图是基于CDR临床数据中心,临床医生可以通过清晰、友好的统一视图对患者的就诊信息进行查阅,从而优化医生的操作流程,使临床医生在短时间内对患者就诊情况有整体了解,为患者提供高效、快捷、准确的医疗服务。为便捷登陆方式,“患者 360全景视图”与多个系统对接,......
  • 医院信息集成平台说明书
    平台特点和优势ESB界面拖拽式服务编排模型,有效减少系统接口,提高可维护性;平台提供统一格式的接口文档,医院追加系统只需对接平台即可;平台基于中立、标准、开放的IT架构和数据标准,提供插拔式医院应用生态;平台提供创建自定义数据集,支持自定义数据集抽取,报表生成与下载;平台提供......