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

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

3天内不再提示

详解TSMaster CAN 与 CANFD 的 CRC E2E 校验方法

上海同星智能科技有限公司 2024-05-25 08:21 次阅读

面对切换工具链的用户来说,在 TSMaster 上完成总线通讯中的 CRC/E2E 校验处理不是特别熟悉,该文章可以协助客户快速使用 TSMaster 完成 CAN/CAN FD 总线通讯的 CRC/E2E 校验。

本文关键字:TSMaster,CAN/CANFD,CRC 校验,E2E 校验

目录

Catalog

1.CRC/E2E 在报文传输过程中的应用

2.基于 TSMaster 剩余总线仿真的 CRC 校验

3.TSMaster 本地化支持的 CRC 校验

1.

CRC/E2E 在报文传输过程中的应用

典型应用:两个 CAN 节点(ECU)之间进行 CAN/CANFD 报文传输,双方规定对报文(0xC9:ABSdata)Byte0-Byte6 需要进行 CRC 校验,Byte6 的高四位为 RollingCounter,校验结果放至 Byte7 中。

因此,在 DBC 发送这帧报文的节点来说,在往总线发出这帧报文之前需要对每帧报文的 RollingCounter 值进行不断自增、循环,然后进行 CRC 校验把校验值放进 Byte7 中,最后再把帧报文发到总线上;而对于 DBC 接收这帧报文的节点来说,需要对这帧报文也进行CRC 校验,把校验的结果与 Byte7 的数据进行对比,对比结果一致则这帧报文的数据有效,否则丢弃这些数据。

E2E(End to End),是 Autosar 官方定义的标准,它包含了 CRC 算法、要求了 Counter 的值如何进行递增、并在 Counter 出错时会记录对应的错误状态等等。从发送节点来说,可以简单的理解为发送前填充 Checksum 和 Counter 的值,基本操作与 CRC 相同。

2.

基于 TSMaster 剩余总线仿真的 CRC 校验

基于剩余总线仿真的 CRC 校验,该方法在 TSMaster 仿真-CAN 总线仿真中即可完成,无需代码,但是 CRC 校验算法是通用的 CRC 算法,例如 CRC8、CRC16、CRC32 等等。使用之前需要先在工程中加载数据库文件并绑定对应的应用程序通道。

b5bdd61a-1a2c-11ef-bebc-92fbcf53809c.jpg

其次,打开 CAN 总线仿真,激活报文的所有信号及其所在节点和网络(此处以 0xC9ABSdata 为例):

b5c1a84e-1a2c-11ef-bebc-92fbcf53809c.jpg


从这里可以看到 ABS_RC 和 ABS_CheckSum 的信号类型还是普通信号,那么如何通过0 代码实现 RC 的自增循环以及 CheckSum 校验值的计算呢?具体的实现在总线仿真这个模块中已经实现,用户只需在该界面中进行相关的设置即可实现,以下是详细步骤。


1)右击 ABS_RC,选择设置为 Rolling Counter 信号(RC),完成后即可看到该信号类型已经变为 RC。

b5c59ee0-1a2c-11ef-bebc-92fbcf53809c.jpg

RC 值自增的范围在该模块中也是可以直接设置,在 CAN 总线仿真树状图窗口内任意位置右键打开编辑 RC 值范围,然后勾选该信号,对 RC 的最大最小值进行手动输入,确认即可保存。

b5dcd5d8-1a2c-11ef-bebc-92fbcf53809c.jpgb5e06c48-1a2c-11ef-bebc-92fbcf53809c.jpg

2)右键 ABS_CheckSum,选择设置为 Checksum 校验信号(CRC),随后会弹出默认算法库,这里以选择 crc8 例。完成后该信号的类型已经变为 CRC(crc.crc8[0:7]),表示该信号为CRC 校验信号,校验算法为 crc 库中的 crc8,保护字节为 0-7:

b5e3e3f0-1a2c-11ef-bebc-92fbcf53809c.jpgb5f134a6-1a2c-11ef-bebc-92fbcf53809c.jpg

如果用户需要修改校验的字节范围,同 RC 值范围,在窗口内右键打开编辑 CRC 算法参数;在该窗口内可以对保护字节起始以及保护字节数进行编辑。

b600e34c-1a2c-11ef-bebc-92fbcf53809c.jpg

同时该窗口可以对所有的 CRC 信号进行统一的编辑,双击信号所在的 CRC 算法栏即可打开算法选择窗口,如果用户的算法不是标准的 CRC 算法,我们也可以在 crc 这个库中再去添加自定义函数,这样也能给这个剩余总线仿真这个模块识别使用,需要注意的前提条件是自定义算法的接口必须和已存在的相同,也就是函数的参数必须是(pu8 data, s32 datalen),这样才能够正常使用。

b60b6dee-1a2c-11ef-bebc-92fbcf53809c.jpg


另外一种使用场景,需要在校验的数据内容头部/尾部增加固定的字节数据,这一点不难发现在 CRC 算法参数编辑窗口也有做了接口处理,用户可以直接在该框内添加数据,多个数据可以用英文符号(,)隔开。

b6200b50-1a2c-11ef-bebc-92fbcf53809c.jpg

以上就是基于总线仿真 CRC 校验的配置操作过程,完成后运行总线仿真即可在报文信息窗口看到发出的报文。

b62c75d4-1a2c-11ef-bebc-92fbcf53809c.jpg

