干货分享 | 详解TSMaster CAN 与 CANFD 的 CRCE2E 校验方法

面对切换工具链的用户来说,在 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 等等。使用之前需要先在工程中加载数据库文件并绑定对应的应用程序通道。

图片

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

图片

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

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

图片

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

图片

图片

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

图片

图片

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

图片

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

图片

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

图片

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

图片

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

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

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

图片

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/674269.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【漏洞复现】SpringBlade tenant/list SQL 注入漏洞

0x01 产品简介 SpringBlade ,是一个由商业级项目升级优化而来的 SpringCloud 分布式微服务架构、SpingBoot 单体式微服务架构并存的综合型项目。 0x02 漏洞概述 SpringBlade 后台框架 /api/blade-system/tenantist路径存在SQL注入漏洞,攻击者除了可以利用 SQL 注…

参数介绍 安捷伦Agilent4155C、4156C 半导体测试仪

Agilent / HP 4155C 半导体参数分析仪是一款经济高效、精确的实验室台式解决方案,可用于高级设备特性分析。Agilent / HP 4155C 分析仪的功能和规格包括:一般功能: 经济高效、精确的实验室台式参数分析仪4 个中等功率 SMU、2 个 VSU 和 2 个 …

iOS 通过PacketLogger 抓包蓝牙数据包

当使用iOS平台调试蓝牙外设时,需要抓取蓝牙数据包,那么如何获取iOS端设备与蓝牙设备之间通信的蓝牙数据包呢? 一、资料准备 1、苹果手机 2、Xcode开发工具 3、Apple开发者账户 二、环境搭建 2.1、手机环境搭建 手机浏览器访问地址&…

Anzo Capital:什么是BUOVB形态?如何交易?

各位投资者如果你在研究趋势图表的时候,发现了这种形态的图表:第一个蜡烛图是看跌,第二个蜡烛图看涨而且全部遮住第一个蜡烛图,也就是第二个蜡烛图的高点可能超出第一个条形几个点,其低点也可能超出第一个蜡烛图几个点…

HCIP-Datacom-ARST自选题库__BGP/MPLS IP VPN多选【11道题】

1.在BGP/MPLS IP VPN中,PE上分配私网标签的方式有以下哪些顶? 基于平台的MPLS标签分配 基于VPN实例的MPLS标签分配 基于路由的MPLS标签分配 基于接口的MPLS标签分配 2.以下关于BGP/MPLS IP VPN的描述,正确的有哪些项? 在BGP/MPLSIP VPN场景中&am…

超声波清洗机哪个品牌更值得推荐?精选四大王牌臻品分享

近年来,随着人们对健康生活要求的提升,超声波清洗机在市场上的受欢迎程度逐渐攀升,产品的多样性也让人眼花缭乱。近期收到了大量读者的一些私信,其中很多人询问使用超声波清洗机会对眼镜有伤害吗、超声波清洗机是不是智商税、超声…

苏宁电商数据揭秘:掌握苏宁API接口,一键解锁无限商机

苏宁API接口是一套开放的、基于HTTP协议的接口,它允许开发者通过编程方式访问苏宁平台上的商品、订单、用户等信息。这些接口支持多种数据格式,如JSON和XML,并提供了完善的错误处理和权限控制机制。 要使用苏宁API接口,首先需要在…

家政上门系统源码,家政上门预约服务系统开发涉及的主要功能

家政上门预约服务系统开发是指建立一个在线平台或应用程序,用于提供家政服务的预约和管理功能。该系统的目标是让用户能够方便地预约各种家政服务,如保洁、家庭护理、月嫂、家电维修等,并实现服务供应商管理和订单管理等功能。 以下是开发家政…

bootstrapblazor小白笔记

使用了bootstrapblazor,采用.net8.0,server模式,所有的问题都是基于以上条件所遇到的 1、登录过后需要在每个页面都使用认证吗 是不需要的,每个页面都写attribute [Authorize]没有问题,但是页面很多的话一个一个的写很…

Vue可视化表单设计 FcDesigner v3.1.0 发布,新增 12 个组件,支持事件配置等

FcDesigner 是一款可视化表单设计器组件。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。 本项目采用 Vue 和 ElementPlus 进行页面构建,内置多语言解决方案,支持二次扩展开发,支持自…

用JS来控制遥控车(一行代码即可连接, 超简单!)

简介 有些时候我们想要做车辆的某一个功能,但是又不想浪费时间做整辆小车时,一般会去买一辆差不多的遥控车来改,但是那也比较麻烦,市面上好像也没有便宜的直接提供编程接口的遥控车。所以就自己做一个吧~。 主要是要实现向外提供…

智能名片小程序源码系统平台版 人人可创建属于自己的名片 前后端分离 带完整的源代码以及搭建教程

系统概述 智能名片小程序源码系统平台版是一款基于微信小程序的个性化名片搭建平台。该平台采用前后端分离的设计架构,前端提供丰富的界面元素和灵活的布局方式,后端则提供强大的数据支持和功能扩展能力。用户无需具备专业的编程知识,只需按…

python中的while循环

没有循环时,想打印0-100之间的数字,则需要循环多次,例: print(0) print(1) print(2) print(3) ... print(99) 但是使用循环的话,就不会有那么麻烦 while 循环 while 这个单词有“在……时”的含义,whil…

patchworklib,一款极其强大的 Python 库!

一、问题 如果想把多个图合并放在一个图里,如图,该如何实现 好在R语言 和 Python 都有对应的解决方案, 分别是patchwork包和patchworklib库。 二、R语言 安装 两个图并排在一行,只需要导入patchwork, 然后相加即可 …

算法课程笔记——计数原理

算法课程笔记——计数原理

2024年信息素养大赛图形化编程小低组复赛模拟真题

2024年全国青少年信息素养大赛复赛为六道编程题,分值为10分*215分*225分*2,难度依次递增,按步骤评分,据Scratch实验室预估,初赛80%的晋级率,初赛近20万人,意味着有15万多进入复赛,7月…

最前端|手把手教你打造前端规范工程

前端代码风格因人而异,一个项目参与的人多了,不加强控制可能就是一个大杂烩,对开发人员来讲就是一个噩梦。 如何解决这种困境? 通过使用 ESLint Prettier Husky Lint-stagedCommitlint Commitizen 这套方案,它能够在…

Camx架构-Camera kernel Driver debugging

目录 V4L2 framework camera drivers CRM 功能性 CRM log analysis 使能CRM log: camera启动期间列举子设备: userspace 连接或者取消已获得的device handles(UMD 等效于CSLLink/CSLUnlink) userspace open request (UMD等效于CSLOpenRequest) 在SOF期间,reque…

Linux防火墙入门——iptables、firewalld配置详解

合理的防火墙是你的计算机防止网络入侵的第一道屏障。你在家里上网,通常互联网服务提供会在路由中搭建一层防火墙。当你离开家时,那么你计算机上的那层防火墙就是仅有的一层,所以配置和控制好你 Linux 电脑上的防火墙很重要。 很多 Linux 发…

[Windows] 植物大战僵尸杂交版

游戏包含冒险模式、挑战模式、生存模式三种不同玩法。冒险模式主打关卡闯关,挑战模式则挑战特殊设计的关卡,生存模式结合无尽模式和特殊地图,各具特色。玩家可根据喜好自由选择模式,体验不同的游戏乐趣。快来尝试这款独特的pvz游戏…