一文搞懂CAN和CAN FD总线协议

这篇具有很好参考价值的文章主要介绍了一文搞懂CAN和CAN FD总线协议。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、CAN与CAN FD的概念

1、CAN是什么

控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。 CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。 该协议的健壮性使其用途延伸到其他自动化和工业应用。 CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

CAN连线图

2、CAN FD是什么

CAN FD 是CAN with Flexible Data rate的缩写,翻译为【可变速率的 CAN】。 也可以简单的认为是传统CAN的升级版,其中要说明的是,只升级了协议,物理层没有改变。

3、为什么需要CAN FD?

原因主要是汽车功能越来越多,越来越复杂,传统的CAN总线(CAN2.0)的负载率越来越高,甚至负载率高达95%,以及传统CAN总线还存在一些局限性。

传统CAN总线的局限性包括:

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

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

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

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

目前的很多应用对于通讯的数据量要求越来越高,对于通讯的速率要求也越来越高,尤其是当速率高于1MBit/s的时候,传统的CAN通讯是无法满足的,所以基于这种应用的需求,CAN FD就应运而生了。 既然是出于这样的目的,CANFD的出现肯定是需要解决传输速率和传输字节的问题,带着这样的思路我们就可以更容易地理解CANFD协议,以及为什么会出现它了。

二、CAN与CANFD的比较

CAN与CAN-FD主要区别:传输速率不同、数据域长度不同、帧格式不同、ID长度不同。

1、传输速率不同

CAN的传输速率

一般的工程中比较常用的为500K每秒的通讯速率。 这个速率在实际测试的时候也是非常可靠的。 CAN总线上任意两个节点的最大传输距离与其位速率有关。 最大通信距离指的是同一条总线上两个节点之间的距离。 从下面图中,可以看到速率越低通讯距离就越远,也就是说CAN总线的通讯距离和波特率成反比。 CAN最大传输速率为1Mbps

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

CAN总线的通讯距离和波特率的关系图

CANFD的传输速率

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

因此,对于 CAN FD而言,是在 CAN 的基础上增加了一个数据域的传输速率,数据传输速率要大于等于原 CAN 总线用的速率。 也就是说 CAN FD 支持两种传输速率,两种速率可以保持一致,也可以不保持一致。 速率可变,仲裁比特率最高1Mbps,数据比特率最高8Mbps。

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

标准帧对比

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

扩展帧对比

2、数据域长度不同

CAN的数据域长度,一帧数据最长8字节。 CAN FD数据域长度,一帧数据最长64字节。

传统CAN报文与CANFD报文的DLC长度区别如下所示:

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

传统CAN报文与CANFD报文的最大区别有2点,1、CANFD可以传输更多的数据,2、CANFD报文在传输中由2种传输速率完成传输,一种是标称的CAN总线速率(用于传输非数据域的字段),另一种是数据域传输速度(用于传输数据域的字段)。

3、帧格式不同

在CAN总线上传输的信息称为报文,当总线空闲时任何连接的单元都可以开始发送新的报文。 CAN通信是通过以下5种类型的帧进行的:数据帧 、遥控帧 、错误帧 、过载帧 、帧间隔。

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

can总线数据帧格式

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

can遥控帧

3.1.CAN Framing 帧格式

  • 标准帧
    • 标准帧(11 ID + 0~8 bytes data)
    • CAN ID为11bit,如下,可以用scope查看
    • 一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD
    • 标准远程帧(11 ID + 0 byte data)
  • 扩展帧
    • 扩展帧(29 ID + 0~8 bytes data)
    • 扩展远程帧(29 ID + 0 byte data)

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

  • SOF:0(显性电位为 0,隐性电位为 1,总线空闲默认为 1),帧起始,接收节点收到帧起始会和总线时钟进行同步(硬同步、重同步,这里是硬同步)。
  • 仲裁字段
