1、什么是CAN FD?

CAN FD协议由Bosch(与行业专家)预先开发,并于2012年发布。

在标准化过程中已得到显着改进,如今已在ISO 11898-1:2015中进行了改进。原始的Bosch CAN FD版本(非ISO CAN FD)与ISO CAN FD不兼容。

CAN FD具有四个主要优点:

1#增加数据长度

CAN FD 每个数据帧最多支持64个数据字节,而Classic CAN 支持8个数据字节。这减少了协议开销,并提高了协议效率。

2#速度提升

CAN FD支持双比特率:经典CAN中给定的标称(仲裁)比特率限制为1 Mbit / s,而数据比特率则取决于网络拓扑和收发器。实际上,可以实现高达5 Mbit / s的数据比特率。

3#改进的可靠性

CAN FD使用改进的循环冗余校验(CRC)和“受保护的填充位计数器”,从而降低了未被检测到的错误的风险。例如,这对于车辆和工业自动化等对安全至关重要的应用至关重要。

4#平滑过渡

在某些条件下,可以混合使用CAN FD和经典CAN ECU。这样就可以逐步引入CAN FD节点,从而大大降低了OEM的成本和复杂性。

实际上,与经典CAN 相比,CAN FD可以将网络带宽提高3到8 ,从而为数据增长提供了一种简单的解决方案。

CAN FD如何工作?

因此,CAN FD看起来非常简单:

加快数据传输速度,并将更多数据打包到每个消息中,对吗?

但是实际上,这不是那么简单。

下面我们概述了CAN FD解决方案必须解决的主要挑战。

两个关键挑战

在查看CAN FD数据帧之前,了解我们要维护的Classic CAN的两个核心部分至关重要:

1#避免严重的邮件延迟

为什么不简单地用64个字节的数据打包经典CAN数据帧?

这样做将减少开销并简化消息解释。但是,如果比特率保持不变,这也会阻塞CAN总线更长的时间,从而可能延迟关键任务的更高优先级的数据帧。

2#保持实际的CAN线长

因此,如果我们希望每条消息发送更多数据,则需要更高的速度。

但是,为什么不加速整个 CAN消息(而不仅仅是数据阶段)呢?

这是由于“仲裁”:如果2个以上的节点同时发送数据,则仲裁将确定哪个节点具有优先权。“优胜者”继续发送(无延迟),而其他节点在数据传输期间“退避”。

在仲裁过程中,“位时间”在每个位之间提供足够的延迟,以允许网络上的每个节点做出反应。为了确保在位时间内到达每个节点,以1 Mbit / s的速度运行的CAN网络的最大长度应为40米(实际上为25米)。加快仲裁过程会将最大长度减少到不合适的水平。

另一方面,仲裁后有一条“空旷的高速公路”,可在数据传输期间(只有一个节点驱动总线时)实现高速传输。在ACK时隙之前-当多个节点确认正确接收数据帧时-速度需要降低到标称比特率。

简而言之,我们需要一种仅在数据传输过程中提高速度的方法。

解决方案:CAN FD框架

CAN FD协议引入了经过调整的CAN数据帧,以实现额外的数据字节和灵活的比特率。

下面我们比较一个11位的经典CAN帧与一个11位的CAN FD帧(也支持29位):

让我们逐步解决这些差异:

RTR与RRS:远程传输请求(RTR)在经典CAN中用于标识数据帧和相应的远程帧。在CAN FD中,根本不支持远程帧-远程请求替换(RRS)始终占主导地位(0)。

r0 vs. FDF:在经典CAN中,r0保留且占优势(0)。在CAN FD中,它被称为FDF和隐性(1)。

在r0 / FDF位之后,CAN FD协议添加“ 3个新位”。请注意,不具备CAN FD功能的节点在FDF位之后会产生错误帧。

res:这个新的保留位起着与r0相同的作用-即将来可能将其设置为隐性(1)来表示新协议。

BRS:比特率开关(BRS)可以为显性(0),这意味着CAN FD数据帧以仲裁速率(即最高1 Mbit / s)发送。将其设置为隐性(1)意味着数据帧的其余部分以更高的比特率(最高5 Mbit / s)发送。

ESI:默认情况下,错误状态指示器(ESI)位为显性(0),即“错误激活”。如果发送器变为“被动错误”,则将隐性(1)表示它处于被动错误模式。

DLC:与传统CAN一样,CAN FD DLC为4位,表示帧中数据字节的数量。上表显示了两种协议如何一致地使用多达8个数据字节的DLC。为了维持4位DLC,CAN FD使用9到15之间的其余7个值来表示所使用的数据字节数(12、16、20、24、32、48、64)。

SBC:填充位计数(SBC)在CRC之前,由3个格雷编码位和一个奇偶校验位组成。随后的固定填充位可以视为第二个奇偶校验位。添加了SBC以提高通信可靠性。

