一文搞懂canfd总线协议帧格式

不脱发的程序猿 不脱发的程序猿     2023-01-06     417

关键词:

目录

1、为什么会出现CAN FD?

2、什么是CAN FD?

3、CAN FD和CAN总线协议帧异同

4、解析CAN FD帧结构

4.1、帧起始

4.2、仲裁段

4.3、控制段

4.4、数据段 

4.5、CRC段

4.6、ACK段

4.7、帧结束

5、CAN FD的改进

6、如何从传统的CAN升级到CAN FD


假期更新了一文搞懂CAN总线协议帧格式,CAN FD总线协议怎能错过?本篇博文将讲解CAN FD总线协议帧格式。

对汽车电子技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~

1、为什么会出现CAN FD?

随着总线技术在汽车电子领域越来越广泛和深入的应用,特别是自动驾驶技术的迅速发展,汽车电子对总线宽度和数据传输速率的要求也越来也高,传统CAN(1MBit/s,8Bytes Payload)已难以满足日益增加的需求。

因此在2012年,Bosch发布了新的CAN FD标准 (CAN with Flexible Data Rate) ,CAN FD继承了CAN的绝大多数特性,如同样的物理层,双线串行通信协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制等,同时CAN FD弥补了CAN在总线带宽和数据长度方面的不足。

2015年6月30日,国际标准化组织(ISO)已经正式认可CAN FD,并无反对票通过ISO 11898-1作为国际标准草案。

2、什么是CAN FD?

CAN FD协议是由Bosch以及行业专家预研开发的,并于2012年发布。通过标准化对其进行了改进,现已纳入ISO 11898-1:2015。一开始的Bosch CAN FD版本(非ISO CAN FD)与ISO CAN FD是不兼容。

CAN FD具有以下4个主要优点:

1、增加了数据的长度

CAN FD每个数据帧最多支持64个数据字节,而传统CAN最多支持8个数据字节。这减少了协议开销,并提高了协议效率。

2、增加传输的速度

CAN FD支持双比特率:与传统CAN一样,标称(仲裁)比特率限制为1 Mbit/s,而数据比特率则取决于网络拓扑/收发器。实际上,可以实现高达5 Mbit/s的数据比特率。

3、更好的可靠性

CAN FD使用改进的循环冗余校验(CRC)和“受保护的填充位计数器”,从而降低了未被检测到的错误的风险。这在汽车和工业自动化等安全攸关的应用中至关重要。

4、平滑过渡

在一些特定的情况下CAN FD能用在仅使用传统CAN的ECU上,这样就可以逐步引入CAN FD节点,从而为OEM简化程序和降低成本。

实际上,与传统CAN相比,CAN FD可以将网络带宽提高3到8倍,从而为数据的增长提供了一种简单的解决方案。

3、CAN FD和CAN总线协议帧异同

CAN FD和CAN总线协议帧格式如下所示:

CAN FD和CAN总线协议帧不同点如下所示:

1、传输速率不同

CAN FD的速率可变,从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,最高速率可达到8Mbps,其他部分与CAN相同。

2、数据长度不同

CAN FD支持的最大数据长度为64byte,CAN支持的最大数据长度为8byte。

3、帧格式不同

CAN FD新增了FDF、BRS、ESI位:

  • FDF 位(Flexible Data Rate Format):原 CAN 数据帧中的保留位 r。表示 CAN 报文还是 CAN-FD 报文,FDF 位常为隐性(1),表示 CAN FD 报文;
  • BRS 位( Bit Rate Switch):表示位速率转换,当 BRS 为显性位(0)时数据段的位速率与仲裁段的位速率一致(恒定速率),当 BRS 为隐性位(1)时速率可变(即 BSR 到 CRC 使用转换速率传输);
  • ESI 位(Error State Indicator):发送节点错误状态指示,主动错误时发送显性位(0),被动错误时发送隐性位(1)。

4、ID长度不同

CAN FD标准帧ID长度可扩展至12bit,CAN的标准帧ID为11bit。

4、解析CAN FD帧结构

CAN FD节点可以正常收、发CAN报文,但CAN节点不能正确收、发CAN FD报文,因为其帧格式不一致。

与CAN一样,CAN FD一共具有:帧起始,仲裁段,控制段,数据段,CRC段,ACK段和帧结束,7部分组成。

4.1、帧起始

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

4.2、仲裁段

与CAN不同,CAN FD取消了对远程帧的支持,用RRS位替换了RTR位,为常显性。IDE用于区分标准帧和扩展帧。

4.3、控制段

CAN FD与CAN有着相同的IDE、res和DLC位,同时增加了FDF、BRS、ESI三个bit位。

  • FDF 位(Flexible Data Rate Format):原 CAN 数据帧中的保留位 r。表示 CAN 报文还是 CAN-FD 报文,FDF 位常为隐性(1),表示 CAN FD 报文;
  • BRS 位( Bit Rate Switch):表示位速率转换,当 BRS 为显性位(0)时数据段的位速率与仲裁段的位速率一致(恒定速率),当 BRS 为隐性位(1)时速率可变(即 BSR 到 CRC 使用转换速率传输);
  • ESI 位(Error State Indicator):发送节点错误状态指示,主动错误时发送显性位(0),被动错误时发送隐性位(1)。

