当前位置: 首页 > news >正文

技术科普:汽车开放系统架构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的进一步完善和推广应用,不仅能够实现底层软件的解耦、模块化、可重用等功能,还能通过复杂驱动来实现特殊化的需求,保持一定的灵活性,实现一套代码适用多个项目,加快研发进程,降低研发成本。

相关文章:

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

01.AUTOSAR简介 汽车是现代人类实现“千里江陵一日还”的交通工具,而计算机则是使人脱离繁杂重复脑力劳动的生产技术,两者的结合催生了汽车电子产业的蓬勃发展。 21世纪初,随着汽车电子应用需求的不断增多与硬件资源不断丰富,软…...

说说HTTP 和 HTTPS 有什么区别?

分析&回答 http协议 超文本传输协议,是互联网上应用最多的协议,基于TCP/IP通讯协议来传递信息,用于从WWW服务器传输超文本到本地浏览器的传输协议。 https协议 我们可以将其看作是以安全为目标的http协议。在http协议的基础上增加了S…...

Pygame中Trivia游戏解析6-5

3.4 next_question()函数 next_question()函数的作用是显示下一个题目。当用户按下“确认”按键后,将会显示下一个题目,代码如下所示。 if self.scored or self.failed:self.scored Falseself.failed Falseself.correct 0self.colors [white,white…...

Java8新特性2——方法引用

Java8新特性2——方法引用 注:以下内容基于Java 8,所有代码都已在Java 8环境下测试通过 目录: Java8新特性1——函数式接口&lambda表达式方法引用Stream 1. 方法引用 方法引用提供了一种替代 lambda 表达式的语法,允许以更…...

Mac“其他文件”存放着什么?“其他文件”的清理方法

很多Mac用户在清理磁盘空间时发现,内存占用比例比较大的除了有iCloud云盘、应用程序、影片、音频、照片等项目之外,还有一个“其他文件”的项目磁盘占用比也非常大,想要清理却无从下手。那么Mac“其他文件”里存放的是什么文件?我…...

46、TCP的“三次握手”

在上一节中,TCP首部常用的几个选项,有些选项的参数就是在通信双方在建立TCP连接的时候进行确定和协商的。所以在学习过TCP报文首部之后,下面我们开始学习TCP的连接建立。 TCP的一个特点是提供可靠的传输机制,还有一个特点就是TCP…...

libudev 和 libusb 常见API分析

libudev详解: libudev是Linux系统下的一个库,它提供针对内核提供的udev设备管理服务的函数库。udev是一种内核机制,用于在系统中传递解决方案的有关设备信息,以及在出现设备事件(如删除、插入设备)时触发相应的操作。 …...

[dasctf]misc04

与他不说一模一样吧也差不多 第三届红明谷杯CTF-【MISC】-阿尼亚_keepb1ue的博客-CSDN客flag.zip需要解压密码,在图片中发现一串密文。一串乱码,尝试进行字符编码爆破。获取到密码:简单的编码。https://blog.csdn.net/qq_36618918/article/d…...

Scala的函数式编程与高阶函数,匿名函数,偏函数,函数的闭包、柯里化,抽象控制,懒加载等

Scala的函数式编程 函数式编程 解决问题时,将问题分解成一个一个的步骤,将每个步骤进行封装(函数),通过调用这些封装好的步骤,解决问题。 例如:请求->用户名、密码->连接 JDBC->读取…...

Axure RP 8.1.0.3400(原型设计工具)

Axure RP 8是一款原型设计工具,它提供了丰富的功能和工具,帮助用户创建高质量的网页、移动应用和桌面软件原型。以下是Axure RP 8的一些特色介绍: 强大的交互设计:Axure RP 8支持创建复杂的动画和过渡效果,让你的原型更…...

企业微信、飞书、钉钉机器人消息发送工具类

1、实例化WebClient对象 其实你也可以使用RestTemplate,我这里主要是用到了webflux框架,所以需要实例化客户端请求对象 Bean public WebClient webClient(){HttpClient httpClient getHttpClient();return WebClient.builder().clientConnector(new R…...

手撕 视觉slam14讲 ch7 / pose_estimation_3d2d.cpp (1)

首先理清我们需要实现什么功能,怎么实现,提供一份整体逻辑:包括主函数和功能函数 主函数逻辑: 1. 读图,两张rgb(cv::imread) 2. 找到两张rgb图中的特征点匹配对 2.1定义所需要的参数:keypoints…...

Mac安装Dart时,Homebrew报错 Error: Failure while executing

前言: 最近准备开发Flutter项目时,在安装环境时,安装Homebew时遇到了以下报错信息,在这里分享一下。 报错信息: ~ % brew tap dart-lang/dart > Tapping dart-lang/dart Cloning into /opt/homebrew/Library/Tap…...

SSM整合~

构建并配置项目: 第一步:创建maven项目 第二步:配置pom.xml文件 设置打包方式: 为了方便部署,我们通常情况下,将项目打包为WAR,因为WAR文件是一种可执行的压缩文件,它可以将项目…...

Self-supervised 3D Human Pose Estimation from a Single Image

基于单幅图像的自监督三维人体姿态估计 主页: https://josesosajs.github.io/ imagepose/ 源码:未开源 摘要 我们提出了一种新的自我监督的方法预测三维人体姿势从一个单一的图像。预测网络是从描绘处于典型姿势的人的未标记图像的数据集和一组未配对…...

ubuntu下cups部分场景

第一章:部分操作指令 在计算机领域中,cups 是“通用UNIX打印系统”(Common UNIX Printing System)的缩写,它是一种用于在UNIX-like操作系统上管理打印任务的开源打印系统。cups 提供了一个框架,允许用户和…...

通过geoserver imageMosic发布多张tif数据

通过geoserver imageMosic发布多张tif数据 reference: https://zhuanlan.zhihu.com/p/132388558 https://zhuanlan.zhihu.com/p/103674876 https://docs.geoserver.org/latest/en/user/tutorials/imagemosaic_timeseries/imagemosaic_timeseries.html 步骤 下载数据 http…...

输出图元(四)8-2 OpenGL画点函数、OpenGL画线函数

4.3 OpenGL画点函数 要描述一个点的几何要素,我们只需在世界坐标系中指定一个位置。然后该坐标位置和场景中已有的其他几何描述一起被传递给观察子程序。除非指定其他属性值,OpenGL 图元按默认的大小和颜色来显示。默认的图元颜色是白色&#x…...

java八股文

6. 如何保证消息的可靠性? 在RabbitMq的整个消息投递过程中,有三种情况下,会存在消息丢失的问题: 6. RabbitMq如何保证消息的可靠性? 所以从这三个维度保证消息的可靠性去可靠性传递就可以了,从生产者发送…...

算法通关村——解析堆的应用

在数组中找第K大的元素 LeetCode21 Medium 我们要找第 K 大的元素,如果我们找使用大堆的话那么就会造成这个堆到底需要多大的,而且哪一个是第 K 的的元素我们不知道是哪一个索引,我们更想要的结果就是根节点就是我们要找的值,所以…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

Spring AOP代理对象生成原理

代理对象生成的关键类是【AnnotationAwareAspectJAutoProxyCreator】&#xff0c;这个类继承了【BeanPostProcessor】是一个后置处理器 在bean对象生命周期中初始化时执行【org.springframework.beans.factory.config.BeanPostProcessor#postProcessAfterInitialization】方法时…...

高抗扰度汽车光耦合器的特性

晶台光电推出的125℃光耦合器系列产品&#xff08;包括KL357NU、KL3H7U和KL817U&#xff09;&#xff0c;专为高温环境下的汽车应用设计&#xff0c;具备以下核心优势和技术特点&#xff1a; 一、技术特性分析 高温稳定性 采用先进的LED技术和优化的IC设计&#xff0c;确保在…...