CRC:经典CAN中的循环冗余校验(CRC)为15位,而在CAN FD中为17位(最多16个数据字节)或21位(20-64个数据字节)。在经典CAN中,CRC中可以包含0到3个填充位,而在CAN FD中,总是有四个固定填充位以提高通信可靠性。

ACK: CAN FD数据帧的数据阶段(也称为有效负载)在ACK位停止,这也标志着可能增加的比特率的结束。

NEED FOR SPEED:开启比特率切换

如前所述,以正常速度发送64个数据字节会阻塞CAN总线,从而降低了实时性能。

为了解决这个问题,可以启用比特率切换,以允许以比仲裁率更高的速率(例如5 Mbit / s与1 Mbit / s)发送有效负载。上面我们以图解方式可视化了3个数据字节和64个数据字节方案的效果。

注意,较高的速度适用于从BRS位开始到CRC分隔符结束的数据帧部分。

除此之外,当今大多数车辆使用0.25-0.5 Mbit / s,这意味着以5 Mbit / s的速度,CAN FD将是有效载荷传输速度的10倍。

令人印象深刻,对不对?

混合经典CAN和CAN FD节点

如前所述,经典CAN和CAN FD节点可以在某些条件下混合使用。这样就可以逐步向CAN FD迁移,而不必一次切换每个ECU。

存在两种情况:

100%CAN FD系统:在这里,CAN FD控制器可以自由混合经典CAN和CAN FD数据帧。

一些节点是传统的经典CAN:在这里,CAN FD控制器可以切换到经典CAN通信,以避免来自经典CAN节点的错误帧反应。同样,在例如ECU闪烁期间,经典CAN节点可能会关闭,以允许暂时转换为CAN FD通信。

CAN FD与CAN的开销和数据效率

显而易见,与经典CAN相比,CAN FD的新增功能增加了很多额外的位-如何减少开销?

答案是事实并非如此-请参见下面的经典CAN与CAN FD可视化图,了解3个数据字节。实际上,直到跨越8个数据字节,CAN FD的效率才不会超过经典CAN。但是,通过移向64个数据字节,效率可以从约50%增至约90%(下文有更多介绍)。

CAN FD的最大比特率是多少?

CAN FD的一个令人困惑的方面是有效负载阶段的最大比特率-因为不同的文章提到了不同的级别。

有人指出,实际应用中可以达到8 Mbit / s,理论上可以达到15 Mbit / s。其他人则表示高达12 Mbit / s。此外,戴姆勒指出,超过5 Mbit / s是令人怀疑的 -既没有标准,又因为低成本汽车以太网(10 BASE-T1)有望限制对CAN FD的更高需求。

那么什么是正确的?

这取决于。从ISO 11898-2(收发器芯片标准)来看,它指定了两个对称参数集。建议使用对称性参数得到改善的天线,通常宣传为5 Mbit / s收发器。可达到的数据相位比特率取决于许多因素。最重要的一项是所需的温度范围。ECU的闪烁不需要低温的支持。这意味着对于ECU闪烁,可能会达到12 Mbit / s。另一个重要的比特率限制是由所选的拓扑引起的。存根非常短的总线拓扑与长存根甚至星形的混合拓扑相比,可以显着提高比特率。对于-40摄氏度至+125摄氏度的温度范围,大多数多点总线线路网络被限制为2 Mbit / s。CiA在CiA 601-3网络设计建议中提供了适当的经验法则。这包括在数据阶段设置采样点的建议。

示例:CAN FD用例

简而言之,CAN FD允许系统以更快的速度处理更多数据。

这对于许多越来越相关的用例至关重要:

电动汽车

电动汽车和混合动力汽车采用了新的动力总成概念,要求更高的比特率。复杂性的增加来自与DC / DC逆变器,电池,充电器,增程器等相关的新控制单元。到2025年,预计所需的比特率将超过CAN- 随着电动汽车爆炸性增长,这可能是该技术的先驱CAN FD推出。

ECU闪烁

车载软件变得越来越复杂。因此,今天通过OBD2端口执行ECU更新可能要花费数小时。使用CAN FD,可以使此类过程的速度提高4倍以上。该用例一直是汽车OEM需求CAN FD的原动力之一。

机器人

一些应用程序依赖于时间同步的行为-例如,具有多个轴的机器人手臂。这样的设备通常使用CANopen,并且每个控制器都需要与时间同步的发送多个CAN帧(PDO)(即不受较高优先级帧的干扰)。通过转换为CAN FD,可以在单个帧中发送所需数据,从而提高效率和简化操作。

ADAS和安全驾驶

乘用车和商用车中越来越多地采用高级驾驶员辅助系统(ADAS)。这些系统对现有CAN总线的总线负载造成了压力,但是ADAS是提高安全性的重要一步(在我们等待真正的自动驾驶汽车的同时)。在此,CAN FD将在不久的将来成为增强安全驾驶的关键推动力。

