CAN-FD总线协议深度解析-简单易懂协议详解

  关注菲益科公众号—>对话窗口发送 “CANoe ”或“INCA”,即可获得canoe入门到精通电子书和INCA软件安装包(不带授权码)下载地址。

1.CAN-FD协议特性
CAN 总线通信也渐渐显现出来一些不足,主要有以下几方面:
(1)最高数据传输速率限制为1 Mbit/s,车载领域实际使用速率最高为500 Kbit/s,无法满足越来越高的数据吞吐量需求;
(2)每帧报文有效数据场为8 字节,仅占整帧报文信息不足50%;
(3)性能上难以应对Flexray、Ethernet 等新型车载总线的威胁。
市场对提升CAN 总线性能的强烈需求使CAN-FD (Flexible Data rate)应运而生,CAN-FD发扬了CAN 的优点,并弥补了CAN 的不足,其主要特性如下:
(1)采用与CAN 通信相同的事件触发模式,软件容易开发和移植;
(2)最高数据传输速率达5Mbit/s,更好地满足要求高实时性高数据传输速率的应  用;
(3)每帧报文有效数据场为64 字节,占整帧报文信息超过70%;
(4)相比Flexray、Ethernet 等新兴总线成本更低。
CAN与CAN-FD性能对比

Frame TypeNO.Data BytesArb.Bit-RateOpt.Bit-RateAvg.Bit-RateFrame Duration

2.CAN-FD 的技术特点及应用领域
  CAN-FD 通过改变帧结构和提高位速率等方法成功的把数据传输速率提高到了5Mbit/s,其基本原理如图2 所示。


图2 CAN-FD 传输的基本原理

3.CAN-FD 的主要应用领域
(1)EOL(End-Of-Line)程序烧写:CAN 数据传输速率为500 Kbit/s;CAN-FD 数据传输速率为5 Mbit/s,约10 倍于CAN 传输速率。
(2)动力、底盘和安全系统,以及身份认证:数据场支持长达64 字节,避免数据非  必要的拆分。
(3)网关:提高网络数据传输速率达5 Mbit/s,提高了有效数据负载率。
4.CAN-FD 的设备、工具厂商
在车载应用领域,目前已有多家设备、工具厂商支持CAN-FD 总线协议,如维克多(Vector)、罗德与施瓦茨(R&S)和周立功(ZLG)等。国外厂商以维克多为代表,其在工具体系的完整性方面更为领先。Vector 的工具体系完整的支持CAN-FD 的开发、测试、网络分析等全部功能。另外,其GL 系列总线记录仪也将在不远的将来支持CAN-FD 协议。
国内厂商以周立功为代表,其最新推出的四通道ZDS2024 示波器可以很好的支持  CAN-FD 协议,其关键特性包括:支持4 通道、模拟带宽高达200MHz、采样率每通道均为1GSa/s、21 种协议触发及解码、51 种参数测量及24 种参数同时测量统计。
5.位填充法
与CAN一样,填充位插入到SOF和数据场的末尾之间。插入的填充位数值是经过格雷码计算转换后的值,并且用奇偶校验位保护(Stuff Count)。
在CRC校验场中,填充位被放置在固定的位位置,这称为固定填充位(Fixed Stuff Bit FSB)。固定填充位的值是上一位的反码。
CRC校验场的第一位
每间隔4位添加一个固定填充位

6.CAN-FD帧类型
CAN-FD仅定义了数据帧,与传统CAN相比,取消了远程帧的支持。原因是在没有数据的情况下,远程帧没有必要改变数据段的比特率。
与CAN一样,数据帧分为“标准帧(11位ID)”和“扩展帧(29位ID)”格式。从BRS(Bit Rate Switch)到CRC分界符之间为可变速率。橙色表示与CAN的传输速度相同,蓝色表示可加速传输速度。


6. CRC-stuff count
CAN FD还在安全性上有了提高。为了避免位填充对CRC的影响,CAN FD在CRC场中增加了stuff count记录填充位的个数对应8的模,并用Grey Code表示,还增加了奇偶校验位。FSB(fixed stuff-bit)固定为前一位的补码。
Stuff Count由以下两个元素组成:
格雷码计算:CRC区域之前的填充位数除以8,得到的余数(Stuff bit count modulo 8)进行格雷码计算得到的值(Bit0-2)
奇偶校验:通过格雷码计算后的值的奇偶校验(偶校验)

7. CRC
随着数据场的扩大,为了保证信息发送的质量,CAN FD的CRC计算不仅要包括数据段的位,还包括来自SOF的Stuff Count和填充位。通过比较CRC的计算结果,可以判断接收节点是否能够正常接收。
在CAN中,CRC的位数是15位,而在CAN FD中,CRC场扩展到了21位,详见以下:
当传输数据为16字节或更少时:CRC 17位
当传输数据超过16个字节时:CRC 21位

