一文了解CAN/CANFD/CANXL

文摘   2024-12-15 07:35   上海  
现代汽车上的控制器(ECU)非常多,会使用到多种通讯总线协议,比如LIN、CAN、MOST、Flexray和Ethernet等,如下图所示。
source: zhuanlan.zhihu.com/p/26590904
不管是哪种通讯总线协议,本质上解决的是两个或多个控制器数据通讯的问题,CAN通讯就是其中一个非常有效的方法,本文我们就来了解CAN通讯目前的一个发展状态。

1 CAN通讯的发展趋势

在没有CAN通讯之前,汽车电子系统相对简单,各控制单元之间的通信方式主要通过点对点连接或专用的、单一功能的总线。这意味着每增加一个新的电子设备,就需要在车辆内部布设额外的线束,连接到相应的控制单元,这不仅增加了车辆的重量,而且也增加了系统的复杂性和故障率。比如发动机管理系统、制动系统和灯光控制等都有自己的独立控制单元,它们之间的数据交换是通过直接的硬连线或简单的通信协议来完成,这种点对点的连接方式缺乏灵活性,对于系统扩展和维护来说非常不便,同时也限制了数据共享和实时性要求高的应用。

source: CAN 协议 : 完整信息

因此在这样的背景下,这种传统的连接方式逐渐无法满足现代汽车复杂电子系统的需求,CAN总线就被提出来了。CAN总线允许多个电子设备共享同一数据总线,实现了设备间高效、实时的通信,大大减少了车内线束的数量,降低了成本,提高了系统的可靠性和可维护性。可以说CAN总线的出现是汽车电子领域的一次革命,为现代汽车复杂电子网络的构建奠定了基础。

source: CAN 协议 : 完整信息

回溯CAN总线的历史,如下所示:

source: CAN 协议 :完整信息

起点是1986 年, 博世在美国底特律举行的汽车工程师协会 (SAE) 会议上正式发布CAN 。

在1991 年,博世发布了 CAN 2.0 版本(A 部分:CAN 2.0A(11 位标识符),B 部分:CAN 2.0B(29 位标识符))。

随后在 1993年,CAN 标准 ISO 11898 被发布,CAN 进一步重组为两部分:涵盖数据链路层的 ISO 11898-1 和涵盖高速 CAN 的 CAN 物理层的 ISO 11898-2。在2003 年,ISO 11898 成为标准系列。

在2012 年,博世发布了 CAN FD 1.0,并于 2015 年标准化 (ISO 11898-1)。

在2016 年,数据速率高达 5 MBit/s 的物理 CAN 层,在 ISO 11898-2 中标准化。2018 年, CiA(CAN in Automation)成员着手CAN XL 的开发,以进一步改进 CAN FD。
通过这段历史,我们就可以知道CAN,CAN FD和 CAN XL的出现时间点和关系,下面我们梳理它们之间的逻辑关系。

2 CAN

CAN通讯有五种帧类型:数据帧,遥控帧,过载帧,间隔帧和错误帧,最常用的是数据帧,它用于将使用数据从生产者传输到一个或多个使用者。典型的数据帧由7个字段组成: 
  • 帧起始 (SOF)。
  • 仲裁字段,由标识符和 RTR 位组成,仲裁字段确定消息的优先级,其中值越低表示优先级越高。
  • 控制字段,由 IDE 位(标准 11 位标识符占主导地位)、保留位和数据长度代码组成。
  • 数据字段 ,可以包含 0 到 8 个字节的数据
  • 循环冗余校验 (CRC) 。
  • 确认槽 (ACK)。
  • 帧结束(所有位都是隐性的)。

source:CAN、CAN FD、CAN XL - 有什么区别?
经典CAN协议规范定义了两种不同的兼容报文格式,即具有11位标识符的“标准格式”,以及具有29位标识符的“扩展格式”,如下所示:

source: CAN报文格式:概述
source: CAN报文格式:概述

这里为啥需要扩展格式?这是因为在商用车中的应用表明,要映射的大量报文需要更长的标识符。因此,除了 11 位标识符之外,还定义了使用 29 位标识符的附加扩展格式(两部分:11 位长的基本标识符和 18 位长的扩展标识符),这样可以区分多达 5.12 亿条报文。 

注意标准格式和扩展格式相互兼容,即两种格式的报文可以存在于同一个网络中,通过标识符扩展位(IDE 位)来可以区分开来。

除此之外,经典CAN的传输速度高达1Mbps,传输数据高达8个字节,其发展已将近30年,应用非常广泛,至今如此。但随着汽车行业的快速发展,对能够传输大量数据的需求不断增长,不管经典CAN的传输速率还是数据负载都有点不够了。出于这个原因,博世在2012年推出了熟悉的经典CAN的扩展版本- CAN FD。

3 CAN FD

相对于经典CAN,CAN FD 改善了3个关键问题:

  • 传输速率:CAN FD引入了一种双速率机制,数据段位速率(最高达8 Mbps),同时仍能维持仲裁阶段和其他部分的标准速率(1 Mbps),这意味着在需要高速度的地方可以选择加速,而不影响整体网络的稳定性。

  • 数据负载能力:提供了多种选项来适应不同类型的应用程序,数据负载可以从12、16、20等逐步递增直到最大64个字节。

  • 错误检测功能:采用了更先进的循环冗余校验(CRC)算法,能够更好地保护数据完整性并减少误码的可能性。

