在本文中,我们会介绍CAN FD(CAN Flexible Data-rate)的主要内容,包括:CAN FD框架,开销和效率,示例应用和CSS的CAN FD记录仪案例,以及CAN FD的发展趋势。

CAN FD看起来很复杂,本文旨在提供一个通俗易懂的介绍,以全面了解CAN FD。

为什么会出现CAN FD?

CAN协议自1986年问世以来就很流行:几乎任何移动的机器如今都使用CAN,无论是汽车,卡车,轮船,飞机还是机器人。

但是随着现代科技的兴起,对“传统”的CAN协议(ISO 11898-1:2015中使用的官方术语)的要求越来越高:

  1. 汽车功能的高速发展正在推动数据的大爆炸

  2. 网络越来越受到1Mbit/s带宽的限制

  3. 为了应对这些情况,OEM创造的复杂且又昂贵的解决方案

具体而言,传统CAN的开销很大(> 50%),因为每个CAN数据帧只能包含8个数据字节。此外,网络速度限制为1 Mbit/s,从而限制了数据生成功能的实现。

CAN FD解决了这些问题,使其具有前瞻性。

什么是CAN FD?

CAN FD协议是由Bosch以及行业专家预研开发的,并于2012年发布。通过标准化对其进行了改进,现已纳入ISO 11898-1:2015。原始的Bosch CAN FD版本(非ISO CAN FD)与ISO CAN FD是不兼容。CAN FD具有四个主要优点:

  • 增加了数据的长度

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

注:图片来自PCAN-View软件,CAN FD协议一条报文可以达到64个字节的数据
  • 增加传输的速度

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

  • 更好的可靠性

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

  • 协议平滑过渡

在一些特定的情况下CAN FD能用在仅使用传统CAN的ECU上,这样就可以逐步引入CAN FD节点,从而为OEM简化程序和降低成本。

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

CAN FD是怎么工作的?

CAN FD看起来很简单:加快数据传输速度,并让每个消息的信息量增加,对吗?

但是实际上,并不是那么简单。下面我们概述了CAN FD的解决方案所必须应对的主要挑战。

两个关键的挑战

在查看CAN FD数据帧之前,我们关键是要了解想要维持的传统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 vs. RRS:传统CAN中使用了远程传输请求(RTR)来识别数据帧和相应的远程帧。在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位,这也标志着可变比特率的结束。

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

与传统CAN相比,CAN FD的新增功能增加了很多额外的位,CAN FD如何能高效地减少开销?

答案是:它并没有。请看下面3个数据字节的传统CAN与CAN FD的可视化图。实际上,超过8个数据字节前,CAN FD的效率都不会超过传统CAN。但是,当数据长度向64个数据字节靠拢时,效率是从50%提升至90%。

对速度的需要:采取开启比特率转换(BRS)

如上图可知,CAN FD以常规速度发送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和CAN FD网络共存问题最简单的就是加一个支持CAN FD的网关,如PCAN-Router FD。

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

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

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

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

注:图片来自PCAN软件中CAN FD波特率设置的界面标题

CAN FD计算器工具:效率和比特率

要详细了解CAN FD效率和平均比特率,我们建议您查一下我们的CAN FD计算器(可向虹科咨询索要CAN FD计算器)。

这个CAN FD计算器是一个在线可编辑的表格,可以根据用户输入不同的报文内容进行CAN和CAN FD的效率对比,同时会提供相应的直观效率曲线。

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总线(例如无线),则可以关闭关键功能。通过安全车载通信(SecOC)模块进行的CAN FD身份验证可能是密钥推出的关键。

CSS记录CAN FD数据应用案例

随着CAN FD的兴起,将有几种记录CAN FD数据的使用案例:

记录汽车数据

随着新车的推出,CAN FD数据记录仪将成为记录汽车OBD2数据的关键

重型车队远程信息处理

兼容J1939灵活数据速率的IoT CAN FD记录仪将是未来重型远程信息处理的关键

预见性维护

随着CANopen FD的推出,新的工业机械将需要CAN FD物联网记录仪,以帮助预测和避免故障

车辆或者机器的“黑匣子”

一个CAN FD记录仪可以作为一个“黑匣子”,例如新的原型车辆,为诊断和研发提供数据

CAN FD的趋势

  • CAN FD预计在未来几年将取代传统CAN:

  • 首批支持CAN FD的汽车将于2019/20年上市

  • 最初推出可能会使用2Mbit/s,然后逐渐过渡到5Mbit/s的数据比特率

  • CANopen FD已通过CiA 1301 1.0进行了修改

  • J1939-22使用CAN FD数据帧

  • CAN仍是一项成长中的技术,最近主要归功于CAN FD

  • 预计将来,CAN FD将用于大多数新的开发项目中

CAN FD对比于其他产品

当然,没有带宽和有效负载要求的传统应用程序仍将使用经典CAN。此外,CAN社区已经在开发下一代CAN数据链路层,支持高达2048字节的有效负载。这种方法可以视为10 Mbit/s以太网的替代方法。因此,仍然需要确定CAN FD在未来将扮演什么样的角色,但它肯定会不断成长和发展的,同时也相信CAN FD的未来是光明的。

欢迎关注我们了解更多

