CAN FD与传统CAN的差异

news2024/11/24 5:46:04

摘要:

究竟CAN FD与传统CAN的区别是什么?在数据传输和实时性能方面又有什么不同?

随着汽车电子、工业自动化的蓬勃发展,CAN总线上的设备数量、数据量都大大增加,给CAN总线带来了极大的挑战。为满足更高的带宽及数据吞吐量,CAN FD(CAN with Flexible Data-Rate)诞生了。那究竟CAN FD与传统CAN的区别是什么?在数据传输和实时性能方面又有什么不同?

基本概念:

CANFD(Controller Area Network with Flexible Data-Rate)是一种通信协议,它是在传统的CAN(Controller Area Network)协议的基础上进行的改进。与CAN相比,CANFD具有更高的带宽和传输速率,可以支持更多的数据传输。它还支持更多的帧格式,可以满足不同的数据传输需求。
 

一般从使用传统CAN转换到CAN FD会有以下3个原因:

01 CAN FD提高位速率的同时提供更短的CAN帧

- 延迟时间更短.

- 更好的实时性能

- 更高的带宽

02 CAN FD可以在CAN帧中容纳从8到64字节更多的数据

- 相对更少的系统开销 = 更好的数据吞吐量

- 发送较大数据对象时,软件更简单高效

03 CAN FD具有更高性能的CRC算法

- 降低未检测到错误的风险



由于CAN FD是在CAN总线的数据量负荷逐渐达到极限后的产物,本文旨在对比CAN FD与传统CAN的同时详细介绍CAN FD。
 

01.CAN FD与传统CAN的数据帧格式

图 1 传统 CAN 帧(上图)和 CAN FD 帧(下图)比较。两种帧都是单字节数据,而且在此例中, CAN FD 帧没有提高位速率。可以看出,两种帧从帧起始(SOF)位到整个 11 个仲裁位都相同。仲裁之后,传统 CAN(标记为 A)中是远程传输请求位(RTR 位),CAN FD 帧中是远程请求替换位(RRS 位)。对于数据帧,该位在这两种帧格式中始终为显性(0)。通常定义为逻辑 0 和 0 伏信号的显性位由底部较粗的黑线表示(标记为 B)。

图片

图 1 传统 CAN 和 CAN FD 帧之比较

远程传输请求位(RTR 位)之后的位是显性标识符扩展位(IDE 位),表示该帧是使用 11 位仲裁的基本帧格式。注意,本文将不涉及使用 29 位仲裁的 EF 扩展帧格式(EFEFF) 。

IDE 位之后是 r0 位(保留位),其在传统 CAN 帧格式中始终为显性。在 CAN FD 帧格式中,该位为隐性(见 C),指示该帧不是传统 CAN 帧,而是保留格式的 CAN 帧,现在称其为 CAN FD(CAN Flexible Data-rate)。换句话说,该位指示 CAN 帧是传统 CAN 帧还是 CAN FD 帧。自 ISO11898-1 标准发布以来,该位被称为 FDF 位(灵活数据格式位),代替在 ISO11898-1 标准先前版本中被称为 r0 位的名称。在任何先前文档或数据表中见到对 r0 位的引用,它与 2015 年发布的 ISO11898-1 版中的 FDF 位是相同的。

02. CANFD的附加位

FDF 位/r0 位(从现在开始我们将其称为 FDF 位)之后是 FD 格式的保留位(res)和传统 CAN 格式的数据长度码位(DLC)。换句话说,按照以前的 ISO11898-1 标准所有产生的传统 CAN 控制器都将错误地解读 CAN FD 帧,从而导致传统 CAN 控制器的错误帧。在循环冗余检查(CRC)定界符(图 1 中标记为 D)之后,传统 CAN 和 CAN Fd 在其位模式方面是一致的。换句话说,在下一帧开始之前,传统格式和 FD 格式使用相同的结束模式。

所有 CAN FD 控制器都可以处理传统 CAN 帧和 CAN FD 帧的混合。这意味着在现有系统中开始使用 CAN FD 控制器以及仅使用传统 CAN 格式的传统 CAN 控制器是可行的。当所有老的传统 CAN 控制器都被 CAN FD 控制器替换时,可以将传统 CAN 帧与 CAN FD 帧混合使用,或者仅使用两种类型之一。

在 CAN FD 帧中的 FDF 位之后是保留位。将此位设置为隐性指示未来协议,与 FDF 位指示从传统 CAN 转换到 CAN FD 格式的方式相同。未来协议尚未定义。值得注意的是,传统 CAN 格式的 r0/FDF 位用于指示 CAN FD 格式之前耗费了 25 年时间。