ID:高位在前
RTR:远程帧请求,远程帧为 0,表示是数据帧,否则是远程帧。远程帧表明接受该帧的节点即不主动发送数据,当他收到远程帧时,才开始发送数据,减少占用 CAN 的通信。
  • 控制字段
IDE:表示是否是扩展帧,IDE 为 1 是扩展帧
r:保留位
DLC:数据长度,合理范围是 0 - 8,超过则表示 8 字节
  • 数据字段
  • 校验字段
CRC:15位校验位
DEL(delimter):分隔符,无意义,为 1
  • 确认字段
ACK:发送节点,该位都为 1,接受节点 CRC 正确则在 ACK 位时,该位置置为 0,否则还是 1。如果发送节点回读 ACK 是 0,继续发送,否则停止发送,下一次发送一个错误帧。(下一次发送错误帧不太理解)
DEL
  • EOF + ITM:结束字段 + 帧间隔

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

扩展帧结构

  • 位填充:
出现了五个相同的位(包括填充位),就在下一个位置填充一个相反的位。
范围从 SOF 开始一直到 CRC。

帧错误检测机制

  • 位监控:回读发送出去的位的数据
  • ACK 位:发送数据的节点回读 ACK 是 0,继续发送,否则意味着发生错误停止发送
  • Stuff Check:填充检测
  • CRC 检测
  • Form 检测:一些分隔符 del 等
  • 发先帧错误后:某一个节点检查到发送或者接受的帧出现错误,会以发送错误帧的方式告知其他参与通信的节点,当前正在发送或者接受的帧是有问题的。

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

帧错误检测机制

3.2.CAN FD Framing 帧格式

硬件、协议轻微改动。CAN FD 数据段最多 64 字节。CAN FD 最高支持 8MB/s 的传输速率。CAN FD 采用可变速率,数据字段传输快。

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

CAN FD 没有远程帧,只分为两种:标准帧(标识符 11 位)和扩展帧(标识符 29 位)

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

CAN FD标准帧中的数据帧

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

CAN FD标准帧和扩展帧结构

  • SOF:帧起始
  • 标识符ID
  • RRS 代替原来的 CAN 帧的 RTR
  • IDE:表示是否是扩展帧
  • FDF:表示是否是 CAN 帧还是 CAN FD 帧
  • r:保留位
  • BRS(Bit Rate Switch): 之后数据段传输是否变换速度,BRS 之前属于仲裁段,会以低速传输;BRS 开始到 CRC 分隔符为止,属于数据段,可以高速传输。CRC 分割符之后,由于需要 ACK 应答,因此又变为低速传输。

BRS=0,保持低速传输,BRS=1,数据段以高速传输

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

  • ESI:用来告知其余节点,发送方的错误状态。ESI=1,Tx Node处于被动错误状态;ESI=0,Tx Node处于主动错误状态
  • DLC:0-8 线性表示数据长度,9-15离散的表示数据长度。

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

  • CRC:根据不同的数据长度使用不同长度的 CRC 校验。CAN 使用 15 位的 CRC 校验,且不包含填充位。CAN FD CRC 包含数据填充位。CAN FD 在 CRC 字段的前四位增加了对前面填充位的计数校验,前面的填充同样是 5 个相同位跟一个相反的位。CRC 字段不适用之前的填充,而是使用固定位填充,从 CRC 字段开始位置开始填充,每隔四个位填充一位,每次填充的位都取前一个的相反值。
先统计 SOF 开始到 CRC 字段之前填充位的个数对 8 取模,将数值以格林编码的形式存放在高三位,最后一位偶校验位,校验前三位。
当数据段大于 16 字节,使用 21 位 CRC
当数据段小于等于 16 字节,使用 17 位 CRC

3.3.CAN FD新增了FDF、BRS、ESI位

FDF:表示CAN报文还是CAN-FD报文。
BRS:表示位速率转换,该位隐性(1)时,速率可变(即BSR到CRC使用转换速率传输),该位为显性(0)时,以正常的CAN-FD总线速率传输(恒定速率);
ESI:表示发送节点状态。

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

