0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文读懂CAN通讯错误帧

ZLG致远电子 2024-06-12 08:24 次阅读

CAN总线通信技术广泛应用于多个行业,是每个总线设计工程师必学的一个通讯网络。然而,对于CAN通信中的错误帧,许多人仅停留在表面了解,缺乏深入理解,这导致许多工程师在面对总线通信故障时感到无从下手。

32ee0cda-2852-11ef-bd4a-92fbcf53809c.jpg  错误标定

检测到错误条件的站通过发送错误标志指示错误。对于“错误主动”的节点,错误信息为“主动错误标志”,对于“错误被动”的节点,错误信息为“被动错误标志”。站检测到无论是位错误、填充错误、形式错误,还是应答错误,这个站会在下一位时发出错误标志信息。

只要检测到的错误的条件是CRC错误,错误标志的发送开始于ACK界定符之后的位(其他的错误条件除外)。如图1所示:

33012c98-2852-11ef-bd4a-92fbcf53809c.jpg

图1 CRC错误帧


32ee0cda-2852-11ef-bd4a-92fbcf53809c.jpg  故障界定

至于故障界定,单元的状态可能为以下三种之一:“错误主动”、“错误被动”、“总线关闭”。

“错误主动”的单元可以正常地参与总线通讯并在错误被检测到时发出主动错误标志。

  1. “错误被动”的单元不允许发送主动错误标志。“错误被动”的单元参与总线通讯,在错误被检测到时只发出被动错误标志。而且,发送以后,“错误被动”单元将在初始化下一个发送之前处于等待状态。(见“挂起发送”)
  2. “总线关闭”的单元不允许在总线上有任何的影响(比如,关闭输出驱动器)。

三个转态的转换方式如图2所示:331c121a-2852-11ef-bd4a-92fbcf53809c.png

图2 CAN状态转换图

在每一总线单元里使用两种计数以便故障界定:发送错误计数、接收错误计数。

这些计数按以下规则改变(注意,在给定的报文发送期间,可能要用到的规则不只一个):

1、当接收器检测到一个错误,接收错误计数就加1。在发送主动错误标志或过载标志期间所检测到的错误为位错误时,接收错误计数器值不加1。

2、当错误标志发送以后,接收器检测到的第一个位为“显性”时,接收错误计数值加8。

3、当发送器发送一错误标志时,发送错误计数器值加8。

例外情况1:发送器为“错误被动”,并检测到一应答错误(注:此应答错误由检测不到一“显性”ACK 以及当发送被动错误标志时检测不到一“显性”位而引起)。

例外情况2:发送器因为填充错误而发送错误标志(注:此填充错误发生于仲裁期间。引起填充错误是由于:填充位〈填充位〉位于RTR位之前,并已作为“隐性”发送,但是却被监视为“显性”)。

例外情况1和例外情况2时,发送错误计数器值不改变。

4、发送主动错误标志或过载标志时,如果发送器检测到位错误,则发送错误计数器值加8。

5、当发送主动错误标志或过载标志时,如果接受器检测到位错误(位错误),则接收错误计数器值加8。

6、在发送主动错误标志、被动错误标志或过载标志以后,任何节点最多容许7个连续的 “显性”位。以下的情况,每一发送器将它们的发送错误计数值加8,及每一接收器的接收错误计数值加8:

当检测到第14个连续的“显性”位后;

在检测到第8个跟随着被动错误标志的连续的“显性”位以后;

在每一附加的8个连续“显性”位顺序之后。

7、报文成功传送后(得到ACK及直到帧末尾结束没有错误),发送错误计数器值减1,除非已经是0。

8、如果接收错误计数值介于1和127之间,在成功地接收到报文后(直到应答间隙接收没有错误,及成功地发送了ACK位),接收错误计数器值减1。如果接收错误计数器值是0,则它保持0,如果大于127,则它会设置一个介于119到127之间值。

9、当发送错误计数器值等于或超过128时,或当接收错误计数器值等于或超过128时,节点为“错误被动”。让节点成为“错误被动”的错误条件致使节点发出主动错误标志。

10、当发送错误计数器值大于或等于256时,节点为“总线关闭”。

11、当发送错误计数器值和接收错误计数器值都小于或等于127时,“错误被动”的节点重新变为“错误主动”。

12、在总线监视到128次出现11个连续“隐性”位之后,“总线关闭”的节点可以变成“错误主动”(不再是“总线关闭”),它的错误计数值也被设置为0。

备注1:

一个大约大于96的错误计数值显示总线被严重干扰。最好能够预先采取措施测试这个条件。

备注2:

起动/睡眠:如果起动期间内只有1个节点在线,以及如果这个节点发送一些报文,则将不会有应答,并检测到错误和重复报文。由此,节点会变为“错误被动”,而不是“总线关闭”。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN总线
    +关注

    关注

    145

    文章

    1936

    浏览量

    130623
  • 通信
    +关注

    关注

    18

    文章

    5969

    浏览量

    135839
  • 计数器
    +关注

    关注

    32

    文章

    2253

    浏览量

    94346
  • 检测
    +关注

    关注

    5

    文章

    4436

    浏览量

    91360
