CAN的错误帧很详细

admin 2026-04-21 01:33:51 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档详细解析CAN总线错误帧机制,涵盖五种错误类型(位错误、位填充错误、形式错误、ACK错误、CRC错误)的触发条件与检测逻辑,并阐述节点三种状态(主动错误、被动错误、Busoff)的转换规则及TEC/REC计数器增减策略(如主动错误+8、被动错误+1),为汽车网络故障诊断提供技术依据。 综合评分: 78 文章分类: 车联网安全,技术标准,解决方案


cover_image

CAN 的错误帧 很详细

谈思实验室

2026年4月19日 18:01 上海

在小说阅读器读本章

去阅读

以下文章来源于汽车与基础软件 ,作者汽车与基础软件

汽车与基础软件 .

给我两年 不改变点 汽车行业的学习环境,自己注销账号,

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

01

帧物理层

1.1 显性与隐形

02

错误帧的类型

错误帧的类型有

1Bit Error [Transmitter]

CAN 总线上的每个 CAN 节点都会随时监控信号电平,这意味着发送 CAN 节点也会 “回读 ”其发送的每个比特。如果发送器读取的数据位电平与其传输的数据位电平不同,则发送器会将其检测为位错误。

如果比特不匹配发生在仲裁过程中(即发送 CAN ID 时),则不会被解释为比特错误。同样,确认时隙(ACK 字段)中的不匹配也不会导致比特错误,因为 ACK 字段特别要求发送器的隐性比特被接收器的显性比特覆盖。

1Bit Stuffing Error [Receiver]

如前所述,位填充是 CAN 标准的一部分。它规定,在每 5 个连续的相同逻辑级别的比特之后,第 6 个比特必须是补码。这是通过提供上升沿来确保网络持续同步的要求。此外,它还能确保比特流不会被误解为错误帧或标志报文结束的帧间空间(7 位隐性序列)。所有 CAN 节点都会自动删除多余的比特。

如果在 CAN 报文的总线上(在 SOF 和 CRC 字段之间)发现 6 个逻辑级别相同的比特序列,接收器会将其检测为比特填充错误(又称填充错误)。

1Form Error [Receiver]

这种报文级检查利用了 CAN 报文中某些字段/比特必须始终处于特定逻辑级别这一事实。具体来说,1 位 SOF 必须是显性的,而整个 8 位 EOF 字段必须是隐性的。此外,ACK 和 CRC 定界符必须是隐性的。如果接收器发现其中任何一个比特的逻辑电平无效,接收器就会将其检测为形式错误。

1ACK Error (Acknowledgement) [Transmitter]

当发送器发送 CAN 报文时,报文将包含 ACK 字段(确认),其中发送器将发送一个隐位。所有监听的 CAN 节点都要在该字段中发送一个显性位,以验证是否收到报文(无论节点是否需要这个报文,所以这个ack变成显性,和软件本身没有关系)。如果发送机在 ACK 时隙中没有读到显性位,则发送机会将其检测为 ACK 错误。

1CRC Error (Cyclic Redundancy Check) [Receiver]

每个 CAN 报文都包含一个 15 位的循环冗余校验和字段。在这里,发送器计算出 CRC 值并将其添加到报文中。每个接收节点也会自行计算 CRC。如果接收器的 CRC 计算结果与发送器的 CRC 不一致,接收器就会将其检测为 CRC 错误。

03

节点状态与 TEC,  REC

3.1 CAN节点状态

1主动错误状态

每一个节点的默认状态,其实就是主动错误状态,这并不是错误状态,而是你现在还有能力去主动上报错误的状态。大家要知道,主动上报错误,实际上是需要干扰到总线发报文的。

1被动错误状态

当REC 或者是 TEC 到达了一定的数量后,就会进入被动错误状态,注意这个被动错误状态,也不代表你真的就有故障,这只是说,你上报故障的电平就需要改变了,你往外发报文的时机就有限制了,因为这时候你有问题嫌疑,尽量不要影响总线。

1Busoff 状态