在保留位之后是 BRS 位(位速率转换)。这个额外的位允许 CAN FD 帧以两种不同的格式发送。如果 BRS 位为显性被发送,则所有位将以与图 1 所示的仲裁中所使用的相同的位速率发送。如果BRS 位为隐性,则在此位后帧格式将使用较高的位速率,直到并包括 CRC 定界符。

BRS 位之后是 ESI 位(错误状态指示器),通常显性发送为主。如果 CAN FD 帧发送节点变为错误-被动,则该位将被隐性发送,指示发送方节点存在重要的通信问题。目前尚不清楚该位如何在更广泛的应用中使用,但是它已经被汽车制造商根据所需进行了采纳。

在这 3 个新位(保留位,BRS 位和 ESI 位)之后是 4 个 DLC 位,指示 CAN 帧中的数据字节数。表 1 显示了这 4 个位如何用于指示 CAN 帧中的数据字节数。传统 CAN 帧最多可容纳 8 个字节的数据。从表中可以看出,超出 8 个字节可以发送 DLC 码,但只有 8 字节的数据将被放置在发送的 CAN 帧中。仔细观察表格你会发现 9 到 15 的 DLC 在 CAN FD 格式中有所差异。9 到 63 的任何数量的字节需 6 位 DLC,并且到 64 字节将需 7 位 DLC。折中方案是保持 4 位 DLC,并限制 CAN FD 帧(12, 16, 20, 24, 38, 48 和 64)中的字节长度数。

03.CANFD显著提高数据传输速率

DLC 位后的数据(图 1 显示一个数据字节的 CAN 帧)。该数据前和后的位是固定长度的任意数量数据字节。本例中要传输一个字节的数据,传统格式需 55 位,CAN FD 格式需 70 位。在最差的情况下,也可以在帧中包含多个填充位。如果帧在同一级别的行中超过 5 位,则协议将在帧中添加一个额外的位,具有反相极性,以确保可以使用级别更改来重新同步采样点。

这个添加和除去额外的位用于重新同步的过程称为填充,并且这些位在 CAN 协议中被标记为填充位。通过在每个 CAN 帧中打包更多的数据来提高数据传输效率,这可以从表 1 的最后两列看出。效率方程式假定在开销中最差情况下的填充位数。由于其较低的开销,传统 CAN 与 CAN FD 相比效率略高。通过将 CAN FD 帧中的字节数从 8 字节增加到 64 字节,可以将效率从 50%增加到88%。

图片

在表中,还包括以不同帧格式使用的 CRC 码。传统 CAN 格式对于所有帧类型使用 15 位 CRC 编码,因为所有帧具有相似的长度。CAN FD 帧更复杂一些,因为 64 字节帧比 8 字节帧要长 8 倍。为了解决这个问题,在 CAN FD 帧中使用两种不同的 CRC 长度:如果帧保持 16 字节或更少,则使用 17 位的 CRC-17;且如果 CAN 帧保持 20 字节或更多,则使用具有 21 位的 CRC-21。

它是具有 2 个额外位的 CRC 加上填充计数器中的 4 位和固定填充位,这就使得 CAN FD 帧比传统 CAN帧更长。有人会说这个比较不完全公平,因为传统CAN 帧在CRC段可以有多达3个填充位,在控制段还可以有 3 个位。

CAN FD 帧的 CRC 段中的额外位为数据内容提供了更好的保护,系统高安全性是从传统 CAN 转到CAN FD 的充分理由。

CAN 帧中有超过 8 个字节的数据,由于提高了效率,数据吞吐量将会增加,这是从传统 CAN 转到CAN FD 的另一个原因。

04.如何平衡数据传输效率与实时性能

重要的是要记住,尽管使用更长的 CAN 帧的效率确实有所提高,但 CAN 帧和每秒帧数更少,这增加了通信中的延迟时间并降低了实时性能。为了减少此问题并增加数据吞吐量,可以将 CAN FD 帧中的位速率提高到传统 CAN 以上的可能性。

迄今为止对 CAN FD 的描述是在整个 CAN 帧中具有相同的位速率。如上所述,隐性 BRS 位将要求在帧的数据部分中切换到较高的位速率。

在图 2 中,添加了第 3 个 CAN 帧。该第 3 帧是具有与中间 CAN FD 帧相同内容的 CAN FD 帧,但是在本例中,该帧以中间的 CAN FD 帧的数据速率的两倍发送帧。

图片

图 2 CAN FD 帧不含/含有提高 2 倍数据速率

