CAN通信讲解(3)——错误据帧

6 篇文章 12 订阅
订阅专栏

本文注意参考了《CAN入门书》,源于此书图片不再特殊标注

目录

  • 3.1 总线错误的种类
    • 3.1.1 位错误
    • 3.1.2 ACK错误
    • 3.1.3 填充错误
    • 3.1.4 CRC错误
    • 3.1.5 格式错误
  • 3.2 错误帧结构
  • 3.3 错误状态
    • 3.3.1 主动错误状态
    • 3.3.2 被动错误状态
    • 3.3.3 BUSOFF状态
  • 3.4 错误帧的发送时机
  • 3.5 小结

错误帧内容比较多,单独一讲

3.1 总线错误的种类

一共5种:

  1. 位错误
  2. ACK错误
  3. 填充错误
  4. CRC错误
  5. 格式错误

3.1.1 位错误

根据 第二节介绍的 回读机制 节点发送自己电平的同时也会回读总线上的实际电平,如果不同,则记一个位错误,有三种情况除外:

  • 仲裁时检测到电平不同
  • ACK槽检测到电平不同
  • 该节点发送被动错误标志

前两点好理解,不理解的同学复习 第二节 ,第三种先挖个坑,后面来填。

3.1.2 ACK错误

当节点发出报文后,回读ACK槽电平没有检测到显示位,则表明总线上没有节点接收到此报文,本节点就会记一个ACK应答错误

3.1.3 填充错误

先讲解一个知识点 位填充原则

CAN总线没有CLOCK时钟线,收发两方就需要统一波特率,即使这样由于两方晶振误差、传输误差、计量误差等因素还是会可能造成时钟计算的偏移,这就需要利用数据显性、隐性边沿变化不同的进行时钟校准,用于保证采样准确,上述校准有个缺陷,如果出现连续较长的单一电平,比如一直发隐性1,则无法根据边沿进行时钟校准,为解决这个问题,CAN协议规定,当记性相同的电平连续出现5次时,则后面强制插入一个极性相反的位,作用域是SOF~CRC(不包括CRC界定符)

在这里插入图片描述
图片源自

  • 对于发送方,如果出现连续5位同性电平,则下一位强行插入一个相反电平,再继续发送后面数据,需要注意新插入的一位也参与是否连续电平的计数
  • 对于接收方,如果出现连续5位同性电平,则删除下一位,再继续发送后面数据,需要注意删除位参与后面是否连续电平的计数

回到填充错误,如果在SOF~CRC帧段检测到6个及以上同极性电平位,则记一个填充错误。

3.1.4 CRC错误

如果接收方在SOF~DATA帧段主动计算的CRC值和发送方发送的CRC段值不同,则记一个填充错误。

3.1.5 格式错误

如果接收方在各段检测到了不符合协议非法值,则记一个格式错误。

非法值包括:

  • CRC界定符、ACK界定符、EOF
  • 错误帧界定符
  • 过载帧界定符

3.2 错误帧结构

错误帧的发出有两种情况:

  1. (被动发出)总线出现上述5种错误,其他节点检测到了,会立马发出错误帧,理论上所有节点都会同时发出错误帧
  2. (主动发出)发送节点数据发一半想丢弃刚发的数据也会发错误帧

在这里插入图片描述
图片源自
错误帧是由错误标志位错误界定符组成,错误标志有两种:主动错误标志(6个连续显性位)和被动错误标志(6个连续隐性位),节点处于主动错误状态时(TEC≤127 & REC≤127)发送的错误帧是带主动错误标志,处于被动错误状态时发送错误帧带被动错误标志,节点错误状态后面回介绍,错误界定符是由8个连续隐性位构成。

在这里插入图片描述
图片源自

错误标志重叠:对于错误帧的发出情况1不会有错误标志重叠,对于情况2,发送节点Q主动发出错误帧后,连续六个同极性电平会违法“位填充原则”导致其他节点在节点Q发完错误标志位后立马发出自己的错误帧,而其他节点错误帧中如果有主动错误标志,就会造成显性错误标志位不止6位,最大可以达12位的情况,然后大家一起再发送8位的错误界定符。

3.3 错误状态

