CAN FD总线详细介绍


前言

前面的文章介绍了CAN协议、本文介绍一下CAN FD,对比一下这两者的区别。希望看完后,能对你有所帮助。
CAN 协议介绍的文章:CAN总线详细介绍


一、CAN FD简介

1.1 CAN FD是什么?

CAN FD,全称为CAN with Flexible Data rate。继承了CAN的主要特性,弥补了CAN的数据长度和带宽的限制。可简单认为CAN FD就是CAN的升级版。

2011年,开始CAN FD协议的开发,2012年发布第一个版本,2015年ISO11898-1进行了修订,将CAN FD加入其中。
在这里插入图片描述

1.2 为什么要CAN FD?

随着汽车功能越来越复杂,也越来越往智能化发展,传统的CAN总线已经跟不上时代的速度了。主要原因有如下几点:

  1. CAN 总线最高速率为 1Mbit/s,实际使用中通常只有是 500k,随着功能的逐渐增多,各 ECU 之间的信息交互也越多,导致总线负载持续增加;
  2. CAN 报文中只有约 40~50%的带宽用于实际数据传输;
  3. 最大总线速度受到响应机制的限制,例如 CAN 控制器中的 ACK
    生成延迟;收发器传播延迟;导线延迟等。

为了解决CAN总线的局限,就对其进行升级,CAN FD就此应运而生了。

1.3 CAN FD的特点

  1. 传输速率是可变的。从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,最高速率可达到8Mbps。其他部分与CAN相同。
  2. 数据长度不同。CAN FD支持的最大数据长度为64byte。
  3. 帧格式不同。CanFD新增了FDF、BRS、ESI位

二、CAN FD协议

2.1 CAN FD帧结构

CAN FD数据帧结构与CAN一样,一共有:帧起始SOF,仲裁段,控制段,数据段,CRC段,ACK段,帧结束,共7个部分

在这里插入图片描述

CAN 标准帧结构

在这里插入图片描述

CAN FD 标准帧结构

2.1.1 帧起始

CAN FD与CAN使用相同的SOF标志位来标志报文的起始。帧起始由1个显性位构成,标志着报文的开始,并在总线上起着同步的作用

2.1.2 仲裁段

与传统CAN相比,CAN FD取消了远程帧,用RRS位替换了RTR位,为常显性。IDE位仍为标准帧和扩展帧标志位,若标准帧与扩展帧具有相同的前 11 位 ID,那么标准帧将会由于 IDE 位为 0,优先获得总线。

RTR(Remote Transmission Request Bit):远程发送请求位,RTR位在数据帧里必须是显性,而在远程帧里为隐性。
RRS(Remote Request Substitution):远程请求替换位,即传统CAN中的RTR位,CAN FD中为常显性。

在这里插入图片描述

CAN和CAN FD 仲裁段的对比

2.1.3 控制段

控制段中CANFD与CAN有着相同的IDE,res,DLC位。同时增加了三个控制bit位,FDF、BRS、ESI。

FDF(Flexible Data Rate Format):原CAN数据帧中的保留位r。FDF常为隐性,表示CAN FD 报文。

BRS(Bit Rate Switch):位速率转换开关,当BRS为显性位时数据段的位速率与仲裁段的位速率一致,当BRS为隐性位时数据段的位速率高于仲裁段的位速率。

ESI(Error State Indicator):错误状态指示,主动错误时发送显性位,被动错误时发送隐性位。

在这里插入图片描述
DLC同样是4bit表示数据段的长度,对应的关系如下:

在这里插入图片描述

DLC取值和数据长度的关系

2.1.4 数据段

CAN FD不仅能支持传统的0-8字节报文,同时最大还能支持12, 16, 20, 24, 32, 48, 64字节

在这里插入图片描述

2.1.5 CRC段

为了避免位填充对CRC的影响,CAN FD在CRC场中增加了stuff count记录填充位的个数对应8的模,并用格雷码表示,还增加了奇偶校验位。FSB(fixed stuff-bit)固定为前一位的补码。

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