完犊子了,这时候你确诊了,真的有问题,那么进入busoff状态,把自己隔离开,不要收,也不要发,影响总线。

3.2 Counter 增加与减少

这三个状态,的counter 到底是如何增加减少的呢? 为什么有时候 +8, 有时候 +1, 有时候 -1 呢。

故障标识,分为主要故障,和次要故障(我不知道这里我命名的合适不合适,不过不重要了)。主要的目的是区分开,节点真正的识别到了总线的错误,和别人通知的错误,我们只是收到了而已,所以也可以理解为,我发现了问题,和别人给我说有问题。这里counter的不同点就是+8 还是 +1。

3.2.1 TEC +8

举个例子 当发送节点,发送bit为隐形,但是回读到的是显性,那么这个发送节点就应该把自己的TEC +8, 当然还要主动通知一下总线,我好像不对劲了,发6个连续的显性位.

3.2.2 REC +1

这时候接收节点收到了连续6个节点的显性位,就知道,哦当前总线可能不对劲,那么我们自己的REC +1。所以这样的事件,对于接收节点为 次要故障。

3.2.3 REC +8

如果接收节点收到的报文,发现E2E不对了,帧错误了,那完了,是不是我要不行了,怎么收到不对的内容了,这时候我要给自己的REC +8。

3.2.4 TEC -1

当发送节点,完全发送正常 则给自己的TEC -1

3.2.5 REC -1

当接收节点,完全接收正常 则给自己的REC -1

end

谈思汽车媒体门户

精品活动推荐

AutoSec系列沙龙

专业社群

部分入群专家来自:

新势力车企:

特斯拉、理想、极氪、小米、零跑汽车、阿维塔汽车、智己汽车、小鹏、岚图汽车、蔚来汽车、吉祥汽车、赛力斯……

外资传统主流车企代表:

大众中国、大众酷翼、奥迪汽车、宝马、福特、戴姆勒-奔驰、通用、保时捷、沃尔沃、现代汽车、日产汽车、捷豹路虎、斯堪尼亚……

内资传统主流车企:

吉利汽车、上汽乘用车、长城汽车、上汽大众、长安汽车、北京汽车、东风汽车、广汽、比亚迪、一汽集团、一汽解放、东风商用、上汽商用……

全球领先一级供应商:

博世、大陆集团、联合汽车电子、安波福、采埃孚、科世达、舍弗勒、霍尼韦尔、大疆、日立、哈曼、华为、百度、联想、联发科、普瑞均胜、德赛西威、蜂巢转向、均联智行、武汉光庭、星纪魅族、中车集团、潍柴集团、地平线、紫光同芯、字节跳动、……

二级供应商(500+以上):

中科数测、ETAS、BlackDuck、NXP、上海软件中心、Deloitte、奇安信、为辰信安、云驰未来、信长城、泽鹿安全、纽创信安、复旦微电子、天融信、奇虎360、中汽中心、中国汽研、上海汽检、加特兰微电子、浙江大学……

人员占比

公司类型占比

文章

不要错过哦,这可能是汽车网络安全产业最大的专属社区!

关于涉嫌仿冒AutoSec会议品牌的律师声明

一文带你了解智能汽车车载网络通信安全架构

网络安全:TARA方法、工具与案例

汽车数据安全合规重点分析

浅析汽车芯片信息安全之安全启动

域集中式架构的汽车车载通信安全方案探究

系统安全架构之车辆网络安全架构

车联网中的隐私保护问题

智能网联汽车网络安全技术研究

AUTOSAR 信息安全框架和关键技术分析

AUTOSAR 信息安全机制有哪些?

信息安全的底层机制

汽车网络安全

Autosar硬件安全模块HSM的使用

首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:谈思实验室 《CAN 的错误帧 很详细》

CAN的错误帧很详细 网络安全文章

CAN的错误帧很详细

文章总结: 该文档详细解析CAN总线错误帧机制,涵盖五种错误类型(位错误、位填充错误、形式错误、ACK错误、CRC错误)的触发条件与检测逻辑,并阐述节点三种状态
评论:0   参与:  0