当前位置: 首页 > news >正文

CAN bus off ——ISO11898

什么是can bus off?
CAN总线关闭(CAN bus off)是指CAN节点进入一种错误状态,无法继续正常的数据通信。当一个CAN节点的错误计数器超过了设定的阈值时,该节点将进入CAN总线关闭状态。在这种状态下,该节点将停止发送和接收数据,并且无法参与到总线通信中。
CAN总线关闭状态通常是由于节点发送错误次数过多导致的,这可能是由于硬件故障、电缆连接问题、电源电压异常或其他通信干扰引起的。一旦节点进入CAN总线关闭状态,它将无法正常工作,直到重新初始化或解决问题为止。
其他节点在CAN总线关闭状态下的节点仍然可以继续正常的数据通信,但是受到关闭节点的影响,可能会导致通信性能下降或数据传输延迟。因此,当出现CAN总线关闭情况时,需要及时识别和解决问题,以确保整个CAN总线的正常运行。

什么情况会出现bus off?
CAN总线关闭(bus off)状态通常出现在以下情况下:

  1. **错误计数器超过阈值:**每个CAN节点都有一个错误计数器,当节点在发送或接收数据时发生错误,计数器会递增。如果错误计数器超过了设定的阈值,节点将进入bus off状态。
  2. **通信故障:**CAN总线的通信可能会受到各种干扰和故障的影响,如电缆连接问题、电源电压异常、信号干扰等。这些故障可能导致节点无法正常发送或接收数据,最终导致bus off状态。
  3. **节点故障:**CAN节点自身的硬件或软件问题可能导致其无法正常工作。例如,节点的CAN控制器故障、节点程序错误等都可能导致bus off状态。
    CAN总线的CANH和CANL 短接、CAN总线的CANH接GND和CAN总线的CANL接VCC、CAN总线的因为终端电阻的问题,导致RXD相对于TXD 的信号延迟较大导致。(以500K的CAN为例,通常情况RXD和TXD的延迟约在100ns左右,若由终端断电阻的配置不对会导致TXD和RXD延迟时间增大可能达到500ns。若是2M的CANFD 就会造成数据传送产生问题,最终导致BUSOFF )

当一个节点进入bus off状态时,它将停止发送和接收数据,并无法参与到总线通信中。其他节点仍然可以继续正常的数据通信,但受到bus off节点的影响,可能会导致通信性能下降或数据传输延迟。因此,当出现bus off情况时,需要及时识别和解决问题,以确保整个CAN总线的正常运行。

进入can bus off

在故障限制方面,一个节点可能处于三种状态中的一种,这取决于错误计数器的级别 error active,error passive 和 bus off.

Error counting错误计数法

1、当接收机检测到错误时,接收错误计数器应增加1,除非在发送主动错误标志或过载标志时检测到的错误是位错误。
2、当接收端在发送错误标志后检测到一个主比特作为第一个比特时,接收错误计数器需要增加8个( 8 )。
3、当发送端发送错误标志时,发送错误计数器应增加8 ( 8 )个。

  • 如果发送端是错误被动的并且由于没有检测到主导ACK而检测到ACK错误,并且在发送其被动错误标志时没有检测到主导比特。
  • 如果发送方发送了一个错误标志,因为在仲裁过程中发生了一个错误,那么这个错误标志应该是隐性的,并且被发送为隐性的,但被监控为显性的。
    在这两种情况下,发射误差计数器保持不变。 +8

