大道至简,骨灰级拆解Simulink处理CAN消息的几种不同方式(三)——码原始数据方式

从DBC和Simulink模型生成CAN报文C++解析代码 目录 1.代码生成的准备 2.Simulink CAN unpack模块建模 3.加载DBC选择报文及信号 4.设置模型的输入与输出 5.模型的参数设置 6.开始代码生成 7.Simulink代码生成报告 8.生成代码的解读 8.1 生成的模型头文件 msg_unpack.h 8.2 模型功能实现函数 msg_unpack.cpp 8.3 模型代码调用示例ert_main.cpp 8.4 Simulink生成的代码使用依赖项 9. Simulink生成代码的使用 1.代码生成的准 阅读详情

文章目录

前言

一、通信协议

二、CAN消息发送

三、CAN消息接收

四、仿真运行效果

五、分析和应用

总结


前言

        见《大道至简,骨灰级拆解Simulink处理CAN消息的几种不同方式(一)——直接调用.dbc文件方式》

        见《大道至简,骨灰级拆解Simulink处理CAN消息的几种不同方式(二)——手动输入通信协议方式》

一、通信协议

         见《大道至简,骨灰级拆解Simulink处理CAN消息的几种不同方式(一)——直接调用.dbc文件方式》

二、CAN消息发送

         使用CAN Pack模块,数据输入方式选择raw data,然后手动输入Message的ID信息,点击OK后在模块的外边就会出现一个Signal Bus的In端口。在外部使用Simulink的一系列数据处理模块,码出通信协议中定义的Signal,并给这些Signal赋上对应的值,然后插入前面CAN Pack模块的In端口,最后把打包好的Message插入CAN Transmit模块即可。上述操作方法和配置成功后的效果如下:

三、CAN消息接收

         使用CAN Unpack模块,可以把接收到的Message解析成具体的Signal,模块配置方式与上述CAN Pack模块相同,具体操作方法和配置成功后的效果如下:

四、仿真运行效果

         基于上述举例,仿真运行时需要对模型进行适当分割,把依赖外部系统的模块去掉,只留下Simulink本身的内容。分割后的模型和仿真运行的结果如下:

五、分析和应用

         上述码原始数据处理CAN消息的方式,特点是Message中每个Signal的具体定义都要用Simulink的数据处理模块中手动码出来,比如数据类型、比例系数和偏移量等等,这些Signal在Simulink模型中不能直接以物理值为单位进行调用,而需要一些列复杂的处理。这种方式的优点是,可以最大程度地减少对Simulink原有CAN Pack模块和CAN Unpack模块的依赖,当然也不需要单独编写一个.dbc文件,能够最大自由度地灵活处理CAN信号。缺点是,Simulink对CAN信号的处理比较复杂,对开发人员的个人能力要求较高,编程代码有很大的出错可能性,这个缺点尤其会在Message信号较多的项目中非常突出。整体而言,这种方式适合应用于功能需求特殊的,硬件平台资源有限的,需要在软件上深度裁剪和定制的项目,同时也适用于资深工程师解决复杂问题时,进行调试和分析的场景。

总结

         以上就是本人在对Simulink处理CAN消息的几种方式进行总结分析时,讲解到的第三种实现方式。主要讲解了码原始数据处理CAN消息发送和接收的具体方法,展示了实现该方式的详细代码和实际运行效果,最后分析了这种处理方式的特点以及适用场景。

         后续如果发其他现更好的Simulink处理CAN消息的方式,还会继续更新,欢迎评论区留言、点赞、收藏和关注,这些鼓励和支持都将成为笔者持续分享的动力。

         另外,上述例程使用的Demo工程可以到笔者的主页查找和下载。


         版权声明:原创文章,转载和引用请注明出处和链接,侵权必究!

实例讲解Simulink应用层开发CAN报文解包及CAN信号设置方法 本文通过讲解MCU CAN解包模块的模块设置、输入输出信号的设置及仿真测试验证,说明了CAN解包模块的设置方法、CAN解包模块输入输出信号的设置方法以及CAN解包模块的仿真测试及修正方法。在模型搭建过程中,建议养成一种搭建完成仿真测试验证的习惯,在模块阶段发现错误,解决错误,避免在后期模块集成之后报出大量错误,增加解决错误的工作量和难度。希望通过本文的介绍能给相关技术人员带来一些参考和帮助。 阅读详情

