CAN笔记(10) 错误种类和输出

  • 1. 错误种类
    • 1.1. 位错误
    • 1.2. 格式错误
  • 2. 错误帧的输出

1. 错误种类

错误共有 5 种,多种错误可能同时发生:

  • 位错误
  • 填充错误
  • CRC 错误
  • 格式错误
  • ACK 错误

错误的种类、错误的内容、错误检测帧和检测单元如表:

错误的种类 错误的内容 错误的检测帧(段) 检测单元
位错误 比较输出电平和总线电平(不含填充位),当两电平不一样时所检测到的错误 数据帧( SOF∼EOF) 发送单元、接收单元
数据帧( SOF∼EOF)
错误帧
过载帧
填充错误 在需要位填充的段内,连续检测到 6位相同的电平时所检测到的错误 数据帧( SOF∼CRC 顺序) 发送单元、接收单元
遥控帧( SOF∼CRC 顺序)
CRC 错误 从接收到的数据计算出的 CRC 结果与接收到的 CRC 顺序不同时所检测到的错误 数据帧( CRC 顺序) 接收单元
遥控帧( CRC 顺序)
格式错误 检测出与固定格式的位段相反的格式时所检测到的错误 数据帧( CRC 界定符、 ACK 界定符、EOF) 接收单元
遥控帧( CRC 界定符、 ACK 界定符、EOF)
错误界定符
过载界定符
ACK 错误 发送单元在ACK 槽中检测出隐性电平时所检测到的错误( ACK没被传送过来时所检测到的错误) 数据帧( ACK 槽) 发送单元
遥控帧( ACK 槽)

1.1. 位错误

  • 由向总线上输出数据帧、遥控帧、错误帧、过载帧的单元
    和 输出 ACK 的单元、输出错误的单元来检测

  • 在仲裁段输出隐性电平,但检测出显性电平时
    将不视为位错误,而是仲裁失利

  • 在仲裁段作为填充位输出隐性电平时,但检测出显性电平时
    将不视为位错误,而是填充错误

  • 发送单元在 ACK 段输出隐性电平,但检测到显性电平时
    将不视为位错误,而是被判断为其它单元的 ACK 应答

  • 输出被动错误标志( 6 个位隐性位)但检测出显性电平时,将遵从错误标志的结束条件
    等待检测出连续相同 6 个位的值(显性或隐性),并不视为位错误


1.2. 格式错误

  • 即使接收单元检测出 EOF(7 个位的隐性位)的最后一位(第 8 个位)为显性电平
    也不视为格式错误

  • 即使接收单元检测出数据长度码(DLC)中 9∼15 的值时
    也不视为格式错误


2. 错误帧的输出

检测出满足错误条件的单元输出错误标志通报错误

处于 主动错误状态 的单元输出的错误标志为 主动错误标志 6 个位的显性位 0
处于 被动错误状态 的单元输出的错误标志为 被动错误标志 6 个位的隐性位 1

发送单元发送完错误帧后,将再次发送数据帧或遥控帧

错误标志输出时序如:

错误的种类 输出时序
位错误 从检测出错误后的下一位开始输出错误标志
填充错误
格式错误
ACK 错误
CRC 错误 ACK 界定符后的下一位开始输出错误标志

参考:
《CAN入门书》


相关推荐:
CAN笔记(9) 位填充
CAN笔记(8) 优先级
CAN笔记(7) CAN协议(二)
CAN笔记(6) CAN协议(一)
CAN笔记(5) 协议标准规格


谢谢!

CAN笔记(10) 错误种类和输出相关推荐

  1. Go语言学习笔记(10)——错误处理示例

    // 定义一个 DivideError 结构 type DivideError struct {dividee intdivider int } // 实现 `error` 接口 func (de * ...

  2. Android学习笔记07---查看Android虚拟机输出的错误信息与如何部署应用到自己的真实手机

    Android学习笔记07---查看Android虚拟机输出的错误信息

  3. Think in Java第四版 读书笔记10 第16章 数组

    Think in Java第四版 读书笔记10 第16章 数组 数组和容器很像 但他们有一些差别 16.1 数组为什么特殊 数组与容器的区别主要在效率和存储类型 效率:数组是简单的线性序列 使得数组的 ...

  4. 史上最牛最强的linux学习笔记 10.shell基础

    史上最牛最强的linux学习笔记 10.shell基础 写在最前面: 本文是基于某站的视频学习所得,第一个链接如下: https://www.bilibili.com/video/BV1mW411i7 ...

  5. 《Java8实战》读书笔记10:组合式异步编程 CompletableFuture

    <Java8实战>读书笔记10:组合式异步编程 CompletableFuture 第11章 CompletableFuture:组合式异步编程 11.1 Future 接口 (只是个引子 ...

  6. 学习SpringBoot笔记以及错误记录

    学习SpringBoot笔记以及错误记录 <1>. 启动类(SpringBootApplication)放错位置 错误场景:MainApplication类不应放在默认的src.main. ...

  7. thinkphp学习笔记10—看不懂的路由规则

    原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INF ...

  8. SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传

    SpringMVC:学习笔记(10)--整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...

  9. Spring-学习笔记10【Spring事务控制】

    Java后端 学习路线 笔记汇总表[黑马程序员] Spring-学习笔记01[Spring框架简介][day01] Spring-学习笔记02[程序间耦合] Spring-学习笔记03[Spring的 ...

最新文章

  1. 【Xamarin笔记】Events, Protocols and Delegates
  2. python简单代码表白-python浪漫表白源码
  3. JZ2440学习总结1
  4. Java的不同版本:J2SE、J2EE、J2ME的区别
  5. 机器人学习--全局定位(阿尔伯塔大学张宏教授报告)
  6. Oracle 11g安装步骤
  7. android剪切 图片,android 剪切图片
  8. Ubuntu14.04安装VMwareTools
  9. 音视频入门系列-字幕篇(SSA ASS)
  10. 如何利用线程堆栈定位问题
  11. HTML5期末大作业:设计网站设计——动漫设计响应式(10页) HTML+CSS+JavaScript 动漫设计制作 简单静态HTML网页作品 动漫设计作业成品 学生个人网站模板
  12. 思腾合力-SCM集群下载镜像步骤
  13. 向量代数:向量加法、共线与共面
  14. 软考真题答案-2021年5月系统集成项目管理工程师上午题
  15. 20165220 我期望的师生关系
  16. js表格隔行变色案例
  17. 办公逸CTO王斌:提高产品响应速度应注意的二十五个技术细节
  18. pythonapi是什么意思_API是什么意思?API文档又是什么意思?
  19. windows系统下更新nodejs
  20. oracle查询元数据,Oracle Spatial-元数据及SDO_GEOMETRY

热门文章

  1. 通过Redis的Pub/Sub实现对服务器群的监控管理
  2. Seafile 1.3 发布,文件同步和协作平台
  3. 算法高级(17)-SpringCloud中的负载均衡算法
  4. 程序员的算法课(12)-使用通配符*,?等来查找字符串
  5. 使用计算机正确开机方法,电脑开关机的正确步骤
  6. php 路由实现_PHP操作路由器实现方法示例
  7. java 桌面图标插件_JavaSwing界面设计(所有控件及示例)预览.ppt
  8. springSecurity 登录以及用户账号密码解析原理
  9. 输入n种口味随机输出四种不同的口味!
  10. C#配置IIS搭建网站的工具类