技术科普:汽车开放系统架构AUTOSAR

01.AUTOSAR简介

汽车是现代人类实现“千里江陵一日还”的交通工具,而计算机则是使人脱离繁杂重复脑力劳动的生产技术,两者的结合催生了汽车电子产业的蓬勃发展。

21世纪初,随着汽车电子应用需求的不断增多与硬件资源不断丰富,软件系统也随之变得日趋复杂。汽车电子的主要任务本应是实现新的功能,然而越来越多的资源却被花费到【将现有解决方案移植到不同的环境中】。同时,互联组件数量的增加也使汽车电子的复杂性指数级提高,传统开发方法难以处理。为了充分发挥各个厂商的优势,分工合作共同完成复杂的ECU控制系统开发,越来越多的汽车整车与零部件厂商开始重视软件标准化。

为了处理汽车电子领域软件功能剧增的问题,通过工业范围内的标准化软件设施来大大减少结构上的复杂性,AUTOSAR协会于2003年夏天正式成立,并于次年启动了主要工作。AUTOSAR关注的范围覆盖了半导体工业、工具、软件厂商甚至汽车制造商本身,不仅可以给软件系统及车辆电子提供一个高效管理平台,也促进了两者之间的更新与交换。

AUTOSAR是AUTomotive Open System Architecture,即汽车开放系统架构的简称,定义了一套支持分布式的、功能驱动的汽车电子软件开发方法和电子控制单元上的软件架构标准化方案,以便应用于不同的汽车和平台,提高软件复用、降低开发成本。 AUTOSAR提倡在汽车电子领域创造出一个标准:既是功能上、接口上的标准,也是方法上、流程上的标准,使得各个厂商可以在一个开放的平台下提供符合标准的不同实现。也就是说,在同样的标准下,谁实现得好,谁就可以赢得竞争。

具体来说,AUTOSAR的目的有:

  • 解决汽车功能可用性和安全性需求;
  • 保持汽车电子系统一定的冗余;
  • 方便移植到不同的汽车和平台;
  • 实现标准的基本系统功能作为汽车供应商的标准软件模块;
  • 通过网络共享软件功能;
  • 集成多个开发商提供的软件模块;
  • 贯穿整个产品生命期的软件维护;
  • 更充分地利用硬件平台的处理能力;
  • 进行汽车电子软件的更新和升级。

02.AUTOSAR架构分析

AUTOSAR架构是AUTOSAR协会为了降低ECU软件开发的复杂度而提出的一套经过实践验证的软件架构,是汽车嵌入式应用功能管理的基础架构,也是开发可重用应用程序的基础。

为了实现基本系统功能及功能接口的标准化,使得功能易于继承和修改,切实提高软件的更新和升级能力,AUTOSAR将汽车电子软件架构的整体框架进行分层式设计,以中间件RTE(Runtime Environment)为界,隔离上层的应用层(Application Layer)与下层的基础软件(Basic Software)。

2.1 应用软件层

应用软件层包含若干个软件组件(Software Component,SWC),包括应用软件组件、传感器和执行器软件组件。软件组件间通过端口进行交互,再根据底层软件功能,合理地拆分为不同抽象层,这样每个抽象层都有不同的功能模块。每个软件组件可以包含一个或者多个运行实体(Runnable Entity,RE),运行实体中封装了相关控制算法,其可由RTE事件(RTE Event)触发。

从方法论上来说,应用层软件架构的基本框架为:

输入-->设定控制目标-->执行器控制-->输出-->RTE

应用层中的功能由各软件组件(SWC)实现,组件中封装了部分或者全部汽车电子功能,包括对其具体功能的实现以及对应描述,如控制大灯,空调等部件的运作,但与汽车硬件系统没有连接。

2.2 运行时环境

运行时环境(Runtime Environment,RTE)为应用层软件组件提供通讯服务,抽象了ECU之间的通信,是单个ECU内部或者多个ECU之间信息交换的通讯中心,作为应用软件层与基础软件层交互的桥梁,为软硬件分离提供了可能。

RTE可以实现软件组件间、基础软件间以及软件组件与基础软件之间的通信,封装了基础软件层的通信和服务,为应用层软件组件提供了标准化的基础软件和通信接口,使得应用层可以通过RTE接口函数调用基础软件的服务,实现了对I/O、存储和其他基本服务的访问,使AUTOSAR软件组件独立于特定的ECU,开发人员得以屏蔽底层硬件的实现细节,进行应用软件的开发,并将应用软件应用在任何符合AUTOSAR标准的ECU中。