因为它具有相同的内容,所以你将获得相同的 DLC 和数据,但是当 CAN FD 以更高的位速率发送时,BRS 位将被隐性发送(见 E)。BRS 位包含在 CRC 计算中,即使 CAN-ID,DLC 和数据相同,也会产生两个不同的 CRC 内容。

从图 2 可以看出,以较高位速率发送的第一个位是 ESI 位,后面是 DLC,数据字节和 CRC 位。以较高位速率发送的最后一位是 CRC 定界符。由此可以理解,较高的位速率不仅适用于 CAN Fd 帧的数据段,而且也适用于周围的位。

图 3 与图 2 相同,除了先前描述的帧下面的一个新帧。这个新帧与所有其他帧具有相同的内容,但位速率是仲裁位速率的八倍。与具有不变位速率或双位速率的 CAN FD 帧相比,变化相对较大。

可以看出,不仅数据的单字节获得较高的位速率,而且帧的 DLC 和 CRC 部分也一样,其总共有大约 40 位。

图 4 显示 3 个 CAN 帧,顶部为 8 个字节的传统 CAN 帧。中间是一个具有 64 字节的 CAN FD 帧,底部的 CAN 帧是相同的 CAN FD 帧内容,但是位速率增加(速度快八倍)。

图片

 图 3 在图 2 的基础上多了位速率增加 8 倍的 CAN FD 帧

从图 4 可以看出,更多的数据将使 CAN 帧传送时间更长,这将阻止其它高优先级 CAN 帧开始发送。为了保持实时性能,需要增加位速率以减少 CAN 帧的长度,并且减少 CAN 帧占用通信线路的时间以及防止其它高优先级帧访问通信。

图片

图 4 顶部是 8 字节传统 CAN帧;

中间是位速率相同的 64 字节 CAN FD帧;

底部是位速率增加了 8 倍的 64 字节 CAN FD帧

总之,具有高位速率的 CAN FD 将增加实时性能,因为较高的位速率使得 CAN 帧在传送时间上更短,从而减少通信中的延迟。通过在每个帧中传送更多数据,可以增加数据吞吐量,但是如果不结合使用较高的位速率,这将降低实时性能。在许多情况下,编程中会使用 64 字节长的 CAN 帧,这通常在系统暂停且没有实时控制运行时完成。即使没有实时需求,使用更高的位速率来提高数据吞吐量仍然有利,并缩短下载时间。

来源 | 智能网联汽车网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752596.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常用API学习01(Java)

