选择CAN or CAN FD?浅析CAN-FD 与 CAN 的差别

        在汽车领域,随着人们对数据传输带宽要求的增加,传统的CAN总线由于带宽的限制难以满足这种增加的需求。此外为了缩小CAN网络(max. 1MBit/s)与FlexRay(max.10MBit/s)网络的带宽差距,BOSCH公司推出了CAN FD 。
       CAN FD(CAN with Flexible Data rate)继承了CAN总线的主要特性。CAN总线采用双线串行通讯协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制使CAN总线有很高的安全性,但CAN总线带宽和数据场长度却受到制约。CAN FD总线弥补了CAN总线带宽和数据场长度的制约,CAN FD总线与CAN总线的区别主要在以下两个方面:
 可变速率
       CAN FD采用了两种位速率:从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,其余部分为原CAN总线用的速率。两种速率各有一套位时间定义寄存器,它们除了采用不同的位时间单位TQ外,位时间各段的分配比例也可不同。
新的数据场长度
       CAN FD对数据场的长度作了很大的扩充,DLC最大支持64个字节,在DLC小于等于8时与原CAN总线是一样的,大于8时有一个非线性的增长,所以最大的数据场长度可达64字节。


CAN FD介绍
1.CAN FD 数据帧帧格式
       CAN FD 数据帧在控制场新添加EDL位、BRS位、ESI位,采用了新的DLC编码方式、新的CRC算法(CRC场扩展到21位)。CAN FD数据帧格式如下图:

2. 新添加位介绍
       EDL位:(Extended Data Length)原CAN数据帧中的保留位r, 该位功能为:
隐性:表示CAN FD 报文 (采用新的DLC编码和CRC算法)
显性:表示CAN报文
       BRS位:( Bit Rate Switch)该位功能为:
隐性:表示转换可变速率
显性:表示不转换速率
       ESI(Error State Indicator),该位的功能为:
隐性:表示发送节点处于被动错误状态(Error Passive)
显性:表示发送节点处于主动错误状态(Error Active)
       EDL位可以表示CAN报文还是CAN FD报文;BRS表示位速率转换,该位为隐性位时,从BRS位到CRC界定符使用转换速率传输,其他位场使用标准位速率,该位为显性时,以正常的CANFD总线速率传输;通过添加ESI位,可以很方便的知道当前发送节点所处的状态。
3.新的CRC算法
       CAN总线由于位填充规则对CRC的干扰,造成错帧漏检率未达到设计意图。CAN FD对CRC算法作了改变,即CRC以含填充位的位流进行计算。在校验和部分为避免再有连续位超过6个,就确定在第一位以及以后每4位添加一个填充位加以分割,这个填充位的值是上一位的反码,作为格式检查,如果填充位不是上一位的反码,就作出错处理。CAN FD的CRC场扩展到了21位。由于数据场长度有很大变化区间,所以要根据DLC大小应用不同的CRC生成多项式,CRC_17,适合于帧长小于210位的帧,CRC_21,适适合于帧长小于1023位的帧。
4.新的DLC编码
       CANFD 数据帧采用了新的新的DLC编码方式,在数据场长度在0-8个字节时,采用线性规则,数据场长度为12-64个字节时,使用非线性编码。如下图:


       CAN FD白皮书在论及与原CAN总线的兼容性时指出:CAN总线系统可以逐步过渡到CAN FD系统,网络中所有节点要进行CAN FD通信都得有CAN FD协议控制器,但是CAN FD协议控制器也能参加标准CAN总线的通信。

CAN-FD和CAN主要的区别有两点:

1、可变速率

CAN-FD采用了两种位速率:从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,其余部分为原CAN总线用的速率。两种速率各有一套位时间定义寄存器,它们除了采用不同的位时间单位TQ外,位时间各段的分配比例也可不同。

2、新的数据场长度

CAN-FD对数据场的长度作了很大的扩充,DLC最大支持64个字节,在DLC小于等于8时与原CAN总线是一样的,大于8时有一个非线性的增长,所以最大的数据场长度可达64字节。
 




