CAN总线中的位填充(Bit Stuffing)与错误帧(Error Frame)

文章详细介绍了CAN总线的位填充机制,包括其目的和应用部分。位填充是在连续5个相同逻辑位后插入一个反相位,以避免同步问题。接着,文章阐述了错误帧的结构,包括主动错误标志和被动错误标志,并通过实例说明了不同长度的错误标志情况。最后,讨论了CAN错误检测的五种类型及错误计数器在不同节点状态转换中的作用,如主动错误、被动错误和总线关闭状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文档

以下是本文使用到的参考文档:

在介绍本文之前,有些基础知识需要先知道。

0.1 关于显性(dominant)和隐性(recessive)

CAN总线是双绞线,传输数据时,根据两根电缆之间的电压差进行传输,也称为差分传输 ,通过双绞线连接配合差分传输方式能够有效地抑制共模干扰。

  • 在没有数据传输时,两条线的电压相同,为隐性信号,逻辑信号为1
  • 一旦有数据进行传输,两条线就会出现电压不同的情况,从而产生电压差,CAN总线就会表现为显性信号,逻辑信号为0

本文中所有的图中,逻辑0在y轴的0位置上, 逻辑1在y轴的1位置上, 这符合CAN标准中的绘图规则。

其他参考: https://zhuanlan.zhihu.com/p/447088312

一、 位填充(Bit Stuffing)介绍

在了解CAN总线中的错误帧之前,首先需要了解什么是位填充(Bit Stuffing) , 这是一项非常重要的技术。

1.1 什么是位填充(Bit Stuffing)

一句话概括: 当CAN节点发送 逻辑电平(显性dominant或隐性recessive)相同的五bit时,它必须发送一bit相反电平。 CAN接收 节点会自动删除这个新增的额外bit。

下面用图解释什么是位填充(Bit Stuffing):

请添加图片描述

这个图的说明:

  1. 上半部分是发送节点原本需要发送的内容,下半部分是加上位填充(Bit Stuffing) 后在CAN网络中真实的CAN报文。
  2. 下图中红色的【S】表示的这是一个填充位(Stuffing Bit) , 填充位必然和前面的bit位逻辑相反

1.2 位填充(Bit Stuffing)作用在CAN帧的哪些部分

在CAN标准的“BIT STREAM CODING”章节中规定了需要填充的部分 :

The frame segments START OF FRAME, ARBITRATION FIELD, CONTROL FIELD, DATA FIELD and CRC SEQUENCE are coded by the method of bit stuffing. Whenever a transmitter detects five consecutive bits of identical value in the bit stream to be transmitted it automatically inserts a complementary bit in the actual transmitted bit stream.

翻译后:

帧段START OF frame(帧起始)ARBITRATION FIELD(仲裁段)CONTROL FIELD(控制段)、DATA FIELD(数据段)CRC SEQUENCE(CRC段) 通过比特填充(Bit Stuffing)的方法进行编码。每当发射端在要发送的比特流中检测到具有相同值的五个连续比特时,它自动在实际发送的比特中插入互补比特。

在CAN标准的“BIT STREAM CODING”章节中规定的**不进行填充的部分 ** :

The remaining bit fields of the DATA FRAME or REMOTE FRAME (CRC DELIMITER, ACK FIELD, and END OF FRAME) are of fixed form and not stuffed. The ERROR FRAME and the OVERLOAD FRAME are of fixed form as well and not coded by the method of bit stuffing.

翻译后:

数据帧或远程帧的剩余位字段【CRC DELIMITER(CRC界定符)ACK FIELD(ACK段)END of FRAME(帧结束)<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值