4、 如果发送端在发送主动错误标志或过载标志的同时检测到比特错误,则发送错误计数器应增加8 ( 8 )。
5、如果接收机在发送主动错误标志或过载标志的同时检测到比特错误,则接收错误计数器应增加8 ( 8 )。
6、在发送主动错误标志、被动错误标志或过载标志后,任何节点最多可以容忍七( 7 )个连续的优势比特。在检测到第14 ( 14 )个连续的主导比特(在出现主动错误标志或过载标志的情况下)后或检测到第8个连续的主导比特后,在每增加8个连续的主导比特后,每个发送端将其发送错误计数器增加8 ( 8 )个,每个接收端将其接收计数器增加8 ( 8 )个。
7、当一帧(得到ACK ,直到EOF结束,没有检测到误差)成功传输后,除非传输错误计数器已经为零( 0 ),否则传输错误计数器将减少1 ( 1 )。 -1
8、成功接收一帧(接收到ACK时隙无误码且成功发送ACK比特)后,如果接收误差计数器在一( 1 )到一百二十七( 127 )之间,则应减小1。如果接收错误计数器为零( 0 ),则应保持为零( 0 ),如果大于一百二十七( 127 ),则应设置为一百一十九( 119 )到一百二十七( 127 )之间的值。

主动错误和被动错误状态之间的转换

如果节点的发送错误计数器或接收错误计数器超过127 ( 127 ) ( 7位接收误差计数器情况下的进位条件),则监控器应请求MAC子层将相应节点设置为错误被动状态。让节点成为错误被动的错误条件将导致节点发送一个主动错误标志。当发送错误计数器和接收错误计数器均小于或等于127 ( 127 ) 时,错误被动节点将重新变为错误主动节点。当节点的接收误差计数器超过一百二十七( 127 )的误差被动限时,该接收误差计数器的进一步增量将受到计数器宽度的限制。在下一次成功接收一帧(过渡到错误激活( error-active ))时,接收错误计数器应设置为低于错误被动l的值。

bus off manangement

如果一个节点的发送错误计数器大于二百五十五( 255 ) ( 8位传输错误计数器情况下的进位条件),那么主管应该请求PL将该节点设置为总线关闭状态。总线关闭状态不得对公交车产生任何影响。它既不发送任何帧,也不发送ACK、错误帧、过载帧。这样的节点是否接收来自总线的帧取决于实现方式。处于总线关闭状态的节点在监测到(见图16)总线上128 ( 128 )个连续11 ( 11 )个隐性位后,其错误计数器都设置为0 ( 0 ),可能成为错误活跃的(不再是总线关闭)。注:现有的实现方式可能不同。例如,6.14允许发射端和接收端的关断;恢复可能只在用户请求时开始。这在ISO 16845的一致性测试中没有涉及。

恢复bus off

要恢复CAN总线关闭状态(bus off),可以采取以下步骤:

  1. 检查和修复通信故障:首先需要排查并解决导致CAN总线关闭的问题,如检查电缆连接是否良好,确保电源电压正常,排除信号干扰等。
  2. 重新初始化CAN节点:将进入bus off状态的CAN节点进行重新初始化,包括重新设置CAN控制器、清除错误计数器等。
  3. 等待恢复时间:在重新初始化节点后,需要等待一段时间,通常为128个错误帧时间(TEC),以确保CAN节点已经完全恢复。 快慢恢复,所谓的快慢恢复,即进入CAN BUSOFF状态后,ECU重新初始化CAN模块,并等待t(tBusOffQuick 或 tBusOffSlow)后,重新使能总线报文的发送。一些主机厂对其系统供应商的设备提出了相应的Busoff后恢复时间需求。例如:当ECU 进入Busoff 模式后,首先,ECU 执行快恢复模式,连续n次(TBD值,不同厂商次数要求不一样)快速恢复后,ECU 进入慢恢复模式。

判断CAN总线关闭状态是否已经恢复,可以通过以下方式:

  1. 监测错误计数器:在重新初始化节点后,可以通过监测节点的错误计数器来判断是否还在持续增加。如果错误计数器停止增加或保持在一个较低的值,说明CAN总线关闭已经恢复。
  2. 数据通信测试:进行数据通信测试,发送一些数据帧并观察节点的发送和接收情况。如果节点能够正常发送和接收数据,说明CAN总线关闭已经恢复

参考文章:
https://blog.csdn.net/u014156403/article/details/103725924
ISO11898标准文档

相关文章:

CAN bus off ——ISO11898

