MCAL学习(1)——AutoSAR

1.了解AutoSAR及一些概念

AutoSAR是Automotive Open System Architecture ,汽车开放系统架构。
针对汽车ECU的软件开发架构。已经是汽车电子软件开发的标准。
在这里插入图片描述
OS服务:Freertos
整车厂(OEM)主要负责应用层算法
一级供应商:生产制造ECU实现ECU相关功能(UDS、XCP、下线检测等),受到OEM的约束。
二级供应商:芯片厂家等,主要负责芯片硬件和开发方式的推荐,受到一级供应商和整车厂的约束。
工具链厂家负责提供开发工具链个一级供应商和OEM进行产品开发(如Vector等)。

方法论:开发满足AutoSar架构的ECU软件的开发流程。

2.AutoSAR出现的背景

  • 汽车电子EE架构(电子电器架构)是指整车电子电器的总布置方案,将车上所有的控制器、传感器通过总线连接起来。实现整车的功能运算,能力和能量分配。针对电子控制器众多,每个控制器的供应商软件标准不一样,因此实现统一的软件架构和开发标准,很重要。
    在这里插入图片描述
  • 汽车电子产业链合作模式,芯片公司、二级级供应商、一级供应商、主机厂。在这种模式下、主机厂希望自身只需要开发应用层软件,搭配购买来的开发板和底层软件,一种成熟标准的软件架构和开发模式十分重要。

3.AutoSAR的硬件环境

硬件环境:电子控制单元(ECU)由ECU有主控MCU和相关外围电子电路组成的电控单元
主流MCU:NXP、英飞凌的芯片,通过嵌入式C语言对MCU进行软件编程。
ECU架构包括对数字输入信号、模拟输入信号的判断分析以及输出相关驱动信号、通讯信号。
如图。
在这里插入图片描述
下图是一个微控制器架构
在这里插入图片描述

4.AutoSAR优势

  • 开发效率高,代码可重用率高
  • 代码合作开发容易,维护容易
  • 开发周期短
  • 代码质量短,有保障
  • 可支持整车OTA

5.主要开发流程

一个标准的AutoSar流程,
第一步:整车厂从需求生成最终的文件(给到每个ECU制造商)
在这里插入图片描述

  • 首先要列需求,通过三种描述文件描述这些需求:SWC描述文件、系统描述文件、ECU资源文件(Vector的PREEvision);
  • 然后将这三个文件导入到系统配置编辑工具中,生成系统配置描述工具。这个就是整车描述文件。
  • 最后将系统配置文件导入到系统配置提取工具中,导出每个ECU相应的提取文件,该文件包含每个ECU需要用到的信息,比如通讯矩阵、SWC信息等(给下游供应商)。
    第二步,供应商拿到需求后
    在这里插入图片描述
  • EB来配置MCAL驱动,生成arxml导入到Davinci Configuration中生成代码。
  • Davinci Developer是用来配置APP层框架的,导入到Davinci Configurator中生成代码。
  • Davinci Developer生成的arxml还会给一份到应用工程师(导入到MATLAB)然后通过MATLAB自动生成软件框架,应用工程在里面添加模型代码。
  • 负责上述步骤的EB(驱动)、Davinci Configuration(操作系统)、MATLAB/Simulink(应用层开发)工程师可以同步进行开发(效率快),最终进行集成。
  • 开发可以从上到下、也可从下到上,就是说可以在Developer中设计好AppL框架导入到MATLAB做填充,也可以在MATLAB中直接搭建好符合AutoSar规范的代码,然后导出arxml,在导入到Develop中,自动生成框架。

5.1 SWC描述文件(应用层软件组件描述文件)

  • 描述每个软件组件需要的资源(比如存储、CPU时间等)
  • SWC直接的接口
  • 运行机制

5.2 系统约束描述文件(整车公共资源描述)

  • 网络拓扑
  • 通信矩阵
  • 总线波特率
  • 各种协议

5.3 ECU资源描述文件

描述每个ECU都需要实现什么功能,系统设计者通过该文件将不同功能的SWC分配到对应的ECU中

  • 传感器
  • 执行器
  • 存储器
  • 引脚分配

6.汽车电子岗位介绍

在这里插入图片描述
汽车电子MCU工程师具备能力:
在这里插入图片描述
汽车方向测试工程师具备能力
在这里插入图片描述

7.AutoSar工具链介绍

应用层软件使用MATLAB建模开发
底层软件:一般Mcal驱动使用EB tresos工具链,协议栈使用Vector Davinci(Developer 负责应用层;Configuration负责除驱动外的基础软件层)工具链。
工具链提供全量的AutoSar架构软件,
客户根据自己项目的要求,配置除符合自己项目的软件。
工程中的静态代码是不会改变的
配置代码根据配置工具根据客户不同的需求生成的代码。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue报错:Cannot read properties of null (reading ‘xxx‘)

一、报错问题 Cannot read properties of null (reading style)at patchStyle (runtime-dom.esm-bundler.js:104:22)二、错误排查 这类报错一般是在已经开发好后,后面测试时突然发现的,所以不好排查错误原因。 三、可能原因及解决方案 v-if 导致 在 …

25G 80km双纤BIDI光模块:远距传输的创新标杆

目录 一、产品优势:双纤与BIDI的独特价值 易天光通信25G SFP28 ZR 80KM 易天光通信25G SFP28 BIDI ZR 80KM 二、权威认证与技术突破 三、双纤与BIDI的核心差异解析 四、应用场景:驱动多领域高效互联 总结 在5G、云计算与数字化转型的推动下,光…

2025-05-06 学习记录--Python-注释 + 打印变量 + input输入

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、注释 ⭐️ (一)、块注释 🍭 举例: 🌰 # 打印数字 print(2025) …