CAN-FD简介

1、CAN-FD 数据帧帧格式

CAN-FD 数据帧在控制场新添加EDL位、BRS位、ESI位,采用了新的DLC编码方式、新的CRC算法(CRC场扩展到21位)。CAN-FD数据帧格式如图 3所示。
 




2、新添加位介绍

EDL位:(Extended Data Length)原CAN数据帧中的保留位r, 该位功能为:

隐性: 表示CAN-FD 报文 (采用新的DLC编码和CRC算法)
显性: 表示CAN报文

BRS位:( Bit Rate Switch)该位功能为:

隐性:表示转换可变速率
显性:表示不转换速率

ESI(Error State Indicator),该位的功能为:

隐性:表示发送节点处于被动错误状态(Error Passive)
显性:表示发送节点处于主动错误状态(Error Active)

EDL位可以表示CAN报文还是CAN-FD报文;BRS表示位速率转换,该位为隐性位时,从BRS位到CRC界定符使用转换速率传输,其他位场使用标准位速率,该位为显性时,以正常的CAN-FD总线速率传输;通过添加ESI位,可以很方便的知道当前发送节点所处的状态。
 




3、新的CRC算法

CAN总线由于位填充规则对CRC的干扰,造成错帧漏检率未达到设计意图。CAN-FD对CRC算法作了改变,即CRC以含填充位的位流进行计算。在校验和部分为避免再有连续位超过6个,就确定在第一位以及以后每4位添加一个填充位加以分割,这个填充位的值是上一位的反码,作为格式检查,如果填充位不是上一位的反码,就作出错处理。CAN-FD的CRC场扩展到了21位。由于数据场长度有很大变化区间,所以要根据DLC大小应用不同的CRC生成多项式,CRC_17,适合于帧长小于210位的帧,CRC_21,适适合于帧长小于1023位的帧。

4、新的DLC编码

CAN-FD 数据帧采用了新的新的DLC编码方式,在数据场长度在0-8个字节时,采用线性规则,数据场长度为12-64个字节时,使用非线性编码。如图 5所示。
 

在选择CAN和CAN FD时,需要综合考虑以下多个因素:

一、数据传输需求
1. 数据量
   - 如果你的应用场景只需要传输少量的数据,例如简单的传感器信号(如温度、压力等),每个信号可能只需要几个字节来表示,且数据更新频率不是特别高,传统CAN的8字节数据场通常是足够的。例如,在一个基本的汽车车身控制系统中,如车门锁状态、车窗位置等信息的传输,CAN可以很好地完成任务。
   - 但如果需要传输大量数据,如在汽车的高级驾驶辅助系统(ADAS)中,多个摄像头和雷达的图像及距离数据融合,或者在工业自动化系统中复杂的生产数据记录和设备状态监控,CAN FD的数据场最大可扩展到64字节就更具优势。例如,传输高分辨率图像数据时,CAN FD能够在更短的时间内传输更多的数据,减少数据传输的延迟。
2. 数据传输速率
   - 对于对数据传输速率要求不是特别高的应用,如一些传统的工业控制场景,设备状态变化相对缓慢,传统CAN的1Mbps传输速率可能就足够了。比如,简单的输送带速度控制和状态监测系统,CAN能够稳定地传输输送带的速度、电机温度等信息。
   - 然而,在一些对实时性要求很高的场景,如汽车动力系统的实时控制,发动机和变速器之间需要快速交换大量的控制参数,或者在高速自动化生产线上,机器人之间需要快速协调动作,CAN FD高达8Mbps的数据段传输速率能够更好地满足需求,确保数据的及时传递,减少系统响应时间。

