当前位置: 首页 > news >正文

CAN总线常见的错误帧及产生原因

文章目录

  • 一、位错误(Bit Error)
    • 1. 表现形式
    • 2. 产生原因
  • 二、填充错误(Stuff Error)
    • 1. 表现形式
    • 2. 产生原因
  • 三、CRC 错误(CRC Error)
    • 1. 表现形式
    • 2. 产生原因
  • 四、格式错误(Form Error)
    • 1. 表现形式
    • 2. 产生原因
  • 五、应答错误(ACK Error)
    • 1. 表现形式
    • 2. 产生原因
  • 六、超时错误(Timeout Error)
    • 1. 表现形式
    • 2. 产生原因

CAN(Controller Area Network)总线是一种广泛应用于汽车、工业自动化等领域的串行通信协议。在 CAN 总线通信过程中,可能会出现多种错误帧,本文介绍常见的几种

一、位错误(Bit Error)

1. 表现形式

节点在发送某一位时,期望总线上出现与自己发送相同的电平,但实际监测到的电平与发送的电平不一致。
例如,节点发送一个显性位(逻辑 0),但在总线上检测到隐性位(逻辑 1)。

2. 产生原因

这可能是由于电磁干扰、线路故障、收发器故障等原因导致信号在传输过程中发生畸变。

二、填充错误(Stuff Error)

1. 表现形式

CAN 总线采用位填充技术,即当连续出现 5 个相同极性的位后,发送节点会自动插入一个相反极性的位。
如果接收节点在接收数据时,发现连续出现 6 个相同极性的位而没有插入填充位,或者填充位的极性错误,就会检测到填充错误。

2. 产生原因

这通常是由于发送节点的位填充逻辑出现故障或者数据传输过程中的干扰导致填充位丢失或极性改变。

  • 或者 未接收到报文
    在这里插入图片描述
  • 或者 接收节点波特率配置错误
    在这里插入图片描述

三、CRC 错误(CRC Error)

1. 表现形式

CAN 帧中包含一个 CRC 序列,用于检测数据在传输过程中是否发生错误。
发送节点根据帧的内容计算出一个 CRC 值,并将其附加在帧的后面。接收节点在接收到帧后,会根据接收到的帧内容重新计算 CRC 值,并与接收到的 CRC 序列进行比较。如果两者不相等,则认为出现 CRC 错误。

2. 产生原因

这可能是由于数据在传输过程中受到干扰,导致部分位发生改变,从而使计算出的 CRC 值与接收到的 CRC 序列不一致。

四、格式错误(Form Error)

1. 表现形式

CAN 帧有特定的格式,包括帧起始、仲裁场、控制场、数据场、CRC 场、应答场和帧结束等部分。
如果接收节点在接收帧时,检测到某个场的格式不符合规定,例如帧结束位不是隐性位,或者应答场的格式错误等,就会检测到格式错误。

2. 产生原因

这可能是由于发送节点的帧格式生成逻辑出现故障或者数据传输过程中的干扰导致帧格式被破坏。

五、应答错误(ACK Error)

1. 表现形式

在 CAN 总线通信中,当接收节点正确接收到一个有效的帧后,会在应答场中发送一个显性位作为应答信号。
发送节点在发送完帧后,会在应答场中监测是否接收到应答信号。如果发送节点在应答场中没有检测到显性位,即没有接收到应答信号,则认为出现应答错误。

2. 产生原因

这可能是由于接收节点没有正确接收到帧,或者接收节点出现故障无法发送应答信号,也可能是应答信号在传输过程中受到干扰而丢失。

六、超时错误(Timeout Error)

1. 表现形式

当发送节点在规定的时间内没有收到接收节点的应答信号,或者接收节点在规定的时间内没有接收到数据帧,就会产生超时错误。

2. 产生原因

这通常是由于网络负载过重、节点故障或者是通信线路故障等原因导致的。

相关文章:

  • 23种设计模式 - 桥接模式
  • Excel核心函数VLOOKUP全解析:从入门到精通
  • 【第四届网络安全、人工智能与数字经济国际学术会议(CSAIDE 2025】网络安全,人工智能,数字经济的研究
  • LeetCode--236. 二叉树的最近公共祖先
  • jetbrains IDEA集成大语言模型
  • java练习(32)
  • [Qt] 使用QUndoStack运行到cmd->isObsolete()崩溃
  • 【Axure 模版素材】数据可视化驾驶舱+图表素材 - AxureMost
  • numpy(02 数据类型和数据类型转换)
  • “深入浅出”系列之C++:(22)asio库
  • 服务器部署基于Deepseek的检索增强知识库
  • 嵌入式硬件篇---常用的汇编语言指令
  • Mini-Omni2
  • java防抖,防止表单重复提交,aop注解形式
  • deepseek帮我设计物理量采集单片机口保护电路方案
  • 什么是Baklib云内容中台?
  • chrome V3插件开发,调用 chrome.action.setIcon,提示路径找不到
  • 操作系统2.4
  • 虚拟环境下Python调用C++开发的dll如何联调?一文解答!(Python开发环境PyCharm,C++开发环境Visual Studio)
  • Python JSON的深度解析:从基础到应用
  • 2025财政观察|长三角“三公”经费普降,钱要用在刀刃上
  • 习近平会见智利总统博里奇
  • 国台办:实现祖国完全统一是大势所趋、大义所在、民心所向
  • 民生谣言误导认知,多方联动守护清朗——中国互联网联合辟谣平台2025年4月辟谣榜综述
  • 菲律宾举行中期选举
  • 深入贯彻中央八项规定精神学习教育中央指导组完成进驻