CAN总线学习总结——错误帧和错误状态
CAN总线学习总结——错误帧和错误状态
一、五种CAN总线可能发生的错误
1、CRC错误:
接收节点计算出的CRC校验值,与发送节点计算的结果不一致;
2、格式错误:
传输的数据帧格式,与任何一种帧格式都不符;
3、应答错误:
ACK段,发送节点没有收到接收节点发出的应答(显性位);
单节点的CAN设备发送数据帧时为发生应答错误;
4、位发送错误:
发送过程中,发送节点发送的同时监听总线电平,如果总线电平和发送的不一致;
在仲裁域发现不同不报错,因为就是要仲裁掉优先级低的报文;
发送被动错误标志、主动错误标志期间检测总线电平有6个相同位时;
5、位填充错误:
帧起始到CRC之间,接收节点检测到有6个连续相同的位电平时,也就是违反5位相同位插入1位相反位的“位填充”原则;
因为ACK域和帧结束域电平固定,也无需填充;
二、三种错误状态
主动错误标识——6个显性位、由主动错误节点发出
被动错误标识——6个隐性位、由被动错误标志发出
错误界定符——8个隐性位
1、主动错误
因为主动错误标识由6个显性位组成,可以理解为破坏“位填充”原则,一个节点发现通信错误时,它会主动将帧彻底破坏掉,让其他节点知道它接收出错了;
CAN总线的特点是“广播”,也就是总线上一个节点发出,其余所有节点均能正确接收,如果有一个或多个节点由于某种原因出现接收错误,那么这个节点会主动站出来,通过发送不符合“位填充”规则的帧错误帧,来彻底把这一帧破坏掉,以通知其他节点“这一帧我接收错了,不算数,重来”,其他节点也许没有错,但是也会在收到主动错误标识后发出一个主动错误标识;发送节点在发送的同时也会监听总线数据,当发现数据被其他节点“破坏”后,会主动进行数据重发。
由CAN控制器自动完成。
错误不多,不是我导致的,我主动发送错误标识,通知其他节点放弃这一帧,我正常收发;
2、被动错误
错误比较多,很可能错误是由我导致的,我通知其他节点有错但是不干扰他们正常收发数据,也不要求重发,同时我不能连续发送了,得再插入8位隐性位的“延迟传送”段;这样是为了让其他正常节点(处于主动错误)优先使用总线;
被动错误的节点很可能存在硬件故障,不能让它拖累整个网络;
3、总线关闭
错误太多,是我的问题,我停止收发并脱离总线;
总线上数据的收发都被禁止;
CAN总线学习总结——错误帧和错误状态的更多相关文章
- CAN总线学习记录之三:总线中主动错误和被动错误的通俗解释
首先建议把广泛使用的"主动错误"和"被动错误"概念换成"主动报错"和"被动报错". 1. 主动报错站点 只要检查到错误, ...
- CAN总线远程帧和错误帧
远程帧 通常,数据传输是由数据源节点(例如,传感器发出数据帧)自主完成的.但也可能存在目标节点向源节点请求发送数据的情况.要做到这一点,目标节点需发送一个远程帧,其中的标识符应与所需数据帧的标识符相匹 ...
- CAN总线学习记录之二:系统结构与帧结构
CAN总线系统结构 CAN 控制器 接收控制单元中微处理器发出的数据,处理数据并传给 CAN 收发器 CAN 收发器 将数据传到总线 or 从总线接收数据给 CAN 控制器 CAN 数据传递终端 避 ...
- CAN总线学习系列之— CAN总线特点介绍
CAN总线学习系列之— CAN总线特点介绍 CAN 总线作为一种工业界的流行总线广泛应于工业自动化.多种控制设备.交通工具.医疗仪器以及建筑.环境控制等各个行业中,它是是一种多主机局域网,所以这样 一 ...
- 关于CAN总线的被动错误标志的问题?
关于CAN总线的被动错误标志的问题? 关于CAN总线的被动错误标志,协议中的描述是"处于被动错误状态的单元检测出错误时,输出被动错误标志". 对此有几个疑问: 1.被动错误标志的发 ...
- I2S音频总线学习
IIS音频总线学习(一)数字音频技术 一.声音的基本概念 声音是通过一定介质传播的连续的波. 图1 声波 重要指标: 振幅:音量的大小 周期:重复出现的时间间隔 频率:指信号每秒钟变化的次数 声音按频 ...
- CAN总线学习系列之三——CAN控制器的选择
CAN总线学习系列之三——CAN控制器的选择 在进行CAN总线开发前,首先要选择好CAN总线控制器.下面就比较一些控制器的特点. 一些主要的CAN总线器件产品 制造商 产品型号 器件功能及特点 Int ...
- CAN总线学习系列之二——CAN总线与RS485的比较
CAN总线学习系列之二——CAN总线与RS485的比较 上 一节介绍了一下CAN总线的基本知识,那么有人会问,现在的总线格式很多,CAN相对于其他的总线有什么特点啊?这个问题问的好,所以我想与其它总线 ...
- RFC2889错误帧过滤测试----网络测试仪实操
一.简介 RFC 2889为LAN交换设备的基准测试提供了方法学,它将RFC 2544中为网络互联设备基准测试所定义的方法学扩展到了交换设备,提供了交换机转发性能(Forwarding Perform ...
随机推荐
- Google 翻译(中英,英中)
网上找了好久, 终于弄好了, 免费的谷歌翻译,直接上代码,不懂留言: //翻译 app.get('/google', function (req, res, next) { var content = ...
- Git 及 GitHub 使用
Git bash 的常用命令 1. pwd 查看当前所在目录 2. cd cd .. 返回上一级 cd 目录 进入对应的目录 3. ls 查看当前文件夹的内容 ...
- web界面 之 登录 (初稿)
web登录一般注意以下几点: 1)拥有元素:用户名,密码(密码字符显示与隐藏功能),登录按钮,忘记密码链接(忘记用户名链接),注册链接 2)用户体验: •页面显示,光标默认停在第一个输入框 利用htm ...
- 借助 Java 9 Jigsaw,如何在 60 秒内创建 JavaFX HelloWorld 程序?
[编者按]本文作者为 Carl Dea,主要介绍利用 Jigsaw 项目在大约一分钟内编写标准化的"Hello World"消息代码.本文系国内 ITOM 管理平台 OneAPM ...
- python + Jenkins + requests 数据驱动接口测试 环境部署
** Jenkins安装: * 安装包选择:Jenkins.war * windows下有msi和war两种格式,我使用的是war,下载下来丢到xmapp的指定目录就行,操作方便一点 * m ...
- 针对于多个inner join或者left join多条件查询的时候,各个inner join 的指向问题
转自https://blog.csdn.net/ck457897564/article/details/52487684 先看一段代码吧: <span style="font-size ...
- 转:C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、Sort)
C#常用的集合类型(ArrayList类.Stack类.Queue类.Hashtable类.Sort) .ArrayList类 ArrayList类主要用于对一个数组中的元素进行各种处理.在Array ...
- history历史记录控制
往往我们操作的每一条命令都会被机器记录下来,所有我们为了安全需要屏蔽掉某些敏感的操作命令. 设置linux默认的历史记录数: 临时生效: export HISTSIZE=5 history 永久生效 ...
- excel如何冻结首行或首列及首行首列同时冻结
冻结首行方法: 首先选择首行,在菜单栏选择视图菜单,再选择冻结窗格下拉三角里的冻结首行即可. 效果如下:拖动垂直滚动条 冻结首列方法: 首先选择首列,在菜单栏选择视图菜单,再选择冻结窗格下拉三角里的冻 ...
- 小程序码B接口生成出错:场景内容包含非法字符
由于包含了非法字符,微信返回的字节不超过100字符,但是没有包含提示内容,因此很难识别发现问题所在