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

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

3天内不再提示

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

上海同星智能科技有限公司 2023-09-09 08:23 次阅读

在通讯过程中,用户需要利用 CheckSum 信号对传输数据用自己规定的算法逻辑进行校验,来看数据在传输过程中是否被更改或传输错误。本文主要介绍 TSMaster 如何设置自己的 CRC 算法信号。

CRC相关知识介绍

1

原理

CRC 校验本质上是选取一个合适除数,对要进行校验的数据(被除数)做模 2 除法,得到的余数就是 CRC 校验值。

f261cac4-4ea6-11ee-a20b-92fbcf53809c.png

1.标准 CRC 生成多项式

f2a7469e-4ea6-11ee-a20b-92fbcf53809c.png

2.位宽(W)

多项式二进制位数减一。

3.工程中常用 CRC 校验过程

△ 余数初始值:计算开始前,先给变量 CRC 赋的初始值。

△结果异或值:计算结束后,得到的变量 CRC 与这个值进行异或操作,得到最终校验值。

△输入数据反转:计算开始前,将需要校验的数据反转,如 1011 反转为 1101。

△输出数据反转:计算结束后,与结果异或值异或之前,计算值反转,如 1011 反转为 1101。

4. 模 2 运算

不考虑进位和借位的二进制数运算。

f2df75d2-4ea6-11ee-a20b-92fbcf53809c.pngf2fa7512-4ea6-11ee-a20b-92fbcf53809c.png

操作步骤(以 CRC8 为例)

1

利用C脚本对单一信号设置自定义CRC校验算法

1. 打开 TSMaster,创建一个 C 脚本窗口。

f323310a-4ea6-11ee-a20b-92fbcf53809c.png


2. 创建 Rollingcount 信号变量 RC、创建需要校验信号所对应报文的预发送事件、以及校验算法函数 MakeCheckSum(此处以 ABSData 报文为例)。

f37359fa-4ea6-11ee-a20b-92fbcf53809c.png

3. 编辑 CRC 自定义算法函数。

f3f81be0-4ea6-11ee-a20b-92fbcf53809c.png

4. 在预发送事件中,调用编辑好的自定义 CRC 算法函数,利用回调函数赋值给 CheckSum信号,同时对 RollingCount 信号编程做循环处理。

f429cb54-4ea6-11ee-a20b-92fbcf53809c.png


5. 将 DBC 中 CheckSum 和 RollingCount 信号添加至信号曲线进行观察,即可完成通过脚本对单一校验信号设置自定义的 CRC 校验算法。

f49af540-4ea6-11ee-a20b-92fbcf53809c.png

2

对多个信号设置自定义CRC校验算法

1. 添加 DBC 文件进 TSMaster,打开 RBS 模块,找到需要设置的 CheckSum 信号,点击鼠标右键,选择设置为 CheckSum 信号。

f4f959e6-4ea6-11ee-a20b-92fbcf53809c.png

2. 在弹出的 CRC 算法库中选择合适的 CRC 算法,如需要自定义则需进行以下步骤。

f53ee24a-4ea6-11ee-a20b-92fbcf53809c.png


3. 在弹出算法库窗口后,进入 C 小程序,选择 CRC Library,在自定义函数右键添加自定义算法函数(如 MyCRC)。

f5a876d8-4ea6-11ee-a20b-92fbcf53809c.png


4. 编辑自定义算法函数代码(注意:参数类型需与现有 CRC 算法函数保持一致:指针指向数据首地址,数据长度),编辑好后点击编译。

f64b9584-4ea6-11ee-a20b-92fbcf53809c.png


5. 回到 RBS 界面,选中要设置的 CRC 校验信号,右键选择设置为 CRC 校验信号,在弹出的算法库中便已包含了我们自定义的 CRC 校验算法,这样即可快速对多个 CRC 信号进行CRC 校验算法设置,实现 CheckSum 本地化支持。

f6bbb0a8-4ea6-11ee-a20b-92fbcf53809c.png


6. 在编译好 CRC 信号函数后,我们可以在 RBS 中对 CRC 信号点击鼠标右键,选择设置编辑算法参数,在弹出的窗口中,可以选择切换其他 CRC 校验算法,并设置首地址和长度。这样即可快速对多个 CRC 信号进行 CRC 校验算法设置,实现 CheckSum 本地化支持。

