吐血整理AutoSAR Com-Stack 的配置【基于ETAS】
总目录链接==>> AutoSAR入门和实战系列总目录
文章目录
- 01.软件组件和系统说明
- 02.基本软件配置
- 03.系统数据映射
- 04.代码生成
- 05.代码整合
- 06.测试
下图显示了基于 AUTOSAR 的 ECU SW 的结构。纵观BSW,大体分为三层。三层模块中,与通信相关的模块称为通信栈(Com-Stack)。在Com-Stack中与CAN相关的模块中,本项目设置的模块有COM、PDU Router(PduR)、CAN Interface(CanIf)、CAN Driver(CanDrv)。

下图显示了构成 Com-Stack 的模块之间的关系。基于应用层发送的消息称为Tx消息,接收到的消息称为Rx消息。CAN 消息在多个模块之间传递。消息传递时,以Signal、PDU或Frame的形式传递给各个模块。在 Tx 消息的情况下,RTE 从应用层接收 SystemSignal 并将 ISignal 传递给 Com。相反,对于 RX 消息,ISignal 是从 COM 接收的,而 SystemSignal 是传递给 ASW 的。

01.软件组件和系统说明
由于分层,应用层与Com-Stack的详细配置无关。在应用层,只设置从哪个软件组件(SWC)的哪个端口通过哪个接口传输哪些数据。
系统起到显示整体ECU SW的作用。RTE与COM模块之间交换的ISignal、COM模块与PDUR模块之间传输的PDU、PDUR模块与CanIf之间传输的PDU、CanIf与物理网络之间传输的Frame是根据各自的特点创建和设置的。

02.基本软件配置
当创建系统的信号、PDU和帧时,必须相应地设置BSW层的com-stack。设置Com-Stacks间CAN通信相关模块。在工程中设置除CanTp之外的Com、PduR、CanIf和CanDrv。
在配置Com-Stack模块之前,除了属于Com-Stack的模块外,还需要配置一个模块。它是 EcuC 模块。EcuC模块是一个虚拟模块,不属于BSW中的任何层。EcuC 模块可以创建全局 PDU。这用于连接每个模块的本地 PDU。通过将全局 PDU 作为局部 PDU 的内部参数来进行连接。COM模块创建与RTE交换的ComSignal和与PduR交换的PDU并设置内部参数。
PduR模块对PDU进行路由,此时为PDU创建路由路径,并设置内部参数。在 Tx 消息的情况下,将源设置为从 COM 模块接收到的 PDU,并将目标设置为要发送到路由路径中的 CanIf 的 PDU。在Rx消息的情况下,将Source设置为从CanIf模块接收到的PDU和Routing Path中要发送给COM的PDU。
CanIf 模块创建一个与 PduR 模块交换的 PDU,以及一个与 CanDrv 交换的硬件对象处理程序 (HOH)。它设置创建的 PDU 和 HOH 的内部参数。
最后,我们还配置了 CanDrv 模块。CanDrv 模块需要设置与 CanIf 交换的 HOH,并且有 CAN Hardware Object。通过将 CAN ID 插入到硬件对象中,可以为 CAN 报文分配一个唯一的 ID。