4.4、数据段 

CAN FD兼容CAN的数据格式,同时最大还能支持:12、16、 20、 24、 32、 48和64byte。

像在传统CAN中一样,CAN FD DLC是4位,表示帧中数据字节的数量。为了维持4位DLC,CAN FD使用从9到15的其余7个值来表示所使用的数据字节数(12、16、20、24、32、48、64)。 

4.5、CRC段

传统CAN中的循环冗余校验(CRC)为15位,而在CAN FD中为17位(最多16个数据字节)或21位(20-64个数据字节)。 在传统CAN中,CRC中可以包含0到3个填充位,而在CAN FD中,总是有四个固定填充位以提高通信可靠性。

4.6、ACK段

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

4.7、帧结束

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

5、CAN FD的改进

CAN FD采用了两种方式来提高通信的效率:一种方式为缩短位时间提高位速率;另一种方式为加长数据场长度减少报文数量降低总线负载率。

CAN FD在 CRC 校验段采用了三种多项式来保证高速通讯下的数据可靠性。

1、缩短位时间提高位速率

CAN FD支持双比特率,与传统CAN一样,标称(仲裁)比特率限制为1 Mbit/s,而数据比特率则取决于网络拓扑/收发器。实际上,可以实现高达5 Mbit/s的数据比特率。

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

2、加长数据段长度减少报文数量降低总线负载率

CAN FD每个数据帧最多支持64个数据字节,而传统CAN最多支持8个数据字节,这减少了协议开销,并提高了协议效率。

DLC 最大支持 64 个字节,在 DLC 小于等于 8 时与原 CAN 总线是一样的,大于 8 时则有一个非线性的增长,最大的数据场长度可达 64 字节。如下所示为 DLC 数值与字节数的非线性对应关系。

3、CRC校验段

CAN FD使用改进的循环冗余校验(CRC)和“受保护的填充位计数器”,由于 DLCs 的长度不同,在 DLC 大于 8 个字节时,CAN FD选择了两种新的 BCH 型 CRC 多项式,从而降低了未被检测到的错误的风险。

6、如何从传统的CAN升级到CAN FD

尽管 CANFD 继承了绝大部分传统 CAN 的特性,但是从传统 CAN 到 CANFD 的升级, 我们仍需要做很多的工作。

1、在硬件和工具方面,要使用 CANFD,首先要选取支持 CANFD 的 CAN 控制器和收发器,还要选取新的网络调试和监测工具。

2、在网络兼容性方面,对于传统 CAN 网段的部分节点需要升级到 CANFD 的情况要特别注意,由于帧格式不一致的原因,CANFD 节点可以正常收发传统 CAN 节点报文,但是传统 CAN 节点不能正常收发 CANFD 节点的报文。

CAN FD 协议是 CAN-BUS 协议的最新升级,将 CAN 的每帧 8 字节数据提高到 64 字节,波特率从最高的 1Mbps 提高到 8-15Mbps,使得通讯效率提高 8 倍以上,大大提升了车辆的通讯效率。此项技术一直被欧美企业垄断,直至 2016 年,中国 CAN-BUS 领导者—广州致远电子股份有限公司,基于拥有完全知识产权的 CAN FD IP 核代码,研制出中国第一款 CAN FD 接口卡,使中国的总线技术水平与世界最高水平同步。

一文搞懂can和canfd总线协议

目录1、CAN数据帧1.1、帧起始1.2、仲裁段1.2.1、标准数据帧1.2.2、扩展数据帧1.3、控制段1.4、数据段1.5、CRC段1.6、ACK段1.7、帧结束2、CAN标准数据帧和扩展数据帧2.1、标准数据帧2.2、扩展数据帧2.3、标准数据帧和扩展数据帧的特性3... 查看详情

一文搞懂can和canfd总线协议

目录1、CAN数据帧1.1、帧起始1.2、仲裁段1.2.1、标准数据帧1.2.2、扩展数据帧1.3、控制段1.4、数据段1.5、CRC段1.6、ACK段1.7、帧结束2、CAN标准数据帧和扩展数据帧2.1、标准数据帧2.2、扩展数据帧2.3、标准数据帧和扩展数据帧的特性3... 查看详情

一文搞懂can总线协议帧格式

目录1、数据帧1.1、帧起始1.2、仲裁段1.2.1、标准数据帧1.2.2、扩展数据帧1.3、控制段1.4、数据段1.5、CRC段1.6、ACK段1.7、帧结束2、标准数据帧和扩展数据帧2.1、标准数据帧2.2、扩展数据帧2.3、标准数据帧和扩展数据帧的特性3、遥... 查看详情

