CAN2.0总线的升级版——CAN FD简介

2021/04/30 菲益科

为什么需要CAN FD?

在汽车行业,为什么需要CAN FD?

1. 原因主要是因为汽车功能越来越多,越来越复杂,传统的CAN总线(CAN2.0)的负载率越来越高,甚至负载率高达95%。

2. 因为传统CAN总线的局限性:

· 传输率最大为1Mbiy/s(典型的<= 500kbit/s);

· 传统CAN数据帧超过50%的额外开销(overhead > 50%)。

3. 对比其他协议,额外开销比例要小得多,如UDP (1500 bytes/datagram, 64 bytes overhead),FlexRay(254 bytes/frame, 8 bytes overhead)。

4. 因为历史原因,汽车不可能直接放弃目前的传统CAN总线技术,一切推到重来。那么为了解决CAN总线负载率问题,而又能兼容CAN总线,并且研发成本不能太高的问题,2015年最新的修订版ISO 11898-1(classic CAN和CAN FD)发布。

什么是CAN FD?

CAN FD 是CAN with Flexible Data rate的缩写。也可以简单的认为是传统CAN的升级版。在上一篇文章汽车的中枢神经系统——CAN总线简介可以看到CAN整个发展历程。

2011年,开始CAN FD协议的开发。

2015年,ISO 11898-1(Classical CAN和CAN FD)修订版发布。

对比传统CAN总线技术,CAN FD有两方面的升级:

1. 支持可变速率—> 最大5Mbit/s;

2. 支持更长数据长度--> 最长64 bytes数据。

菲益科

CAN FD的开发成本和传统CAN开发成本相差不大,并且可以和传统CAN很好兼容。

CAN FD对比FlexRay的优势在于:

1. CAN FD的开发成本远低于FlexRay;

2. FlexRay对ECU升级刷写不友好。

CAN FD对比以太网的优势在于:

1. CAN FD的开发成本远低于以太网;

2. 以太网优势在于大数据的传输但不能完全适用于当前汽车架构。

菲益科From Vector——Data Rate VS Cost

CAN FD 数据帧

菲益科

对比传统CAN的数据帧,CAN FD在控制场新添加EDL位、BRS位、ESI位,采用了新的DLC编码方式、新的CRC算法(CRC场扩展到21位)。

菲益科CAN FD数据帧 VS CAN数据帧

1. 起始位SOF(start of frame)

菲益科

传统CAN的数据帧起始位SOF和CAN FD的数据帧起始位SOF是一样的,一个bit的显性位‘0’。

2. 仲裁场(Arbitration Field)

菲益科

对比传统CAN数据帧,CAN FD共享相同的CAN ID,包括扩展数据帧的ID。

CAN FD用RRS bit(始终为显性位‘0’)代替RTR。

FDF(FD format)表示CAN FD还是传统CAN数据帧:

· FDF – ‘0’ --> 传统CAN数据帧

· FDF – ‘1’--> CAN FD数据帧

BRS(Bit Rate Switch)表示时钟频率的切换:

· BRS – ‘1’-->时钟频率切换

ESI(Error State Indicator)表示CAN总线的错误状态。

3. DLC控制域(control Field)

菲益科

DLC用于表示数据帧的数据长度。并且支持传统CAN 数据帧的编码方式。

4. CRC

CAN总线由于位填充规则对CRC的干扰,造成错帧漏检率未达到设计意图。CAN FD对CRC算法做了改变,即CRC以含填充位的位流进行计算。在校验和部分为避免再有连续位超过6个,就确定在第一位以及以后每4位添加一个填充位加以分割,这个填充位的值是上一位的反码。作为格式检查,如果填充位不是上一位的反码,就作出错处理。CAN FD的CRC场扩展到了21位。

菲益科

根据不同的数据长度,CRC的长度也不一样:

· CRC 15bits –> 传统CAN;

· CRC 17bits--> 数据长度<= 16bytes;

· CRC 21bits -->数据长度>16bytes。

CRC的结束标识位(CRC Delimiter)一般是1位,但也接收2位。

5. ACK

菲益科

ACK紧跟着CRC结束标识位。不同的是,CAN FD支持2bits的ACK的识别。

6. 结束标识符(End of Frame)

EOL在传统CAN,CAN FD中都是7个连续隐性位“1”。

性能对比

菲益科


标签: CANFD CAN总线
电话咨询
最新产品
订阅新闻
QQ客服