什么是can bus off? CAN总线关闭(CAN bus off)是指CAN节点进入一种错误状态,无法继续正常的数据通信。当一个CAN节点的错误计数器超过了设定的阈值时,该节点将进入CAN总线关闭状态。在这种状态下,该节点将停…...

如何评测一个大语言模型?

编者按:大型语言模型(Large language models, LLMs)因其在学术界和工业界展现出前所未有的性能而备受青睐。随着 LLMs 在研究和实际应用中被广泛使用,对其进行有效评测变得愈发重要。近期已有多篇论文围绕大模型的评测进行研究&am…...

React中useMemo和useCallback的区别

一句话来解释,useMemo是缓存值的,useCallback是缓存函数的。 一、useMemo: 接收两个参数,第一个参数是个函数,第二个是依赖项。返回一个memoized值,只有当它的某个依赖项改变时才重新计算 memoized 值&…...

SpringBoot 快速实现IP地址解析

如果使用本地ip 解析的话&#xff0c;我们将会借助ip2region&#xff0c;该项目维护了一份较为详细的本地ip 地址对应表&#xff0c;如果为了离线环境的使用&#xff0c;需要导入该项目依赖&#xff0c;并指定版本&#xff0c;不同版本的方法可能存在差异。 <dependency>…...

亚马逊、速卖通,阿里国际等平台测评如何用自养号测评补单

在电商领域&#xff0c;补单是一种常见的推广方式。它能够优化商品销售、留下优质评论、打压竞品和赶走跟卖等&#xff0c;具有很多好处。然而&#xff0c;补单也存在安全性问题&#xff0c;有些卖家找人补单后店铺反而出了问题。因此&#xff0c;了解测评系统是非常重要的的。…...

ubuntu挂载ext4文件系统

文章目录 1.虚拟机分配10G磁盘用来挂载ext4文件系统2.磁盘分区3.创建文件系统4.挂载文件系统5.卸载文件系统6.使用ior测试ext4三种日志模式&#xff08;1&#xff09;ordered&#xff08;2&#xff09;journal&#xff08;3&#xff09;writeback 1.虚拟机分配10G磁盘用来挂载e…...

MySQL 读写分离

目录 一、什么是读写分离&#xff1f; 二、为什么要读写分离呢&#xff1f; 三、什么时候要读写分离&#xff1f; 四、主从复制与读写分离 五、MySQL 读写分离原理 六、企业 使用MySQL 读写分离场景 1&#xff09;基于程序代码内部实现 2&#xff09;基于中间代理层实现…...

【多线程例题】顺序打印abc线程

顺序打印-进阶版 方法一&#xff1a;三个线程竞争同一个锁&#xff0c;通过count判断是否打印 方法二&#xff1a;三个线程同时start&#xff0c;分别上锁&#xff0c;从a开始&#xff0c;打印后唤醒b 三个线程分别打印A&#xff0c;B&#xff0c;C 方法一&#xff1a;通过co…...

WebSocket工具类

最近的项目在整长连接WebSocket&#xff0c;之前也写过一个感觉没有这个全面。提供个工具类WebSocketHelper和Java-WebSocket-1.3.9.jar包以及一个HttpURLConnectionUtil 1、WebSocketHelper import android.util.Log;import org.java_websocket.client.WebSocketClient; imp…...

Linux 的 crontab

Linux 的 crontab 是一个用于在特定时间运行命令或脚本的工具。每个用户都可以创建自己的 crontab 文件来安排定时任务。 以下是使用 Linux crontab 的基本步骤&#xff1a; 打开终端或命令行界面。 输入以下命令来编辑当前用户的 crontab 文件&#xff1a; crontab -e如果是…...

十二.Redis模拟集群搭建

配置环境 查看环境信息 127.0.0.1:6379> info replication #查看当前redis的信息 # Replication role:master #角色 master主机 connected_slaves:0 #从机数量为0 master_failover_state:no-failover master_replid:115f37a0ec195680ef754d6915738b0c0a05f450 master_replid…...

IDEA导入微服务项目后自动将微服务展示在service面板中