二、系统成本
1. 硬件成本
   - 传统CAN技术成熟,硬件成本较低。市场上有各种各样价格实惠的CAN控制器和收发器芯片。如果预算有限,且现有的硬件设备主要基于CAN,那么继续使用CAN可以节省硬件采购成本。例如,在对成本敏感的小型工业控制设备升级项目中,若新功能对通信要求不高,选择CAN可以降低硬件成本。
   - CAN FD的硬件成本相对较高,因为它需要支持更高的传输速率和更复杂的数据帧格式。不过,随着技术的发展和规模效应,成本差距在逐渐缩小。如果系统对性能的要求使得CAN FD成为必要选择,那么在成本评估时,需要考虑长期的收益,如提高生产效率或提升产品功能等方面带来的价值是否能够弥补硬件成本的增加。
2. 软件开发成本
   - CAN的软件开发相对简单。由于其协议和数据帧格式比较固定和简单,开发人员更容易理解和掌握。对于已经熟悉CAN开发的团队,继续使用CAN可以减少软件开发的时间和成本。例如,在维护和更新基于CAN的现有软件系统时,开发人员可以快速定位和解决问题。
   - CAN FD的软件开发稍微复杂一些。虽然它在一定程度上保留了CAN的特性,但由于数据帧格式的变化和更高的传输速率要求,开发人员需要花费更多的时间来熟悉和优化软件。例如,在进行CAN FD的通信软件设计时,需要考虑如何充分利用长数据场和高速率的优势,同时确保数据的正确传输,这可能会增加软件开发的成本。

三、系统兼容性
1. 现有系统兼容性
   - 如果现有的系统是基于CAN构建的,并且新的应用需求不会超出CAN的能力范围,那么继续使用CAN可以保证与现有系统的无缝兼容。例如,在汽车售后市场的一些简单配件升级中,如果新配件只需要接入现有的CAN车身控制系统,使用CAN可以避免兼容性问题。
   - CAN FD在设计上考虑了与CAN的兼容性,可以与CAN设备在一定程度上共存。但如果要充分发挥CAN FD的优势,可能需要对系统中的部分关键设备进行升级。例如,在汽车电子系统升级中,如果想在动力系统中采用CAN FD来提高通信效率,可能需要将发动机控制单元和变速器控制单元等关键设备升级为支持CAN FD的设备。
2. 未来系统扩展性
   - CAN的扩展性相对有限,主要受限于其数据量和传输速率。如果未来可能会有大量数据传输或高速通信的需求,选择CAN可能会在后期面临系统升级的难题。例如,在一个正在规划智能功能的工业控制系统中,如果未来可能会引入高分辨率的视觉检测设备,CAN可能无法满足数据传输需求。
   - CAN FD具有更好的扩展性,其高速率和大数据量传输的特点能够更好地适应未来系统功能的扩展。例如,在开发具有自动驾驶潜力的汽车电子系统时,选择CAN FD可以为后续的ADAS功能升级和传感器数量增加提供更好的通信基础。

四、应用场景特点
1. 可靠性和稳定性要求
   - 在一些对可靠性和稳定性要求极高的场景,如汽车安全气囊系统、工业中的关键设备控制(如核反应堆控制),传统CAN已经经过了长期的实践验证,其简单的协议和成熟的技术可以提供可靠的通信保障。
   - CAN FD虽然也是一种可靠的通信协议,但由于其相对较新的技术,在一些对稳定性要求极高的关键应用场景,可能需要更多的测试和验证来确保其可靠性。不过,随着技术的成熟,CAN FD在这些场景中的应用也会越来越广泛。
2. 电磁兼容性(EMC)要求
   - CAN和CAN FD都具有一定的电磁兼容性优势,它们都是基于差分信号传输,能够有效抵抗电磁干扰。在一般的工业和汽车环境中,两者都可以正常工作。但在一些特殊的强电磁干扰环境下,如高压变电站附近的工业设备通信或者电动汽车的高压电池管理系统通信,需要根据具体的电磁干扰频率和强度,以及设备对电磁兼容性的特殊要求,来选择更合适的通信协议。

总之,在选择CAN和CAN FD时,要根据具体的应用场景,从数据传输需求、成本、兼容性和应用场景特点等多个方面进行综合权衡,以确定最适合项目的通信协议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值