您的位置:首页 > 教育 > 锐评 > 什么情况会导致CAN错误帧?

什么情况会导致CAN错误帧?

2025/6/9 21:20:31 来源:https://blog.csdn.net/baobingji/article/details/139253544  浏览:    关键词:什么情况会导致CAN错误帧?

在我们使用CAN通信的时候,难免会因为各种各样的情况遇到错误帧,那到底什么情况会导致错误帧呢?

首先我们回忆一下哪些情况会导致错误帧。

1.CRC校验错误。为了增加通信的准确性, 保证发送节点发出的数据等于接收节点接收到的数据, CAN数据帧中加入了CRC校验功能, 即发送节点对数据帧中起始段、 仲裁段、 控制端和数据段中的数据通过某种算法计算得到一个CRC值, 并将该值填入CRC段中 (CRC段由15个bit位的数值段和1个bit位的界定符组成, CAN控制器计算的CRC值就存在前15个bit位的数值段中), 然后向总线上发送, 接收节点收到数据后, 会对同样数据段的数据以同样的算法进行CRC计算, 并将计算结果与数据帧中的CRC值进行比对, 当接收节点计算得到的CRC值与发送节点发送的CRC值不一致时会发生CRC校验错误,并由接收节点向总线发送CRC校验错误帧, 该功能由CAN控制器自动完成。

2.格式错误。如果总线上传输的数据帧格式与协议规定的帧格式不符合, 就会发生格式错误。比如, 在数据帧和远程帧中的CRC段、 ACK段和帧结束段EOF, 存在1个bit位的CRC界定符、 1个bit位的ACK界定符和7个bit位的帧结束符, 它们均被定义为隐性电平, 如图2所示, 若在这些位置上出现显性电平, 则视为一种格式错误, 接收节点和发送节点都可能向总线发送该种类型错误帧。

3.应答错误。发送节点向总线发送数据帧时, 会在ACK段发送2个隐性位, 接收节点在收到CRC序列后, 如果接收过程没有出现错误, 接收节点会在ACK段的第1位发出一个显性电平,

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com