一文解析CAN和CANFD

01 CAN与CAN FD的概念

CAN(Controller Area Network):广泛应用于汽车和工业控制领域的总线协议。CAN是一种基于广播的串行通信协议,专为汽车和工业环境设计,支持实时、可靠的多节点通信。其核心思想是通过单一总线连接多个电子控制单元(ECU),实现高效数据传输。

图片

起源:1983年由德国Bosch公司开发,1986年正式发布,旨在解决传统汽车布线复杂的问题(如机械控制系统向电子控制转型)。

标准化:1993年成为国际标准(ISO 11898),广泛应用于汽车、工业自动化、医疗设备等领域。

技术特点:

速率:经典CAN的典型速率为1 Mbps(短距离),但实际应用常为500 kbps或更低。

帧结构:数据帧最大负载为8字节,采用非破坏性逐位仲裁机制(基于报文ID优先级)。

可靠性:具备错误检测(CRC校验)、自动重传和故障节点隔离功能。

CAN FD( CAN Flexible Data-Rate)可变速率的 CAN。 也可以简单的认为是传统CAN的升级版,主要在数据传输速率、数据长度和可靠性方面进行了优化,只升级了协议,物理层没有改变。

起源:2012年由Bosch发布,2015年纳入ISO 11898-1标准。

驱动需求:自动驾驶、车载传感器(如摄像头、雷达)需要更高带宽。工业物联网(IIoT)对大数据量传输的需求增长。

关键技术改进:

  • 动态速率切换:仲裁段(控制信息)沿用经典CAN速率(如500 kbps),数据段速率提升至5 Mbps或更高(理论可达12 Mbps)。

  • 数据长度扩展:单帧数据负载从8字节增至64字节,减少协议开销。

  • 增强CRC校验:采用更长的21位CRC(经典CAN为15位),提升数据段容错能力。

核心技术差异

02 核心技术差异

1. 数据传输速率

CAN,仲裁阶段(仲裁段和数据段之前)和数据阶段使用相同速率,最高支持 1 Mbps(实际应用中通常更低)。速率固定,无法动态调整。

CAN FD 采用双速率传输机制:在数据段(从控制场的 BRS 位至 ACK 场前的 CRC 分界符区间)采用可配置的高速率传输,其余仲裁段与帧头/帧尾部分则沿用传统 CAN 总线的基础速率。两种速率分别对应独立的位时间寄存器配置体系,不仅允许设置不同的时间量子(TQ)基准单位,还可差异化调整位时间段的比例分配。该协议在保留传统 CAN 总线基础速率(仲裁速率≤1Mbps)的同时,通过数据段动态提速实现传输效率跃升,其数据速率需≥基础速率且理论峰值可达8Mbps。两种速率既可保持同步配置,也可根据应用场景采用异步配置模式,实现网络负载与传输速率的动态平衡。

2. 数据长度

CAN:数据场(Payload)最大为 8字节。适用于简单指令或状态传输,但无法满足大数据量需求

CAN FD:数据场最大扩展至 64字节,单帧传输效率提升8倍。减少多帧分包的场景,降低总线负载。

3. 协议版本

CAN:基于 ISO 11898-1 标准(经典CAN)。

CAN FD:基于 ISO 11898-1:2015 标准(兼容经典CAN的部分特性)。

4. 错误检测机制

CAN:使用 15位CRC校验(循环冗余校验),适用于短数据帧。

CAN FD:引入更长的 CRC校验位(17位或21位),增强对长数据帧的容错能力。支持更复杂的错误检测,提升可靠性。

5. 兼容性

CAN FD 设计时考虑了向后兼容性:

CAN FD控制器可兼容传统CAN报文(以经典CAN模式运行)。但传统CAN节点无法解析CAN FD报文(会触发错误帧)。混合组网时需统一协议或使用网关转换。

6.  帧结构差异

CAN和CAN FD的帧结构在物理层和数据链路层有明显差异,主要体现为新增标志位、数据长度扩展以及CRC校验优化。

标准帧对比:

图片

扩展帧对比:

图片

经典CAN帧:

[SOF][ID][RTR][IDE][r0][DLC][数据][CRC][CRC界定符][ACK][EOF]  

CAN FD帧:

[SOF][ID][RRS][IDE][FDF][r0][BRS][ESI][DLC][数据][CRC][CRC界定符][ACK][EOF]  