2.3 基础软件层

基础软件层(Basic Software Layer,BSW)是标准化的软件层,向AUTOSAR软件组件提供必要的服务,主要提供硬件驱动、网络通信、实时任务调度等底层服务。BSW本身又可分为四层,即服务层(Services Layer)、ECU抽象层(ECU Abstraction Layer)、微控制器抽象层(Microcontroller Abstraction Layer,MCAL)和跨越三个层次的复杂驱动(Complex Drivers),详见下图:

服务层(Services Layer):为应用层提供各种后台服务,比如网络管理、存储器管理、总线通信管理服务以及操作系统等。

ECU抽象层(ECU Abstraction Layer,ECUAL):在ECU相关硬件的基础上,为ECU提供外围设备的驱动程序,使应用层不用关心外设的位置,主要关心ECU硬件的布局和属性,与微控制器无关。ECU抽象层封装了微控制器层及外围设备的驱动,并对微控制器内外设的访问进行了统一,实现了软件应用层与硬件系统的分离,比如CAN报文内容的解析、网关报文的转发、存储器读写流程的控制等等。

微控制器抽象层(Microcontroller Abstraction Layer,MCAL):定义了内存接口、I/O驱动接口和通信接口,其实现与微控制器高度相关,是与硬件直接相关的驱动软件。

复杂设备驱动(Complex Device Drivers,CDD):可以直接访问微控制器,以实现一些复杂的传感器和控制器操作,如喷油控制、曲轴信号采集等有计时需求的特定操作。CDD为用户提供可以自行编写特殊设备驱动软件的可能,由于复杂驱动可能涉及严格的时序,所以应用层通过RTE直接访问硬件。复杂驱动层具有重要的意义,首先,它可以用于实现AUTOSAR不支持或者未标准化的硬件驱动,其次,它可以作为已经存在的应用程序向AUTOSAR过渡的接口。

详细内容见下图所示:

03.总结

AUTOSAR概念的提出,为汽车电子系统开发模式从ECU驱动向功能驱动和架构集成的转变奠定了技术和方法学的基础。随着AUTOSAR的进一步完善和推广应用,不仅能够实现底层软件的解耦、模块化、可重用等功能,还能通过复杂驱动来实现特殊化的需求,保持一定的灵活性,实现一套代码适用多个项目,加快研发进程,降低研发成本。

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

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

相关文章

Multimedia-播放器-架构2

目录 引言 问题1: 数据缓冲区 多线程模型 缓冲区的特点: 点播和直播场景中的缓冲区: 问题2: 同步方式 同步实现过程 引言 上一篇梳理了播放器的基本工作与处理流程,本片内容主要梳理一下其中会遇到的问题&am…

如何高性能、高效率地实现3D Web轻量化?

随着互联网和Web技术的发展,3D Web应用的需求越来越多。然而,复杂的3D模型在Web上展示 和交互通常需要大量的带宽和计算资源。 为了解决这一问题,HOOPS技术作为一套专业的3D图形技术开发工具包,发挥着关键作用。本文 将探讨HOO…

pytest---添加自定义命令行参数(pytest_addoption )

前言 在目前互联网公司中,都会存在多个测试环境,那么当我们编写的自动化想要在多套测试环境下进行运行时,如何使用?大多数人想到的可能是通过将我们自动化代码中的地址修改成不同环境,但是这时候就会增加一些工作量&am…

【数据库】通过实例讲清楚,Mongodb的增删查改,分组查询,聚合查询aggregate

目录 一.基础概念 二.数据库的管理 1.创建数据库 2.删除数据库 二.集合的管理 1.显示所有集合 2.创建集合 3.删除当前集合 4.向集合中插入元素 三.文档的管理 1.文档插入 2.文档的更新 3.文档的删除 4.文档查询 (1)查询基本语法&#xff1…

【python爬虫】14.Scrapy框架讲解

文章目录 前言Scrapy是什么Scrapy的结构Scrapy的工作原理 Scrapy的用法明确目标与分析过程代码实现——创建项目代码实现——编辑爬虫代码实现——定义数据代码实操——设置代码实操——运行 复习 前言 前两关,我们学习了能提升爬虫速度的进阶知识——协程&#xf…

【JAVA】多态

作者主页:paper jie_的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和…

开源django+mysql+vue3前后端分离商城baykeShop使用指南

baykeShop开源商城系统 项目简介 baykeShop(拜客商城系统)是一款全开源Python栈商城系统,管理后台完全前后端分离重写以适配项目,前后端100%开源,后台前端采用开源SCUI开源库对接开发,美观、易用、符合当…