8. CRC界定符
CRC界定符是表示CRC校验场的结束,是一个1位的常态隐性位。但是,在CAN FD中,考虑到节点之间的位的距离,在接收端允许最大2位时间。CAN FD帧的数据场(可变速段)是CRC界定符的第一位采样点。

9. ACK应答场
CAN FD的ACK应答场包括应答间隙和应答界定符,其构成和CAN是相同的。不同的是,在CAN中,应答场的长度是1位,但在CAN FD,接收节点利用2位时间将其识别为有效应答。
由从高速的数据场到慢速的仲裁场时,时钟切换会引起收发器相移和总线传播延迟。为了补偿其相移和延迟,相比传统的CAN,在CAN FD中多加了这额外的1位时间。在ACK之后,发送ACK界定符。这是一个表示ACK结束的分隔符,为是1位隐性位。

10. 帧结尾
每一个数据帧均由一标志序列界定,这个标志序列由7个“隐性”位组成。CAN FD的帧结尾与CAN相同。

11. 有关CRC的ISO CAN FD、non-ISO CAN FD兼容性问题
当前CAN FD协议有两个版本,为提高故障(错误)检测能力,新版本特别引入了一个3位填充位计数器和一个额外的奇偶校验位。此外,CRC计算方法也发生了变化。这些改进使最新的CAN FD协议与博世(BOSCH)开发的原始CAN FD协议不兼容。负责ISO的工作组已完成其文件,并已将其提交给DIS(国际标准草案)在进行投票程序。
为了避免误解,CiA建议使用术语“ISO CAN FD”和“non-ISO CAN FD”。所有符合ISO 11898-2:2015的产品都应称为“ISO CAN FD”。执行博世(BOSCH)原始CAN FD协议的产品应命名为“non-ISO CAN FD”,在这个过度阶段的产品主要目的是用于前期评估和开发,将来所有产品都将符合ISO标准。
请注意,早前一些供应商提供的组件或者工具是针对non-ISO CAN FD协议的,包括目前在售的部分CAN FD产品,CiA建议仅使用ISO CAN FD产品进行设计和开发,不过你可继续使用non-ISO CAN FD做评估和前期开发,因为协议的改变对于用户界面是不可见,但注意的是不能同一个网络混用non-ISO CAN FD和ISO CAN FD接口设备,这样会造成CAN总线错误无法完成发送和接收,如果仅仅是发送或接收传统的CAN帧将不会受到任何影响,幸运的是部分设备供应商提供的组件或者工具允许用户选择支持ISO或者non-ISO模式,这样能很好地在过渡时期帮助你完成工作。

12.波形实例

本实例使用 Kingst LA5016 usb 逻辑分析仪检测CAN FD数据通讯。LA5016的CAN FD解析模块,不仅可以解析CAN FD协议,同时也兼容CAN协议解析,以下几图是一个完整的数据包分析截图。从图中可以看到,CAN FD协议可以区分CAN FD及CAN协议,CAN FD协议将协议数据分析为 ID(协议id号), ExternId(扩展id), DLC(数据长度),Data(传输数据), StuffCount,CRC, ACK/NAK 。
协议解析参数设置:

图1数据包的ID号为0x010, RTR:false(数据帧), DLC:0x8(8个数据),Data:0x00~0x07,CRC为0x0C5E7(17位), ACK:应答。
圆形白点:逻辑数据。
方形白点:填充位。

了解更多产品信息,请致菲益科电子官网查询

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年我国网络安全发展形势展望

2023年,我国网络安全政策法规陆续出台,网络安全与数据安全产业发展势头强劲,网络安全形势整体向好。展望2024年,世界各国在网络空间中的竞争将变得愈发激烈,我国网络安全领域的法律法规将不断完善,数据安全…

wpf的资源路径

1、手动命名空间 xmlns:share"clr-namespace:***;assembly**" 2、资源文件 Pack URI 编译到本地程序集内的资源文件的 pack URI 使用以下授权和路径: 授权:application:///。 路径:资源文件的名称,包括其相对于本地…

Java架构师设计模式事件驱动架构

目录 1 导语2 事件驱动架构模式:类别notification3 事件驱动架构模式:何谓EDA4 事件驱动架构模式EDA两种Topology介绍5 事件驱动架构模式EDA两种Topology:EventMe6 事件驱动架构模式EDA两种Topology:Mediato7 事件驱动架构模式EDA两种Topology:Broker8 事件驱动架构模式ED…

Linux安装MongoDB教程

下载MongoDB安装包 1、官网地址; 下载链接 选择版本 下载好了之后上传到服务器开始安装。 解压 解压 mongodb-linux-x86_64-rhel70-4.2.23.tgz 文件: 解压文件必须进入到压缩包所在的目录: cd /usr/local tar -zxvf mongodb-linux-x86_64-rhel70-4…

ARMv8-AArch64 的异常处理模型详解之异常等级、执行状态以及安全状态