标准CAN帧结构

标准CAN帧由以下字段组成(以标准帧为例,共44~108位):

CAN FD帧结构

CAN FD帧在标准CAN基础上进行了扩展(共66~130位),关键变化如下: 

关键差异点

(1) 新增标志位

FDF(FD格式位):标识是否为CAN FD帧(经典CAN无此位)。

BRS(速率切换位):控制数据段是否切换为高速率。

ESI(错误状态指示位):指示节点错误状态,帮助网络诊断。

(2) DLC编码扩展

CAN:DLC为4位,直接表示数据长度(0~8字节)。

CAN FD:DLC为4位,但采用非线性编码:

DLC ≤ 8:直接对应数据长度(0~8字节)。

DLC = 9~15:对应12、16、20、24、32、48、64字节(分段映射)。

(3) CRC校验增强

CAN:15位CRC,覆盖SOF到数据段。

CAN FD:

数据段≤16字节:17位CRC(覆盖SOF到数据段)。

数据段>16字节:21位CRC(覆盖SOF到数据段+填充位)。

(4) 数据段填充规则

CAN:每5个连续相同位后插入填充位(位填充)。

CAN FD:数据段和CRC段采用固定填充(提高速率稳定性)。

03CAN与CAN FD协议优劣势分析

一、CAN总线协议

优势

  1. 实时性与可靠性

    采用基于优先级的非破坏性仲裁机制,确保高优先级报文实时传输。

    具备可靠的错误检测与处理机制(如CRC校验、ACK应答),错误帧可触发自动重传。

    节点在严重错误时可自动进入“总线关闭”(Bus Off)状态,避免干扰总线通信。

  2. 抗干扰能力

    差分双线传输(CAN_H/CAN_L)设计,抑制共模干扰,适用于高噪声工业环境。

    最大传输距离可达10 km(速率5 kbps),满足分布式系统需求。

  3. 网络拓扑灵活性

    支持多主架构,节点可动态加入或退出,无中心控制器依赖。

    报文通过标识符(ID)实现内容寻址,无需物理地址,简化网络配置。

  4. 低成本与成熟生态

    硬件标准化程度高,广泛兼容的收发器与控制器降低开发成本。

    长期应用于汽车、工业领域,工具链与协议栈成熟。

劣势

  1. 带宽限制

    经典CAN最大有效数据负载为8字节/帧,理论峰值速率1 Mbps(受距离限制),难以满足高数据量场景(如ADAS、OTA)。

  2. 一致性问题

    节点电气特性(如终端电阻、信号边沿时间)不一致可能导致隐性/显性电平冲突,需严格一致性测试(如ISO 16845认证)。

  3. 错误处理局限性

    无法根治“Babbling Idiot”故障(节点持续发送合法报文阻塞总线),依赖外部看门狗或网关隔离。

    错误计数器状态转换(Error Active/Passive/Bus Off)受全局错误影响,局部故障可能扩散至全网。

二、CAN FD协议改进与挑战

优势

  1. 带宽提升

    数据段采用可变速率(最高5 Mbps),提升有效吞吐量(典型提升3-8倍)。

    数据长度扩展至64字节,减少多帧传输开销,提升大数据传输效率。

  2. 增强可靠性

    改进CRC算法(CRC17/21),覆盖范围扩展至整个数据段,降低未检错概率(<10⁻²¹ vs. 经典CAN的<10⁻¹⁵)。

    保留经典CAN错误处理机制,兼容现有故障恢复策略。

  3. 渐进式兼容性

    支持经典CAN与CAN FD混合组网(需网关或协议适配),降低升级成本。

挑战与局限

  1. 物理层限制

    高速率下信号完整性要求更高,需优化布线(如阻抗匹配、屏蔽),传输距离缩短(典型1 Mbps下≤40 m)。

  2. 升级成本

    需更换支持CAN FD的控制器与收发器,现有ECU硬件改造费用较高。

    部分旧工具链(如诊断设备)需更新以支持FD协议。

  3. 协议复杂性

    帧格式差异(如BRS速率切换位)增加协议栈开发复杂度,可能引入新时序问题。

CAN FD正逐步向车载网络(如车载诊断、域控制器)渗透,而经典CAN仍将在车身控制等低带宽场景长期存在。未来CAN XL(支持10 Mbps+)或进一步填补以太网与CAN FD间的性能空白

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值