【广州华锐互动】数字孪生智慧楼宇3D可视化系统:掌握实时运行状态,优化运营管理

在过去的几年中,科技的发展极大地改变了我们的生活和工作方式。其中,三维数据可视化技术的出现,为我们提供了全新的理解和观察世界的方式。特别是在建筑行业,数字孪生智慧楼宇3D可视化系统的出现,让我们有机会重新定义…

面试题 ⑤

1、TCP与UDP的区别 UDPTCP是否连接无连接,即刻传输面向连接,三次握手是否可靠不可靠传输,网络波动拥堵也不会减缓传输可靠传输,使用流量控制和拥塞控制连接对象个数支持一对一,一对多,多对一和多对多交互通…

排序算法问题

给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 输入:nums [5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:nums [5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 代码如下: 1.插入排序(简…

【VM】保姆级VM算法平台二次开发之-环境配置

VM算法平台二次开发 1.下载Visual Studio 20222.项目的创建 C# 应用3.设置属性,去掉属选型32位4. 进行引用的导入工作5. 重新加载,查看引用6. 工具箱添加Dll的依赖。(只需要加载一次就行) 1.下载Visual Studio 2022 可以直接在官…

python中super()用法

super关键字的用法 一、概述二、作用三、语法四、使用示例1.通过super() 来调用父类的__init__ 构造方法:2.通过supper() 来调用与子类同名的父类方法2.1 单继承2.2 多继承 一、概述 super() 是python 中调用父类(超类)的一种方法&#xff0…

R语言+Meta分析;论文新方向

Meta分析是针对某一科研问题,根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法,对来源不同的研究成果进行收集、合并及定量统计分析的方法,最早出现于“循证医学”,现已广泛应用于农林生态,资源环境等方面。…

如何使用ArcGIS Earth制作地图动画视频

通常情况下,我们所看到的地图都是静态展示,对于信息的传递,视频比图片肯定会更加丰富,所以制作地图动画视频更加有利于信息的传递,这里我们讲解一下ArcGIS Earth 2.0如何制作地图动画视频,希望能对你有所帮…

3.2.0 终极预告!云原生支持新增 Spark on k8S 支持

视频贡献者 | 王维饶 视频制作者 | 聂同学 编辑整理 | Debra Chen Apache DolphinScheduler 3.2.0 版本将发布,为了让大家提前了解到此版本更新的主要内容,我们已经制作了几期视频和内容做了大致介绍,包括《重磅预告!Apache Dol…

AI:04-基于机器学习的蘑菇分类

蘑菇是一类广泛分布的真菌,其中许多种类具有重要的食用和药用价值,但也存在着一些有毒蘑菇。因此,准确地区分可食用和有毒的蘑菇对于保障人们的食品安全和健康至关重要。本研究旨在基于机器学习技术开发一种蘑菇分类系统,以实现对蘑菇的自动分类和识别。通过构建合适的数据…

springboot基础(79):通过pdf模板生成文件

文章目录 前言通过pdf模板生成文件一 . 制作模板二、编辑代码实现模板生成pdf文件三、pdf在线预览和文件下载 扩展问题遇到的问题1. 更换字体为宋体常规2. 下载时中文文件名乱码问题 前言 通过pdf模板生成文件。 支持文本,图片,勾选框。 本章代码已分享…

17.Oauth2-微服务认证

1.Oauth2 OAuth 2.0授权框架支持第三方支持访问有限的HTTP服务,通过在资源所有者和HTTP服务之间进行一个批准交互来代表资源者去访问这些资源,或者通过允许第三方应用程序以自己的名义获取访问权限。 为了方便理解,可以想象OAuth2.0就是在用…

实现 Entity实例生命周期和vue组件生命周期融合

场景解决方案实现方案index.vue方案解决效果 场景 ceisum中Entity实例的生成和销毁,大部分逻辑和vue代码分离,导致不好阅读和维护 解决方案 ceisum 中实例 Entity 的生命周期,和vue的生命周期’相似’,把两个生命周期结合(把en…

Jmete+Grafana+Prometheus+Influxdb+Nginx+Docker架构搭建压测体系/监控体系/实时压测数据展示平台+遇到问题总结

背景 需要大批量压测时,单机发出的压力能力有限,需要多台jmeter来同时进行压测;发压机资源不够,被压测系统没到瓶颈之前,发压机难免先发生资源不足的情形;反复压测时候也需要在不同机器中启动压测脚本&…