格雷码计算:CRC区域之前的填充位数除以8,得到的余数(Stuff bit count modulo 8)进行格雷码计算得到的值(Bit0-2)
奇偶校验(parity):通过格雷码计算后的值的奇偶校验(偶校验)

CAN FD对CRC算法进行了改进,CRC对填充位也加入了计算。在校验和部分为避免有连续位超过6个,就确定在第一位以及以后每4位添加一个填充位加以分割,这个填充位的值是上一位的反码,作为格式检查,如果填充位不是上一位的反码,就作出错处理。

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

当传输数据为0~8字节或更少时:CRC 15位
当传输数据为9~16字节或更少时:CRC 17位
当传输数据超过17~64个字节时:CRC 21位

在这里插入图片描述

2.1.6 ACK段

与CAN相比,在CAN FD中最多可接受2个位时间有效的ACK,允许1个额外的位时间来补偿收发器相移和传播延迟)

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

2.1.7 帧结束

与CAN一样,CAN FD的帧结尾也为连续7位的隐性位

总结:

CAN FD 兼容CAN,可以正常收发传统CAN报文,但是传统CAN不能正确收发CAN FD报文,帧格式不一致,会导致传统CAN发送错误帧。就像平常的软件版本一样,高版本向下兼容。
CAN FD能传输的数据更多,速率也更高,安全性也更高。

CAN 总线总线自 19 世纪 80 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 年代诞生以来,在汽车、工业控制等行得到了广泛使用。但随 着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统着汽车电子、工业自动化的 蓬勃发展,总线上设备数量据都大增加而传统CAN 只能支持最高 只能支持最高 只能支持最高 只能支持最高 1M bit/s bit/s传输速率 传输速率 ,这就给 ,这就给 ,这就给 CAN CAN通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高通信带 来的极大挑战。为满足更高宽及数据吞吐量, 宽及数据吞吐量, 宽及数据吞吐量, 宽及数据吞吐量, CAN FD CAN FD CAN FD应运而生。
03-08
### CAN FD协议介绍 CAN FD(Controller Area Network with Flexible Data-rate)是一种增强型的车载网络通信协议,旨在满足现代汽车日益增长的数据传输需求。随着汽车电子、电气化和智能化的发展,车辆内部通信需要处理更多数据,如高级驾驶辅助系统(ADAS)、动力电池管理等[^3]。 #### 协议特点 CAN FD保留了经典CAN总线的主要特性,但在以下几个方面进行了改进: - **更高的比特率**:支持高达8 Mbps的传输速度,远超传统CAN的最大1 Mbps。 - **更大的有效载荷**:单个消息的有效负载从8字节扩展到最多64字节。 - **向后兼容性**:CAN FD节点能够接收并发送标准CAN帧以及新的FD帧;然而,传统的CAN设备仅能识别旧版的消息格式,在遇到CAN FD特有的结构时会产生错误响应[^1]。 ```c++ // 示例代码展示如何定义一个简单的CAN FD报文结构体 typedef struct { uint32_t id; // 报文ID bool rtr; // 远程请求标志位 uint8_t dlc; // 数据长度码 (0-64) uint8_t data[64]; // 最大数据字段大小为64字节 } CanFdMessage; ``` #### 应用场景 由于上述优势,CAN FD特别适合应用于对实时性和带宽要求较高的场合,比如自动驾驶系统的传感器融合、动力传动控制单元之间的快速交互以及其他涉及大量参数交换的任务。此外,它还被广泛采纳于新能源车型中用于电池管理系统(BMS),以确保高效可靠的信息传递。 #### 实施挑战与解决方案 当考虑将现有CAN基础设施升级至CAN FD时,需注意两者间的互操作性问题——即混合部署环境下可能出现的误判情况。为此建议采取渐进式的过渡策略,逐步替换老旧组件直至完全切换成新一代架构,并利用网关装置实现不同版本间的安全转换。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值