收藏 人收藏

    评论

    相关推荐

    浅谈CAN FD总线协议格式

    假期更新了搞懂CAN总线协议格式,CAN FD总线协议怎能错过?本篇博将讲解
    发表于 10-14 12:49 3374次阅读
    浅谈<b class='flag-5'>CAN</b> FD总线协议<b class='flag-5'>帧</b>格式

    读懂Can总线错误处理

    为了防止故障节点干扰甚至阻塞整个CAN网络系统,CAN协议实现了复杂的故障限制机制。为了保证通信的正常,CAN 2.0 总线协议总线中各节点需要采取以下措施进行错误检测。
    发表于 11-08 17:12 9712次阅读

    读懂CAN总线错误处理

    为了防止故障节点干扰甚至阻塞整个CAN网络系统,CAN协议实现了复杂的故障限制机制。为了保证通信的正常,CAN 2.0 总线协议总线中各节点需要采取以下措施进行错误检测:
    发表于 06-21 17:14 5981次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>读懂</b><b class='flag-5'>CAN</b>总线<b class='flag-5'>错误</b>处理

    示波器破解CAN错误/BusOff的经验分享

    MCU内置了CAN控制器用来将MCU的数据封装为CAN格式,同时它也负责CAN的校验和错误
    发表于 09-08 09:19 1424次阅读

    分享种用CAN波形的幅度和脉宽信息来精确定位错误来源的方法

    我们先从基础的讲起。CAN节点的电路般如下图所示,MCU内置了CAN控制器用来将MCU的数据封装为CAN格式,同时它也负责
    的头像 发表于 10-08 15:52 1805次阅读
    分享<b class='flag-5'>一</b>种用<b class='flag-5'>CAN</b>波形的幅度和脉宽信息来精确定位<b class='flag-5'>错误</b><b class='flag-5'>帧</b>来源的方法

    读懂CAN控制器错误处理的原理

    CAN通讯错误到底是如何被界定的?本文带你轻松了解!错误标定检测到错误条件的站通过发送
    的头像 发表于 04-26 08:25 1531次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>读懂</b><b class='flag-5'>CAN</b>控制器<b class='flag-5'>错误</b>处理的原理

    CAN错误定义

    .h,错误标记为CAN_ID的error,错误类型存放在CAN_ID中,根据不同类型的错误,详
    发表于 01-03 15:57

    解析CAN总线远程错误

    本文主要介绍了CAN总线远程错误,首先我们先来了解了解通讯时使用的
    的头像 发表于 05-07 11:30 2.7w次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>解析<b class='flag-5'>CAN</b>总线远程<b class='flag-5'>帧</b>和<b class='flag-5'>错误</b><b class='flag-5'>帧</b>

    英创信息技术关于新CAN驱动的错误定义

    CAN总线产生的错误错误的形式上报给应用层。设置注册表[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CAN1]
    的头像 发表于 02-05 10:27 1927次阅读
    英创信息技术关于新<b class='flag-5'>CAN</b>驱动的<b class='flag-5'>错误</b><b class='flag-5'>帧</b>定义

    CAN总线错误的类型介绍

    在本系列文章中,我们将为您详细介绍CAN总线错误的相关知识,包括CAN总线错误的基础概念、CAN总线错误
    的头像 发表于 06-13 16:08 8138次阅读

    详解常用的CAN总线(下):错误

    错误种类分为5种,分别是:位发送错误、ACK错误、位填充错误、CRC错误、格式
    发表于 06-19 17:25 4865次阅读
    详解常用的<b class='flag-5'>CAN</b>总线(下):<b class='flag-5'>错误</b><b class='flag-5'>帧</b>

    虹科干货 | 带你全面认识“CAN总线错误”()——CAN总线错误错误

    AsimpleintrotoCANerrorsCAN总线错误介绍在本系列文章中,我们将为您详细介绍CAN总线错误的相关知识,包括CAN总线错误
    的头像 发表于 05-27 10:39 4538次阅读
    虹科干货 | 带你全面认识“<b class='flag-5'>CAN</b>总线<b class='flag-5'>错误</b>”(<b class='flag-5'>一</b>)——<b class='flag-5'>CAN</b>总线<b class='flag-5'>错误</b>与<b class='flag-5'>错误</b><b class='flag-5'>帧</b>

    科普系列:CAN总线错误及排查方法简介

    作者|蒹葭小编|吃不饱CAN有多种格式,错误作为CAN中独特的
    的头像 发表于 02-23 15:11 3052次阅读
    科普系列:<b class='flag-5'>CAN</b>总线<b class='flag-5'>错误</b><b class='flag-5'>帧</b>及排查方法简介

    如何用示波器排查CAN的各种错误呢?

    如何用示波器排查CAN的各种错误呢? 导言: 控制器局域网络(Controller Area Network,CAN)是种常用的现场总线
    的头像 发表于 12-07 11:09 1106次阅读

    CAN通信协议中有哪几种类型?CAN通信中格式的作用

    CAN通信协议中有四种类型,分别是数据、远程错误和过载
    的头像 发表于 01-30 09:18 5076次阅读