相关推荐

【CAN】CAN通信协议栈

CAN(Controller Area Network)是汽车电子中应用最广泛的一种通信总线。就目前笔者所接触到的开发模式,都是从EB或者Vector公司买来软件包进行配置,然后自动生成这部分代码,也就是说手写的不多。虽然不需要手写代码,但是基本的框架和思想还是要知道的,不然很可能出现即使有工具也配不出来的情况。

weixin_38009144的博客 2070

simulink进行CAN报文的解析以及生成代码

SIMULINNK进行CAN报文的解析以及生成代码

weixin_45753663的博客 4578

大道至简,骨灰级拆解Simulink处理CAN消息的几种不同方式(二)——手动输入通信协议方式

本文是几种不同的Simulink收发和处理CAN消息方式对比分析和总结专题的第二篇,主要讲解了使用手动输入信号协议处理CAN消息发送和接收的具体方法,展示了实现该方式的详细代码和实际运行效果,最后分析了这种处理方式的特点以及适用场景,分享出来希望对相关领域的网友有所帮助。

Mr.Cssust的博客 2174

dbc文件编写及在simulink中CAN pack、CAN unPack 模块的运用

本文讲解了CANdb++的安装及创建dbc文件全流程,并在simulink中使用CANpack和CAN unpack模块进行dbc文件的调用,完成CAN数据收发的模拟仿真。

weixin_40531919的博客 6145

大道至简,骨灰级拆解Simulink处理CAN消息的几种不同方式(一)——直接调用.dbc文件方式

本文是几种不同的Simulink收发和处理CAN消息方式对比分析和总结专题的第一篇,主要讲解了借助使用.dbc文件处理CAN消息发送和接收的具体方法,展示了实现该方式的详细代码和实际运行效果,最后分析了这种处理方式的特点以及适用场景,分享出来希望对相关领域的网友有所帮助。

Mr.Cssust的博客 2988

零基础速成simulink代码生成-DBC文件CAN报文+stateflow 5 模型代码

零基础速成simulink代码生成——DBC文件CAN报文+stateflow 5 模型代码 ; 此专栏面向嵌入式工程没有matlab开发经验的人,可以快速学习和实践这门技术。MDB技术,越来越成熟和普遍,从手写代码转到基于模型开发已经是大势,不仅减少开发周期,还增加代码的复用性。汽车领域、医疗和算法建模广泛使用。

【Matlab】Simulink中CAN模块的使用(车辆网络工具箱)

2.CAN Log4.CAN Pack了解了CAN相关Simulink模块的基本信息,再来搭建下面的模型。

DevFrank的博客 1万+

多模型对抗性审查:用AI辩论提升技术文档质量

在软件工程领域,技术文档是团队协作和项目成功的关键基础。传统的文档评审依赖人工经验,存在盲区和效率瓶颈。通过引入多模型对抗性审查机制,不同大语言模型从各自视角对文档进行批判性分析,模拟现实中的专家评审过程。这种技术方法的核心价值在于利用模型间的思维差异,自动发现单个视角容易忽略的边界情况、逻辑漏洞和隐含假设。在应用场景上,特别适合产品需求文档和技术规格书这类需要多角度审视的复杂文档。adversarial-spec工具通过Claude协调多模型辩论,实现从概念到实现的完整文档质量保障,显著提升文档的完整性和

weixin_42531579的博客 379

Simulink解析CAN报文数据

Simulink解析CAN报文数据

weixin_41911709的博客 1万+

维纳滤波和卡尔曼滤波

本文的主要内容是维纳滤波和卡尔曼滤波的介绍,包含匹配滤波器、维纳滤波器、维纳预测、卡尔曼滤波等内容。

西岸贤 9520

VM虚拟机下,通过无线,有线两种方式连接PLC的设置方法