具体怎么实现的呢?来看CAN FD数据帧的定义,如下所示:
source:CAN、CAN FD、CAN XL - 有什么区别?
1) FDF位:用来区分经典CAN帧和CAN FD帧。它在CAN FD帧中是隐性的,在经典CAN帧中是显性的(FDF位对应于经典CAN标准帧中的R0位和经典CAN扩展帧中的R1位。)。
2) BRS位:该位指示是否在CAN FD帧内切换比特率。如果检测到该位为隐性,则比特率应从仲裁段的标准比特率切换到数据段的预配置数据比特率。
3) ESI位:该标志应由错误主动节点显性传输,并由错误被动节点隐性传输。
4) DLC: 通过DLC0-DLC3组成的数值可以获取数据段的有效长度,如下所示:
source: 【图解CAN总线】-4-详述CANFD和Classic CAN的Frame帧结构差异

通过这些改进,CAN FD不仅提升了系统的处理能力和响应速度,还能有效地管理复杂的车载网络环境中的大量数据流。但是随着自动驾驶和高级驾驶辅助系统(ADAS)的发展,对数据传输量的需求仍在急剧增加,CAN FD仍然无法满足某些极端应用的需求,因此CAN XL又被提出来。

4 CAN XL

CAN XL的功能原理和基本结构与CAN FD一致,以保持兼容性。相对于CAN FD, 
  • CAN XL的传输速率可超过10Mbit/s,甚至高达20 Mbit/s,同时在仲裁场使用较低速率,确保兼容性和稳定性;
  • CAN XL帧的数据字段大小高达2048 字节,这使得以太网帧现在也可以首次在CAN报文中传输。
  • CAN XL通过增加的CRC校验位和更复杂的帧结构来增强错误检测,确保在传输大量数据时的可靠性。

这些具体是怎么做的?需要根据CAN XL报文定义来了解,如下所示:

source:CAN、CAN FD、CAN XL - 有什么区别?

具体字段的含义如下,首先是仲裁段
  • PID(Priority ldentifier):优先级ID,指定优先级,将传统CAN ID的仲裁、寻址两功能拆分为CAN XL的PID优先级和下述AF寻址两部分,先说仲裁段:
    • RRS(Remote Request Substitution):远程请求,不支持远程帧;
    • IDE(Identifier Extension):ID拓展,只支持11位ID,固定为显性;
    • XLF(XL Format):XL格式,隐性电平表明为CAN XL帧;

source: 1.26_CAN-XL介绍—CiA.pdf 

然后是控制段
  • resXL(reserved bit XL format):XL格式预留位,为之后可能的拓展更新预留;
  • ADS(Arbitration-to-Dataphase Switch):仲裁段向数据段转换,包括四个固定位,从ADH位之后开始加速,CANXL强制数据段加速;
  • SDT(Service Data Unit Type):服务数据单元类型,表示数据field使用的OSI协议。类似以太网帧中的EtherType。CiA 611-1的第一个版本指定了以下的SDT值:
    • 基于内容的寻址(即使用消息ID)
    • 节点寻址
    • CAN和CAN FD映射隧道
    • 以太网帧的节点隧道
  • SEC(Simple Extended Content):简单拓展内容,指明是否有进一步的链路层功能,比如QoS或安全功能;
  • DLC(Data Length Code):DLC是一个11位整数,其中数据字节数是该整数加1;
  • SBC(Stuff Bit Count):填充位计数;
  • PCRC(Preamble CRC):前导CRC,保证头部数据传输正确;
  • VCID(Virtual CAN network ID):虚拟CAN网络ID,划分CAN虚拟逻辑网络,类似以太网帧中的VlanID;
  • AF(Acceptance Field)接受域,该字段包含在CAN XL控制器的64位硬件接受过滤器中,可能包含节点地址或内容指示信息。
再是数据段数据位于1-2048字节之间,传输速率能达到10Mbps或更高。
接着是CRC段,其中:
  • FCRC(Frame CRC):帧CRC,整个帧的CRC,包括PCRC;
  • FCP(Format Check Pattern):格式校验模式,对固定位检查。
最后是ACK段,其中DAS(Dataphase-to-Arbitration Switch)是数据段向仲裁段转换,包括四个固定位,从FCP0后开始减速。

综上,CAN XL是针对现代高数据量需求的通信协议,它在数据传输能力、速率灵活性、错误检测和未来扩展性方面都进行了重大升级,以适应更复杂和数据密集的应用场景。

CAN XL设计时考虑了未来技术的发展,提供了更大的扩展空间,以适应未来可能的通信标准和更高的数据传输要求。

source:https://www.bosch-semiconductors.com/media/events/2024/ip_techday_asia_2024
5 CAN/CAN FD/ CAN XL

通过以上对CAN,CAN FD和CAN XL的介绍,它们三者主要在以下这些方面存在差异:

  1. 数据传输能力:CAN XL在数据传输能力上远超CAN和CAN FD,适合大数据量传输需求。
  2. 数据传输速度:CAN XL和CAN FD都提高了数据传输速率,CAN XL更是达到了一个新的高度,但CAN XL在物理层和数据链路层的设计上更为复杂。
  3. 兼容性:CAN和CAN FD在兼容性上表现良好,尤其是CAN FD向后兼容CAN。CAN XL虽然努力保持兼容性,但在某些特性上(如远程帧和29位ID)有所牺牲。
  4. 应用领域:CAN适用于简单的控制网络,CAN FD适合需要更高数据速率的应用,而CAN XL则面向需要大量数据传输的高级应用,如自动驾驶系统中的传感器数据传输。
  5. 准化与成熟度:CAN和CAN FD有成熟的标准化和广泛应用,而CAN XL尚在发展过程中,规范有待进一步完善。

source:20230717_can_xl_overview.pdf


创作不易,欢迎关注点赞再看收藏



汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。

谦益行
分享汽车研发日常,助力你我共同成长。
 最新文章