CAN总线错误处理看这里就对了!
时间:2023-06-22 10:04:47来源:面包芯语

CAN协议具有检测错误的能力。但是如果发生错误,它无法纠正错误。因此,如果发生错误,检测到的节点或ECU将向CAN网络发送错误帧。与之相对应的CAN 2.0 总线协议定义参与通信的CAN节点错误类型如下:

如果在使用位填充编码的位流中,出现了第六个连续相同的位电平,将检测到一个位填充错误;


(资料图)

当一个固定形式的位场含有一个或多个非法位时,将检测到一个形式错误;

在应答间隙(ACK SLOT)所监视的位不为“显性”,则会检测到一个应答错误;

如果接收器的CRC结果和发送器的CRC结果不同,将检测到一个CRC错误。

2 CAN总线错误处理机制

每个CAN控制器都有自己的CAN总线错误处理程序。为了处理这个问题,每个CAN控制器有两个计数器寄存器(0 – 255),即:发送错误计数器 (TEC) 和接收错误计数器 (REC) 。如果5个错误中发生任何一个发生错误,它将根据错误类型增加 TEC 或 REC。Tips:一个特例:如果CAN总线上只有一个节点,该节点发送数据帧后得不到响应(ACK),其发送计数器TEC最大只能计到128,即该节点只能进入错误被动状态,而不会进入总线关闭状态,这就是为什么当您没有将任何设备连接到网络时,您的ECU将持续发送帧,但不会检测到总线关闭并保持错误被动状态。

错误计数器的递增和递减操作是不对称的。在成功传输或接收消息时,如果相应的错误计数器未为零,则相应的错误计数器将递减。在传输或接收错误的情况下,计数器将递增,但递增值大于递减值。具体错误限制管理规则如下:

a) 当接收器检测到错误时,接收错误计数器REC+ 1。例外:发送活动错误标志、过载标志期间的位错误。

b) 当接收器在发送错误标志后检测到显性位作为第一位时,接收错误计数器REC+8。

c) 当发送器发送错误标志时,发送错误计数器REC+8。

1) 例外 1:如果发送器是错误被动状态,并且由于未检测到显性 ACK 而检测到 ACK 错误,并且在发送其被动错误标志时未检测到显性位。    2) 例外 2:如果发送方因为仲裁期间发生填充错误而发送错误标志,因此,填充位应该是隐性的,并且已作为隐性发送但被监视为主导的。    在这两种例外情况下,传输错误计数器保持不变。

d) 如果发送器在发送活动错误标志或过载标志时检测到位错误,则发送错误计数器TEC+8。

e) 如果接收器在发送活动错误标志或过载标志时检测到位错误,则接收错误计数器TEC+8。

f) 在发送活动错误标志、被动错误标志或过载标志后,任何节点都应容忍最多7 个连续显性位。在检测到第14个连续显性位后(在活动错误标志或过载标志的情况下)或在被动错误标志后检测到第 8 个连续显性位之后,并且每当在出现额外的8个连续显性位序列之后,REC和TEC都需要+8。

g) 成功传输一个帧后(收到 ACK 并且没有检测到错误,直到 EOF 被检测到完成),传输错误计数器应减1,直到为0。

h) 成功接收一个帧后(接收到 ACK 时隙没有错误并且成功ACK 位的发送),接收错误计数器应减 1,如果它介于1和127。如果接收错误计数器为0,则应保持为零 (0),如果它大于127,则应将其设置为介于119和127。

3 什么是CAN协议中的故障限制

故障限制是一种检查机制,可以区分短时干扰(例如电缆的噪声耦合到传输介质)和永久性故障(例如,节点发生故障并干扰总线). CAN通信节点的状态分为暂时错误(Error active和Error Passive)和永久性故障(Bus Off);

因此,节点可能处于以下三种可能的错误状态之一:

错误活动状态。错误被动状态。错误总线关闭状态。

1. CAN协议中的错误主动状态

当CAN设备通电时,它以错误活动状态启动。处于错误活动状态的设备通常可以参与CAN通信。它还会在检测到错误时传输主动错误标志。此主动错误标志(表示主导 0 位序列)会导致当前帧传输中止,从而导致同一消息的后续重新传输。

其中两个错误计数器(TEC 和 REC)在错误活动状态下都小于 128。它完全参与总线通信,并通过传输活动错误帧来发出错误信号。这包括 6 个主导位的序列,后跟 8 个隐性位,所有其他节点都使用适当的错误标志进行响应,以响应违反位填充规则。