ARMv8-AArch64 的异常处理模型详解 一,特权和异常等级1.1 异常等级 Exception levels 二,特权的类型2.1 内存特权2.2 访问寄存器的特权 三,执行状态和安全状态3.1 执行状态 Execution states3.2 执行状态切换 3.3 安全状态 Security states3.…

IDEA中在Java项目中添加Web模块 与配置tomcat服务器

现有项目添加直接走第二步 生成普通新项目 给项目添加框架支持 勾选 Web Application 选项, 点击OK 得到项目目录结构 , 出现web目录结构, 且web目录文件夹出现小蓝点 web或webapp 没有出现小蓝点 说明web配置没有出现或是手动构建的目录结构 , 在IDE关闭或者迁移项目时会出…

【普中开发板】基于51单片机的简易密码锁设计( proteus仿真+程序+设计报告+讲解视频)

基于51单片机的简易密码锁设计 1.主要功能:资料下载链接: 实物图:2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单 【普中】基于51单片机的简易密码锁设计 ( proteus仿真程序设计报告讲解视频) 仿真图proteus8.16(有低版本) 程…

创建EasyCodeMybatisCodeHelperPro模板文件用于将数据库表生成前端json文件

在intellij idea中,通过插件EasyCodeMybatisCodeHelperPro,从现有的模板文件中选择一个复制粘贴,然后稍为修改,即可得到一个合适的模板文件。 现在的前端,越来越像后端。TypeScript替代了JavaScript,引入了…

如何在 Windows10 下运行 Tensorflow 的目标检测?

看过很多博主通过 Object Detection 实现了一些皮卡丘捕捉,二维码检测等诸多特定项的目标检测。而我跟着他们的案例来运行的时候,不是 Tensorflow 版本冲突,就是缺少什么包,还有是运行官方 object_detection_tutorial 不展示图片等…

基于Java开发的工作流审批系统,自定义工作流,表单绑定

前言 activiti工作流,企业erp、oa、hr、crm等审批系统轻松落地,请假审批demo从流程绘制到审批结束实例。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器,快速开发平台,可插拔工作流服务。 二、项目介绍 本项目…

遗传算法总结(迭代版本2:附带MATLAB例题代码)

目录 基本概念: 具体例子 1.我们先对图像进行抽象化: 2.我们将得到的六串数字进行扁平化处理: 3.解释即后续操作​编辑 基本步骤: 总结 例题1: 例题2: 基本概念: 染色体(Ch…

WPF 基础入门(资源字典)

资源字典 每个Resources属性存储着一个资源字典集合。如果希望在多个项目之间共享资源的话,就可以创建一个资源字典。资源字段是一个简单的XAML文档,该文档就是用于存储资源的,可以通过右键项目->添加资源字典的方式来添加一个资源字典文件…

计算机组成原理之计算机硬件发展和计算机系统的组成

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

Linux chmod命令详解

Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令 Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users&#xff09…

高效底座模型LLaMA

论文标题:LLaMA: Open and Efficient Foundation Language Models 论文链接:https://arxiv.org/pdf/2302.13971.pdf 论文来源:Meta AI 1 概述 大型语言模型(Large Languages Models,LLMs)通过大规模文本数…

CMake入门教程【高级篇】qmake转cmake

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1. 概述2.qmake与cmake的差异3. qmake示例4.qmake转cmake示例5.MOC、UIC和RCC…

关于“Python”的核心知识点整理大全63

目录 20.2.11 使用 Git 跟踪项目文件 1. 安装Git 2. 配置Git 3. 忽略文件 .gitignore 注意 4. 提交项目 20.2.12 推送到 Heroku 注意 20.2.13 在 Heroku 上建立数据库 20.2.14 改进 Heroku 部署 1. 在Heroku上创建超级用户 注意 注意 20.2.11 使用 Git 跟踪项目文件…

Ubuntu22.04,Nvidia4070配置llama2

大部分内容参考了这篇非常详细的博客,是我最近看到的为数不多的保姆级别的教学博客,建议大家去给博主点个赞【Ubuntu 20.04安装和深度学习环境搭建 4090显卡】_ubuntu20.04安装40系显卡驱动-CSDN博客 本篇主要是基于这篇博客结合自己配置的过程中一些注…

计算机二级WPS Office考试须知、如何备考、备考建议

本文从计算机二级考试须知、如何备考、备考建议以及考试的注意事项等方面进行讲述,认认真真看,对你受益匪浅。 一、计算机二级考试须知 2021年3月27日至29日将举办第60次全国计算机等级考试(NCRE),从今年起&#xff0…

C# 使用Fleck创建WebSocket服务器

目录 写在前面 代码实现 服务端代码 客户端代码 调用示例 写在前面 Fleck 是 C# 实现的 WebSocket 服务器,通过 WebSocket API,浏览器和服务器只需要做一个握手的动作,然后浏览器和服务器之间就形成了一条快速通道;两者之间…