登录| 注册 退出
驭捷智能

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构

2021-04-08       浏览:  
分享到:

更加快速可靠的通信协议:CAN FD(2)深入剖析 CAN FD 帧结构

在上一篇连载中,我们初步认识了CAN FD协议,介绍了其产生背景、概要以及用例。本篇我们将带大家更深入的探究CAN FD,通过对CAN FD的7个帧结构的详细讲解,让大家对CAN FD和CAN的区别有所认识。

 CAN FD的帧结构

CAN FD 帧由7个不同的位场组成,帧起始(SOF)、仲裁场、控制场、数据场、CRC校验场、ACK应答场、和帧结尾(EOF),本章介绍每个帧构成及其中包含的字段。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图1)

仲裁场。橙色部分表示与CAN的传输速度相同;

来源:Vector Japan

(1)SOF(Star of Frame)帧起始

CAN总线具有两种逻辑状态,隐性和显性。显性表示逻辑”0”,隐性表示逻辑”1”。

从节点发送帧时, 发送的第一个部分为帧开始的部分,表现为显性状态。这一部分被称为 SOF(Start Of Frame)。在SOF,CAN FD与CAN相同,仅有1bit的“显性”位。只有总线空闲时才允许节点发送信号,发送时,SOF将总线从隐性(1)改变为显性(0),所有节点必须同步于首先开始发送报文的节点的帧起始前沿。对于SOF的定义,CAN FD和CAN是相同的。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图2)

SOF(Star of Frame)。橙色部分表示与CAN的传输速度相同

来源:Vector

(2)仲裁场

CAN FD的仲裁场是由Identifier识别符和RRS位构成。CAN FD 与 CAN 相同的地方是,都有Identifier识别符,可用于区别消息的同时又可以表示消息的优先级。不同的是,在CAN FD中使用的RRS位,而CAN中使用的是RTR位。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图3)

仲裁场。橙色部分表示与CAN的传输速度相同

来源:Vector

RRS位(Remote Request Substitution)远程请求替换位:即传统CAN中的RTR位

与传统CAN相比,CAN FD取消了对远程帧的支持,用RRS位替换了RTR位,为常显性。

(2)控制场

CAN FD的控制场由IDE位、FDF位、RES位、BRS位和ESI位构成。

与传统CAN相比,CAN FD在控制场中新添加了FDF位、BRS位、ESI位。与CAN相同,IDE位表示扩展帧标志,res位为预留位。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图4)

控制场。橙色部分表示与CAN的传输速度相同,蓝色表示可变快速率

来源:Vector

FDF位(FD Format Indicator):

FDF位在CAN的数据帧中位显性(0),在CAN FD的帧中常为隐形(1),表示CAN FD报文;

BRS位(Bit Rate Switch):位速率转换开关

当BRS为隐形位(1)时,表示转换可变速率,即发送节点在BRS位的采样点,将会切换到高速传输的时钟模式,其他接收节点也必须转换位时钟模式。在CRC界定符的采样点,所有节点的波特率将会再切换回仲裁场的波特率。也就是说,所有CAN FD节点都有两种类型的波特率。

ESI(Error State Indicator):错误状态指示

ESI是指示发送节点的错误状态的标志,当发送节点的错误状态是激活时,发送隐性位(1),如果错误状态未激活时,发送显性位(0)。通过ESI位,所有节点都可以确认当前的传输节点的错误状态。 而在CAN帧中,无法得知其传输节点的错误状态。

数据长度编码(DLC: Data Length Code):

DLC表示传输了多少字节的数据。CAN和CAN FD都具有4位配置。CAN FD对有效数据场长度作了很大的扩充,数据场最大可达64字节。数据长度可以从0到8,12,16,20,24,32,48,64字节中选择。而CAN只有0到8个字节。DLC与数据长度之间的关系如下表所示。不能指定除此处描述之外的数据长度,例如14字节或50字节。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图5)

数据长度代码和相应的数据量

来源:Vector

(4)数据场

与CAN一样,数据场由数据帧里的发送数据组成,在数据场中设置发送数据。首先发送最高有效位(MSB)。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图6)

数据场。橙色部分表示与CAN的传输速度相同,蓝色表示可变快速率

来源:Vector

(5)CRC校验场

  • CRC校验场有以下五点发生了变化:

  • 添加Stuff Count

  • CRC的计算方法

  • CRC的位长度

  • 位填充规则

  • 接收端CRC界定符的允许位时间

