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

一文了解CANFD基础

文章目录

  • 1、为什么会出现CANFD?
  • 2、ISO CANFD 和 NON-ISO CANFD的区别?
  • 3、CANFD怎么提高数据传输速率的?
  • 4、CANFD的帧结构
  • 5、CANFD的CRC校验机制
  • 6、CANFD的位填充机制


1、为什么会出现CANFD?

CANFD,全称CAN with Flexible Data rate,顾名思义是可变数据速率的CAN报文。CANFD是在CAN的基础上的迭代更新,具备以下几个优势:

  1. 支持更高的传输速率(最高达到8Mbps),提高ECU刷写效率;
  2. CANFD通信能够利用CAN控制器的线束和物理层,可重复利用的特点降低成本,同时提高了兼容性;
  3. 更高的带宽在新能源汽车上具有更大的优势;
  4. 单个数据帧能够传输64个字节信息,避免了CAN数据分拆传输;
  5. 应用层不需要做调整,只是在原基础上做扩展。
    因此,CANFD得到了广泛的应用与发展。

2、ISO CANFD 和 NON-ISO CANFD的区别?

如下图,在CANoe中配置通道信息时关于CAN Controller的Mode中CANFD有两种选择,NON-ISO CANFD 和 ISO CANFD应该选择哪一个呢?首先CANFD在2012年由博世开发,到2015年在ISO 11898-1中标准化。在2012到2015年之间,已经开发了不少CANFD产品在市面上应用,属于非ISO标准的CANFD产品,但是又无法被完全召回,因此把这一部分的产品称为NON-ISO CANFD控制器。
NON-ISO CANFD 和 ISO CANFD相同点:传输速率一致,数据长度一致。
NON-ISO CANFD 和 ISO CANFD不同点: ISO CANFD引入了一个3位的填充位计数器和额外的校验位;二者的CRC计算值也不同,所以两者是不兼容的
在这里插入图片描述

3、CANFD怎么提高数据传输速率的?

CANFD支持消息的双比特率,具体实现上CANFD在仲裁段由于总线上可能存在多个发送节点,这时使用较低的传输速率;而数据段结束仲裁,总线上只有一个节点在发送数据,传输速率可以切换到一个较高的值,CANFD使用更大的数据场来提高传输效率,取消了远程帧。

4、CANFD的帧结构

CANFD帧由帧起始SOF,ID仲裁段,控制段,数据域,CRC域,ACK域,帧结束,共七个部分组成。各段长度信息已经在CANFD帧结构图中给出标示。标准帧格式如下图,扩展帧格式与CAN类似,仅在此基础上对ID做了扩展,不做赘述。

在这里插入图片描述

在这里插入图片描述

5、CANFD的CRC校验机制

由于CANFD数据场长度有变化区间,为了提高数据传输的正确性,根据数据场长度变化采用不同的CRC校验机制:

  • 数据场长度小于16位,采用17位CRC校验;
  • 数据场长度大于16位,采用21位CRC校验。

6、CANFD的位填充机制

CANFD在CRC场前面增加了4个位(stuff bit Counter),统计SOF到CRC前的填充位个数。从上面的帧结构来看,CANFD报文在CRC前和CRC段采用不同的位填充机制。

  • SOF到Data段:每5个相同位填充一个相反位(位填充规则与CAN一致)
  • CRC场:固定位置的位填充方式。规则为:确定在第1位以及以后每4位添加一个填充位,该填充位是上一位的反码。如果检测到填充位不是上一位的反码,就判定为错误处理。

http://www.kler.cn/a/382258.html

相关文章:

  • 使用TC命令模拟弱网丢包
  • v3s点RGB屏 40pin 800x480,不一样的点屏,不通过chosen。
  • 如何打造用户友好的维护页面:6个创意提升WordPress网站体验
  • 【信号滤波 (上)】傅里叶变换和滤波算法去除ADC采样中的噪声(Matlab/C++)
  • 基于SpringBoot的山西文旅网系统
  • FreeSWITCH实现多人电话会议功能
  • 5种AI合同审查方法,免费开源,提升50%法律文件比对效率
  • 在 hiveSQL 中判断一个字段是否包含某个值
  • 基于STM32的智能水族箱控制系统设计
  • 机器学习—更复杂的神经网络
  • mysql数据库(二)存储引擎、表操作、数据类型
  • MySQL数据库理论与知识剖析
  • 【华硕天选5开机黑屏只有鼠标,调用资源管理器也无法黑屏状态的一种解决方式】
  • Ubuntu下载ISO镜像的方法
  • 高频电子线路---鉴频
  • nginx配置代理地址
  • docker+nacos
  • 【C++刷题注意事项】bfs?单源bfs?多源bfs?bfs解决拓扑排序?
  • PH热榜 | 2024-11-06
  • 写歌词的技巧和方法:精准用词,让歌词熠熠生辉,妙笔生词AI智能写歌词软件
  • 真·香!深度体验 zCloud 数据库云管平台 -- DBA日常管理篇
  • 【C++】手动实现C++ vector容器:深入理解动态数组的工作原理
  • 多线程案例---单例模式
  • Jmeter命令监控CPU等指标
  • 【R语言】解决package ‘qvalue’ is not available (for R version 3.6.1)
  • 登录注册窗口(一)