CAN FD总线详细介绍
文章目录
- 前言
- 一、CAN FD简介
- 1.1 CAN FD是什么?
- 1.2 为什么要CAN FD?
- 1.3 CAN FD的特点
- 二、CAN FD协议
- 2.1 CAN FD帧结构
- 2.1.1 帧起始
- 2.1.2 仲裁段
- 2.1.3 控制段
- 2.1.4 数据段
- 2.1.5 CRC段
- 2.1.6 ACK段
- 2.1.7 帧结束
- 总结:
前言
前面的文章介绍了CAN协议、本文介绍一下CAN FD,对比一下这两者的区别。希望看完后,能对你有所帮助。
CAN 协议介绍的文章:CAN总线详细介绍
一、CAN FD简介
1.1 CAN FD是什么?
CAN FD,全称为CAN with Flexible Data rate。继承了CAN的主要特性,弥补了CAN的数据长度和带宽的限制。可简单认为CAN FD就是CAN的升级版。
2011年,开始CAN FD协议的开发,2012年发布第一个版本,2015年ISO11898-1进行了修订,将CAN FD加入其中。
1.2 为什么要CAN FD?
随着汽车功能越来越复杂,也越来越往智能化发展,传统的CAN总线已经跟不上时代的速度了。主要原因有如下几点:
- CAN 总线最高速率为 1Mbit/s,实际使用中通常只有是 500k,随着功能的逐渐增多,各 ECU 之间的信息交互也越多,导致总线负载持续增加;
- CAN 报文中只有约 40~50%的带宽用于实际数据传输;
- 最大总线速度受到响应机制的限制,例如 CAN 控制器中的 ACK
生成延迟;收发器传播延迟;导线延迟等。
为了解决CAN总线的局限,就对其进行升级,CAN FD就此应运而生了。
1.3 CAN FD的特点
- 传输速率是可变的。从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,最高速率可达到8Mbps。其他部分与CAN相同。
- 数据长度不同。CAN FD支持的最大数据长度为64byte。
- 帧格式不同。CanFD新增了FDF、BRS、ESI位
二、CAN FD协议
2.1 CAN FD帧结构
CAN FD数据帧结构与CAN一样,一共有:帧起始SOF,仲裁段,控制段,数据段,CRC段,ACK段,帧结束,共7个部分
CAN 标准帧结构
CAN FD 标准帧结构
2.1.1 帧起始
CAN FD与CAN使用相同的SOF标志位来标志报文的起始。帧起始由1个显性位构成,标志着报文的开始,并在总线上起着同步的作用
2.1.2 仲裁段
与传统CAN相比,CAN FD取消了远程帧,用RRS位替换了RTR位,为常显性。IDE位仍为标准帧和扩展帧标志位,若标准帧与扩展帧具有相同的前 11 位 ID,那么标准帧将会由于 IDE 位为 0,优先获得总线。
RTR(Remote Transmission Request Bit):远程发送请求位,RTR位在数据帧里必须是显性,而在远程帧里为隐性。
RRS(Remote Request Substitution):远程请求替换位,即传统CAN中的RTR位,CAN FD中为常显性。
CAN和CAN FD 仲裁段的对比
2.1.3 控制段
控制段中CANFD与CAN有着相同的IDE,res,DLC位。同时增加了三个控制bit位,FDF、BRS、ESI。
FDF(Flexible Data Rate Format):原CAN数据帧中的保留位r。FDF常为隐性,表示CAN FD 报文。
BRS(Bit Rate Switch):位速率转换开关,当BRS为显性位时数据段的位速率与仲裁段的位速率一致,当BRS为隐性位时数据段的位速率高于仲裁段的位速率。
ESI(Error State Indicator):错误状态指示,主动错误时发送显性位,被动错误时发送隐性位。
DLC同样是4bit表示数据段的长度,对应的关系如下:
DLC取值和数据长度的关系
2.1.4 数据段
CAN FD不仅能支持传统的0-8字节报文,同时最大还能支持12, 16, 20, 24, 32, 48, 64字节
2.1.5 CRC段
为了避免位填充对CRC的影响,CAN FD在CRC场中增加了stuff count记录填充位的个数对应8的模,并用格雷码表示,还增加了奇偶校验位。FSB(fixed stuff-bit)固定为前一位的补码。
Stuff Count由以下两个元素组成:
格雷码计算:CRC区域之前的填充位数除以8,得到的余数(Stuff bit count modulo 8)进行格雷码计算得到的值(Bit0-2)
奇偶校验(parity):通过格雷码计算后的值的奇偶校验(偶校验)
CAN FD对CRC算法进行了改进,CRC对填充位也加入了计算。在校验和部分为避免有连续位超过6个,就确定在第一位以及以后每4位添加一个填充位加以分割,这个填充位的值是上一位的反码,作为格式检查,如果填充位不是上一位的反码,就作出错处理。
CAN的CRC的位数是15位,而在CAN FD中,CRC场扩展到了21位,如下:
当传输数据为0~8字节或更少时:CRC 15位
当传输数据为9~16字节或更少时:CRC 17位
当传输数据超过17~64个字节时:CRC 21位
2.1.6 ACK段
与CAN相比,在CAN FD中最多可接受2个位时间有效的ACK,允许1个额外的位时间来补偿收发器相移和传播延迟)
由从高速的数据场到慢速的仲裁场时,时钟切换会引起收发器相移和总线传播延迟。为了补偿其相移和延迟,相比传统的CAN,在CAN FD中多加了这额外的1位时间。
在ACK之后,发送ACK界定符。这是一个表示ACK结束的分隔符,为是1位隐性位。
2.1.7 帧结束
与CAN一样,CAN FD的帧结尾也为连续7位的隐性位
总结:
CAN FD 兼容CAN,可以正常收发传统CAN报文,但是传统CAN不能正确收发CAN FD报文,帧格式不一致,会导致传统CAN发送错误帧。就像平常的软件版本一样,高版本向下兼容。
CAN FD能传输的数据更多,速率也更高,安全性也更高。
CAN FD总线详细介绍相关推荐
- AXI4(AXI-full)总线详细介绍
AXI4(AXI-full)总线详细介绍 1.1 什么是AXI 1.1.1 zynq的三种AXI总线 1.1.2 AXI的三种接口 1.1.3 AXI协议 1.1.3.1 AXI握手协议 1.1.3. ...
- FlexRay 总线详细介绍
文章目录 前言 一.FlexRay简介 1.1 什么是FlexRay? 1.2 为什么要FlexRay? 1.3 FlexRay的特点 二.FlexRay协议介绍 2.1 FlexRay物理结构 2. ...
- Linux小工具(3)之/proc目录详细介绍(上)
目录 前言 一.平台说明 二./proc目录概述 三.准备使用 (1)进程描述文件夹 (2)/proc目录下常见的文件夹 前言 Linux系统的使用有别于Windows系统,无论是系统信息还是应用软件 ...
- 【STM32H7教程】第90章 STM32H7的CAN FD总线之关键知识点整理
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第90章 STM32H7的CAN FD总线之关键知 ...
- linux :udev规则详细介绍
udev规则介绍 by Daniel Drake (dsd) 翻译:嵌入式学吒(GLL) 目录 udev规则介绍 介绍 概念 为什么? 写规则 规则文件和语义 语法规则 基本规则 匹配sysfs属性 ...
- autosar中com模块_详细介绍AUTOSAR各个模块作用PART1(OS,SYS)
这片文章中我们详细讲解下每个模块的功能,上图是vector的autosar方案,每个模块的详细介绍后续会有单独文章进行讲解,请关注.以下是各个模块的简介 1.VHSM hardware Securit ...
- CAN总线基础(二)——CAN总线物理层介绍(总线电压详解)
CAN总线的物理层定义了连接车内各控制器的相关介质以及接口.由于CAN总线的数据传输实质是通过总线上的电压变化传输的,所以CAN的总线电压是CAN总线技术的核心所在,总线电压在物理层中定义.为了深刻理 ...
- Ubuntu根目录下各文件夹的功能详细介绍
Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧. /bin/ 用以存储二进制可执行命令文件. / ...
- SPI、I2C、UART 三种串行总线对比介绍
转载自https://blog.csdn.net/oqqHuTu12345678/article/details/65445338 参考博客 https://blog.csdn.net/xiaodin ...
最新文章
- 图表2------沪深300指数图+收盘价的EMD分量图+PCA后的特征累计贡献率表+预测模型评估指标公式表
- Skype For Business 2015实战系列6:后端数据库安装CU6补丁
- vue里面怎么删除部分页面_基于VUE选择上传图片并页面显示(图片可删除)
- 鼠标在计算机上被关闭了怎么处理,鼠标驱动程序丢失导致系统自动关闭的解决方法...
- word2vec原理_word2vec论文阅读笔记
- [Java基础]反射获取构造方法并使用练习
- java 防止sql注入的方法(非原创)
- javascript在IE和Firefox下的不同之处
- 20170919_C++面试问题记录
- Android persistent机制
- python蒙特卡洛_Python:从零开始的汉密尔顿蒙特卡洛
- 解读0715微淘客大封号
- js随机选学员。从以下学员名单中随机选出4个学员。
- 我个人的人生学习感想!
- win7记事本如何转换html,Win7把记事本文件格式变成PDF格式的方法
- 源码编译安装LAMP
- c 语言drawtext字体旋转,C# GDI+文字画图 添加任意角度文字(文字旋转是中心旋转,角度顺时针为正)...
- vot-toolkit-python测试DiMP50在VOT2018上的表现
- 凯文.柯恩《真爱无尽精选辑》
- Python与简单网络爬虫的编写