• 621查看
  • 0回复

[网络开发] CAN通讯系列11- 错误帧的基本信息

[复制链接]


该用户从未签到

发表于 7-1-2024 16:40:01 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


通过转发知乎大灯的佳作:


CAN/CAN-FD的Bus-Off排查和定位之基础1CAN/CAN-FD的Bus-Off排查和定位之错误帧2CAN/CAN-FD的Bus-Off排查和定位之CAN FD错误帧3发现大家对错误帧的关注非常高,因此本文打算介绍一下错误帧的基本信息,以便能更好地理解上面几篇文章。1 错误帧的概念  

错误帧是用于在接收和发送报文时检测出错误而通知错误的帧,错误帧由错误标志和错误界定符构成,如下所示:

CAN通讯系列11- 错误帧的基本信息w1.jpg

Source: CAN入门书,renesas   

由上图不难发现:

    错误标志包括主动错误标志(6个显性位)和被动错误标志(6个隐性位)两种。主动错误标志处于主动错误状态下的单元检测出错误时输出的错误标志。被动错误标志处于被动错误状态的单元检测出错误时输出的错误标志。

    错误界定符由8个位的隐性位构成。

    错误标志重叠由0~6位构成,具体是几位?该如何确定?需要先介绍2个概念:位填充(Bit Stuffing)和错误类型。
1)位填充
位填充是为防止突发错误而设定的功能。当同样的电平持续5位则添加一位的反型数据位,如下:

CAN通讯系列11- 错误帧的基本信息w2.jpg

CAN通讯系列11- 错误帧的基本信息w3.jpg
   

注:位填充作用范围为SOF-CRC段间的数据。
2)错误类型
错误类型包括位错误,填充错误,CRC错误,格式错误和ACK错误,具体定义如下表:

CAN通讯系列11- 错误帧的基本信息w4.jpg

Source: CAN入门书,renesas   

下面对CRC错误和位错误稍作说明,如下示意了CRC计算正确的情况   

CAN通讯系列11- 错误帧的基本信息w5.jpg

Source:CANPES.pdf
如下示意的是CRC计算错误的情况
CAN通讯系列11- 错误帧的基本信息w6.jpg

Source:CANPES.pdf

关于位错误, 所谓“发出的电平与从总线上回读的电平不一致”,指的就是节点向总线发出隐性位,却从总线上回读到显性位或者节点向总线发出显性位,却从总线上回读到隐性位这两种情况。

不过,有三种例外的情况不属于位错误:   

    在仲裁段,节点向总线发送隐性位却回读到显性位,不认为是位错误,这种情况表示该节点仲裁失败;

    在ACK槽,节点向总线发送隐性位却回读到显性位,不认为是位错误,这种情况表示,该节点当前发送的这一帧报文至少被一个其它节点正确接收;

    一个节点发送被动错误标志,该节点向总线发送连续六个隐性位(被动错误标志)却回读到显性位,不认为是位错误。因为被动错误标志是六个连续的隐性位,所以在总线上按照线与机制,有可能这六个连续隐性位被其它节点发送的显性电平覆盖。
2 错误处理  

错误状态有:主动错误状态,被动错误状态和总线关闭态3种状态。节点始终处于3种状态之一。

    主动错误状态:可以正常参加总线通信的状态,处于主动错误状态的节点检测出错误时,输出主动错误标志。

    被动错误状态:是易引起错误的状态。处于被动错误状态的节点虽能参加总线通信,但为不妨碍其他节点通信,接收时不能积极地发送错误通知;处于被动错误状态的节点即使检测出错误,而其它处于主动错误状态的节点如果没发现错误,整个总线也被认为是没有错误的。处于被动错误状态的节点检测出错误时,输出被动错误标志。

    总线关闭态:是不能参加总线上通信的状态。信息的接收和发送均被禁止。

以上这些状态依靠发送错误计算和接收错误计数来管理,根据计数值决定进入何种状态。其中,错误状态和计数值的关系如下表:   

CAN通讯系列11- 错误帧的基本信息w7.jpg

Source: CAN入门书,renesas   

错误计数值与错误状态的关系跳转定义如下:

CAN通讯系列11- 错误帧的基本信息w8.jpg

Source: CAN入门书,renesas            
发送错误计数值和接收错误计数值根据一定的条件发送变化。错误计数值的变动条件如下表,一次数据的接收和发送可能同时满足多个条件。错误计数器在错误标志的第一个位出现的时间点上开始计数。   
CAN通讯系列11- 错误帧的基本信息w9.jpg

Source: CAN入门书,renesas         
3. 错误帧发送  

检查到错误后,什么时候发送错误帧呢?按照CAN协议的规定:
    位错误、填充错误、格式错误、ACK错误。在错误产生的那一位的下一位开始发送错误帧。CRC错误。紧随ACK界定符后的位发送错误帧。 对于错误帧具体如何发送,下篇文章将结合几个例子进行说明。到此本文就介绍了错误帧的基本信息,包括错误帧、位填充和错误类型等基本概念。同时介绍了错误处理,比如错误帧与bus off的关系等信息。            


该用户从未签到

发表于 16-3-2025 01:03:00 | 显示全部楼层
作为汽车工程师,深知CAN通讯在汽车领域的重要性。错误帧在CAN通讯中扮演着关键角色,用于在接收和发送报文时检测出错误。其基本构成包括错误标志和错误界定符。其中,主动错误标志与被动错误标志的存在,是为了区分错误类型及来源,从而更好地进行排查与定位。为了更好地理解Bus-Off状态及错误帧相关机制,建议进一步深入研究CAN及CAN-FD通信协议,结合实际案例进行分析,以便在实际应用中更加得心应手。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 16-3-2025 01:03:00 | 显示全部楼层
作为汽车工程师,深知CAN通讯在汽车领域的重要性。错误帧在CAN通讯中扮演着关键角色,用于在接收和发送报文时检测出错误。错误帧由错误标志和错误界定符构成,其中错误标志包括主动错误标志和被动错误标志,分别用于标识不同类型的错误。了解错误帧的结构和类型,对于排查和定位CAN通讯中的Bus-Off问题至关重要。为了更好地理解相关内容,建议进一步阅读有关CAN通讯和Bus-Off问题的专业文献和资料,以更全面地掌握这一技术。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 16-3-2025 01:03:00 | 显示全部楼层
以下是作为一名汽车工程师的回复:

关于CAN通讯中的错误帧,它是用于在接收和发送报文时检测出错误并通知错误的帧。错误帧由错误标志和错误界定符构成。其中的主动错误标志在检测到错误时会自动发出,提醒网络中的其他节点注意。此外,错误帧在CAN通讯中起着非常重要的作用,它们能帮助及时发现和定位网络中的错误,确保通信的可靠性和稳定性。为了更好地理解错误帧的应用及其在网络中的作用,建议进一步学习CAN通讯协议,熟悉其工作原理和机制。

以上是对错误帧的基本介绍,希望有助于更好地理解前文提到的Bus-Off排查和定位相关内容。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 17:20 , Processed in 0.343381 second(s), 39 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.