0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

细说CANFD CRC段带来的变化

AGk5_ZLG_zhiyua 来源:ZLG致远电子 作者:ZLG开发者社区 2022-07-15 11:55 次阅读

很多人了解过CANFD,可能知道CANFD CRC段与传统CAN CRC差距是CRC多项式不同,但实际CANFD CRC段与传统CAN的差异远不止这些。接下来,我们细说下CANFD CRC段带来的变化。

不同数据段长度选择不同的CRC多项式

传统CAN采用的是15位的CRC校验,由于CANFD支持更大的数据量,为提供通信可靠性,针对不同长度的CANFD报文,调整其CRC算法,详见下表。

40341ef2-03f1-11ed-ba43-dac502259ad0.jpg

当报文为传统CAN时,仍采用原有的CRC多项式。

当报文为CANFD且数据长度小于等于16字节时,调整为17位的CRC多项式。

当报文为CANFD且数据长度大于16字节时,则调整为21位的CRC多项式。

CRC计算时机不同

在传统CAN中,位填充(连续5位相同位后填充一位相反位)是在CRC计算之后进行。当CAN控制器发送报文时,先对报文CRC计算后,再填入填充位发送;接收时,则对接收数据移除填充位后,再做CRC校验。

在CANFD中,CRC计算时机调整为位填充后。也就是说,发送方发送时,先对报文进行位填充后,再做CRC计算。这种方式增加了对填充位的CRC计算,降低了错误漏检的概率。

增加固定填充位和填充位计数

CANFD中,CRC域采用一种固定填充位的格式:在CRC段第一位及接下来的每四位增加一个固定填充位,填充位为上一位的反码。 以下分别为CRC17和CRC21的固定填充位(FSB)位置。

404e8e36-03f1-11ed-ba43-dac502259ad0.png

405b617e-03f1-11ed-ba43-dac502259ad0.png

除了固定填充位之外,CRC域的起始还包含了3位的填充位计数,及1位填充位计数检验位,以进一步提高通信可靠性。填充位计数在CRC段的位置如下图红框所示。

4066223a-03f1-11ed-ba43-dac502259ad0.png

3位填充位计数表示的值为实际填充位计数对8取模的结果,采用格雷码显示。奇偶校验位对填充位计数进行奇偶校验。详见下表。

406d5154-03f1-11ed-ba43-dac502259ad0.png

需要注意的是,non-ISO CANFD协议标准,无固定填充位FSB及填充位计数。若使用USBCANFD-200U时,遇到通讯的CANFD控制器为non-ISO标准,可以在打开通道时,选择CANFD标准为non-ISO,以兼容non-ISO标准CANFD控制器。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2777

    浏览量

    464633
  • crc
    crc
    +关注

    关注

    0

    文章

    200

    浏览量

    29627
  • CANFD
    +关注

    关注

    0

    文章

    59

    浏览量

    5034
