【图解CAN总线】-4-详述CANFD和Classic CAN的Frame帧结构差异

本文详细探讨了Classic CAN标准帧、扩展帧与CAN FD标准帧和扩展帧的区别,涵盖了SOF、仲裁段、控制段、数据段、CRC和ACK段的变化,以及CAN FD特有的比特率切换和更长数据传输。适合汽车电子工程师了解CAN FD技术升级。
摘要由CSDN通过智能技术生成

目录

1 Classic CAN标准帧结构

1.1 SOF

1.2 Arbitration field仲裁段

1.3 Control field控制段

1.4 Data field数据段

1.5 CRC field

1.6 ACK field

1.7 EOF

2 Classic CAN扩展帧结构

2.1 与Classic CAN标准帧结构的差异

2.1.1 Arbitration field差异

2.1.2 Control field差异

3 CANFD标准帧结构

3.1 与Classic CAN标准帧结构的差异

3.1.1 Control field差异

3.1.2 CRC field差异

3.1.3 ACK field差异

4 CANFD扩展帧结构

4.1 与Classic CAN扩展帧结构的差异

4.2 与CANFD标准帧结构的差异

5 结尾


不管是Classic CAN Frame还是CANFD Frame,其帧结构都由以下7个段组成:

—   SOF帧起始;

—   arbitration field仲裁段;

—   control field控制段;

—   data field数据段;

—   CRC field;

—   ACK field;

—   EOF.

1 Classic CAN标准帧结构

1.1 SOF

长度:1 Bit

默认显/隐性:显性

描述:

SOF(start of frame帧开始)应标记数据帧和远程帧的开始。只有当总线空闲时(总线空闲时是隐性电平),节点才发送 SOF。

1.2 Arbitration field仲裁段

长度:12 Bit。11位Base Identifier;1位RTR(remote transmission request远程发送请求);

默认显/隐性:不适用

描述:

在经典CAN标准帧(其中IDE位显性)中,标识符位应表示为ID-28到ID-18。

1.3 Control field控制段

长度:6Bit。4位DLC(data length code 数据长度码);1位IDE(identifier extension flag标识符扩展标志),1位R0

默认显/隐性:不适用

描述:

在经典CAN标准帧中,RTR和IDE位作为显性发送。

R0位作为以后的扩展保留。接收方应接收隐/显性位作为保留位R0。在指定保留位的功能之前,发送方只能发送一个显性位

1.4 Data field数据段

长度:由最多64 Bit组成。

默认显/隐性:不适用

描述:

数据的内容,一帧可发送0~8个字节的数据,MSB先发。

1.5 CRC field

长度:16 Bit。15位CRC sequence;1位CRC delimiter

默认显/隐性:不适用

描述:

1)CRC sequence

校验SOF、仲裁段、控制段、数据段,具体算法详见ISO 11898-1:2003。

2) CRC delimiter

CRC sequence后面应是由一个隐性位组成的CRC delimiter。

1.6 ACK field

长度:2 Bit。15位ACK slot;1位ACK delimiter

默认显/隐性:不适用

描述:

在ACK段中,发送方应发送两个隐性位。

1) ACK slot

所有收到匹配CRC sequence的节点都应在ACK slot内通过用显性位覆盖发送方的隐性位来发送ACK。

2) ACK delimiter

作为ACK字段的第二位的ACK delimiter应为隐性位。因此,ACK slot应被两个隐性位(CRC delimiter,ACK delimiter)包围。

1.7 EOF

长度:7 Bit。

默认显/隐性:隐性

描述:

每个数据帧和远程帧应由一个由七个隐性位组成的标志序列分隔,形成 EOF。

2 Classic CAN扩展帧结构

2.1 与Classic CAN标准帧结构的差异

2.1.1 Arbitration field差异

长度:31 Bit29位Base Identifier;1位SRR(substitute remote request替代远程请求);1位IDE(identifier extension flag标识符扩展标志)

默认显/隐性:不适用

描述:

在经典CAN扩展帧中(其中IDE位隐性),仲裁段应包括11标准标识符(ID-28 到 ID-18)、18标识符扩展(ID-17到ID-0)1SRR 和1IDE 位(两个位都是隐性)。

1)SRR位(仅限经典CAN扩展帧)

在经典CAN扩展帧中SRR位替代了经典CAN标准帧中的RTR位。发送方应仅发送隐性SRR位,但接收方应接受隐/显性SRR位。

2) IDE位

IDE位区分经典CAN标准帧(IDE位显性)和经典CAN扩展帧(IDE位隐性)。因此,需要解决经典CAN标准帧和经典CAN扩展帧的冲突,这两个帧具有相同的Base Identifier,使得经典CAN标准帧优先于经典CAN扩展帧。

2.1.2 Control field差异

长度:6Bit。4位DLC(data length code 数据长度码);1位R1;1位R0

默认显/隐性:不适用

描述:

