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

这篇具有很好参考价值的文章主要介绍了科普系列:CAN总线错误帧及排查方法简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CAN帧有多种格式,错误帧作为CAN帧中独特的一种,了解其作用,类型与产生原因,对于进行测试以及开发有很大的帮助,本文将对错误帧的相关基础知识以及后续的分析排查进行介绍。

一、错误帧的基础知识

(一)、错误帧的作用

错误帧是CAN总线用于进行错误通知的报文,可以将任何一个节点发现的错误通知给其他节点,包括发送节点;进而丢弃错误的报文,发送节点再进行报文的重新发送,保证传递信息的准确性。

(二)、错误类型

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

图1 CAN的分层体系结构

首先,如上图所示,按照分层的理念,CAN的错误检测和错误信号的发送都处于二层,即数据链路层,因此,错误检测所检测的报文也是检测数据链路层的报文。

其次,当总线上的帧出现错误时,节点就会发出错误帧,而错误也有多种类型:

1、位错误:位错误是发送节点在发送数据,进行回读,检测到总线上的数据与自身发出的数据不同时,发出的错误。由于CAN的仲裁机制和ACK应答机制,在仲裁场和ACK处发出隐性位,而回读到显性位时并不会认为是位错误。
科普系列:CAN总线错误帧及排查方法简介

图2 位检测

2、格式错误:格式错误是在固定格式的位场处检测到非法位,例如:ACK界定符固定是一个隐性位,若检测到显性,就认为是格式错误。
科普系列:CAN总线错误帧及排查方法简介

图3 格式检测

3、ACK错误:发送节点在自身发送的报文的ACK位检测到隐性时,会认为没有其他节点接收到此条报文,即为ACK错误。
科普系列:CAN总线错误帧及排查方法简介

图4 ACK检测

4、填充错误:CAN的填充机制是每检测到5个连续相同的位时,即填充一个相反的位,以提供足够的跳变沿来进行同步,当在总线上有报文时,检测到连续的6个相同的位时,即认为是填充错误。
科普系列:CAN总线错误帧及排查方法简介

图5 填充检测

5、CRC错误:接收节点接收到的CRC序列与发送节点发送的CRC序列不同时,即识别为CRC错误。
科普系列:CAN总线错误帧及排查方法简介

图6 CRC检测

(三)、错误帧的类型

上文已经说了CAN错误的类型,当检测到错误时,就会有错误帧发出,处于不同错误状态的节点,所发送的错误帧格式是不同的。

从错误的角度分析,节点有三种不同的状态,分别是主动错误状态,被动错误状态和总线关闭状态。并有两种不同的错误计数器,分别是接收错误计数器REC和发送错误计数器TEC。当节点检测到错误时,会发出错误帧,并增加错误计数器的值,根据错误计数器的值,节点会进入不同的状态。具体的计数算法参照 ISO 11898-1。

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

图7 节点状态转换图

1、当TEC和REC的值都小于128时,节点处于主动错误状态时,节点发送的错误帧由6个显性位(主动错误标志)加8个隐性位(错误界定符)组成,共14位。一个节点发出错误帧,其他节点识别到后会跟着发出错误帧,由此机制,将一个节点检测到的错误通知给其他节点,也能防止其他节点接收到错误的报文。

2、当TEC或REC大于127时,节点处于被动错误状态时,节点发送的错误帧由6个隐性位(被动错误标志)加8个隐性位(错误界定符)即14个连续的隐性位组成,当处于被动错误状态的节点在接收报文时检测到错误进而发出的错误帧,一定会被正常的报文或者其他节点的错误帧覆盖掉。只有当处于被动错误状态的节点在主动发出报文,发出的错误帧才会被其他节点正常检测到并触发其他节点发出错误帧。

