写点什么

详解 CAN 总线:CAN 总线报文格式—错误帧

  • 2022 年 10 月 10 日
    北京
  • 本文字数:1244 字

    阅读完需:约 4 分钟

详解CAN总线:CAN总线报文格式—错误帧

CAN 总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文。

CAN 通信是通过以下 5 种类型的帧进行的:

  • 数据帧

  • 遥控帧

  • 错误帧

  • 过载帧

  • 帧间隔

另外,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有 11 个位的标识符(Identifier: 以下简称 ID), 扩展格式有 29 个位的 ID。

各种帧的用途如下表所示:

近期打算写 5 篇文章,分别详细介绍这 5 种类型的 CAN 总线报文格式,本篇博文将详细讲解 CAN 错误帧格式,创作不易,请各位朋友多多点赞、收藏、关注支持~

关注公众号:美男子玩编程,优先推送最新技术博文~

1、错误帧格式

错误帧由错误标志(Error Flag)和错误界定符(Error Delimiter)组成。

接收节点发现总线上的报文有错误时,将自动发出活动错误标志,它是 6 个连续的显性位。其他节点检测到活动错误标志后发送错误认可标志,它由 6 个连续的隐性位组成。由于各个接收节点发现错误的时间可能不同,所以总线上实际的错误标志可能由 6~12 个显性位组成。

错误界定符由 8 个位的隐性位构成。当错误标志发生后,每一个 CAN 节点监视总线,直至检测到一个显性电平的跳变。此时表示所有的节点已经完成了错误标志的发送,并开始发送 8 个隐性电平的界定符。

如下所示:

2、主动错误标志和被动错误标志

错误标志包括主动错误标志和被动错误标志两种。

  • 主动错误标志:处于主动错误状态的单元检测出错误时输出的错误标志,6 个位的显性位;

  • 被动错误标志:处于被动错误状态的单元检测出错误时输出的错误标志,6 个位的隐性位。

3、错误帧种类

错误帧共有 5 种,多种错误可能同时发生,种类如下所示:

  • 位错误

  • 填充错误

  • CRC 错误

  • 格式错误

  • ACK 错误

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

​重点聊一聊位错误和格式错误。

位错误特性如下所示:

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

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

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

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

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

格式错误特性如下所示:

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

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

发送单元发送完错误帧后,将再次发送数据帧或遥控帧,错误标志输出时序如下表所示:


详解CAN总线:什么是CAN总线?

详解CAN总线:高速CAN总线和低速CAN总线的特性

详解CAN总线:CAN协议分层结构及功能

详解CAN总线:CAN节点硬件构成方案

详解CAN总线:常用CAN连接器的使用方法

详解CAN总线:CAN总线报文格式—数据帧

详解CAN总线:标准数据帧和扩展数据帧​​​​​​

详解CAN总线:CAN总线报文格式—遥控帧

发布于: 刚刚阅读数: 3
用户头像

【研究方向】物联网、嵌入式、AI、Python 2018.02.09 加入

嵌入式工程师,创客爱好者,公众号:美男子玩编程,全网粉丝10万+。 CSDN博客专家、微软MVP、华为云云享专家、阿里云专家博主、知乎认证科学技术领域答主。

评论

发布
暂无评论
详解CAN总线:CAN总线报文格式—错误帧_汽车电子_不脱发的程序猿_InfoQ写作社区