f73af0d4-4ea6-11ee-a20b-92fbcf53809c.pngf7aa9434-4ea6-11ee-a20b-92fbcf53809c.png

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

    关注

    0

    文章

    191

    浏览量

    29195
  • 信号
    +关注

    关注

    11

    文章

    2639

    浏览量

    75388
  • MASTER
    +关注

    关注

    0

    文章

    78

    浏览量

    11158
收藏 人收藏

    评论

    相关推荐

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 616次阅读
    HarmonyOS开发实例:【<b class='flag-5'>自定义</b>Emitter】

    虹科技术|保障数据传输稳定性:BabyLIN产品的CRC算法实现

    文章将以CRC8校验为例,介绍在BabyLIN产品中如何使用CRC校验算法CRC校验原理 在
    的头像 发表于 01-02 10:45 198次阅读
    虹科技术|保障数据传输稳定性:BabyLIN产品的<b class='flag-5'>CRC</b><b class='flag-5'>算法</b>实现

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享一下如何基于YOLOv8姿态评估模型,实现在自定义数据集上,完成自定义姿态评估模型的训练与推理。
    的头像 发表于 12-25 11:29 1268次阅读
    基于YOLOv8实现<b class='flag-5'>自定义</b>姿态评估模型训练

    博途用户自定义库的使用

    博途官方提供了很多库,比如:基本函数库、通信库、安全库、驱动库等等,用户可以使用库中的函数/函数块来完成具体的控制任务。除了官方的库,我们也可以创建自己的库(用户自定义库)。比如,把项目
    的头像 发表于 12-25 10:08 290次阅读
    博途用户<b class='flag-5'>自定义</b>库的使用

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

    的补位 首先,需要将需要进行CRC校验的数据进行补位操作。CRC校验算法通常以二进制的形式工作,因此需要将原始数据转换为二进制。同时,生成多项式也需要进行补位操作,使其与数据的位数相对
    的头像 发表于 12-20 11:27 452次阅读

    常用的校验算法有哪些?

    常用的校验算法有哪些,是不是和通信规约有关。比如MODBUS一般都用CRC16(不确定是不是叫这个)。这些校验算法是之前积累下来的吗。自己也可以定义一个
    发表于 11-03 06:50

    Android端自定义铃声 MobPush对安卓端自定义铃声的教程

    如何为APP推送设置独特的通知铃声呢?本次带来的是MobPush对安卓端自定义铃声的教程,快来看看吧~
    的头像 发表于 10-21 15:34 816次阅读
    Android端<b class='flag-5'>自定义</b>铃声 MobPush对安卓端<b class='flag-5'>自定义</b>铃声的教程

    OpenHarmony自定义组件介绍

    一、创建自定义组件 在ArkUI,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。在进行 UI 界面开发时,通常不是简单的将系统组件进行组合使用,
    发表于 09-25 15:36

    labview超快自定义控件制作和普通自定义控件制作

    labview超快自定义控件制作和普通自定义控件制作
    发表于 08-21 10:32 5次下载

    教程 3:构建自定义配置文件

    教程 3:构建自定义配置文件
    发表于 07-06 18:49 0次下载
    教程 3:构建<b class='flag-5'>自定义</b>配置文件

    教程 2:自定义配置文件示例

    教程 2:自定义配置文件示例
    发表于 07-04 20:50 0次下载
    教程 2:<b class='flag-5'>自定义</b>配置文件示例

    Android自定义Toast Kotlin

    电子发烧友网站提供《Android自定义Toast Kotlin.zip》资料免费下载
    发表于 06-16 11:43 0次下载
    Android<b class='flag-5'>自定义</b>Toast Kotlin

    带计时器的自定义锻炼

    电子发烧友网站提供《带计时器的自定义锻炼.zip》资料免费下载
    发表于 06-16 10:29 0次下载
    带计时器的<b class='flag-5'>自定义</b>锻炼

    PyTorch教程6.5之自定义图层

    电子发烧友网站提供《PyTorch教程6.5之自定义图层.pdf》资料免费下载
    发表于 06-05 15:17 0次下载
    PyTorch教程6.5之<b class='flag-5'>自定义</b>图层

    labview自定义控件

    labview自定义精美控件
    发表于 05-15 16:46 9次下载