当前位置: 首页 > news >正文

【CAN总线协议】CAN和CANFD的区别、CAN FD帧结构解析

【CAN总线协议】CAN和CANFD的区别、CAN FD帧结构解析

1.概述
2.CANFD
2.1 CAN总线的局限性
2.2 CAN FD的改进
3.CAN FD与CAN 2.0的协议异同
3.1 定义不同
3.2 传输速率不同
3.3 数据长度不同
3.4 帧格式不同
3.5ID长度不同
4.CANFD帧结构解析
4.1 中贞走己女台
4.2.仲裁域
4.3 控制域
4.4 数据域
4.5 CRC
3.6 ACK
3.7 帧结尾

强烈推荐一位讲解CAN的博主:基础知识_口袋里のInit的博客-CSDN博客

can协议层学习参考链接如下,也是上述博主的,感觉CSDN解释CANFD都是借鉴这位博主哈哈哈

CAN总线(一)——CAN总线是什么,在哪用,怎么用?-CSDN博客

CAN总线(二)——CAN2.0标准与协议分析_can 协议规范有哪些-CSDN博客

CAN总线(三)——CAN FD协议及其与CAN2.0的异同_canfd和can 2.0-CSDN博客

1. 概述

CANFD:可以理解成CAN协议的升级版,只升级了协议,物理层未改变
Can与CanFD主要区别:传输速率不同、数据长度不同、帧格式不同、ID长度不同。

在这里插入图片描述

2. CANFD

CAN FD(CAN with Flexible Data rate)的引入正是为了克服传统CAN总线在数据量和速度方面的限制。

以下是CAN总线的局限性以及CAN FD的改进:

2.1 CAN总线的局限性
  1. 数据传输带宽受限:CAN 2.0的每帧数据段仅有8字节,数据速率最高为1 Mbit/s。通常车辆中使用的速率为500 kbit/s。随着车载电子控制单元(ECU)数量的增加,数据交互频繁,导致总线负载不断增加。
  2. 带宽利用率不高:在CAN报文中,只有约40-50%的带宽被用于实际的数据传输,其他时间被用于报文控制和错误检测。这在数据量大的应用场景中会导致通信效率低下。
  3. 响应机制延迟:由于汽车布线的物理特性,CAN总线的响应速度受到各种因素限制,包括控制器中的ACK确认延迟、收发器的传播延迟以及导线本身的传输延迟等。
2.2 CAN FD的改进

CAN FD协议在2011年开始开发,2015年被纳入ISO 11898-1标准。其主要改进包括:

  1. 增加数据段长度:CAN FD支持每帧最多64字节的数据段,而不是传统CAN的8字节,使得单次传输的有效数据量大幅提升。
  2. 动态数据速率:CAN FD允许在数据帧中采用不同的位速率。消息头保持原有速率,以确保与传统CAN兼容;在数据段和校验部分则可以采用更高的速率,从而实现更快的数据传输。
  3. 降低延迟,提高带宽利用率:CAN FD优化了帧结构和错误检测机制,提高了带宽利用效率,从而在同样的总线负载下提供更多的有效数据传输。

在这里插入图片描述

CAN FD的这些改进,使其能够适应更复杂的汽车应用场景,支持更大的数据吞吐量并减少总线负载。

3. CAN FD与CAN 2.0的协议异同

下图直观对比CAN FD与CAN 2.0,稍后从定义传输速率数据长度帧格式ID长度重点介绍。

在这里插入图片描述

3.1 定义不同

CAN

  • ​ Controller area network,即控制器区域(局域)网络;
  • CAN总线是国际上应用较广泛的现场总线之一;
  • 目前已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。

CAN-FD

  • ​ 英文为CAN with Flexible Data-Rate,翻译为 “可变速率的CAN” ;
  • 经典CAN基础上增加传输速率,数据域可传输64Byte,也就是可变速的功能,简单说就是CAN的升级版。
3.2 传输速率不同

Can

  • ​ 最大传输速率1Mbps。

CanFD

  • ​ 速率可变,仲裁比特率最高1Mbps(与CAN相同),数据比特率最高8Mbps,如下图所示:

在这里插入图片描述

