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

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

3天内不再提示

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

ZLG致远电子 2022-07-21 16:26 次阅读

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

75b9c372-05e2-11ed-9ade-dac502259ad0.jpg 不同数据段长度选择不同的CRC多项式

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

75cbeb24-05e2-11ed-9ade-dac502259ad0.jpg当报文为传统CAN时,仍采用原有的CRC多项式。

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

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


75e08368-05e2-11ed-9ade-dac502259ad0.jpg  CRC计算时机不同

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

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

75b9c372-05e2-11ed-9ade-dac502259ad0.jpg 增加固定填充位和填充位计数

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

76017690-05e2-11ed-9ade-dac502259ad0.png

76126cb6-05e2-11ed-9ade-dac502259ad0.png

除了固定填充位之外,CRC域的起始还包含了3位的填充位计数,及1位填充位计数检验位,以进一步提高通信可靠性。填充位计数在CRC段的位置如下图红框所示。7623e874-05e2-11ed-9ade-dac502259ad0.png
3位填充位计数表示的值为实际填充位计数对8取模的结果,采用格雷码显示。奇偶校验位对填充位计数进行奇偶校验。详见下表。76315dce-05e2-11ed-9ade-dac502259ad0.png需要注意的是,non-ISO CANFD协议标准,无固定填充位FSB及填充位计数。若使用USBCANFD-200U时,遇到通讯的CANFD控制器为non-ISO标准,可以在打开通道时,选择CANFD标准为non-ISO,以兼容non-ISO标准CANFD控制器。

7643ca2c-05e2-11ed-9ade-dac502259ad0.png

【版权声明】本文为ZLG开发者社区用户原创内容,未经授权不得转载。

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

    关注

    57

    文章

    2690

    浏览量

    463053
收藏 人收藏

    评论

    相关推荐

    CAN/CANFD卡接口函数使用说明

    电子发烧友网站提供《CAN/CANFD卡接口函数使用说明.pdf》资料免费下载
    发表于 10-15 17:35 0次下载

    【龙芯2K0300蜂鸟板试用】CAN接口驱动板设计、CANFD测试、CAN C++程序驱动测试

    :ProProject_loongson-CANFD-ext_2024-08-25.epro.7z 测试 先用短接线把两路CAN短接起来,测试一下互相收发: 测试CAN通信 ifconfig
    发表于 08-25 21:09

    详解TSMaster CANCANFDCRC E2E 校验方法

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

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

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

    请问一下STM32G431CBT6的CANFD支持的最大波特率是多大呀?

    请问一下STM32G431CBT6的CANFD支持的最大波特率是多大呀?
    发表于 03-14 07:14

    CANCANFD协议简介(下)

    CANCANFD协议简介(下)
    的头像 发表于 02-19 12:08 668次阅读
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b>协议简介(下)

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

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

    在同一路CAN上配置经典CAN时能正常发送数据 ,按规格书配置为CANFD时,未能发送成功的原因?

    你好,我在同一路CAN上配置经典CAN时能正常发送数据 ,但是按规格书配置为CANFD时,未能发送成功,想请问我以下配置是否正确。 cy_stc_canfd_config_t canC
    发表于 02-02 07:33

    使用CYT2B75芯片CANFD模块无法发送消息是什么原因导致的呢?

    你好,我使用SDL的example中的CANFD代码测试CYT2B75芯片CANFD模块,对部分代码进行了硬件适配修改,详见附件,配置为每秒发送一次CAN报文。 问题:消息发送失败,且电脑上位机无法
    发表于 02-02 06:57

    cyt2b94使用can总线的时候无法使用CANFD_CONFIG_STD_ID_FILTER_RANGE滤波器怎么解决?

    cyt2b94使用can总线的时候无法使用CANFD_CONFIG_STD_ID_FILTER_RANGE滤波器 代码如下: static const cy_stc_id_filter_t
    发表于 02-01 08:25

    CAN总线最大能够带多少节点?CANFD相对于CAN2.0哪些差异呢?

    CAN总线最大能够带多少节点?CANFD相对于CAN2.0哪些差异呢? CAN总线最大能够带多少节点?
    的头像 发表于 01-31 14:08 2997次阅读

    CANCANFD协议简介(上)

    CANCANFD协议简介(上)
    的头像 发表于 01-26 08:06 918次阅读
    <b class='flag-5'>CAN</b>和<b class='flag-5'>CANFD</b>协议简介(上)

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

    _RX_FIFO1_STD_MASK,和CANFD_RX_FIFO0_STD_MASK 什么区别吗 另外 看到一个CANFD通道2个中断,请问该具体的如何使用啊?
    发表于 01-16 08:19

    cancanfd的区别

    cancanfd的区别  CAN(Controller Area Network)和CAN-FD(CAN with Flexible Da
    的头像 发表于 12-07 15:37 4091次阅读

    CANCANFD的区别 CANCANFD如何转换

    CANCANFD的区别 CANCANFD如何转换  CAN(Controller Area Network)是一种广泛应用于汽车和工业控
    的头像 发表于 11-22 16:37 5336次阅读