1,VMware软件:编辑>虚拟网络编辑器。 2.右下角:更改设置(如果可以选中“添加网络”选项,则可考虑略过此步) 3.选中VMnet0,点击桥接模式,选中你的物理机有线网卡。点击确定。 4.点击添加网络,我的添加完是VMnet2,然后选中,像上一步样,点击桥接模式,在下拉菜单中选中笔记本的【无线网卡】,然后点击确定。 5.VMware软件:虚拟机>设置。 6.点击 添加>网络...

weixin_46441715的博客 2万+

基于Simulink实现CAN报文解析(unpack)与打包(pack)任务

CAN报文解析   在如今的汽车电子中,常用到雷达,激光雷达等多种传感器。传感器各种信号根据其信号长度与编码类型,打包成CAN报文发送到控制器,则控制器需要做出解析。   如下图所示:一帧CAN报文里可存放许多信号(各信号根据长度,编码格式“塞”进CAN报文) Simulink CAN UNPACK使用   首先unpack模块需要接入CAN_MSG,这里可以拉取一个CAN_Receive模块来作为unpack的输入。下一步,配置CAN_Conf

RichardsZ_的博客 1万+

Java后端中的链路追踪:使用OpenTelemetry实现全链路监控

在现代的微服务架构中,链路追踪是监控和优化系统性能的关键技术。通过链路追踪,我们可以跟踪请求在系统中的流转,识别性能瓶颈,定位问题根源。本文将介绍如何在Java后端应用中使用OpenTelemetry实现全链路监控,包括具体的实现步骤和代码示例。通过集成OpenTelemetry,您可以实现全面的链路追踪,帮助您识别瓶颈和潜在问题,从而提升系统的可靠性和用户体验。OpenTelemetry是一个开源项目,旨在提供统一的工具集来收集、处理和导出应用程序的遥测数据,包括跟踪、度量和日志。

聚娃科技开发者博客 1730

Simulink解析带有系数和偏移量的CAN报文信息

这部分功能我关注的很少,我用到的CAN协议中的因子都是在消息传完之后自己增加。这样,我用到的Simulink仅仅是一个最简单的翻译功能。        有一阵子我觉得带有factor和bias的信号使用Simulink实现就是第一个定标的实现,后来我发现无论我怎么进行定标信息的修正始终出现数据类型的不匹配。直到有一天,随手拽了一个强制数据类型转换的模块实现了代码生成。从代码中,我发现其实定标信息

小灰笔记 6483

深入解析Vortex GPGPU cache设计(2),关于cache_bank

本文分析了Vortex处理器的cache_bank模块设计,作为cache系列的第二部分。文章详细阐述了cache_bank的基本结构,包括地址位分配和默认配置参数。重点解析了cache的5种操作及其优先级。文章详细介绍了二级流水线设计,包括TAG/DATARAM的读写操作时序。

weixin_55313207的博客 1170

SSL证书验证:VMware Horizon Client的安全隐患与临时解决方案

本文深入分析了VMware Horizon Client中SSL证书验证失败的安全隐患,提供了临时解决方案与长期防御策略。针对自签名证书、证书链断裂等常见问题,文章详细解析了风险成因,并给出分级响应方案,帮助企业平衡安全与效率。通过实战案例和自动化脚本,指导IT管理员构建主动防御体系,有效降低中间人攻击风险。

weixin_29290863的博客 337

Simulink学习笔记——构建用于CAN通信的Simulink模型

前言:        为了构建完整的CAN通信仿真,我们需要建立消息传输模型、消息接收模型、保存并运行模型、消息传输模型。本文学习如何通过CAN网络发送数据。该示例使用Simulink中的Vehicle Network Toolbox库与其他模块库一起来构建一个简单模型,整个运行过程如下: (1)使用虚拟CAN通道传输消息。 (2)使用CAN配置块配置CAN通道。 (3)使用常量块将数据发送到...

行歌 3万+

RWEQ土壤风蚀模型的估算与变化归因分析