车用总线技术 | 从另一种视角了解CAN FD相关推荐

  1. 【汽车总线技术】CAN和CAN FD总线故障诊断

    在总线测试的过程中,总会遇到各种各样的问题,本文主要总结了平时测试过程中经常遇到的一些典型问题,并给出解决方案.如果总线出现故障,大致可以按照标题顺序来检查. 1.断线 如果线缆破损,CAN通讯则无法 ...

  2. 高速串行总线系列(2)高速串行总线技术总览

    文章目录 嵌入式高速串行总线技术应用对比 SRIO总线 JESD204总线 PCIE SATA总线 Aurora FC标准 VPX架构 嵌入式高速串行总线技术应用对比 SRIO总线 SRIO(Seri ...

  3. messagehub讲解_艾舜杰SAP Data Hub 数据服务总线技术深度讲解

    原标题:艾舜杰SAP Data Hub 数据服务总线技术深度讲解 艾舜杰SAP Data Hub 是一个多方面的数据编排解决方案, 旨在解决在不断增长的分布式数据环境中的挑战.它的关键功能包括:数据管 ...

  4. CAN总线技术 | 物理层04 - 终端电阻与双绞线(特性阻抗120欧)

    文章目录 一.前言 二.信号反射与信号振铃 一.前言 广州虹科录制的CAN总线技术课程非常不错,建议同学们学习一下.B站的地址:https://www.bilibili.com/video/BV1gD ...

  5. CAN总线技术 | 物理层03 - 采样点

    文章目录 一.前言 二.STM32CubeMX上采样点的设置 一.前言 广州虹科录制的CAN总线技术课程非常不错,建议同学们学习一下.B站的地址:https://www.bilibili.com/vi ...

  6. CAN总线技术 | 物理层02 - CAN总线的异步串行通讯

    文章目录 一.前言 二.如何解决波特率误差带来的通信错误? 三.填充位 一.前言 广州虹科录制的CAN总线技术课程非常不错,建议同学们学习一下.B站的地址:https://www.bilibili.c ...

  7. CAN总线技术 | 物理层01 - CAN信号电平

    文章目录 一.前言 二.CAN信号的电平 三.为什么要采用两根线(双绞线)的差分电平信号? 四.线与原理 一.前言 广州虹科录制的CAN总线技术课程非常不错,建议同学们学习一下.B站的地址:https ...

  8. CAN总线技术 | CAN脱颖而出的“秘密”

    CAN总线在汽车网络中脱颖而出的"秘密": 节点间采用多主通讯方式. 采用短帧结构,标准数据帧8个字节,500K波特率,用200多us就能发完. 报文ID值越小,优先级越高. 非破 ...

  9. 鸿蒙 OS 尖刀武器之分布式软总线技术全解析!

    作者 | 雷架 来源 | 爱笑的架构师(ID:DancingOnYourCode) 头图 |  CSDN 下载自东方IC 没有人能够熄灭满天星光 华为开发者大会2020在广东东莞松山湖欧洲小镇举办,在 ...

  10. 军用式计算机标准总线,计算机总线技术在军用航空地面检测设备中的应用分析.pdf...

    会议论文,完美pfd格式 计算机总线技术在军用航空地面检测设备中的应用分析 谢文俊严东超雷晓辑吕永健 (空军工程大学工程学院,陕西,西安710038) 摘要:结合军用航空地面检测设备的实际需求,分析比 ...

最新文章

  1. IntelliJ IDEA 关闭多余项目
  2. js 时间戳转为日期格式
  3. Py之cx_Freeze:Python库之cx_Freeze库(程序打包)简介、安装、使用方法详细攻略—案例之实现机器人在线24小时智能翻译
  4. 用python向mongodb插入数据_Python操作MongoDB数据库(一)
  5. OpenFOAM中slip和noslip介绍(滑移条件无滑移条件)【翻译】
  6. 获取map第一个的key和value_Hadoop学习之路(3)Map-Shuffle-Reduce详解与源码
  7. su - 提示失败问题[su方式]
  8. Shell命令对整数求和,每行一个?
  9. 2021年电视盒子推荐指南 电视盒子选购以及常见问题
  10. onvif协议服务器端口,大华录像机添加海康摄像头,设置了onvif协议也不行,如何解决?...
  11. 中兴e8820刷openwrt_2020/05/17 中興E8820V2 OPENWRT自編譯分享 原廠EPPROM修改
  12. 网线水晶头制作的线序
  13. Pisces集成logback
  14. android 系统儿童锁,儿童锁-家长助手
  15. 使用Python爬出王者荣耀高清皮肤图片
  16. 网站权重怎么批量查?怎么批量查询网站的360权重
  17. Java时间格式化工具类大全_二
  18. 2022秋招蚂蚁金服面试
  19. oracle 增加tns,TNS-01184频繁出现(增加了TRACE)
  20. 思科配置系统日志服务器配置,思科无线局域网控制器系统日志(Syslog)服务器配置举例.pdf...

热门文章

  1. 声纹识别之Alize入门教程(四):matlab代码读取Spro工具提取的mfcc特征
  2. scratch制作彩虹猫病毒模拟器
  3. python实现bt下载器_10行 Python代码使用磁力链接批量下载种子
  4. cryptojs php,CryptoJS简单使用方法
  5. 32位计算机怎么安装ps,我可以在64位系统上安装32位Photoshop吗?
  6. 使用云函数快速升级网易云音乐等级
  7. 新知识点!一文告诉你如何调试运行在Docker容器中的远程Node.js应用程序
  8. 小米手机各种检测代码
  9. ARINC429协议芯片DEI1016工作原理
  10. 高速PCB设计考虑的六个方面