03.系统数据映射
设置 BSW 后,下一步是映射系统数据。将之前创建的Signal、PDU、Frame、COM模块信号分别设置到SWC的端口。因此,ASW、RTE 和 BSW 层相互连接以执行称为 CAN 通信的功能。
04.代码生成
创建 ECU 软件所需的代码是 RTE、ASW、BSW、MCAL 和 OS。使用 ISOLAR-A 的 RTE 生成功能,可以为 RTE 中设置的项目自动生成 RTE 代码。由于添加了SWC、Port、Signal,所以在执行相关的RTE Generation时,会根据AUTOSAR规则自动创建相应的API。
通过ISOLAR-A的SWC的Code Frame自动生成功能,您可以使用之前创建的API创建一个基本的code frame。通过稍微修改它,我编写了一个应用程序代码,将进入 RPort 的 Signal 数据传输到 PPort,并将其传输到 Signal。
BSW 代码也可以在 ISOLAR-A 中创建。使用 BSW 代码生成功能生成不包括 MCAL 的 BSW 代码。MCAL 代码生成由 TresosStudio 完成。打开英飞凌 TC264D MCU 的 MCAL 项目并导入 ISOLAR-A 中设置的 CAN 驱动程序设置。MCAL 代码是使用代码生成功能自动生成的。使用 RTA-OS 设置操作系统代码并生成代码。添加CAN报文时,OS部分不需要修改,所以使用已有的OS代码。
05.代码整合
至此,创建可上传到开发板的可执行ECU文件的所有准备工作就完成了。需要最终编译来创建可执行 ECU 文件,并且使用 HighTec Compiler 作为编译器。当 App、RTE、BSW、MCAL 和 OS 代码都准备好后,使用编译器创建一个可执行的 ECU 文件。

06.测试
使用劳德巴赫T32 将生成的可执行 ECU 文件上传到英飞凌 TC264D EVB。使用 ETAS ES581(USB CAN 总线接口)和 BUSMASTER,确认 CAN 消息正在正确传输。下图是BUSMASTER检查的Tx、Rx报文窗口。由于连接的计算机是标准的,因此与Rx和Tx设计的ECU相反。Tx 消息的 ID 0x64 和 Rx 消息的 ID 0xC8 分配给 ECU 软件。如果向0xC8号发送值07,则将值发送给0xC8报文,即Rx,写应用代码通过0x64号Tx报文发出接收到的值,所以0x64号Tx报文传输传输的 07 值。

