在通讯过程中,用户需要利用 CheckSum 信号对传输数据用自己规定的算法逻辑进行校验,来看数据在传输过程中是否被更改或传输错误。本文主要介绍 TSMaster 如何设置自己的 CRC 算法信号。
CRC相关知识介绍
1
原理
CRC 校验本质上是选取一个合适除数,对要进行校验的数据(被除数)做模 2 除法,得到的余数就是 CRC 校验值。
1.标准 CRC 生成多项式
2.位宽(W)
多项式二进制位数减一。
3.工程中常用 CRC 校验过程
△ 余数初始值:计算开始前,先给变量 CRC 赋的初始值。
△结果异或值:计算结束后,得到的变量 CRC 与这个值进行异或操作,得到最终校验值。
△输入数据反转:计算开始前,将需要校验的数据反转,如 1011 反转为 1101。
△输出数据反转:计算结束后,与结果异或值异或之前,计算值反转,如 1011 反转为 1101。
4. 模 2 运算
不考虑进位和借位的二进制数运算。
操作步骤(以 CRC8 为例)
1
利用C脚本对单一信号设置自定义CRC校验算法
1. 打开 TSMaster,创建一个 C 脚本窗口。
2. 创建 Rollingcount 信号变量 RC、创建需要校验信号所对应报文的预发送事件、以及校验算法函数 MakeCheckSum(此处以 ABSData 报文为例)。
3. 编辑 CRC 自定义算法函数。
4. 在预发送事件中,调用编辑好的自定义 CRC 算法函数,利用回调函数赋值给 CheckSum信号,同时对 RollingCount 信号编程做循环处理。
5. 将 DBC 中 CheckSum 和 RollingCount 信号添加至信号曲线进行观察,即可完成通过脚本对单一校验信号设置自定义的 CRC 校验算法。
2
对多个信号设置自定义CRC校验算法
1. 添加 DBC 文件进 TSMaster,打开 RBS 模块,找到需要设置的 CheckSum 信号,点击鼠标右键,选择设置为 CheckSum 信号。
2. 在弹出的 CRC 算法库中选择合适的 CRC 算法,如需要自定义则需进行以下步骤。
3. 在弹出算法库窗口后,进入 C 小程序,选择 CRC Library,在自定义函数右键添加自定义算法函数(如 MyCRC)。
4. 编辑自定义算法函数代码(注意:参数类型需与现有 CRC 算法函数保持一致:指针指向数据首地址,数据长度),编辑好后点击编译。
5. 回到 RBS 界面,选中要设置的 CRC 校验信号,右键选择设置为 CRC 校验信号,在弹出的算法库中便已包含了我们自定义的 CRC 校验算法,这样即可快速对多个 CRC 信号进行CRC 校验算法设置,实现 CheckSum 本地化支持。
6. 在编译好 CRC 信号函数后,我们可以在 RBS 中对 CRC 信号点击鼠标右键,选择设置编辑算法参数,在弹出的窗口中,可以选择切换其他 CRC 校验算法,并设置首地址和长度。这样即可快速对多个 CRC 信号进行 CRC 校验算法设置,实现 CheckSum 本地化支持。
-
crc
+关注
关注
0文章
199浏览量
29432 -
信号
+关注
关注
11文章
2778浏览量
76603 -
MASTER
+关注
关注
0文章
103浏览量
11260
发布评论请先 登录
相关推荐
评论