在经典CAN扩展帧中,前两位R1和R0应保留以供将来扩展。接收方应接收所有组合中的隐性和显性位作为保留位。在指定保留位的功能之前,发送发送只能发送显性位

3 CANFD标准帧结构

CANFD标准帧格式中的位发送顺序,最多16个数据字节:

CANFD标准帧格式中的位发送顺序,20到64个数据字节:

3.1 与Classic CAN标准帧结构的差异

3.1.1 Control field差异

长度:9 Bit。4位DLC(data length code 数据长度码);1位IDE;1位FDF;1位Res;1位BRS;1位ESI;

默认显/隐性:不适用

描述:

1)FDF Bit

该位区分经典CAN帧和CANFD帧。它在CANFD帧中是隐性的,在经典CAN帧中是显性的(FDF位对应于经典CAN标准帧中的R0位和经典CAN扩展帧中的R1位。)。

2)Res Bit

在CANFD帧中,它是为协议的未来扩展保留的。Res位应以显性方式传输。

当启用CANFD的接收器检测到Res位为隐性而不是预期的显性值时,应检测到协议异常事件(这是一个实现选项,详见ISO 11898-1:2015)。

3)BRS Bit

该位指示是否在FD帧内切换比特率。如果检测到该位为隐性,则比特率应从仲裁段的标准比特率切换到数据段的预配置数据比特率单个网络中的所有CANFD帧中的BRS位不需要相同。经典CAN帧中不存在BRS位。

4)ESI Bit

该标志应由错误主动节点显性传输,并由错误被动节点隐性传输。经典CAN帧中中不存在ESI位。

5)DLC:

Frames

Data length code

Number of data bytes

DLC3

DLC2

DLC1

DLC0

Classical Frames and FD Frames

0

0

0

0

0

0

0

0

1

1

0

0

1

0

2

0

0

1

1

3

0

1

0

0

4

0

1

0

1

5

0

1

1

0

6

0

1

1

1

7

1

0

0

0

8

Classical Frames

1

0 or 1

0 or 1

0 or 1

8

FD Frames

1

0

0

1

12

1

0

1

0

16

1

0

1

1

20

1

1

0

0

24

1

1

0

1

32

1

1

1

0

48

1

1

1

1

64

3.1.2 CRC field差异

长度:22/ 26 Bit4位Stuff count;17位(Byte Data Field <= 16)/21位(20 <= Byte Data Field <= 64)CRC sequence;1位CRC delimiter。

默认显/隐性:不适用

描述:

1) Stuff count

在 CANFD 帧中,Stuff count应位于CRC field的开头。它应由3位gray code中的stuff bit计数模8和奇偶校验位组成,如下表所示。

Stuff count

Coding

Stuff bit count modulo 8

0

1

2

3

4

5

6

7

Gray-coded with parity bit

000 0

001 1

011 0

010 1

110 0

111 1

101 0

100 1

帧的发送器和接收器都应计算帧中第一个固定stuff bit之前的stuff bit数。发送方应在CRC field的开头,CRC sequence之前,发送它的stuff bit计数,编码为Stuff count。接收方应检查接收到的Stuff count是否与根据他们自己的stuff bit计数计算的值匹配。

2)CRC sequence

校验SOF、仲裁段、控制段、数据段,具体算法详见ISO 11898-1:2015。

3)CRC delimiter

CRC sequence后面应跟有CRC delimiter。在经典CAN帧中,CRC delimiter是一个隐性位。在CANFD帧中,CRC delimiter可能由一个或两个隐性位组成。发送方应仅发送一个隐性位作为CRC delimiter,但它应在开始acknowledge slot的从隐性到显性的边缘之前接受两个隐性位。接收方将在第一个CRC delimiter位之后发送其acknowledge bit。

注意:当CANFD帧到达CRC delimiter(的第一位)的采样点时,CAN实现从Data Field切换回Arbitration field。

3.1.3 ACK field差异

长度:2 Bit。15位ACK slot;1位ACK delimiter

默认显/隐性:不适用

描述:

在CANFD帧中,所有节点都应接受最多2位长的重叠ACK slot位的显性位作为有效的ACK,以补偿接收器之间的相移。

在经典CAN帧中,单个ACK slot位之后的显性位应被视为格式错误。

4 CANFD扩展帧结构

CANFD扩展帧格式中的位传输顺序,最多 16 个数据字节:

CANFD扩展帧格式中的位传输顺序,20 到 64 个数据字节:

4.1 与Classic CAN扩展帧结构的差异

同CANFD标准帧与Classic CAN标准帧结构的差异,这里不再重复描述。

4.2 与CANFD标准帧结构的差异

同Classic CAN标准帧与Classic CAN扩展帧结构的差异,这里不再重复描述。

5 结尾

获取更多“汽车电子资讯”和“工具链使用”,

请关注“汽车电子助手”(CSDN微信公众号同名),做您的好助手。

  • 5
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电子助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值