AutoSAR系列讲解(入门篇)1.2-AutoSAR的概述

news2024/11/16 13:42:35

目录

一、到底什么是AutoSAR

1、大白话来讲

2、架构上来讲

应用软件层(APPL)

实时运行环境(RTE)

基础软件层(BSW)

3、工具链上来讲

二、AutoSAR的目标


一、到底什么是AutoSAR

1、大白话来讲

AUTOSAR 就是AUTomotive Open System ARchitecture的简称,中文翻译就是汽车开放系统架构

  • 再说直白一点就是:  将汽车电子控制单元(ECU)的软件底层做了一个标准的封装。使得大家都能共用一套底层软件,只需要修改其中的一些参数,就可以匹配不同硬件,也可以匹配不同的应用层软件。如此之后,用户只需要专心负责应用层与一些复杂驱动功能开发即可,底层都交给AutoSAR工程师(基础软件部门)就行了。
  • 更加容易理解但不是很准确的讲就是一套写的比较好的底层软件"。其实现了硬件驱动的封装(类似于STM32的库),实现了操作系统的功能。 用户只需要开发操作系统上层的软件应用即可(类似于基于安卓开发App)

2、架构上来讲

首先我们来看一张整体的架构图,以后我们会在这张图上细分和深入,添加细节来补充完整。首先就能看出AutoSAR主要分为3个层级:应用软件层 (AppL),实时运行环境(RTE)和基础软件层(BSW)

  • 应用软件层主要就是用来存放我们自己的代码的地方
  • 实时运行环境是提供应用层所需的资源,同时将应用层和底层隔离
  • 基础软件层是将硬件做封装,一直封装到一个标准的操作系统的状态,以便上层可以标准化调用系统服务,这里又分几个部分,马上将会讲到

上图中应用层和BSW层都比其他层大一些,这是因为它们两还可以再做细分,接下来我们看下面这张图,我们将应用层和基础软件层做了细分, 就这几层现在做分别的讨论:

应用软件层(APPL)

该层是由一个一个SWC组成的,每个SWC咱们可以理解为一个.c文件,而整个应用软件层就是一个文件夹。用下面这张图应该很好的说明了对应关 系:

1. 图中右边的工程只是为了大家理解建立的一个样板,与Vector的实际工程还有很大区别,将会在后续章节中讲到

2. composition SWC和其他更加详细的说明会在SWC章节中讲到

3. 可以看出:这里的整个工程就是我们的AutoSAR架构,而其中的AppL、RTE和BSW都分别对应一个文件夹,而我们的SWC组件就是一个一个 的.c文件(和.h)

实时运行环境(RTE)

做一个不太恰当的比喻:把BSW比作我们的windows系统,AppL就是开发的应用软件,而RTE更像是一个虚拟机,将上层应用和底层操作系统隔绝 开的同时,又兼容了不同厂商开发的软件。(实际上更像是电话转接员的工作,这里在后面讨论)

基础软件层(BSW)

基础软件层又分为4大部分:

1. 硬件抽象层(MCAL):可能用过STM32的童鞋应该都知道库的概念,硬件抽象层又叫MCAL,就是将芯片的寄存器操作都封装成一个AutoSAR

规定的统一的库Api。就是说这套Api是不同厂商都支持的,但是底层怎么实现,就是芯片厂商的事了。同时也有软件工具EB,可以通过界面配置

MCAL功能

2. ECU抽象层(ECU Abstraction Layer):如果说MCAL只封装了芯片,那么ECU抽象层就是将硬件上所有的硬件都进行了封装。比如我们的控制器上有一个主芯片英飞凌的

TC275,还有采样电路,电源电路,CAN电路等等。而MCAL就是封装了芯片上有的功能。而ECU抽象层就是将所有的这些都做一个统一的封 装。所以不管硬件是如何实现的,这里封装后,也形成了统一的Api

3. 服务层(Service Layer):这里有是更加高级的一层了,服务层里是包含操作系统(OS)的。OS将使用ECU抽象层的Api,再对上层暴露出服务接口,其实就是 嵌入式实时操作系统(RTOS)所作的工作。

