分享

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

 Kuai2012 2022-04-26
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性能对比

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的传输速度相同,蓝色表示可加速传输速度。

7.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)

奇偶校验:通过格雷码计算后的值的奇偶校验(偶校验)

8.CRC

随着数据场的扩大,为了保证信息发送的质量,CAN FD的CRC计算不仅要包括数据段的位,还包括来自SOF的Stuff Count和填充位。通过比较CRC的计算结果,可以判断接收节点是否能够正常接收。

在CAN中,CRC的位数是15位,而在CAN FD中,CRC场扩展到了21位,详见以下:

当传输数据为16字节或更少时:CRC 17位

当传输数据超过16个字节时:CRC 21位

9.CRC界定符

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

10.ACK应答场

CAN FD的ACK应答场包括应答间隙和应答界定符,其构成和CAN是相同的。不同的是,在CAN中,应答场的长度是1位,但在CAN FD,接收节点利用2位时间将其识别为有效应答。

由从高速的数据场到慢速的仲裁场时,时钟切换会引起收发器相移和总线传播延迟。为了补偿其相移和延迟,相比传统的CAN,在CAN FD中多加了这额外的1位时间。在ACK之后,发送ACK界定符。这是一个表示ACK结束的分隔符,为是1位隐性位。

11.帧结尾

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

有关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:应答。

圆形白点:逻辑数据。

方形白点:填充位。

————————————————

版权声明:本文为CSDN博主「maggie2014」的原创文章,遵循CC 4.0 BY-SA版权协议,已获转载许可。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多