首页 > 其他分享 >CANFD 讲解

CANFD 讲解

时间:2023-02-08 09:24:26浏览次数:52  
标签:CANFD 传统 ISO 讲解 FD 数据 节点 路由器

CAN FD基础
一、CAN FD与CAN 2.0的区别
1.CAN FD的优势
该协议能够支持更高的速率,可以更快的刷写ECU;
在单个数据帧内传送率可达64字节,避免了经常发生的数据分拆传输的状况;
对汽车行业而言,CAN-FD协议显得非常重要,CAN线束和其它物理层面元件可重新再利用;
更高的带宽,在电动车以及今后的动力CAN上应用更有优势
上层应用层架构不需要改变,在原来基础上扩展即可。
2.CAN FD是如何提速的
速度更快,数据更多
当仲裁场比特率和数据场比特率达到1:8时,数据吞吐量将达到传统CAN的大约六倍

 

 

3.CAN FD标准化

 

 


2012年底到2015年中之间,有很多厂家已经开发了CAN FD产品,但是属于非ISO标准的CAN FD产品,并且已经有少部分产品已经在市场流通。而这些非ISO产品的供应商也没法完全收回或者销毁原有产品,所以这些供应商仍然需要解决这个问题。
非ISO CAN FD与ISO CAN FD:传输速率一致,数据长度一致.
区别:后者引入了一个3位的填充位计数器以及额外的校验位,另外,CRC计算值也不同。所以两者是不兼容的。
建议所有的CAN FD应用,需注明ISO CAN FD或non-ISO CAN FD

4.位时间配置建议

 

 


5.CiA推荐的数据场采样点位置范围

 

 

 

 

 

6.CAN FD数据帧格式

 

 


1)SOF起始位和仲裁段


IDE:拓展标识位RRS:远程请求替换(substitution)
SRR:替代远程请求,可以不考虑。
CAN FD不再支持远程帧。
CAN FD不推荐使用传统CAN帧远程请求CAN FD数据!

 

 


2)控制场

在右边数据帧可以看出,信号可以使用的起始位可以是1、2、3、4、5、6、7、8、12、16、20、24、32、48、64这几个,而不能用第9、10、15等数据位作为信号的起始位。

 

 

3)数据场

 

 


4)CRC场

 

 

 

 

 

5)ACK,EOF 和IMF 场

 

 


二、CAN与CAN FD的网络兼容性问题
总的来说是要解决现阶段传统CAN,非ISO CAN FD,ISO CAN FD如何共存的问题。

通讯速率和数据长度不同的冲突?
非ISO CAN FD与ISO CAN FD的通讯问题?
多个设备交叉通讯的问题,多个切换的问题?
如何解决一个设备需要同时与CAN FD节点和传统CAN节点通讯的切换问题?
如何解决测试平台共用的问题?(如针对非通讯状态下的:疲劳测试,寿命测试,环境
测试等,共用平台)
共存网络中,如何解决通讯速率和数据长度不同的冲突?解决思路:
1、传统CAN节点以1Mbit/s 传输数据到CAN FD:
直接通过(CAN FD向下兼容)
2、CAN FD设备以8Mbit/s传输数据到传统CAN:
采用CAN FD路由器:先将传统CAN FD的速率自动降为1Mbit/s再转出去。
3、传统CAN节点向CAN FD节点传输8字节的数据:
直接通过(CAN FD向下兼容)
4、CAN FD节点向传统CAN节点传输64字节的数据:
采用可编程CAN FD路由器:预先编程并下载到路由器,CAN FD的数据通过路由器后可以按照预先设置的程序将数据做拆包等处理再转成8字节转发出去给传统CAN设备。

** CAN 与CAN FD网络兼容性问题**

 

 


————————————————
版权声明:本文为CSDN博主「YOURUOLI」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YOURUOLI/article/details/124659418

标签:CANFD,传统,ISO,讲解,FD,数据,节点,路由器
From: https://www.cnblogs.com/better-day/p/17100487.html

相关文章

  • django框架之drf(部分讲解)
    目录一、认证组件(1)、登录接口(2)、认证组件使用步骤(3)、整体代码权限组件(1)、权限组件的使用步骤(2)、代码用法三、频率组件(1)、频率组件的使用步骤(2)、代码用法四、......
  • iOS7中UIView的animateKeyframesWithDuration方法讲解
    在iOS7中,给UIView添加了一个方法用来直接使用关键帧动画而不用借助CoreAnimation来实现,那就是animateKeyframesWithDuration以下是使用源码:////Vi......
  • Java JDK Proxy和CGLib动态代理示例讲解
    简介代理模式在Java中有很多应用场景,而代理又分静态代码和动态代理。静态代理是编写、编译或加载时织入代码实现,而动态代理则在运行时实现。简单而言,静态代理是在运行前就......
  • pandas中的 Series的讲解
    #coding=utf-8importpandasaspdimportnumpyasnpfrompandasimportSeries'''Series的方法与属性属性:values获取某一列的数据值获取的......
  • django框架之drf(部分讲解)
    一、各个视图子类两个视图基类五个视图扩展类九个视图子类-----》视图类,不需要额外继承GenericAPIView,只需要继承九个州其中之一,就会有某个或某几个接口路由......
  • php双向队列实例讲解
    双向队列是指一种具有队列和栈的性质的数据结构。双向队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。双向队列就像是一个队列,但是你可以在任何一端添......
  • Node.JS包简介(讲解了json文件怎么看)
    视频json文件不能写注释......
  • Java JDK1.5: 泛型 新特性的讲解说明
    JavaJDK1.5:泛型新特性的讲解说明每博一文案听到过这样一句话:“三观没有标准。在乌鸦的世界里,天鹅也有罪。”环境、阅历的不同,造就了每个人独有的世界观、人生观、价......
  • php7 安装mysqli实例讲解
    php7怎么安装Mysqli?Centosphp7安装mysqli扩展心得在新配服务器时发现,php无法连接到mysql。通过phpinfo发现。根本没有显示mysqli的相关配置。经过一系列研究。总结了......
  • 百度信息流搭建实操讲解
    百度信息流推广和百度搜索推广是在一个平台上,通过用户名和密码登录网址:www2.baidu.com即可进入后台,然后便可进行账户搭建。  首先我们认识一下账户主页:  ......