3.3 数据长度不同

Can

  • ​ 一帧数据最长8字节。

CanFD

  • ​ 一帧数据最长64字节,主要关注 DLC>8 时。

  • CAN FD 对数据场的长度作了很大的扩充:

    DLC 最大支持 64 个字节,在 DLC 小于等于 8 时与原CAN 总线是一样的;
    大于 8 时则有一个非线性的增长,最大的数据场长度可达 64 字节。
    
3.4 帧格式不同

CanFD

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

CAN

  • 标准帧ID长度最长11bit

CANFD

  • 标准帧ID长度可扩展到12bit

4. CANFD帧结构解析

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

  • 与CAN一样,CAN FD一共具有:帧起始SOF,仲裁段,控制段,数据域,CRC域,ACK域,帧结束 共七个部分组成。
    CAN FD的帧结构如下:

在这里插入图片描述

4.1 帧起始
  • CAN与CANFD使用相同的SOF标志位来标志报文的起始

  • 帧起始由1个显性位构成,标志着报文的开始,并在总线上起着同步作用。

在这里插入图片描述

4.2.仲裁域
  • 与CAN不同,CAN FD取消了对远程帧的支持,用RRS位替换了RTR位,为常显性

  • IDE用于区分标准帧和扩展帧

在这里插入图片描述

4.3 控制域
  • CANFD与CAN有着相同的IDE,res,DLC位。同时增加了FDF、BRS、ESI三个bit位。FDF为隐性时,表示为CAN FD报文

  • BRS为速率转换开关,当其隐性时,速率可变,当其显性时,以正常的CAN-FD总线速率传输(恒定速率);

  • ESI用于表示错误状态,主动错误发送显性位,被动错误发送隐性位。

在这里插入图片描述

4.4 数据域

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

在这里插入图片描述

4.5 CRC
  • CAN FD对CRC算法进行了改进,CRC对填充位也加入了计算

  • 在校验和部分为避免有连续位超过6个,就确定在第一位以及以后每4位添加一个填充位加以分割,这个填充位的值是上一位的反码,作为格式检查,如果填充位不是上一位的反码,就作出错处理。

  • CAN FD的CRC场扩展到了21位。

在这里插入图片描述

3.6 ACK

ACK紧跟着CRC结束标识位。

不同的是,CAN FD支持2bits的ACK的识别

在这里插入图片描述

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

尊重原创,再次强调,原文链接:https://blog.csdn.net/wangguchao/article/details/124719188


http://www.mrgr.cn/news/67430.html

相关文章:

  • 模拟实现strcat函数
  • 算法的基础知识
  • 信息安全工程师(79)网络安全测评概况
  • VSCode Snippets 如何帮助我们提高开发效率
  • 第三百一十四节 Java线程教程 - Java当前线程
  • A010-基于SpringBoot的宠物健康咨询系统的设计与实现
  • 制造业仓储信息化总体规划方案
  • 康坦电商发布2024年度战略:立足中国,开拓全球市场
  • Redux的简介及其在React中的应用
  • 想要搭建陪玩系统小程序,这几点不容忽视,陪玩系统源码框架
  • 在Java中抽象类和接口的区别是什么?
  • PySpark本地开发环境搭建
  • 华为机试HJ27 查找兄弟单词
  • 用接地气的例子趣谈 WWDC 24 全新的 Swift Testing 入门(三)
  • FQDN(Fully Qualified Domain Name,完全限定域名)是指能够唯一标识互联网上一台主机的域名
  • (61)使用LMS算法估计线性预测器并计算估计误差的MATLAB仿真
  • .NET 白名单文件通过反序列化执行系统命令
  • PN结特性及反向饱和电流与反向漏电流详解
  • 【机器学习】聚类算法分类与探讨
  • 1.6K+ Star!Ichigo:一个开源的实时语音AI项目
  • 边缘计算的基本概念与实践
  • 探讨Mysql和Redis的数据实时同步方案
  • Java之随机点名器(4)
  • LeetCode题练习与总结:O(1) 时间插入、删除和获取随机元素--380
  • IO模块赋能污水处理
  • 【Git】Liunx环境下Git的使用:“克隆,提交,推送“