错误状态分为3种,且满足特定条件后可转换状态:

  • 主动错误状态
  • 被动错误状态
  • BUSOFF状态

任何节点状态都处于上述3种之一,哪怕从来没出错的节点也是处于主动错误状态,CAN节点错误状态转换是基于发送错误计数器TEC和接收错误计数器REC进行的
在这里插入图片描述 图片源自

.计数器具体技计数规则如下
在这里插入图片描述 图片源自

3.3.1 主动错误状态

当TEC ≤ 127 and REC ≤ 127时,节点处于主动错误状态,此状态下发送的错误帧的含6个显性位的主动错误标志,主动状态下的节点发送的错误帧会破坏总线数据,通知其他节点,也说明这个节点是可靠的。

3.3.2 被动错误状态

当TEC > 127 or REC > 127时,节点处于被动错误状态,此状态下发送的错误帧的含6个隐性位的被动错误标志,被动状态下的节点发送的错误帧不会破坏总线数据,不影响其他节点活动,也说明这个节点是不可靠的。

3.3.3 BUSOFF状态

当发送节点发送数据始终无法成功,TEC > 255时,该节点就会切换到BUSOFF状态,总线关闭不再收发任何报文,也不影响总线其他节点收发数据,处于离线状态,当检测到128次总线空闲(11个连续隐性位)时,TEC和REC置0,回到主动错误状态。

3.4 错误帧的发送时机

节点检测到错误会在错误产生的下一个位发出错误帧,但CRC错误除外,要的等ACK界定符发出后再发错误帧

需要注意的是,被动错误状态下的发送节点是不可靠节点,如果主动发出被动错误标志的错误帧,6个连续隐性电平后,其他节点就知道这个节点有问题,他们就会做好总线竞争的准备,而这个发送节点需要在发送完错误帧后,发送一个被动错误状态下特有的帧间隔(下节会讲),这个帧间隔除了正常的3个连续隐性位,后会追加8个连续隐性位,作为延迟传送段,这样就会产生连续11个隐性位造成总线空闲,其他节点就可以参与竞争了。

3.5 小结

错误帧一直是比较绕,但始终绕不过去的那个点,工作中遇到的涉及的采样点,busoff, 都和它相关,希望大家耐心啃下来。

>>返回总目录