3、当TEC大于255时,节点处于总线关闭状态(busoff)时,节点会停止收发报文,直到有用户请求(如:重启)或总线连续128次出现11个连续的隐性位时,节点重新恢复到主动错误的状态。总线关闭状态主要是为了防止一个节点出现故障或持续被干扰时,不断发出错误帧,从而影响其他节点的正常收发报文。

4、综上,错误帧按具体格式分类只有两类,即6个显性0 + 8个隐性1和6个隐性1 + 8个隐性1两种。当一个节点连续检测到多个错误,进入到被动错误模式时,此时很有可能是此节点出了问题或者受到干扰,这个时候这个节点检测出的错误可能已经不被信任,所以处于被动错误模式的节点发出的错误帧是14个隐性位,可以被正常报文或正常的错误帧覆盖掉。

二、实车上出现错误帧的主要原因

对于实车而言出现错误帧主要可能是因为以下几种原因:

1、终端电阻不匹配:终端电阻用以匹配电缆的阻抗特性,减少信号的反射,当终端电阻与总线的阻抗不匹配时,产生的反射现象就会较为严重,影响结果。

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

总线电阻75Ω

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

总线电阻40Ω

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

总线电阻60Ω

图8 不同电阻对波形的影响

2、电容对波形的影响:电容不匹配会影响电平上升下降沿的时间,进而影响采样时的结果。总线电容过大,会导致放电时间增加,下降沿时间会增加,影响最后采样的结果。

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

图9 不同电容对波形的影响

3、支线长度的影响:支线长度过长,会对总线的阻抗匹配产生影响,形成的反射也会更严重,进而影响总线上的波形。

4、采样点不合适的节点。当总线上的节点的采样点位置设置的不一致,有可能会出现错误帧。

5、电磁干扰比较大的电源,较大的电磁干扰会影响总线的波形,进而影响总线上的报文,出现错误帧。

总结:实车上出现错误帧一般是波形较差,波形的波动,进而影响采样的结果,出现错误帧。

三、错误帧的排查方法示例

进行错误帧的原因排查,观察错误帧的类型等信息,可借助Vector公司软件工具CANoe、示波器、万用表等。在CANoe的Trace窗口中可以看到报文的详细信息,错误类型等。

实车上出现错误帧时,综合出现错误帧的原因,如下部分典型排查方法可以参考。

1、先判断终端节点是否在线,加载DBC来判断是否有终端节点的报文,或者用万用表测量终端电阻阻值是否正确。
科普系列:CAN总线错误帧及排查方法简介

图10 判断节点是否在线

2、确认错误帧出现的频率,是否为周期型或仅在固定的时间段内出现

3、排查错误帧出现时,对应的报文是否有固定的ID,或者是固定的节点

4、根据错误帧的信息排查,是否与正常报文相关;同时再结合重传和报文的优先级综合分析。


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

图11 优先级对错误帧的影响

四、结语

通过上述的介绍,相信读者对于错误帧的类型和原因有了一定的了解。对于测试而言,了解错误帧的类型,进而分析错误出现的原因,对于测试中出现的问题以及对测试结果的分析,都是可以参考的方法。

北汇信息专注于汽车电子网络通信、诊断刷写、逻辑功能测试开发服务,期待进一步沟通交流、共享合作的机会。文章来源地址https://www.toymoban.com/news/detail-435896.html


喜欢本篇文章的话记得💬评论💖点赞⭐收藏
➕更多技术文章直播课程,敬请持续关注北汇信息➕
⬇️业务咨询请私信北汇信息或在官网留言⬇️
📩📩📩

