目录

1. CANFD的来历

2.  CANFD与CAN的协议异同

3. CANFD帧结构解析

3.1 帧起始

3.2.仲裁域

3.3 控制域

3.4 数据域

3.5 CRC

3.6 ACK

3.7 帧结尾


1. CANFD的来历

我们知道了, CAN2.0数据段只有8byte,最高速率为 1Mbit/s,通常使用的是 500k,随着功能的逐渐增多,各 ECU 之间的信息交互也越多,导致总线负载持续走高;CAN 报文中只有约 40~50%的带宽用于实际数据传输;响应机制受车内布线的物理特性限制,例如 CAN 控制器中的 ACK 生成延迟;收发器传播延迟;导线延迟等,然而随着汽车功能越来越多,CAN总线的局限性也逐渐暴露:

为了解决上诉CAN总线的局限性,对其进行升级时必不可少的,从而有了CAN FD,其全称为CAN with Flexible Data rate。2011年,开始CAN FD协议的开发,2015年ISO11898-1进行了修订,将CAN FD加入其中。

CAN与CAN-FD性能对比:

2.  CANFD与CAN的协议异同

在完全理解了CAN协议后,我们只需要对比CANFD与其的不同就可以比较简单的熟悉CANFD协议,那相对于CAN,CAN FD有什么不同呢?

(1)传输速率不同。

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

(2)数据长度不同。

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

(3)帧格式不同。

CanFD新增了FDF、BRS、ESI位:

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

(4)ID长度不同。CAN FD标准帧ID长度可扩展至12bit,CAN的标准帧ID为11bit。

3. CANFD帧结构解析

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

CAN FD的帧结构是什么呢?

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

3.1 帧起始

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

3.2.仲裁域

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

3.3 控制域

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

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

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

3.4 数据域

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

3.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位的隐性位。

CAN总线(三)——CAN FD协议及其与CAN2.0的异同相关推荐

  1. CAN2.0和J1939协议的关系

    转发自http://www.cankau.cn/support/help/can-vs-j1939.html 很长时间没搞明白j1939与CAN2.0的关系,这篇文章让我明白了. CAN2.0是一种总 ...

  2. 基于Virtex-6 FPGA的三种串行通信协议测试及对比

    在高性能雷达信号处理机研制中,高速串行总线正逐步取代并行总线.业界广泛使用的Xilinx公司Virtex-6系列FPGA支持多种高速串行通信协议,本文针对其中较为常用的Aurora 8B/10B和PC ...

  3. AXI接口协议详解-AXI总线、接口、协议

    转自:https://cloud.tencent.com/developer/article/1695010 AXI接口协议详解-AXI总线.接口.协议 AXI 总线 上面介绍了AMBA总线中的两种, ...

  4. AXI总线详解-总线和接口以及协议

      总线.接口和协议,这三个词常常被联系在一起,但是我们心里要明白他们的区别.   总线是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线.地址线.控制线等构成.接口是一种连接标准,又 ...

  5. CAN总线(二)——CAN2.0标准与协议分析

    目录 1. CAN 协议的基本概念 2. CAN 协议及标准规格 2.1 ISO 标准化的 CAN 协议 2.2 ISO11898 和 ISO11519-2 的不同点 3. CAN协议 3.1 帧的种 ...

  6. 固态硬盘的总线、接口、协议之间的关系和区别

    本文主要摘录自Up主硬件茶谈的视频,原视频链接:点我跳转 ​ 在硬盘选购时,主要考虑三个规格.分别是总线(bus).协议(protocol).接口(interface). 概览 协议.总线和接口都能限 ...

  7. CAN FD协议实用指南

    "您是否需要一份CAN FD协议的简要的实用指南?"-来自虹科的问候. ** CANFD 指南前言 ** 在本指南中,我们会介绍CAN FD(CAN Flexible Data-r ...

  8. CAN FD 协议联网和测试

    在汽车行业中引进新技术是充满风险且成本昂贵的事情.在车载网络领域尤其如此,这通常意味着在已经得到验证的机制与通过更先进的总线系统增加功能并提高带宽之间实现平衡.应始终将近年来实现的可靠性作为基准,在任 ...

  9. 【使用C++开发MCU】04-CAN实例之CAN FD协议快速入门

    概述 随着现代技术的进步,自90年代开始使用的CAN协议[Classical CAN protocol (ISO 11898-1:2015) ]在各个邻域具有广泛应用但也面临巨大的压力. 因此,本专栏 ...

最新文章

  1. 进程、线程与应用程序域
  2. 利用自己的电脑设置web服务器建网站_win7系统篇,win7系统利用iis搭建web服务器实现信息浏览资源共享的操作方法...
  3. tf13: 简单聊天机器人
  4. linux ps转为tiff,转换为TIFF,将图像转换为TIFF,在线图像转换为TIFF
  5. Go Channel 详解
  6. 除了PS,还有它可以轻松实现图像处理!
  7. Vmware Workstation 6.5试用之二—支持设备的热插拔功能
  8. 安卓开发仿微信图片拖拽_Android 仿微信朋友圈发表图片拖拽和删除功能
  9. Vue开发实例(03)之Vue项目引入element_ui
  10. mybatis从0到1--学mybatis看这一篇就足够
  11. HTML转PDF(Thymeleaf做模板)
  12. 1口百兆光纤收发器工业导轨式发送机接收机1百兆光1百兆电工业以太网光纤收发器
  13. GPIO推挽输出和开漏输出模式区别详解
  14. 基于FusionInsight Manager的大数据架构图
  15. 通过举例彻底搞懂Matlab中max函数和min函数的用法(求最大值和最小值)
  16. Windows Defender保护历史记录清空方法
  17. linux虚拟磁盘服务,hintsoft Linux iscsi虚拟磁盘完全教程及优化攻略
  18. 测试工程师面试,全国各地有哪些知名互联网公司可以去?
  19. Windows 10(Win10) 怎么删除设备和驱动里的CD驱动器
  20. C++性能优化(十一) —— 内存管理器性能分析

热门文章

  1. Fiddler+Proxifier进行PC端微信小程序抓包
  2. jsp与servlet的关系
  3. 微服务框架搭建(网关路由)
  4. 通过QQ号获取QQ昵称、头像等信息
  5. SQL三种连接:内连接、外连接、交叉连接
  6. Windows NPS搭建(NPS配置交换机radius认证登录)
  7. 基础概念之电路板的概念
  8. C++ 模板 全特化与偏特化
  9. 数据库小技能:PL/SQL中书写定义sql
  10. (CNS复现)CLAM——Chapter_03