CAN通信程序错误处理
08-18
文章简单介绍了CAN通信程序中的错误处理
来自示波器的升维打击:CAN、CAN-FD 错误 Bus-Off 排查 定位
木牛的博客
12-02 512
CAN的BusOff源于错误的积累,而错误这个东西,是一个接收节点 认为数据有误 故意打断通信,好让发送节点感知到 并重发报文的设计。注意这里边有个“我觉得你有病”的认知陷阱,让CAN的诊断变得近似玄学。本文分享一种用从 CAN波形的幅度和脉宽信息 来精确定位错误来源的方法,可能是首创,哪里没讲明白欢迎反馈。我们先从基础的讲起,后边会用得到。CAN节点的电路一般如下图所示,MCU内置了用来将MCU的数据封装为CAN格式,同时它也负责CAN的校验和错误的处理。
can test 接收报文_总线架构30讲,啥是CAN错误?真的那么烦人吗?(1/5)
weixin_39866774的博客
12-30 1448
所谓错误,就是总线出错了。什么是错误呢?为什么会产生错误呢?出现错误该怎么办呢?我们通过5篇文章来讲清楚这个问题~01错误结构在发送和接收报文时,总线上的节点如果检测出了错误,那么该节点就会发送错误,通知总线上的节点,自己出错了。错误错误标志和错误界定符两个部分组成。主动错误标志:6个连续的显性位;被动错误标志:6个连续的隐性位;错误界定符:8个连续的隐性位。可以看到...
一篇易懂的CAN错误指南
最新发布
木牛的博客
04-18 345
本文来自于本人公众号的几篇文章的合集,CAN类型中,错误可能会经常听到,但又非常陌生。就我做多年软件开发经历,看到过位填充错误,但也没有去分析或解决过错误的案例。如果提到Bus off,通讯丢失,E2E之类的,那大多数人都有所耳闻了,为什么会这样呢?这是因为错误属于很基础的知识点了,如果对这个基础知识有兴趣,继续下文。
详解CAN总线:CAN总线报文格式—错误
热门推荐
不脱发的程序猿
09-28 1万+
错误错误标志(Error Flag)和错误界定符(Error Delimiter)组成。
转载:CAN总线错误详解
weixin_47454783的博客
11-10 3873
转载:CAN总线错误详解
CAN的错误计数器
weixin_45728035的博客
01-23 3978
1、在接收过程中发现一个错误,接收错误计数器加1 例外:在错误Flag或过载Flag发送过程中的位错误不计数 2、当接收节点发现错误Flag之后的第一个位为显性位,接收错误计数器加8 3、当一个发送节点发送一个错误发送错误计数器加8 例外1:如果发送节点为被动错误状态,则当起没有检测到显性应答或发送错误时没有 检测到显性位 例外2:如果发送节点发送错误是由于在仲裁过程中发生了位填充错误(这个填充位在 RTR位之前,应该为隐性。这个填充位的确是被当作隐性发送出去的,但是通过对总线的检测发现 是显
3 CAN错误、过载间隔
八度空间
05-05 3112
三种的格式远比数据简单,但它背后的机制比较复杂,需要重点掌握
CAN总线通信之详解数据
01-03
CAN总线通信的详解数据,详细介绍了Can 通信数据的格式和内容定义
can 远程错误详解
09-07
can 总线的远程 错误详解,主要摘取网上的资源整理的。
CAN总线的远程、错误的作用!
07-21
本文章是关于CAN总线的远程、错误的作用!
STM32(HAL)——CAN通信
01-06
​ ∘\circ∘ CAN控制器是各个连接到总线上的设备的控制器,一般需要配备一个CAN收发器(比如咱们战队码盘上的CAN收发器用的是TJA1050),用于将CAN控制器的二进制码流转换为CAN总线的差分电平,在两条有差
CAN总线基础知识(4)——CAN的错误
weixin_43147243的博客
12-11 7570
什么是错误? 用于接收到单元向具有相同ID的发送的单元请求数据的
关于CAN报文中ACK应答错误的检测原理
weixin_38535507的博客
06-04 5325
CAN协议里对ACK(应答场)有如下的描述: 应答场长度为2个位,包含应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)。在应答场里,发送发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK SLOT)期间(发送ACK信号)向发送发送一“显性”的位以示应答。 应答间隙:所有接收到匹配CRC序列(CRC SEQUENCE)的站会在应答间隙(AC...
科普系列:CAN总线错误及排查方法简介:错误的基础知识 | 错误的作用 | 错误类型 | 错误的类型 | 实车上出现错误的主要原因 | 错误的排查方法示例
Polelink北汇信息的博客
02-16 4485
CAN有多种格式,错误作为CAN中独特的一种,了解其作用,类型与产生原因,对于进行测试以及开发有很大的帮助,本文将对错误的相关基础知识以及后续的分析排查进行介绍。
一文详解CAN总线错误
weixin_48120109的博客
01-23 606
在这一状态下,节点Node_A检测到一个错误就会发送带有被动错误标志的错误,因为被动错误标志是连续六个隐性位,所以这个时候总线上正在传输的报文位流不会受到该被动错误的影响,其它的节点该发送发送,该接收的接收,没人搭理这个发送被动错误的节点Node_A。在这一状态下,节点检测到一个错误就会发送带有主动错误标志的错误,因为主动错误标志是连续六个显性位,所以这个时候主动错误标志将会“覆盖”掉总线上其它节点的发送,而之前在CAN总线上传输的报文就被这“六个连续显性位”破坏掉了。
虹科分享 | 带你全面了解“CAN总线错误”(四)——在实践中生产和记录CAN错误
工业通讯__HongKe的博客
07-13 957
在之前发布的文章中,我们介绍了CAN错误错误处理的理论基础,而在本篇文章中,我们将在实践中生成和记录错误。测试过程中将使用到虹科的CANedge数据记录仪和PCAN-USB设备。
CAN总线【3】--CAN协议错误
weixin_44081256的博客
07-11 2718
CAN总线【3】--CAN协议错误
can总线通信协议错误
09-04
CAN总线通信协议错误是指在CAN总线通信中发生了一些问题或错误导致数据传输出现异常的情况。错误可以分为以下几种类型: 1. 误码(Error Frame):当总线上的任一节点检测到总线上出现了错误时,会发送一个误码给其他节点,来通知它们发生了错误。 2. 传输错误(Transmission Error Frame):当一个或多个CAN节点尝试发送数据时,如果在总线中发生了传输错误,例如位错误、标识符错误或CRC校验错误等,就会发送传输错误。 3. 硬件错误(Hardware Error Frame):当CAN控制器发现硬件故障或错误时,会发送硬件错误来通知其他节点,同时也会主动使整个系统进入总线离线状态,以防止错误数据的传输。 4. 重传错误(Retry Error Frame):当发送节点在传输数据时,如果在规定的重传次数内未能成功发送,就会发送重传错误。这种错误通常会引发其他节点对数据的重传,以保证数据的正确传输。 5. 格式错误(Format Error Frame):当节点在接收数据时,如果发现数据的格式不符合当前总线通信协议的规范,例如格式错误类型错误等,就会发送格式错误来通知发送节点。 总的来说,CAN总线通信协议错误的出现意味着通信中出现了异常情况,可能是硬件故障、传输错误、格式不正确等原因导致的数据传输异常。及时检测和处理错误对于确保CAN总线通信的稳定性和可靠性非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • IIC 关于时钟拉伸问题 clock stretch 27549
  • ISO 26262 ASIL安全等级,怎样划分和分解【转】 16504
  • Python代码转换为exe可执行程序详解【转】 13508
  • OSEK网络管理入门 12946
  • 字节序(byte order)、比特序(bit order)、MSB/LSB、大端模式/小端模式 概念误混淆 9218

分类专栏

  • XCP 9篇
  • CAN 6篇
  • AUTOSAR 1篇
  • Miscellaneous
  • Python 9篇

最新评论

  • XCP详解「3.5·CANape中DAQ模式」

    qq_45854658: 博主,timeuint设置和Xcp的周期有关系吗,比如Xcpmainfunction周期是10ms,我那个unit设置成1ms是不是没啥用

  • CAN通信讲解(4)——过载帧、帧间隔

    cry-newbie: 总线空闲的11位隐性位,包含EOF和错误/过载 帧的界定符吗?

  • XCP详解「3.1·ASAP2新建A2L文件」

    python_qq: 请教博主, 我看好多文章介绍A2L文件结构,包含 /begin HEADER /end HEADER /begin A2ML /end A2ML /begin MOD_PAR /end MOD_PAR /begin MOD_COMMON /end MOD_COMMON /begin CHARACTERISTIC /end CHARACTERISTIC /begin MEASUREMENT /end MEASUREMENT/ …… 不知道用ASAP2 这个工具生成的A2L符合这个结构吗?

  • OSEK网络管理入门

    BYM0929: 直接网络管理ECU能被应用报文唤醒吗?

  • CAN通信讲解(2)——数据帧和遥控帧

    m0_65666981: SRR的注释是不是写错了,应恒为显性0,扩展时让RTR后移

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • XCP详解「4.2·问题-加载信号过多导致FIFO buffer overflow」
  • XCP详解「3.6·DaVinci中XCP配置」
  • XCP详解「4.1·问题-polling有效,DAQ无效」
2023年9篇
2022年5篇
2021年2篇
2020年5篇
2019年14篇
2018年19篇
2017年3篇
2016年9篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司茂名品牌网站设计公司普洱网站制作设计哪家好辽源SEO按天扣费多少钱辽源网站推广工具价格宿州SEO按天扣费价格连云港外贸网站设计多少钱池州百度竞价包年推广推荐廊坊网页设计定西外贸网站设计公司娄底网站优化软件多少钱大芬建网站多少钱南宁网站优化按天计费淮南关键词排名包年推广推荐日照网站改版价格西宁SEO按效果付费价格北海网络营销报价广元百度网站优化排名金华网站排名优化推荐临沧优化价格飞来峡百度爱采购哪家好濮阳SEO按天扣费广元建网站新乡网站定制价格通化网站优化排名哪家好十堰网站优化推广报价淄博营销网站湛江推广网站报价珠海网络营销推荐温州网站设计哪家好宿迁阿里店铺托管报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化