卡车和大巴

卡车和公共汽车使用长CAN总线(10-20米)。结果,它们依赖慢速比特率(根据J1939-14为250 kbit / s或500 kbit / s )。在这里,即将到来的J1939 FD协议有望实现商用车功能的重大改进,包括。例如ADAS。

安全CAN总线

最近的CAN黑客攻击所示,经典CAN容易受到攻击。如果黑客能够访问CAN总线(例如,无线),则可能会关闭关键功能。带宽更高时,CAN FD可以通过安全车载通信(SecOC)模块进行身份验证-这可能成为CAN FD的核心理由。

CAN FD解释-简单介绍相关推荐

  1. socket通信简单介绍

    "一切皆Socket!" 话虽些许夸张,可是事实也是,如今的网络编程差点儿都是用的socket. --有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间怎样通 ...

  2. 简单介绍一下R中的几种统计分布及常用模型

    统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 统计分布每一种分布有四个函数:d――density(密度函数) ...

  3. iOS开发UI篇—UIWindow简单介绍

    iOS开发UI篇-UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWi ...

  4. JavaScript词法作用域的简单介绍

    by Michael McMillan 迈克尔·麦克米兰(Michael McMillan) JavaScript词法作用域的简单介绍 (An easy intro to Lexical Scopin ...

  5. 求介绍matlab函数用法的书,MATLAB初学者教程--函数用法的简单介绍

    1.4 函数用法的简单介绍 1.4.1什么是函数 似乎很多人一听到函数这个词就会想到数学中的某个概念,然后对于恐惧数学的同学就开始打退堂鼓.在matlab当中到处可以用到函数,它的出现可以让我们用很简 ...

  6. UIWindow简单介绍

    UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建 ...

  7. Grub及内核的简单介绍安装

    Grub1.x的具体介绍 Grub识别的硬盘设备命名 所有硬盘都识别为hd,分区表示法(x,y),编号都从0开始 配置文件 /boot/grub/grub.conf或/etc/grub.conf,具体 ...

  8. Smali语法简单介绍

    Smali语言其实就是Davlik的寄存器语言: Smali语言就是android的应用程序.apk通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件,文件的展示 ...

  9. 浏览器html5/css3兼容性检测的javascript类库 - Modernizr简单介绍

    为什么80%的码农都做不了架构师?>>>    日期:2012-4-17  来源:GBin1.com 在线演示  本地下载 大家是不是在开发设计过程中遇到如下情况?某些浏览器不支持H ...

  10. 机器学习排序之Learning to Rank简单介绍

     机器学习排序之Learning to Rank简单介绍 标签: Learning to Rank学习排序PointwisePairwiseListwise 2015-01-03 21:50 23 ...

最新文章

  1. android 之 Intent、broadcast
  2. python如何定义类_Python 面向对象
  3. matplotlib 均值_干货|教你一文掌握:Matplotlib+Seaborn可视化
  4. python单行箭头_在Python中,如何让箭头尖在指定的坐标处开始/结束?
  5. 求1+2+3+...(信息学奥赛一本通-T1158)
  6. 屏幕取色工具ColorCat
  7. Angularjs进阶笔记(1)—不同类型的双向数据绑定
  8. 好消息,scott的asp.net 2.0数据导航系列全部出版了
  9. “手把手撕LeetCode题目,扒各种算法套路的裤子”
  10. 使用std:sort和Eigen根据矩阵某一行/列元素对矩阵的行/列排序
  11. 华三ap设置无线服务器,H3C无线控制器V5版本配置AP上线的方法
  12. rot移位密码c++实现
  13. 统计工具代码同步安装和异步安装有何区别
  14. 飞入菜花无处寻的上一句是什么,飞入菜花无处寻是什么意思
  15. Android 模拟器中的menu键
  16. 【虚幻4/UE4】学习笔记01——软件介绍、安装及界面
  17. springboot整合ehcache使用
  18. sql教程学习(一)
  19. c语言程序设计拉丁方阵结构图,C语言程序设计100例之(29):拉丁方阵
  20. 一边学计算机一边上班累的说说,对工作很累的句子说说心情

热门文章

  1. 13号线ab线规划图_2018广州地铁13号线二期最新消息:计划今年开工 2022年底建成通车(附线路图+站点)...
  2. 金融:收益利率计算器
  3. 计算机网络网线颜色,网络线接法-各种网线的分类和区别-电气资讯 - 电工屋
  4. Java Web应用程序开发-深入体验Java Web开发内幕之初步
  5. GD32F103串口DMA收发
  6. Axure8.1破解码 注册码 授权码
  7. 信号完整性之传输线理论(三)
  8. Msfconsole的基本使用
  9. 阿里 Maven仓库
  10. 3. Vue入门实战教程之vue-element-admin初体验