Math Math是一个帮助我们用于进行数学计算的工具类。私有化的构造方法,所有方法都是静态的。 Math类的常用方法: public static int abs(int a) 获取参数绝对值 public static double cell(double a) 向上取整 public static double floor(…

2023年武汉/广州/深圳CSPM-3中级项目管理认证招生

CSPM-3中级项目管理专业人员认证,面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要求,培养我国项目管理领域复合型人才。 【证书含金量】 竞聘优先 能力证明 招投标…

勒索病毒.[tsai.shen@mailfence.com].faust、.[support2022@cock.li].faust引起的数据被加密恢复

勒索病毒的危害 勒索病毒是最具破坏性和恐怖性的一种病毒。最近[tsai.shen@mailfence.com].faust勒索病毒、.[support2022@cock.li].faust勒索病毒引起了广泛的关注和担忧。 如果您的数据已被勒索软件加密,恢复数据的最可靠方法是使用备份。如果您有备份,可以将备份文件恢复…

二、学习回归 - 基于广告费预测点击量

山外风雨三尺剑 有事提剑下山去 云中花鸟一屋书 无忧翻书圣贤来 1.设置问题 以Web广告和点击量的关系为例来学习回归。 前提:投入的广告费越多,广告的点击量就越高。 根据以往的经验数据,可以得到下图: 那么假设我要投200块的广…

2023上半年工作总结

目录 一、目标达成情况总结: 二、工作/学习成果总结: 三、下半年规划总结: 一、目标达成情况总结: 其实我并没有给自己定多少目标,特别上长期的目标很少制定,总体来说2023年上班过的很平淡,波…

FPGA——点亮led灯

文章目录 一、实验环境二、实验任务三、实验过程3.1 编写verliog程序3.2 引脚配置 四、仿真4.1 仿真代码4.2仿真结果 五、实验结果六、总结 一、实验环境 quartus18.1 vscode Cyclone IV开发板 二、实验任务 每间隔1S实现led灯的亮灭,实现流水灯的效果。 三、实…

如何实现CAN-SOME/IP通信路由测试

区别于基于UDP的车内通信路由,基于SOME/IP协议的路由增加了服务发现(Service Discovery)和服务发布(Service Publish),那对于测试工程师来说,怎么实现CAN-SOME/IP路由的测试呢? 01 …

开放式耳机的类型有哪些?开放式耳机有什么优点?本文章为你讲解

伴随着开放式耳机越来越受大家欢迎,很多人还不知道开放式耳机是什么,有哪些好用的,有哪些优点,就直接入手了,结果踩雷了!面对这些常见问题,我来跟大家一一讲解开放式耳机热门问题。 1.开放式耳…

【C#】并行编程实战:同步原语(3)

在第4章中讨论了并行编程的潜在问题,其中之一就是同步开销。当将工作分解为多个工作项并由任务处理时,就需要同步每个线程的结果。线程局部存储和分区局部存储,某种程度上可以解决同步问题。但是,当数据共享时,就需要用…

浅谈企业能源管理系统在水泥企业的设计与应用

安科瑞 华楠 摘要: 水泥企业是我国高能耗行业之一,一直是政府推进节能减排工作的控制对象。建立企业能源管理系统,实现从能源因素采集、过程监控、能耗管理控制全过程的自动化、科学化管理。加大能源的合理化使用,减少能源消耗,对…

UE初级-C++基础-1.类库简介及目录结构

原文链接:UE5 C教程(一、基本结构)_skycol的博客-CSDN博客 原文链接:UE4C学习篇(一)_卡西莫多说的博客-CSDN博客 一.类库简介 虚幻API由三部分组成,分别是Runtime, Developer utilitiew&#…

门票售罄+酒店满房+营收创新高 原拓·非遗嘉年华战报来袭

7月2日,原拓非遗文化嘉年华首站在北京圆满落幕。作为原拓酒店创立的品牌活动IP,原拓非遗文化嘉年华携手非遗传承人、艺术创作者、文创品牌等志同道合的伙伴,在酒店空间呈现丰富体验,通过 DIY 工作坊、创意市集等方式,让…

【机器人模拟-02】 模拟移动机器人设置里程计

一、说明 在本教程中,我将向您展示如何设置移动机器人的测程。本教程是“机器人模拟”指南中的第二个教程。测量位移是仿真中的重要内容,设置测程的官方教程在此页面上,但我将逐步引导您完成整个过程。 您可以在此处获取此项目的完整代码。让我们开始吧! 二、ROS 2 中的里程…

MySQL查询数据库、表以及表行数所占内存大小

前言 在开发中我们想知道某个数据库,或者某个数据表的内存大小,那么怎么查询呢?下面通过简单示例一一介绍,希望对您有所帮助。 某表每行所占字节数 SELECT TABLE_NAME , CONCAT((DATA_LENGTH + INDEX_LENGTH), 字节) AS 每行占用字节数 FROM information_schema.TAB…

高并发的哲学原理(六)-- 拆分网络单点(下):SDN 如何替代百万人民币的负载均衡硬件

上一篇文章的末尾,我们利用负载均衡器打造了一个五万 QPS 的系统,本篇文章我们就来了解一下负载均衡技术的发展历程,并一起用 SDN(软件定义网络)技术打造出一个能够扛住 200Gbps 的负载均衡集群。 负载均衡发展史 F5 …

备战秋招 | 笔试强训4

目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、有以下程序&#xff0c;程序运行后的输出结果是&#xff08;&#xff09; #include<iostream> #include<cstdio> using namespace std; int main() {int m0123, n123;printf(&quo…

【LeetCode: 931. 下降路径最小和 | 暴力递归=>记忆化搜索=>动态规划 】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

中国8K摄像机厂家加入国际广电设备制造商协会IABM

近日&#xff0c;BOSMA博冠正式成为国际广电设备制造商协会IABM会员&#xff0c;标志着中国8K摄像机厂家BOSMA博冠在广播电视超高清前端采集领域受到全球广电权威机构认可&#xff0c;进一步推动国产品牌在全球市场竞争中提升品牌知名度、加强行业影响力。 IABM创立于1976年&am…

【Unity面试篇】Unity 面试题总结甄选 |C#基础篇 | ❤️持续更新❤️

前言 关于Unity面试题相关的所有知识点&#xff1a;&#x1f431;‍&#x1f3cd;2023年Unity面试题大全&#xff0c;共十万字面试题总结【收藏一篇足够面试&#xff0c;持续更新】为了方便大家可以重点复习某个模块&#xff0c;所以将各方面的知识点进行了拆分并更新整理了新…

android更换开机动画

android11 路径&#xff1a;device / {vendor-name} / {platform-name} / {device-name} / system / bootanimation.zip 例&#xff1a;android \ device \ softwinner \ ceres \ ceres-b6 \ system \ bootanimation.zip android13 路径&#xff1a;device / softwinner / {PRO…