收藏 人收藏

    相关推荐

    细说下与传统CAN相比CANFD CRC带来变化

    很多人了解过CANFD,可能知道CANFD CRC与传统CAN CRC差距是CRC多项式不同,
    的头像 发表于 07-15 11:56 2349次阅读

    求助,关于M467系列CANFD的BSP例程疑问

    CANFD_SetSIDFltr(g_pCanfd, 0, CANFD_RX_BUFFER_STD(0x111, 0)); CANFD_SetSIDFltr(g_pCanfd, 0
    发表于 01-16 08:19

    TC275D系列的芯片支持标准CANFD能配置成非标准CANFD的吗?

    TC275D系列的芯片支持标准CANFD,是否也能配置成非标准CANFD的呢,有那位技术人员配置过吗?
    发表于 02-06 08:31

    rk3588 canfd发送部分数据失败的问题

    200##065.68.00.00.92.00.00.00 必然失败 不知道什么原因,仲裁和数据的波特率修改成其他的也是一样,有没有遇到过这种情况的?或者有支持canfd的板子可以用这个数据试试
    发表于 12-18 10:53

    CRC校验方法通过CAN总线通信来实现

    提高故障(错误)检测能力,新版本特别引入了一个3位填充位计数器和一个额外的奇偶校验位。此外,CRC计算方法也发生了变化。这些改进使最新的CANFD协议与博世(BOSCH)开发的原始CAN FD协议不兼容
    发表于 09-25 15:41

    如何快速实现设备CANFD升级?

    随着CAN FD与车载以太网的诞生与应用,给新一代智能网联车的整车架构带来显著的变化,也给整车厂带来新的机会和挑战。针对目前CANFD升级较复杂的现状,ZLG提供了有效解决方案,本文将
    发表于 03-17 07:44

    CANFD节点如何与经典CAN总线正常通信呢?

    CANFD的来源是什么?CANFD有哪几个显著特点?CANFD节点如何与经典CAN总线正常通信呢?
    发表于 06-16 09:31

    哪些STM32有CANFD

    目录哪些STM32有CANFD外设参考文档CAN-FD特性CAN-FD格式CAN 2.0 VS CAN-FDSTM32 FDCAN 外设特性位时间和采样点Message RAM滤波器设置Rx
    发表于 08-12 07:21

    CRC算法原理和CRC编码的实现方式与使用Verilog对CRC编码进行描述

    CRC 校验是一种在数据通信系统和其它串行传输系统中广泛使用的错误检测手段。通用的CRC 标准有CRC-8、CRC-16、CRC-32、
    发表于 08-06 16:39 36次下载
    <b class='flag-5'>CRC</b>算法原理和<b class='flag-5'>CRC</b>编码的实现方式与使用Verilog对<b class='flag-5'>CRC</b>编码进行描述

    CRC校验 、STM32中CRC计算单元、 CRC应用

    CRC校验、STM32中CRC计算单元、CRC应用
    的头像 发表于 03-04 13:54 6268次阅读

    【Z站推荐】CANFD CRC与传统CAN差距有多大?

    很多人了解过CANFD,可能知道CANFDCRC与传统CANCRC差距是CRC多项式不同,但实际CANFDCRC与传统CAN的差异远不止这些。接下来,我们
    的头像 发表于 07-21 16:26 895次阅读
    【Z站推荐】<b class='flag-5'>CANFD</b> <b class='flag-5'>CRC</b><b class='flag-5'>段</b>与传统CAN差距有多大?

    基于Tricore的CANFD入门工程

    汽车嵌入式开发,很多时候,想学一些东西(eg:CANFD),但又不知道如何下手,这应该是大多数刚入行工程师的苦恼。目前项目上,CANFD的使用已经很普遍,而单纯阅读芯片手册,可能无法透彻的理解CANFD,如果想透彻的理解
    的头像 发表于 07-12 09:46 1039次阅读
    基于Tricore的<b class='flag-5'>CANFD</b>入门工程

    CAN与CANFD的区别 CAN与CANFD如何转换

    CAN与CANFD的区别 CAN与CANFD如何转换  CAN(Controller Area Network)是一种广泛应用于汽车和工业控制系统等领域的串行通信协议,用于在不同的设备间传输数据。而
    的头像 发表于 11-22 16:37 6524次阅读

    一帧CANFD报文由多少个位组成?

    要想知道CANFD报文由多少个位组成,那么我们就要了解CANFD帧结构,知道每个占用位数从而得出CANFD报文位数。
    的头像 发表于 04-27 06:08 5071次阅读
    一帧<b class='flag-5'>CANFD</b>报文由多少个位组成?

    详解TSMaster CAN 与 CANFDCRC E2E 校验方法

    面对切换工具链的用户来说,在TSMaster上完成总线通讯中的CRC/E2E校验处理不是特别熟悉,该文章可以协助客户快速使用TSMaster完成CAN/CANFD总线通讯的CRC/E2E校验。本文
    的头像 发表于 05-25 08:21 2767次阅读
    详解TSMaster CAN 与 <b class='flag-5'>CANFD</b> 的 <b class='flag-5'>CRC</b> E2E 校验方法