3.

TSMaster 本地化支持的 CRC 校验

该方法适用于 CRC 校验算法与 crc 库中算法函数接口不同,还需要利用报文帧的其他信息进行校验的情况,例如将报文 ID 一并进行校验计算。这种情况就可以利用 TSMaster 中的小程序来完成,此工程以 C 小程序为例,Python 小程序同理。


演示前将数据库进行加载,在开头提到过,CRC 校验往简单来说就说往报文数据填充RC 和 CheckSum 校验的值,此时用户就可以在小程序中通过预发送事件来修改 RC 和 CheckSum 的值。

b63145fa-1a2c-11ef-bebc-92fbcf53809c.jpg

完成编辑内容后需要运行小程序,然后在报文发送窗口进行报文发送或者启动 CAN 剩余总线仿真(此时需要将 RC 和 CheckSum 设置为普通信号,使得这两个信号只受小程序的控制)。

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

    关注

    57

    文章

    2714

    浏览量

    463326
  • crc
    crc
    +关注

    关注

    0

    文章

    199

    浏览量

    29432
  • CANFD
    +关注

    关注

    0

    文章

    56

    浏览量

    4919
收藏 人收藏

    评论

    相关推荐

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

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

    以前的E2E社区的资料

    以前的E2E社区合到这边来了,那以前的视频资料哪里能找到阿,我想找Tommy song的C64+的视频教程~~麻烦,谢谢!
    发表于 06-21 00:43

    不能纠错的校验方法

    昨天做了一道试题下面不能纠错的校验方法是:A.奇偶校验B.校验和C.CRC校验D.(忘了这选项是什么了)请问答案是哪个???
    发表于 09-18 19:57

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

    检测、格式错误检测、填充错误检测、应答错误检测和CRC错误检测。作为一种重要的错误检测手段,CRC错误检测是接收节点判断CAN帧信息的完整性并向总线确认应答的依据。常见的校验方法1、最
    发表于 09-25 15:41

    CRC校验具体实现方式

    CRC校验具体实现方式CRC校验是一种常见的校验方式,最近在做数据通讯时遇到一款芯片提到了CRC
    发表于 12-03 08:30

    crc校验方法及示例

     CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(
    发表于 12-04 09:35 1.5w次阅读
    <b class='flag-5'>crc</b><b class='flag-5'>校验方法</b>及示例

    物联网转向E2E解决方案

    据外媒报道,物联网连接解决方案已经转向E2E(端到端)了。 据分析师Mullooly预测,物联网据说在未来数年内从附加服务中将比接驳费获得更多的收益。预计这将额外超过非连接的M2M(机器对机器)一半
    发表于 12-05 18:26 505次阅读

    用于单片机的CRC数据校验方法

    用于单片机的CRC验方法一、应用场景二、代码实现1.CRC表格2.CRC函数3.使用demo闲扯一、应用场景前两天做了一个固件的远程升级软件,是基于stm32的固件,传输的数据量少,
    发表于 12-17 18:35 3次下载
    用于单片机的<b class='flag-5'>CRC</b>数据<b class='flag-5'>校验方法</b>

    细说CANFD CRC段带来的变化

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

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

    :不同数据段长度选择不同的CRC多项式传统CAN采用的是15位的CRC校验,由于CANFD支持更大的数据量,为提供通信可靠性,针对不同长度的
    的头像 发表于 07-21 16:26 784次阅读
    【Z站推荐】<b class='flag-5'>CANFD</b> <b class='flag-5'>CRC</b>段与传统<b class='flag-5'>CAN</b>差距有多大?

    TSMaster中如何自定义CRC校验算法

    在通讯过程中,用户需要利用CheckSum信号对传输数据用自己规定的算法逻辑进行校验,来看数据在传输过程中是否被更改或传输错误。本文主要介绍TSMaster如何设置自己的CRC算法信号。CRC
    的头像 发表于 09-09 08:23 1415次阅读
    <b class='flag-5'>TSMaster</b>中如何自定义<b class='flag-5'>CRC</b><b class='flag-5'>校验</b>算法

    Autosar E2E介绍及其实现

    E2E(End-to-End)保护存在于安全性较高的信号,在信号传递的过程中,受软硬件的影响,发送端和接收端的数据可能不一致,此时E2E的作用就体现出来,系统可以快速检测出E2E异常,以便做出相应的异常处理。
    的头像 发表于 09-22 10:28 2933次阅读
    Autosar <b class='flag-5'>E2E</b>介绍及其实现

    奇偶校验crc校验的区别 CRC校验和奇偶校验之间有什么关系?

    奇偶校验crc校验的区别 CRC校验和奇偶校验之间有什么关系? 奇偶
    的头像 发表于 10-17 16:28 3255次阅读

    CANCANFD的区别 CANCANFD如何转换

    : 1. 传输速率:CAN的标准速率为1Mbps,而CANFD的数据传输速率可以达到2Mbps以上,这使得CANFD在传输大量数据时具有更高的效率和性能。
    的头像 发表于 11-22 16:37 5599次阅读

    简述循环冗余码crc校验方法的工作原理

    循环冗余码(CRC校验是一种常用的错误检测和纠正方法,广泛应用于通信和存储设备中,用于确定数据在传输或存储过程中是否出现错误。 CRC校验方法
    的头像 发表于 12-20 11:27 1164次阅读