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

  文章转载链接www.51testing.com/html/63/n-7...

  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. 产生原因

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

相关推荐
ckjoker1 天前
让AI给AI当法官:手敲LLM-as-a-Judge评估系统,25次调用跑出最弱维度
llm·agent·测试
程序员天天困3 天前
JaCoCo 代码覆盖率:Spring Boot 集成与报告解读
单元测试·测试
一孤程4 天前
Airtest自动化测试第五篇:小程序与Web测试——跨平台自动化全覆盖
前端·自动化测试·小程序·自动化·测试·airtest
一孤程4 天前
PerfDog性能测试实战——从入门到性能优化全覆盖
性能优化·性能测试·测试·perfdog
用户125758524364 天前
Go 里读取 request body 后,下游拿不到参数:别让日志中间件把请求吃掉
http·go·测试
ClouGence5 天前
零代码自动化测试工具回演 CueCast 新版本发布:数据变量、多标签页录制与登录准备能力上线
selenium·测试
MegatronKing5 天前
AI时代我们要如何玩抓包测试
前端·后端·测试
Apifox6 天前
让 AI Agent 稳定使用 Apifox:新版 CLI + Skill 正式上线!
ai编程·测试·命令行
刘棕霆7 天前
32—AI Skill 测评不是“跑一下”:从环境预检到 PASS 门禁的完整作战图
aigc·ai编程·测试