基于mediapipe深度学习的眨眼检测和计数系统python源码

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 人工智能算法python程序运行环境安装步骤整理_本地ai 运行 python-CSDN博客 3.部分核心程序 &…

怎样通过API 实现python调用Chatgpt,gemini

怎样通过API 实现python调用Chatgpt,gemini 以下为你详细介绍如何设置和调用这些参数,以创建一个类似的 ChatCompletion 请求: 1. 安装依赖库 如果你使用的是 OpenAI 的 API 客户端,需要先安装 openai 库。可以使用以下命令进行安装: pip install openai2. 代码示例 …

Linux 下MySql主从数据库的环境搭建

测试环境:两台服务器,Mysql版本 8.0,linux版本:Ubuntu 20.04.3; 1.在两台服务器上安装MySql; 2.选一台作为主服务器,在主服务器上以root用户进入Mysql,执行以下语句: …

力扣1812题解

记录 2025.5.7 题目: 思路: 从左下角开始,棋盘的行数和列数(均从 1 开始计数)之和如果为奇数,则为白色格子,如果和为偶数,则为黑色格子。 代码: class Solution {pu…

适合java程序员的Kafka消息中间件实战

创作的初心: 我们在学习kafka时,都是基于大数据的开发而进行的讲解,这篇文章为java程序员为核心,助力大家掌握kafka实现。 什么是kafka: 历史: 诞生与开源(2010 - 2011 年) 2010 年&#xf…

PDF智能解析与知识挖掘:基于pdfminer.six的全栈实现

前言 在数字化信息爆炸的时代,PDF(便携式文档格式)作为一种通用的电子文档标准,承载着海量的结构化与非结构化知识。然而,PDF格式的设计初衷是用于展示而非数据提取,这使得从PDF中挖掘有价值的信息成为数据…

Python爬虫+代理IP+Header伪装:高效采集亚马逊数据

1. 引言 在当今大数据时代,电商平台(如亚马逊)的数据采集对于市场分析、竞品监控和价格追踪至关重要。然而,亚马逊具有严格的反爬虫机制,包括IP封禁、Header检测、验证码挑战等。 为了高效且稳定地采集亚马逊数据&am…

架构思维:探讨架构师的本质使命

文章目录 软件工程1. 软件工程的定义与核心目标2. 软件工程 vs. 软件项目管理3. 软件工程的两大特性4. 软件工程的关键活动与方法论5. 架构师在软件工程中的职责架构师的职责和思维架构师心性修炼三大核心能力架构设计的基本准则 团队共识“设计文档”的统一结构框架阅读他人代…

QT设计权限管理系统

Qt能够简单实现系统的权限设计 首先我们需要一个登陆界面 例如这样 然后一级权限,可以看到所有的内容,不设置菜单栏的隐藏。 然后其他权限,根据登陆者的身份进行菜单栏不同的展示。 菜单栏的隐藏代码如下: ui->actionuser-…

Debezium 架构详解与实战示例

Debezium 架构详解与实战示例 1. 整体架构图 #mermaid-svg-tkAquOxA2pylXzON {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-tkAquOxA2pylXzON .error-icon{fill:#552222;}#mermaid-svg-tkAquOxA2pylXzON .error-t…

Qt天气预报系统更新UI界面

Qt天气预报系统更新UI界面 1、创建各个小部分列表2、定义一个更新UI函数2.1 实现更新UI界面函数 1、创建各个小部分列表 QList<QLabel *> weekList; //星期 QList<QLabel *> dateList; //日期QList<QLabel *> weatherL…

AWS MCP Servers

文章目录 一、关于 AWS MCP Servers什么是模型上下文协议&#xff08;MCP&#xff09;以及它是如何与AWS MCP服务器协同工作的&#xff1f;为什么选择MCP服务器&#xff1f; 二、可用 Servers核心MCP服务器AWS 文档服务器亚马逊 Bedrock 知识库检索 MCP 服务器AWS CDK MCP 服务…

python如何把pdf转word

在Python中将PDF转换为Word文档&#xff08;.docx&#xff09;比反向转换&#xff08;Word转PDF&#xff09;更具挑战性&#xff0c;因为PDF是固定格式&#xff0c;而Word是可编辑格式。以下是几种可行的方法及详细步骤&#xff1a; 方法1&#xff1a;使用 pdf2docx 库 pdf2do…

NLP 和大模型技术路线

transformers快速入门 NLP 和大模型技术路线 在自然语言处理&#xff08;NLP&#xff09;和大模型领域&#xff0c;技术路线的学习应该从基础开始&#xff0c;逐步深入到更高阶的应用和优化技术。本文将详细介绍相关技术点的学习顺序&#xff0c;以及每个技术点的关键学习内容…

WordPress个人博客搭建(二):在 Ubuntu 22.04 x64 系统中使用1Panel 部署 WordPress

前言 在之前的安装1Panel面板的文章中&#xff0c;我们已经成功将1Panel面板安装到了2核4G配置的非凡云云服务器上。1Panel作为一款现代化的服务器管理面板&#xff0c;极大简化了网站部署流程。本文将详细介绍如何使用1Panel面板在云服务器上安装部署WordPress&#xff0c;帮…

面试高频算法:最长回文子串

题目&#xff1a;5. 最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 回文&#xff1a;如果字符串向前和向后读都相同&#xff0c;则它满足回文性&#xff1b;子串&#xff1a;子字符串 是字符串中连续的非空字符序列。 示例 1&#xff1a; 输入&…

全文索引数据库Elasticsearch底层Lucene

Lucene 全文检索的心&#xff0c;天才的想法。 一个高效的&#xff0c;可扩展的&#xff0c;全文检索库。全部用 Java 实现&#xff0c;无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件&#xff0c;或从网络中抓取文件的过程…