2. CAN协议中的错误被动状态

如果发送错误计数器或接收错误计数器大于127,CAN设备将进入错误被动状态。处于错误被动状态的设备仍然可以参与通信,但在检测到任何错误时会传输被动错误标志。此被动错误标志(隐性 1 位序列)通常不会中止其他设备(如错误主动帧)传输的帧。

此外,错误被动节点必须在消息传输后等待额外的时间(Suspend Transmission Field,ITM后的 8 个隐性位),然后才能启动新数据。

3. CAN协议中的总线关闭状态

如果CAN控制器的发送误差计数器超过255,则进入总线关闭状态。它与总线断开连接(使用内部逻辑),不再参与总线活动。简单地说,我们可以说物理上与总线连接和逻辑上断开连接。为了重新连接协议控制器,必须执行Bus Off recovery sequence。这通常涉及主机系统对CAN控制器的重新初始化和配置,之后它将等待(128 * 11)隐性位时间,然后再开始通信。

关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯

标签:

  • 上一篇文章: 西子洁能——节前小议 环球聚焦
  • 下一篇文章: 最后一页
  • 生活指南
  • 2023中石化彩云购车补加油券申领攻略(时间+平台+券面)|环球今亮点

    2023中石化彩云购车补加油券申领攻略【中国石化】申领时间2023年6月22

  • 全球关注:资金流向周报:沪指本周跌2.30% 987.97亿资金净流出

    沪指本周下跌2 30%,深成指下跌2 19%,创业板指下跌2 57%,沪深300指数

  • 突发!A股又上热搜 超4000股下跌!600亿牛股惊现百亿成交!AI跌停潮 “魔咒”又来了?

    A股又上热搜了!今日,A股整体低开低走深度调整,超4000只个股下跌,上

  • 环球视点!养老保险和社保的区别在哪?社保交满15年后医保怎么办?

    养老保险和社保的区别在哪?养老保险是社保的其中一项保险,社保除了

  • 存单挂失需要什么手续?定期存单挂失多久可取? 环球时快讯

    存单挂失需要什么手续?存单挂失只需要用户携带身份证前往银行填写挂

  • 天天观点:异构计算是什么意思?异构计算发展原因和驱动力有哪些?

    含义:1、异构计算是指不同类型的计算单元合作完成计算任务。每个计

  • 高性能、云原生湖仓一体存储架构探秘

    一、湖仓一体存储架构的演进1、存储架构的演进阶段大数据存储系统的演

  • 世界快消息!一针瘦20斤?市药监局提醒谨防这款“瘦身针”

    夏季衣着单薄,又是不少人嚷着“减肥”的季节。但千万要当心,别被假药

  • 天天快播:中国平安(02318.HK)公布,于2023年6月16日,公司注销7000.68万股已回购的A股

    投行对该股的评级以买入为主,近90天内共有9家投行给出买入评级,近90

  • 院士、专家为城市建设建言献策 海口举办高质量城市规划建设研讨会

    城市的建设发展,离不开良好的城市规划。6月16日,海口市政府主办海口

  • 鸟字旁的字行书怎么写好看_鸟字旁的字

    1、鸟字旁的字大多数是跟禽类,飞行的鸟有关。2、鸭,鸟类的一科,嘴扁

  • 阿尔巴尼亚被称为碉堡_环球热资讯

    一、阿尔巴尼亚被称为碉堡20世纪60年代-80年代,由于阿尔巴尼亚领导人

  • 斗破开局斗宗体验卡_斗破苍穹新手卡_天天速读

    1、进入点活动输入新书卡就可以了我在游窝斗破苍穹2有兴趣可以一起玩。

  • 全球快消息!浙江东南网架股份有限公司投资2亿元设立全资子公司并完成工商登记

    东南网架(002135)于6月16日发布晚间公告称,浙江东南网架股份有限公

  • 金毓庆

    1、是灰色的那版吧。2、习题册有的。3、至少我买的那版有。本文到此分

  • 死海在哪个洲(死海在哪个洲周围有什么) 世界观速讯

    1、死海在亚洲。位于以色列、约旦交界,是世界上最低的湖泊,湖面海拔

  • 民生
    • AMD(AMD.US)将投资1.35亿美元扩大爱尔兰业务

    • 王者荣耀s32赛季皮肤是谁的?王者荣耀s32赛季什么时候开始?|环球热资讯

    • 安徽黄山:龙舟竞渡新安江

    • 美团综合评分不足也能借钱吗?美团有额度借款显示评分不足怎么办?|全球今日讯