相关文章:
吐血整理AutoSAR Com-Stack 的配置【基于ETAS】
总目录链接>> AutoSAR入门和实战系列总目录 文章目录01.软件组件和系统说明02.基本软件配置03.系统数据映射04.代码生成05.代码整合06.测试下图显示了基于 AUTOSAR 的 ECU SW 的结构。纵观BSW,大体分为三层。三层模块中,与通信相关的模块称为通信…...
面向对象进阶之元类
6. 元类 Python 中一切皆对象,对象是由类实例化产生的。那么类应该也有个类去产生它,利用 type() 函数我们可以去查看: class A:pass a1 A() print(type(a1)) print(type(A))<class __main__.A> <class type>由上可知…...
【Android AIDL之详细使用】
Android AIDL之详细使用一级目录概述使用场景语法相关编码实践服务端:java文件修改AndroidManifest客户端坑一级目录 概述 AIDL叫Android接口定义语言,是用于辅助开发者完成Android跨进程编程的工具。 从某种意义上说AIDL其实是一个模板,因…...
ASP.NET MVC | 简介
目录 前提 1.教程 2.MVC 编程模式 最后 前提 在学习学过很多课程,但是最主要学的还是ASP.NET MVC这门课程,工作也是用的ASP.NET MVC,所以写一点ASP.NET MVC的东西,大家可以来看看,我自己不会的时候也不用找别的地方…...
95后刚毕业2、3年就年薪50W,才发现,打败我们的不是年龄····
一刷朋友圈,一读公众号,一打开微博,甚至是一和朋友聊天,这些让人焦虑的话题总会铺天盖地的袭来: Ta刚毕业半年,就升职加薪当上了测试主管 (同样是一天24小时,为什么同龄人正在抛弃…...
动态分析和静态分析最主要的区别是什么?
动态分析和静态分析主要的区别是什么? 动态分析和静态分析的主要区别是是否考虑时间因素。 动态分析(dynamic analysis)是相对于静态分析来讲的,动态分析是只改变一下自变量,因变量相应的做出的改变,动态改…...
WebUI 学习笔记
WebUI 学习笔记 背景此插件主要用于在数字孪生方向做 UI 显示的效果。比如一些温度曲线需要显示出来,可以直接用插件,配合html 文件,直接显示出来。 准备工作我们采用4.27 版本进行开发;...
C# 中常见的设计模式附带代码案例
设计模式是一套被广泛应用于软件设计的最佳实践,它们可以帮助开发者解决特定的问题,提高代码的可重用性、可读性和可维护性。本文将介绍 C# 中常见的几种设计模式,并提供相应的示例代码。 工厂模式 工厂模式是一种创建型设计模式,…...
秋招面试问题整理之机器学习篇
文章目录随机森林在决策树的哪些方面做出了改进随机森林里每棵树的权重不一定会变成什么模型方差和偏差,正则化解决的是方差大还是偏差大的问题正则化的方法总结了解VC维吗svd了解吗随机森林在决策树的哪些方面做出了改进 回答思路: 随机森林和决策树有…...
SuperMap超图使用简单笔记
1 需求: 项目使用的是openlayer和Cesium,现在需要使用超图的图层,和引入实景公路功能。 2 使用过程中出现一下疑问点记录如下 : 超图: 北京超图软件股份有限公司是全球第三大、亚洲最大的地理信息系统(G…...
从0探索NLP——神经网络
从0探索NLP——神经网络 1.前言 一提人工智能,最能想到的就是神经网络,但其实神经网络只是深度学习的主要实现方式。 现在主流的NLP相关任务、模型大都是基于深度学习也就是构建神经网络实现的,所以这里讲解一下神经网络以及简单的神经网络…...
计算机操作系统和进程
✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 ✨每日一语:心平能愈三千疾,心静可通万事理。 目 录🐬一. 操作系统🍦1. 操作系统是什么?🍨2. 操作系统的两个…...
JAVA服务端实现页面截屏(附代码)
JAVA服务端实现页面截屏适配需求方案一、使用JxBrowser使用步骤:方案二、JavaFX WebView使用步骤:方案三、Headless Chrome使用步骤:综上方案对比记录我的一个失败方案参考适配需求 有正确完整的地址url;通过浏览器能打开该url对…...
Java入门要知道!
首先我们都知道的是Java是一门面向对象的编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向…...
[6/101] 101次软件测试面试之经典面试题剖析
01、自我介绍答:大家好,我是一名软件测试工程师,但我更喜欢称自己为“软件bug捕手”。我相信,软件测试工程师的使命就是让软件更加健壮、更加可靠、更加美好。我们就像是一群“特警”,在黑暗的代码中寻找漏洞和缺陷&am…...
电脑c盘满了变成红色了怎么清理,清理c盘详细攻略
我们的电脑当用了一段时间之后,其实自然而然的就会有一点点卡,其实这是因为我们的电脑c盘满了,所以会造成卡顿是正常的,今天我们就来聊一聊电脑c盘满了变成红色了怎么清理? 一.电脑c盘为啥会满 软件安装:当…...
现在的00后,实在是太卷了
现在的小年轻真的卷得过分了。前段时间我们公司来了个00年的,工作没两年,跳槽到我们公司起薪18K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天,原来这位小老弟家里条…...
RocketMQ概述
RocketMQ入门学习MQ概述MQ简介MO用途限流削峰异步解耦数据收集常见的MQ产品ActiveMQRabbitMQKafkaRocketMQ对比MQ常见协议JMSSTOMPAMOPMQTTMQ概述 MQ简介 MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是…...
解决Ubuntu22.04.1上安装ch34x串口驱动报 Key was rejected by service 需要签名的问题
解决Ubuntu22.04.1上安装ch34x串口驱动报 Key was rejected by service 需要签名的问题问题官网下载解压驱动包编译安装给驱动签名再来载入模块(设备驱动程序)问题 Ubuntu22.04.1 Linux版本5.19.0-32-generic 运行Qt串口通信 m_serialPort->open(QIO…...
[python入门㊿] - python如何打断点
目录 ❤ 什么是bug(缺陷) ❤ python代码的调试方式 ❤ 使用 pdb 进行调试 测试代码示例 利用 pdb 调试 退出 debug debug 过程中打印变量 停止 debug 继续执行程序 debug 过程中显示代码 使用函数的例子 对函数进行 debug 在调试的时候动态改变值 ❤ 使用 PyC…...
PXE装机避坑大全:从TFTP根目录设置到Kickstart无人值守的13个常见错误修复
PXE装机避坑大全:从TFTP根目录设置到Kickstart无人值守的13个常见错误修复 在企业级IT运维中,PXE(预启动执行环境)网络装机技术因其高效、自动化的特点,已成为服务器批量部署的标配方案。但看似简单的PXE部署流程背后&…...
CTFshow Misc挑战:从WinRAR到明文攻击的实战解析
1. 初识CTFshow Misc挑战:压缩包破解的奥秘 第一次接触CTFshow的Misc题目时,我被那个看似普通的压缩包难住了整整两天。那是个名为6.zip的文件,用360解压提示需要密码,这种场景在CTF比赛中实在太常见了。很多新手遇到这种情况会直…...
从Gazebo到真实硬件:robot_state_publisher在ROS 2仿真迁移中的5个关键配置项
从Gazebo到真实硬件:robot_state_publisher在ROS 2仿真迁移中的5个关键配置项 当你在Gazebo中完成机器人运动算法的仿真验证后,下一步就是将这套系统部署到真实硬件上。这个过程中,robot_state_publisher的配置往往是工程师们最容易踩坑的环节…...
使用ZLMRTCClient.j实现webRtc流播放
1. 核心播放器组件封装 (WebRTCPlayer.vue)为了在项目中复用播放逻辑,我们首先封装一个 WebRTCPlayer 组件。该组件主要负责:初始化播放器实例:配置 ZLMRTCClient.Endpoint。处理自动播放:解决浏览器禁止带音频自动播放的问题。生…...
【STM32F103标准库开发】DMA+USART双剑合璧:实战环形缓冲区与空闲中断解析
1. 为什么需要DMAUSART组合方案 第一次用STM32做GPS数据采集时,我被串口中断折磨得够呛。当时用的是传统中断接收模式,每收到一个字节就触发一次中断,在115200波特率下,CPU几乎被串口中断占满,其他任务根本跑不动。后来…...
【以太网帧格式】
以太网帧格式一、顺序二、分析一、顺序 前导码 | 帧开始定界符 | 目的MAC | 源MAC | 类型(长度) | 数据字段 | 帧校验序列FCS3 (以太网帧最小帧长:64 字节,最大帧长:1518 字节。) 二、分析 1…...
3D打印雕塑与玻璃钢雕塑的区别、工艺详解及定制雕塑相关疑问解答
3D打印雕塑与玻璃钢雕塑的区别、工艺详解及定制雕塑相关疑问解答3D打印雕塑与玻璃钢雕塑是当代主流雕塑工艺,核心差异在于成型逻辑与材料特性:3D打印以数字化建模为核心,遵循“分层叠加”的增材逻辑;玻璃钢以复合材料为基础&#…...
QQ空间记忆备份终极指南:3步永久保存你的数字青春
QQ空间记忆备份终极指南:3步永久保存你的数字青春 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否担心那些珍贵的QQ空间说说会随着时间消失?那些记录着青春…...
Agent调试技巧:LangSmith与日志分析
Agent开发最痛苦的部分是调试。传统代码调试,你能看到每一行执行的结果。Agent调试,你只能看到"输入 → 输出",中间的推理过程是个黑盒。 这篇文章,我们讨论Agent调试的方法和工具:怎么追踪Agent的推理过程…...
XBeeATCmds库:Arduino嵌入式AT命令封装实践
1. XBeeATCmds 库概述:面向嵌入式开发者的 AT 命令封装实践XBeeATCmds 是一个专为 Arduino 平台设计的轻量级 C 封装库,其核心目标是将 Digi XBee 系列模块(包括 Series 1、Series 2/2B、Series 3 及兼容 Zigbee、802.15.4、DigiMesh 协议的模…...