4、ID长度不同

CAN标准帧ID长度最长11bit,CANFD标准帧ID长度可扩展到12bit。

三、CAN与CANFD的优劣势

1、CAN优势

  • 具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;
  • 采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作;
  • 具有优先权和仲裁功能,多个控制模块通过CAN 控制器挂到CAN-bus 上,形成多主机局部网络;
  • 可根据报文的ID决定接收或屏蔽该报文;
  • 可靠的错误处理和检错机制;
  • 发送的信息遭到破坏后,可自动重发;
  • 节点在错误严重的情况下具有自动退出总线的功能;
  • 报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。

2、CAN缺点

不一致性

CAN总线各节点质量的不一致会引发系统瘫痪、错误、死机等问题,所以CAN一致性测试成为保证CAN网络安全运行的重要手段。

不可预测性

CAN总线将节点状态分为ErrorAcTIve、Error Passive 和Bus Off 三种,这三种状态在一定条件下可以互相转换,不同状态中节点的发送有不同的延迟。 另外,由于CAN 的原子广播特点,其它节点的发送错误或接收错误会开启一个错误帧,从而影响到该节点的接收错误计数器的值,进而影响节点状态。

信道出错堵塞

节点有可能受干扰或其它原因暂时或永久失效,出错的主机会命令CAN 收发器不断发送消息,即所谓的Babbling ldiot 错误。 由于该信息的格式等均合法,因此CAN 没有相应的机制来处理这种情况。

3、CAN FD的优势

CAN FD提高位速率的同时提供更短的CAN帧

  • 延迟时间更短.
  • 更好的实时性能
  • 更高的带宽

CAN FD可以在CAN帧中容纳从8到64字节更多的数据

  • 相对更少的系统开销 = 更好的数据吞吐量
  • 发送较大数据对象时,软件更简单高效

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

CAN FD具有更高性能的CRC算法

  • 降低未检测到错误的风险
  • 但是因为受制于产品的稳定性考验,改造成本等问题,还没办法快速全面普及CAN FD。

四、CAN FD通信 CANoe 配置

如果要两个CAN对发信息,CANoe配置(以VN1640A为例)

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

 一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

VN1640A CH1和CH2配成CAN FD ,发送的数据type配置成 CAN Data 和CAN FD都可以发送

VN1640A CH1和CH2配成CAN ,发送的数据type配置成 CAN Data 和CAN FD都可以发送

一文搞懂CAN和CAN FD总线协议,CANoe使用教程,CAN,CANFD

五、小结 

总的来看,由于现在车辆上需要的通讯数据越来越多,而原有的CAN负载率逐年升高,考虑到传统的CAN通讯的架构已经非常的庞大了,如果将传统的全部推翻更换一个全新的通讯方式所要付出的代价实在太大,所以需要一个既能兼容原有的CAN通讯,又不至于增加太高的成本,CAN FD就是一个折中方案,同时还可以提高数据的传输量。文章来源地址https://www.toymoban.com/news/detail-684354.html