CAN FD的CRC校验场中,添加了新的Stuff Count,CRC也有了17位和21位。本小节介绍新加的Stuff Count和更改后的CRC计算、位填充法以及CRC界定符的变化。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图7)

CRC校验场。橙色部分表示与CAN的传输速度相同,蓝色表示可变快速率

来源:Vector

Stuff Count(CAN FD)

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图8)

Stuff Count。橙色部分表示与CAN的传输速度相同,蓝色表示可变快速率

来源:Vector

Stuff Count由以下两个元素组成:

  1. 格雷码计算:CRC区域之前的填充位数除以8,得到的余数(Stuff bit count modulo 8)进行格雷码计算得到的值(Bit0-2)

  2. 奇偶校验:通过格雷码计算后的值的奇偶校验(偶校验)


Stuff Count如下表所示。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图9)

Stuff Count的编码

CRC

随着数据场的扩大,为了保证信息发送的质量,CAN FD的CRC计算不仅要包括数据段的位,还包括来自SOF的Stuff Count和填充位。通过比较CRC的计算结果,可以判断接收节点是否能够正常接收。

在CAN中,CRC的位数是15位,而在CAN FD中,CRC场扩展到了21位,详见以下:

  • 当传输数据为16字节或更少时:CRC 17位

  • 当传输数据超过16个字节时:CRC 21位

位填充法

与CAN一样,填充位插入到SOF和数据场的末尾之间。插入的填充位数值是经过格雷码计算转换后的值,并且用奇偶校验位保护(Stuff Count)。

在CRC校验场中,填充位被放置在固定的位位置,这称为固定填充位(Fixed Stuff Bit)。固定填充位的值是上一位的反码。

  • CRC校验场的第一位

  • 每间隔4位添加一个固定填充位

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图10)

CRC校验场位填充。橙色部分表示与CAN的传输速度相同,蓝色表示可变快速率

来源:Vector

CRC界定符

CRC界定符是表示CRC校验场的结束,是一个1位的常态隐性位。但是,在CAN FD中,考虑到节点之间的位的距离,在接收端允许最大2位时间。CAN FD帧的数据场(可变速段)是CRC界定符的第一位采样点。

(6)ACK应答场

CAN FD的ACK应答场包括应答间隙和应答界定符,其构成和CAN是相同的。不同的是,在CAN中,应答场的长度是1位,但在CAN FD,接收节点利用2位时间将其识别为有效应答。

由从高速的数据场到慢速的仲裁场时,时钟切换会引起收发器相移和总线传播延迟。为了补偿其相移和延迟,相比传统的CAN,在CAN FD中多加了这额外的1位时间。在ACK之后,发送ACK界定符。这是一个表示ACK结束的分隔符,为是1位隐性位。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图11)

ACF。橙色部分表示与CAN的传输速度相同

来源:Vector

(7)帧结尾

每一个数据帧均由一标志序列界定,这个标志序列由7个“隐性”位组成。CAN FD的帧结尾与CAN相同。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图12)

EOF。橙色部分表示与CAN的传输速度相同

来源:Vector

 CAN FD帧的波形

下图显示了CAN FD帧的波形。从图片可以看出,红框标出的数据段已经加速。

更加快速可靠的通信协议: 深入剖析 CAN FD 帧结构(图13)

数据段正在加速

来源:Vector

关于CAN FD的连载到此结束,回顾全篇,本文介绍了CAN FD介绍的背景和协议,你能理解CAN FD与CAN的区别了吗?由于CAN FD是基于CAN的扩展,因此在协议方面没有太大差异。

如果有一天真的引入CAN FD,有可能会引进相应的接收器和控制器,除此之外,不仅是数据库会更新,可能对车载网络的整体架构也会产生影响,比如对通信标准和网络架构的重新设计。

此外,随着数据段的波特率加速,EMC也将成为一大挑战。为了应对这个挑战,CiA(CAN in Automation)发布了CiA 601-4,以满足CAN FD 的振铃抑制电路。

为了能够引入CAN FD,我们还需要面对许多挑战,EMC的解决方案,通信标准的变更,相应部件的引入和环境的测试等各种难题。但是,大约在2019年左右,一些汽车制造商将开始大规模生产使用CAN FD汽车。希望这篇文章能够帮助从事汽车网络开发的工程师!


在线
客服

在线客服 - 驭捷智能周一至周日 10:00-24:00(欢迎呼叫)

选择下列服务马上在线沟通:

客服
热线

18917451722
6*12小时客服服务热线