CAN笔记(3) 错误状态
CAN笔记(3) 错误状态
- 1. 错误状态种类
- 1.1. 主动错误状态
- 1.2. 被动错误状态
- 1.3. 总线关闭态
- 1.4. 三种状态的转换
- 2. 错误计数值
1. 错误状态种类
单元 始终 处于 3 种状态之一
1.1. 主动错误状态
主动错误状态是可以正常参加总线通信的状态
处于主动错误状态的单元 检测出错误时,输出主动错误标志
1.2. 被动错误状态
被动错误状态是易引起错误的状态
处于被动错误状态的单元虽能参加总线通信
但为不妨碍其它单元通信,接收时不能积极地发送错误通知
处于被动错误状态的单元即使检测出错误
而其它处于主动错误状态的单元如果没发现错误,整个总线也被认为是没有错误的
处于被动错误状态的单元检测出错误时,输出被动错误标志
另外,处于被动错误状态的单元在发送结束后不能马上再次开始发送
在开始下次发送前,在间隔帧期间内必须插入“延迟传送”(8 个位的隐性位)
1.3. 总线关闭态
总线关闭态是不能参加总线上通信的状态
信息的接收和发送均被禁止
1.4. 三种状态的转换
这些状态依靠发送错误计数和接收错误计数来管理
根据计数值决定进入何种状态,错误状态和计数值的关系如下:
单元错误状态 | 发送错误计数值(TEC) | 接收错误计数值(REC) |
---|---|---|
主动错误状态 | 且 0~127 | 且 0~127 |
被动错误状态 | 或 128~255 | 或 128~255 |
总线关闭态 | 256~∞ | - |
关系图如下:
2. 错误计数值
发送错误计数值和接收错误计数值根据一定的条件发生变化
一次数据的接收和发送可能同时满足多个条件
错误计数器在错误标志的第一个位出现的时间点上开始计数
错误计数值的变动条件如下表:
接受和发送错误计数值的变动条件 | 发送错误计数值(TEC) | 接收错误计数值(REC) |
---|---|---|
接收单元检测出错误 | - | +1 |
接收单元在发送完错误标志后,检测到的第一个位为显性电平时 | - | +8 |
发送单元在输出错误标志时 | +8 | - |
发送单元在发送主动错误标志或过载标志时,检测出位错误 | +8 | - |
接收单元在发送主动错误标志或过载标志时,检测出位错误 | - | +8 |
各单元从主动错误标志、过载标志的最开始检测出连续14个位的显性位时之后,每检测出连续的 8 个位的显性位时 | +8 | +8 |
检测出在被动错误标志后追加的连续 8 个位的显性位时 | +8 | +8 |
发送单元正常发送数据结束时(返回 ACK 1 且到帧结束也未检测出错误时) | −1 ;TEC=0 时 ±0 | - |
接收单元正常接收数据结束时(CRC 2 未检测出错误且正常返回 ACK 时) | - | 1≤REC≤127 时 -1;REC=0 时 ±0;REC>127 时 =127 |
处于总线关闭态的单元,检测到 128 次连续 11 个位的隐性位 | =0 | =0 |
参考:
《CAN入门书》
相关推荐:
CAN笔记(2) CAN特点
CAN笔记(1) CAN简介
谢谢!
ACK:Acknowledge character(确认字符)表示发来的数据已确认接收无误 ↩︎
CRC:Cyclic Redundancy Check(循环冗余校验)用来差错检测或校验数据传输或者保存后可能出现的错误 ↩︎
CAN笔记(3) 错误状态相关推荐
- 软件质量保证与测试笔记——江湖救急版
软件质量保证与测试笔记--江湖救急版 Powered by DZY 以下部分图片来源于老师课件,仅供学习交流使用,侵权致删! Ch1 软件质量与测试概念 软件质量的定义 软件质量是"反映实体 ...
- 图解HTTP学习笔记
前言: 一直觉得自己在HTTP基础方面都是处于知其然,不知其所以然的样子.最近利用空闲时间拜读了一下图解HTTP,写篇博客记录一下读书笔记. TCP三次握手: ① 发送端首先发送一个带SYN标志的数据 ...
- WinSock学习笔记
Socket(套接字) ◆先看定义: typedef unsigned int u_int; typedef u_int SOCKET; ◆Socket相当于进行网络通信两端的插座,只要对方的Sock ...
- Spring Boot学习笔记-基础(2)
Spring Boot学习笔记-基础(2) Spring Boot 优点: – 快速创建独立运行的Spring项目以及与主流框架集成 – 使用嵌入式的Servlet容器,应用无需打成WAR包 – st ...
- ESP8266学习笔记6:ESP8266规范wifi连接操作
一.前言 我整理了从2015年至今关于ESP8266的学习笔记,梳理出来了开发环境.基础功能.进阶学习三大部分.方便自己和他人.可点此查看,欢迎交流. 之前在笔记4<ESP8266的SmartC ...
- Spring Boot 2 学习笔记(2 / 2)
Spring Boot 2 学习笔记(1 / 2) - - - 45.web实验-抽取公共页面 46.web实验-遍历数据与页面bug修改 47.视图解析-[源码分析]-视图解析器与视图 48.拦截器 ...
- tornado学习笔记day03-响应输出
write: 作用: 将chunk中的数据写到输出缓冲区 利用write方法写json数据 我们自己手动序列化json的那种方式Content-Type 的属性值为text-html 而我们采用wri ...
- 学习笔记--2014年7月7日
2014年7月7日晚上学习笔记 ================ 目录: 一.学习Bash笔记 二.利用Ubuntu创建无线wifi 三.在Ubuntu里禁用不用的桌面 四.安装软件时依赖冲突的万能解 ...
- Mr.J-- HTTP学习笔记(三)-- HTTP报文
HTTP 报文是在 HTTP 应用程序之间发送的数据块. 报文在客户端. 服务器和代理之间流动. 术语"流入"."流出"."上游" 及&qu ...
最新文章
- Linux中断处理驱动程序编写【转】
- boost::hana::back用法的测试程序
- 通过pyinotify实现文件的监控,包括监控文件是否传输完成
- python虚拟环境 pyenv_Python 虚拟环境 pyenv、venv(pyvenv)、virtualenv之间的区别
- 《为何爱会伤人》-读书笔记
- Open3d之颜色映射优化
- failed to execute ‘dot‘, make sure the Graphviz executables are on your systems‘ PATH
- SQLServer导数据到Oracle
- matlab用Java绘图_Java中使用MATLAB作图
- UGUI源代码之Image-Sliced模式
- Android左右声道切换流程
- 创建前缀索引时,如何确认“最佳长度”
- 【附源码】计算机毕业设计SSM实验室预约管理系统
- 金仓数据库 KingbaseES 客户端编程接口指南 - JDBC(11. JDBC 示例说明)
- java 粒度_java中粗粒度和细粒度的概念
- 一文弄懂Batch Norm / Layer Norm / Instance Norm / Group Norm 归一化方法
- 新消息,江苏南通8MW屋顶光伏发电啦
- matlab计算地转流程序,geostrophy 用于海洋科学中计算地球流的一系列matlab程序 联合开发网 - pudn.com...
- 本科计算机知识点,2018年电大本科计算机网考操作题题库重要知识点(6页)-原创力文档...
- python 匹配字符串开头和结尾