一文搞懂can总线协议帧格式

目录1、数据帧1.1、帧起始1.2、仲裁段1.2.1、标准数据帧1.2.2、扩展数据帧1.3、控制段1.4、数据段1.5、CRC段1.6、ACK段1.7、帧结束2、标准数据帧和扩展数据帧2.1、标准数据帧2.2、扩展数据帧2.3、标准数据帧和扩展数据帧的特性3、遥... 查看详情

一文搞懂can总线协议帧格式

目录1、数据帧1.1、帧起始1.2、仲裁段1.2.1、标准数据帧1.2.2、扩展数据帧1.3、控制段1.4、数据段1.5、CRC段1.6、ACK段1.7、帧结束2、标准数据帧和扩展数据帧2.1、标准数据帧2.2、扩展数据帧2.3、标准数据帧和扩展数据帧的特性3、遥... 查看详情

一文搞懂uart通信协议

目录1、UART简介2、UART特性3、UART协议帧3.1、起始位3.2、数据位3.3、奇偶校验位3.4、停止位4、UART通信步骤1、UART简介UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发器)是一种双向、串行、异步的通信总线,仅... 查看详情

一文搞懂uart通信协议

目录1、UART简介2、UART特性3、UART协议帧3.1、起始位3.2、数据位3.3、奇偶校验位3.4、停止位4、UART通信步骤1、UART简介UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发器)是一种双向、串行、异步的通信总线,仅... 查看详情

全网唯一uavcan中文教程(17)canfd协议详解

...及对汽车高级驾驶辅助系统和人机交互的增加,传统的CAN总线在传输速率和带宽等方面越来越显得力不从心,因此改进版的CAN总线应运而生。普通can主要有以下几方面不足:(1)最高数据传输速率限制为1Mbit/s,车载领域实际使... 查看详情

一文搞懂i2s通信总线

目录1、物理特性2、常见的I2S数据格式2.1、I2SPhilips标准2.2、左对齐(MSB)标准2.3、右对齐(LSB)标准之前我们讲过I2C通信总线,本篇博文将讲一讲I2C的变种:I2S总线。I2C和I2S都是由Philips公司(2006年迁... 查看详情

一文搞懂i2s通信总线

目录1、物理特性2、常见的I2S数据格式2.1、I2SPhilips标准2.2、左对齐(MSB)标准2.3、右对齐(LSB)标准之前我们讲过I2C通信总线,本篇博文将讲一讲I2C的变种:I2S总线。I2C和I2S都是由Philips公司(2006年迁... 查看详情

一文看懂modbus协议

参考技术A自从1979年出现工业串行链路的事实标准以来,Modbus使成千上万的自动化设备能够通信。Modbus 是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。Modbus应用... 查看详情

can总线协议与帧格式的构成

1、CAN总线的介绍CAN总线简称—控制器局域网络,由德国BOSCH公司开发,是一种串行的差分总线,并且这种差分总线只传递数据信息。CAN总线已经是国际上的一种通信标准(ISO11519),它具有高可靠性、良好的错误检测能力、总线... 查看详情

一文搞懂i2c总线通信(代码片段)

目录1、简介2、物理特性3、通讯时序3.1、开始和停止条件3.2、地址传送3.3、数据传送3.4、总线应答3.5、总线仲裁4、工作过程4.1、单个主设备连接多个从机4.2、多个主设备连接多个从机 本来不打算写这篇文章,因为网上关于I... 查看详情

10张图带你搞懂数据链路层ppp点到点协议

...议,你知道以太网数据帧在网络中如何发送和接收的吗?一文带你搞懂它,用于实现数据链路层数据帧的封装,今天我们讲下数据链路层的另一个协议——PPP。以太网协议用在局域网中,一般使用以太网口进行互联;广域网中经... 查看详情

一文搞懂cpu如何控制i/o设备

1接口和设备:经典适配器模式输入输出设备不只是一个设备。大部分输入输出设备,都有:它的接口(Interface)实际的I/O设备(ActualI/ODevice)硬件设备并非直接接入到总线上和CPU通信,而是通过接... 查看详情

一文搞懂cpu如何控制i/o设备

1接口和设备:经典适配器模式输入输出设备不只是一个设备。大部分输入输出设备,都有:它的接口(Interface)实际的I/O设备(ActualI/ODevice)硬件设备并非直接接入到总线上和CPU通信,而是通过接... 查看详情

一文搞懂物联网modbus通讯协议(代码片段)

简介: 一般来说,常见的物联网通讯协议众多,如蓝牙、Zigbee、WiFi、ModBus、PROFINET、EtherCAT、蜂窝等。而在众多的物联网通讯协议中,Modbus是当前非常流行的一种通讯协议。它一种串行通信协议,是Modicon公司... 查看详情

一文搞懂rpc原理(代码片段)

RPC原理解析什么是RPCRPC(RemoteProcedureCallProtocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP/IP或UDP,为通信程序之间携带信... 查看详情