到了这里,关于科普系列:CAN总线错误帧及排查方法简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CAN总线中Bus Off后快慢恢复时间的测试方法介绍

    距离上次更博以过去数月,今日难得忙里偷闲,有如此时间来对测试中常见的Bus Off问题进行介绍,帮助大家加深对CAN总线的理解。 Bus Off,顾名思义就是总线关闭,那么总线为什么会出现Bus Off?其实这和CAN总线的错误处理机制相关,CAN总线共有三种错误机制,这三种错误之间

    2023年04月15日
    浏览(49)
  • 周立功CAN总线工具ZLG USBCANFD-200U上位机ZCANPRO使用方法

    请查看官网:https://www.zlg.cn/can/can/product/id/223.html 安装完上位机之后,上位机使用手册可安装目录下找到: ..\ZCANPROUserManual 2.1.1 参数要求 假设你要测试的CAN要求设置如下: 时钟:80M 仲裁域波特率:500K,采样点81.3% 数据域的波特率:2M,采样点75% 仲裁域和数据域的时钟

    2024年02月02日
    浏览(69)
  • 关于485、CAN、单总线、SPI、I2C的特点、区别、协议、使用方法、通信方式。

    485(一般称作 RS485/EIA-485)。 是隶属于 OSI 模型物理层电气特性规定为 2 线半双工多点通信标准。 它的电气特性和 RS-232 大不一样,用缆线两端的电压差值来表示传递信号。 特性 1.    接口电平低,不易损坏芯片 RS485 的电气特性:逻辑“1”以两线间的电压差为+(2~ 6)V表示;

    2024年02月07日
    浏览(60)
  • 485、CAN、单总线、SPI、I2C的概念,特点,协议,使用方法及通信方式,还有它们之间的区别

    1. 485:485(一般称作 RS485/EIA-485)是隶属于 OSI 模型物理层的电气特性规定为 2 线,半双工,多点通信的标准。它的电气特性和 RS-232 大不一样。用缆线两端的电压差值来表示传递信号。 2. CAN:CAN,全称为“Controller Area Network”,即控制器局域网,是一种多主方式的串行通讯总

    2024年02月10日
    浏览(54)
  • 【Unity】 基础入门 编译错误排查与调试方法

    1、Win11系统不兼容部分unity版本 考虑换系统吧! 2、可能是系统权限问题,访问不到部分路径 一般是系统盘的文件因为用户账户授权的问题,一些文件只有读取没有写入权限。 3、依赖配置问题 系统环境配置问题

    2024年02月11日
    浏览(41)
  • 【unity】基础入门 编译错误排查与调试方法

    1、Win11系统不兼容部分unity版本 考虑换系统吧! 2、可能是系统权限问题,访问不到部分路径 一般是系统盘的文件因为用户账户授权的问题,一些文件只有读取没有写入权限。 3、依赖配置问题 系统环境配置问题

    2024年02月09日
    浏览(56)
  • CAN总线学习笔记 | CAN基础知识介绍

    1.1 CAN协议简介 CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。差异点如下: 1.2 CAN物理层 CAN 通讯不是以时钟信号来进行同步的,它

    2023年04月09日
    浏览(48)
  • 一文搞懂CAN和CAN FD总线协议

    1、CAN是什么 控制器 局域网总线(CAN,Controller Area Netw or k)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输 信号 ,是世界上应用最广泛的现场总线之一。 CAN协议用于汽车中各种不同元件之间的 通信 ,以此取代昂贵而笨重的配电线束。 该协议的健壮性使

    2024年02月10日
    浏览(44)
  • CAN总线通讯协议学习

    s目录 CAN(controller Area Network) 控制器局域网 CAN通讯 CAN总线的数据帧 解析         CAN总线应用最多的是汽车领域,这里的控制器在汽车领域的专业术语是ECU.(electronic control unit)电子控制单元。可以看成一个超小型的计算机,内部集成了供电系统,单片机,驱动系统,是汽车领

    2024年02月05日
    浏览(35)
  • CAN总线详细介绍

    介绍CAN总线的特点,协议的组成结构 CAN,全称为“Controller Area Network”,即控制器局域网,是一种串行异步数据通信协议。 CAN 最初出现在 80 年代末的汽车工业中,由德国 Bosch 公司最先提出。当时,提出 CAN 总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包