到了这里,关于一文搞懂CAN和CAN FD总线协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文搞懂I2S通信总线

    目录 1、物理特性 2、常见的I2S数据格式 2.1、I2S Philips标准 2.2、左对齐(MSB)标准 2.3、右对齐(LSB)标准 之前我们讲过I2C通信总线,本篇博文将讲一讲I2C的变种:I2S总线。 I2C和I2S都是由Philips公司(2006年迁移到NXP)发布的串行总线,I2S是在I2C之后发布,I2S专为传输音频数据而

    2024年01月16日
    浏览(37)
  • 一文详解汽车电子CAN总线

    CAN总线(控制器区域网络Controller Area Network)是一个中央网络系统,连接不同的电子控制单元(ECU)以及车辆中的其他设备。现在的汽车可以有100个ECU,因此CAN总线通信变得非常重要。 集中式 :CAN总线系统允许对连接到网络的ECU进行集中控制,使控制ECU变得容易。 鲁棒性 :CAN总线协

    2024年02月08日
    浏览(41)
  • 关于485、CAN、单总线、SPI、I2C的特点、区别、协议、使用方法、通信方式。

    485(一般称作 RS485/EIA-485)。 是隶属于 OSI 模型物理层电气特性规定为 2 线半双工多点通信标准。 它的电气特性和 RS-232 大不一样,用缆线两端的电压差值来表示传递信号。 特性 1.    接口电平低,不易损坏芯片 RS485 的电气特性:逻辑“1”以两线间的电压差为+(2~ 6)V表示;

    2024年02月07日
    浏览(56)
  • CAN总线通讯协议学习

    s目录 CAN(controller Area Network) 控制器局域网 CAN通讯 CAN总线的数据帧 解析         CAN总线应用最多的是汽车领域,这里的控制器在汽车领域的专业术语是ECU.(electronic control unit)电子控制单元。可以看成一个超小型的计算机,内部集成了供电系统,单片机,驱动系统,是汽车领

    2024年02月05日
    浏览(34)
  • 如何使用MCP2518FD外部CAN FD控制器实现速速CAN通信

             MCP2518FD外部CAN FD控制器具有小尺寸和SPI接口,可实现轻松连接。可将CAN FD通道轻松添加到缺少CAN FD外设或没有所需CAN FD通道的微控制器上。MCP2518FD支持经典格式 (CAN 2.0B) 和CAN灵活数据速率 (CAN FD) 格式中的CAN帧格式,符合ISO11898-1:2015标准。  框图: 本文实验板

    2024年01月18日
    浏览(37)
  • 485、CAN、单总线、SPI、I2C的概念,特点,协议,使用方法及通信方式,还有它们之间的区别

    1. 485:485(一般称作 RS485/EIA-485)是隶属于 OSI 模型物理层的电气特性规定为 2 线,半双工,多点通信的标准。它的电气特性和 RS-232 大不一样。用缆线两端的电压差值来表示传递信号。 2. CAN:CAN,全称为“Controller Area Network”,即控制器局域网,是一种多主方式的串行通讯总

    2024年02月10日
    浏览(50)
  • 了解SPI总线CAN控制器 MCP2515配置 一文即可

    最近工作中遇到需要6路CAN通信的情况,单片机自带的4路已不满足实际需求,故采用了SPI总线的CAN控制器芯片MCP2515,通过SPI通信的CAN扩展芯片最高可实现 1Mbps 的遵循 CAN 2.0B 的协议通信,配置起来也比较繁琐,故写诞生了这篇文章。本篇中仅对基础功能进行测试,如有疑问可

    2024年02月06日
    浏览(49)
  • CAN总线协议简介及其常见的应用领域

    CAN总线协议是一种串行通讯协议,主要用于汽车和工业自动化领域,实现了实时应用的需求。 首先,CAN总线协议的基本概念包括报文、信息路由和位速率。在CAN系统中,总线上传输的信息以不同格式的报文发送,但长度有限。CAN总线的位速率根据系统的不同而不同。 其次,

    2024年01月19日
    浏览(42)
  • STM32基于CAN总线协议控制步进电机

    如上图所示,实现了以下功能: 1.两块stm32单片机通过CAN控制器与收发器进行半双工通信; 2.stm32主机通过检测按键,切换不同的模式,将不同模式的case值发送给stm32从机; 3.stm32从机根据收到的case值,控制步进电机进行不同的运动操作; 4.OLED用于显示收发内容与按键状态等

    2024年01月19日
    浏览(47)
  • [教程]一文搞懂STM32使用DHT11采集温湿度

          DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高 的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测 温元件,并与一个高性能8位单片机相连接。

    2024年02月01日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包