4. 复杂驱动(CDD Complex Device Drivers):又叫做CDD,主要工作是将AutoSAR未定义的一些功能封装起来,给应用层提供接口来调用这些功能。(简单说就是其他的概念)

3、工具链上来讲

目前主要是2大流派:

  • MATLAB + DaVinci(国内主流,参考书籍有《基于AUTOSAR规范的车用电机控制器软件开发》)
  • MATLAB + ETAS(博世和联电主要用这个,参考书籍有《AUTOSAR规范与车用控制器软件开发》)
  • 其实国内也有一家做AutoSAR开发工具的,叫做恒润,可以稍微了解一下

这里我们就选国内常用的Matlab(MathWork) + DaVinci(Vector)来详细说明一下:

  • Matlab:

大家应该都很熟悉了,主要是用Simulink做代码生成的,就是我们的应用层软件就需要Matlab来开发,当然手写也是可以的,不过弊端就很多 了,这个看预算和需求吧

  • DaVinci Developer: 主要用来设计AppL的程序架构
  • DaVinci Configurator pro: 主要用来配置BSW和自动生成RTE的

  • EB Tresos: 主要用来配置MCAL的,可以兼容英飞凌和恩智浦的芯片
  • Vector还有其他的一系列的工具:比如Canoe、Canape等,这里就暂时略过

二、AutoSAR的目标

目标这个东西不是重点,这里就不长篇大论了,我通过一句话的总结一下: 建立一套优秀的软件底层代码,使得各大主机厂都能通用,同时使汽车软件开发更加标准化、规范化、安全化、快速化和经济化

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

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

相关文章

nginx页面优化及yum安装LNMP

文章目录 一.nginx优化1.版本号1.1查看版本号1.2修改版本号1.2.1修改配置文件1.2.2修改源码文件,重新编译安装 2.nginx的日志分割2.1 写日志分割的脚本2.2给脚本执行权限、执行2.3创建定时任务可以每个月固定分割一次 3.nginx的页面压缩3.1配置3.2验证 4.图片缓存4.…

FPGA通信—千兆网(RTL8211EG)硬件设计

一、硬件布局指南 创造一个低噪音、功率稳定的环境降低EMI/EMC的程度及其对RTL8211E/RTL8211EG的影响简化信号跟踪的路由任务 1.1 布局 RTL8211EG 必须尽可能靠近MAC(小于2.5英寸6.35cm)连接到RSET引脚的电阻器应靠近RTL8211E/RTL8211EG&#xff08…

jmeter接口测试教程以及接口测试流程详解

目录 前言: 一、Jmeter简介 二、Jmeter安装 三、设置Jmeter语言为中文环境 四、Jmeter主要元件 五、Jmeter元件的作用域和执行顺序 六、Jmeter进行接口测试流程 七、Jmeter进行接口测试流程步骤详解 前言: JMeter是一款功能强大的性能测试工具&…

【算法与数据结构】18、LeetCode四数之和

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题的解法借助了【算法与数据结构】15、LeetCode三数之和的算法思想。首先我们进行排序,然…

用实例阐述回溯算法

目录 什么是回溯算法? 基本概念 示例认知 什么时候可以使用回溯算法? 回溯算法经典应用-无向图两节点之间路径 问题描述 回溯过程 代码示例 回溯算法经典应用-四皇后问题 问题描述 四皇后问题解决步骤 Step 1 Step 2 Step 3 Step 4 Step…

ICC2:polygon多边形操作

有时候想画一个环形或者不规则形状的metal shape/blockage,一遇到更新floorplan都要重新画,手工活如果能被脚本替代肯定是最优解,ICC2就提供这样的一组命令有效提高工作效率。 1.创建polygon 先看一下创建polygon的操作: create_poly_rect:提供一组或多组boundary坐标,工…

OpenCL编程指南-5.2数学函数

数学函数 OpenCL C实现了C99规范中描述的数学函数。使用这些数学函数的应用程序需要在代码中包含math.h头文件。这些数学函数可以作为OpenCL内核的内置函数。 对于表5-2和表5-3中的数学函数,我们将使用泛型类型名gentype指示这些函数可以取float、float2、float3、…

