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 Type NO.Data Bytes Arb.Bit-Rate Opt.Bit-Rate Avg.Bit-Rate Frame Duration
CAN 8 500 Kbit/s 222us
CAN-FD 8 500 Kbit/s 2Mbit/s 1.16Mbit/s 103.5us
CAN-FD 8 500 Kbit/s 5Mbit/s 1.57Mbit/s 76.2us
CAN-FD 64 500 Kbit/s 2Mbit/s 1.74Mbit/s 329.5us
CAN-FD 64 500 Kbit/s 5Mbit/s 3.43Mbit/s 166.6us

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)
奇偶校验:通过格雷码计算后的值的奇偶校验(偶校验)


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

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

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

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

  5. 有关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 。
协议解析参数设置:

下图显示数据包的ID号为0x010, RTR:false(数据帧), DLC:0x8(8个数据),Data:0x00~0x07,CRC为0x0C5E7(17位), ACK:应答。

圆形白点:逻辑数据。

方形白点:填充位。



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

  1. ISO7816协议深度解析-简单易懂协议详解(一)-- 复位,字符帧,及ATR

    1. 摘要 IC卡必须支持T=0或T=1的协议,但不是同时支持这两种协议,而终端则必须同时支持T=0和T=1的协议. • T=0通讯协议是异步半双工字符传输协议: • T=1通讯协议是异步半双工块传输 ...

  2. SDIO - 1bit / 4bit V2.0 协议深度解析-简单易懂协议详解

    1.简介 SDIO接口是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备.SDIO1.0标准定义了两种类型的SDIO卡: 全速的SDIO卡,传 ...

  3. 红外协议 IR Sharp 协议深度解析-简单易懂协议详解

    夏普红外协议,网上资料很少,它用在夏普生产的VCRs-(盒式磁带录像机),这是其被称为夏普协议的原因. 1. 调制 使用38K载波对编码后的波形进行调制: 夏普协议依据位时间长度进行解码.每个脉冲都是 ...

  4. 红外协议 PHILIPS RC5 协议深度解析-简单易懂协议详解

    RC5是飞利浦使用较多的一种的红外遥控器协议, 1. 特征 使用双向编码(又称曼彻斯特编码): 使用36K载波对编码后的波形进行调制,RC5的每个bit的半高部分包含32个载波脉冲,周期为(1 / 3 ...

  5. [Spring mvc 深度解析(一)] 详解Servlet

    详解Servlet ​ Servlet是Server+Applet的缩写,表示一个服务器应用.通过上面的分析我们知道Servlet其实就是一套规范,我们按照这套规范写的代码就可以直接在Java的服务器 ...

  6. 温湿度模块 DHT11/12 芯片 协议解析 - 简单易懂协议详解

    1.产品概述 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器.它应用专用的数字模块采集技术和温湿度传感技术,确保 产品具有极高的可靠性与卓越的长期稳定性.传感器包括一个电容式 ...

  7. 最简单易懂二分法详解

    二分法和三分法是算法竞赛中常见的算法思路,本文介绍了它们的理论背景.模板代码.典型题目. 二分法的理论背景   在<计算方法>教材中,关于非线性方程的求根问题,有一种是二分法. 方程求根是 ...

  8. 趣谈网络协议-第二模块-底层网络知识详解:4陌生的数据中心2CDN和数据中心

    趣谈网络协议-第二模块-底层网络知识详解:4陌生的数据中心2CDN和数据中心 1:CDN:你去小卖部取过快递么? 使用"中间仓库"来优化 网络中的"就近配送" ...

  9. 趣谈网络协议-第二模块-底层网络知识详解:2最重要的传输层

    趣谈网络协议-第二模块-底层网络知识详解:2最重要的传输层 1:第10讲 | UDP协议:因性善而简单,难免碰到"城会玩" TCP 和 UDP 有哪些区别? UDP 包头是什么样的 ...

  10. 史上最简单MySQL教程详解(进阶篇)之存储过程(一)

    史上最简单MySQL教程详解(进阶篇)之存储过程(一) 史上最简单MySQL教程详解(进阶篇)之存储过程(一) 什么是存储过程 存储过程的作用 如何使用存储过程 创建存储过程 DELIMITER改变分 ...

最新文章

  1. 是时候搁置Grunt,耍一耍gulp了
  2. 保持寄存器和输入寄存器的区别_串行移位寄存器74HC595
  3. php判断表单修改内容,JavaScript判断用户是否对表单进行了修改的方法_javascript技巧...
  4. 搭建K8s集群(kubeadm方式)-部署master节点
  5. 周末想找个地方敲代码_观看我们的代码游戏,全周末直播
  6. 二叉排序树的后序遍历序列必然是递增的_剑指offer 33——二叉搜索树的后序遍历序列...
  7. 基于 SWTBot 进行 Eclipse GUI 自动化测试
  8. 动手学pytorch之tensor数据(一)
  9. ASP.NET页面输出缓存知识
  10. HackerRank and MiniMax
  11. VJ 1490 小菜的数码验证
  12. 微服务架构实战篇(二):Spring boot2.0 + Swagger2 让你的API可视化
  13. 推荐几个编程学习网站
  14. OpenDDS开发人员指南中文版3.23(2)入门
  15. 劳务派遣员工转正制度是什么
  16. 安卓仿陌陌用户详情页轮播图联动效果
  17. 爱玩手机的猫git学习笔记(持续更新)
  18. coredump简介与coredump原因总结
  19. windows下安装配置mycat
  20. python zipfile压缩的文件用shell命令解压_Python学习第177课——bzip2、zip方式压缩文件和解压文件...

热门文章

  1. 2017年全国数学建模国赛B题题目、解题思路、matlab代码(三)
  2. c600 raid linux,华硕Z9PA-D8 (-C600 INTEL RAID)主板驱动3.8.0.1108版下载,适用于Win8-64,win7,Win7-64,winxp-驱动精灵...
  3. uniapp-前后端开发app-系列01开篇
  4. 模板函数与模板参数自动推导
  5. 4600u黑苹果 r5_黑苹果集显hd4400、hd4600显卡Clover引导驱动方法教程
  6. 汉字编码对照表(gb2312/Big5/GB2312)
  7. 亚马逊云科技顾凡:持续创新的关键是企业已构建起现代化应用
  8. 程序员常用软件,你用了哪些
  9. java ee框架开发技术与设计教程_Java EE框架开发技术与设计教程
  10. 华为云计算工程师_华为云计算工程师认证考试