本次以介绍RWEQ模型的基本原理及数据需求,再结合案例讲解RWEQ模型中区域地理空间数据库构建的方法和各个参量提取的原理与方法,最后结合典型案例进行综合讲解风蚀模数估算、制图及归因分析。空间分析与制图:提取分析、局部分析、邻域分析、区域分析、插值分析、平滑处理、像元提取、采样与重采样。以某实际应用为案例,掌握RWEQ模型进行当地土壤风蚀量空间分布分析整体流程。地图服务器、在线地图、范围指示器、格网、表格、基础地图服务使用规则介绍。掌握土壤风蚀模型的原理、优势点及因子组成。

2301_77413856的博客 1194

基于Simulink搭建dbc及checksum校验、roiling

Checksum检验、dbc数据结构定义及下发

weixin_58477062的博客 2613

【GB28181】wvp-GB28181-pro++ZLMediaKit编译安装国标流媒体服务器教程(Windows平台)

本文基于ZMLMediaKit+WVP-PRO在windows平台进行编译部署GB28181平台,网上教程也比较多,都大同小异,实际操作过程中容易出错的地方也比较多:redis安装无密码,mysql安装后密码的修改以及wvp数据可的创建,配置文件侧修改,尤其是和端口相关的项,再就是运行服务时各种错误需要注意,常见的错误已经做了汇总,遇到问题大家不要怕,找到报错的地方查看定位即可。

废人一枚的博客 4479

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Simulink建模基础:CAN Pack模块及其代码

本文研究Assignment模块的用法和该模块生成的代码,同时会涉及到一些DBC文件的内容。 文章目录1 Simulink中的CAN Pack模块2 CAN Pack模块的建模与仿真2.1 配置DBC文件2.2 CAN Pack模块仿真2.2.1 仿真12.2.2 仿真2:factor&offset属性2.2.3 仿真3:Value Type属性 1 Simulink中的CAN Pack模块 在汽车ECU软件开发中,一般是ASW软件将Signal打包成Message后,然后由BSW实现CAN的发送功

u013288925的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[MCU]AUTOSAR COM STACK - CAN协议栈

PDU:Protocal Data Unit,协议数据单元

Kidwish_mini的博客 1466

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

关于CAN通讯的数据分包处理思路

CAN数据分包,数据拆包CAN通讯

欢迎来到我的博客 3324

CAN数据帧结构与传输

CAN数据帧结构与传输 Leo-Lian2018-04-22 20:23:2410399收藏28 展开 CAN:Controller Area Network,控制器局域网 是一种能有效支持分布式控制和实时控制的串行通讯网络。 CAN-bus: Controller Area Network-bus,控制器局域网总线技术 CAN总线系统结构 CAN 控制器 接收控制单元中微处理器发出的数据,处理数据并传给CAN收发器 CAN收发器 将数据传到总线 or 从总线接收数据给...

Shaul_Tse的博客 1702

高效的CAN总线信号提取及填充方法

CAN通信矩阵 整车CAN通信矩阵通常由OEM制定及发布,其定义了整车CAN网络中每个通信节点信息交互的格式,通信矩阵包含每个信号的具体定义,工程人员通过通信矩阵可以读取及解析整车CAN总线信号。 CAN信号定义 总线信号定义包括: 信号名称、信号长度、起始字节、起始位信号,根据 EngineDriverRequestTorque信号定义,可知该信号在通信报文中 “第2字节的第3位” 至 “第3字节的第0位”。 Signal Name 信号名称 Start Byte 起始字节 .

weixin_29389627的博客 3443

UDS诊断系列介绍02-传输层CANTP

传输层CANTP模块介绍,单帧多帧的发送与接收逻辑介绍

initiallizer的博客 7968
上一篇: 大道至简,骨灰级拆解Simulink处理CAN消息的几种不同方式(二)——手动输入通信协议方式
下一篇: 移花接木,玩转CANoe的几种扩展接口应用(一)——便携式接口设备
Mr.Cssust
Mr.Cssust 优质创作者: 嵌入式与硬件开发技术领域 优质创作者: 嵌入式与硬件开发技术领域
博客等级 码龄9年 8610粉丝 162原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Cssust

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值