有时候&#xff0c;不会自动将微服务展示在service面板中。 添加service面板&#xff1a; service面板&#xff1a; 更新所有maven&#xff0c;就可以自动将微服务展示在service面板中。...

MySQL体系结构及执行过程

一、MySQL体系结构 1、网络连接层 客户端连接器&#xff08;Client Cnnectors&#xff09;&#xff1a;提供支持与MySQL服务器建立连接。 建立连接命令&#xff1a;mysql -h -u -p -h指定MySQL服务的IP 若本地连接则不需要 每一个连接均会保存用户权限&#xff0c;中途修改权…...

21. MySQL基础知识

文章目录 一、索引B Tree 原理1. 数据结构2. 操作3. 与红黑树的比较 MySQL 索引1. BTree 索引2. 哈希索引3. 全文索引4. 空间数据索引 索引优化1. 独立的列2. 多列索引3. 索引列的顺序4. 前缀索引5. 覆盖索引 索引的优点索引的使用条件 二、查询性能优化使用 Explain 进行分析优…...

【ArcGIS Pro微课1000例】0029:绘制全球海洋波纹荡漾效果图

本文讲解ArcGIS Pro3.0中,基于全球航洋面状矢量数据,绘制震撼全球海洋波纹荡漾效果图。 文章目录 一、效果预览二、效果制作三、参数详解一、效果预览 绘制好的海水波纹荡漾效果图如下: 下面我们来学习绘制过程。 二、效果制作 波纹荡漾效果需要在全局或者局部场景中制作…...

2023“钉耙编程”中国大学生算法设计超级联赛(3)8-bit Zoom

2023“钉耙编程”中国大学生算法设计超级联赛&#xff08;3&#xff09;8-bit Zoom 题解 有一张尺寸为 n n n\times n nn的图片&#xff0c;你要将图片放大成大小为 n Z 100 n Z 100 \dfrac{nZ}{100}\times \dfrac{nZ}{100} 100nZ​100nZ​的图片。 当下列任何一个条件不成…...

【PWN · ret2text | 伪rand()】[HDCTF 2023]pwnner

伪随机数以及ctypes库的初步接触 目录 前言 一、题目 二、解题思路 三、exp 总结 前言 一道简单的ret2text&#xff0c;加上一些伪随机的知识&#xff0c;对于本蒟蒻萌新来说&#xff0c;比较新&#xff0c;值得记录。 一、题目 栈溢出保护、PIE保护都没有开。反汇编后…...

第五章:通过对抗擦除的目标区域挖掘:一种简单的语义分割方法

0.摘要 我们研究了一种逐步挖掘具有鉴别性的物体区域的原则方法&#xff0c;使用分类网络来解决弱监督语义分割问题。分类网络只对感兴趣对象中的小而稀疏的鉴别性区域有响应&#xff0c;这与分割任务的要求相背离&#xff0c;分割任务需要定位密集、内部和完整的区域以进行像素…...

自定义view - 玩转字体变色

自定义View步骤&#xff1a; 1>&#xff1a;values__attrs.xml&#xff0c;定义自定义属性&#xff1b; 2>&#xff1a;在第三个构造方法中获取自定义属性&#xff1b; 3>&#xff1a;onMeasure【不是必须的】&#xff1b; 4>&#xff1a;onDraw&#xff1a;绘制代…...

工业边缘网关HiWoo Box的4G/5G CPE功能:为现场无线设备提供网络

引言 随着工业物联网的快速发展&#xff0c;现场设备的无线连接需求越来越迫切。然而&#xff0c;在一些室外或者不方便布网的场景下&#xff0c;为现场的无线设备提供网络仍然是一个挑战。为了满足这一需求&#xff0c;工业边缘网关HiWoo Box引入了4G/5G CPE&#xff08;Cust…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

第八部分:阶段项目 6:构建 React 前端应用

现在&#xff0c;是时候将你学到的 React 基础知识付诸实践&#xff0c;构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段&#xff0c;你可以先使用模拟数据&#xff0c;或者如果你的后端 API&#xff08;阶段项目 5&#xff09;已经搭建好&#xff0c;可以直接连…...