【AUTOSAR】CCP协议的代码分析与解读(二)----CCP协议格式和命令代码

CCP协议介绍 CCP的全称是CAN Calibration Protocol (CAN标定协议),是基于CAN总线的ECU标定协议规范。CCP协议遵从CAN2.0通信规范,支持11位标准与29位扩展标识符。 CCP通信方式 CCP协议采用主从通信方式,如上图所示,其中从设备是…

Visual modflow Flex地下水数值模拟教程

详情点击链接:Visual modflow Flex地下水数值模拟及参数优化、抽水实验设计与处理、复杂的饱和/非饱和地下水流分析 一,地下水数值软件的操作流程、建模步骤和所需资料处理 [1] Visual MODFLOW Flex特征[2] Visual MODFLOW Flex软件界面及模块 [3] 地…

详细讲解接口自动化攻略

目录 前言: 为什么要做接口自动化 问题在哪里 全靠参数化 接口间参数传递 测试数据参数化 测试断言 测试管理 导入测试用例 接口执行顺序 使用测试数据集 测试参数配置 运行结果&测试报告 测试套件 前言: 接口自动化是提高测试效率和…

ThreadX在gcc下的移植

本文介绍ThreadX在arm-none-eabi-gcc编译器下的移植方法。 1、ThreadX介绍和源码获取 threadx的介绍和源码获取请参考之前的博文:ThreadX在mdk(AC5)中的移植。 2、准备工作 本篇主要介绍threadx在corex-m7上的移植,编译器使用arm-none-eabi-gcc。 在…

智能井盖传感器:以科技破解城市顽疾

在城市的道路网络中,井盖扮演着重要的角色,用于覆盖下方的管道和设施,然而,由于井盖的老化、损坏或被盗,常常会导致安全问题的发生,如路面塌陷、行人受伤等。井盖的状态监测和维护一直是城市管理者面临的挑…

2023年8月PMP考试,考生需要关注这些!

经PMI和中国国际人才交流基金会研究决定,中国大陆地区2023年第三期PMP认证考试定于8月19日举办。考生须认真阅读下文,知悉考试安排及注意事项,并遵守考试有关规定。 考生须认真阅读下文,知悉考试安排及注意事项,并遵守…

阿里推出了一个集成AI的数据库客户端,霸榜GitHub

背景 📖 简介    Chat2DB 是一款有开源免费的多数据库客户端工具,支持windows、mac本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了AIGC的能力,能够将自然语…

基于vue的可拖拽设计的报表看板设计器

gitee上的不错项目,基于vue实现的可拖拽的看板设计器可以自由搭配颜色和图标,开发者可以只关注业务数据接口,前端不擅长的人员可以直接轻松上手。 1.可支持的元素 文字,边框,常见图表,柱形图,…

pgsql查询分页不对和属性转json的mapper映射

pgsql查询分页不对和属性转json的mapper映射 第一种: select * from xxx left join (selectarray_agg(jsonb_build_object(labelId,dl.label_id,labelName,dl.label_name)) as labelList,array_agg(dl.label_name) as labelNames,array_agg(dl.label_id) labelIdLi…

使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致,未来因你出“粽” # 的投稿文章

文章目录 介绍:界面展示知识点详解导入相关模块设置Chrome驱动程序的路径创建ChromeDriver服务和启动Chrome浏览器发送GET请求获取网页内容模拟向下滚动加载更多内容获取完整的HTML内容关闭浏览器使用正则表达式提取文章信息构建数据表格和导出到Excel 扩展知识点代…

HTTP中的API是什么?

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言什么是API&#xf…

活动选择问题|贪婪算法-1

贪婪是一种算法范式,它一点一点地构建解决方案,总是选择下一个提供最明显和最直接好处的部分。贪婪算法用于优化问题。 如果优化问题具有以下属性,则可以使用贪婪解决该问题: 在每一步中,我们都可以做出一个目前看起来…