AutoSAR入门:应用背景及简介

news2024/11/18 22:50:01

1、应用背景

          在我们现在的汽车行业里面,汽车电子的发展过程中,我们发现有一些新的趋势汽车电子系统的复杂性不断增长。

        我们现在可以看到车辆有越来越多的功能,那么这些功能呢,也在往这个控制器上进行集中,比如说我们现在看到有很多域控制器。那么域控制器本身呢,它可能负责很多的功能,那么这就导致了我们这个电子系统的复杂性不断的增长。同时,软件代码的数量也是急速的上升。

        另外一方面的原因是在这个汽车电子发展过程中,我们发现整车寿命往往长于ECU的生命周期,那也就意味着在整车的生命周期里面,可能需要对ECU的软件进行开发和升级。与此同时可以看到有很多不同的硬件平台,比如说英飞凌的嵌入式平台,飞思卡尔的嵌入式平台,这些嵌入式平台的功能也随着电子系统的发展不断的增强,使得系统变得非常复杂,动辄就是几千页的文档。这些五花八门的硬件平台,使得电子开发过程变得非常复杂。如果说要切换硬件平台的话,就需要投入大量的人力去进行平台的学习和平台的切换。

       这些嵌入式系统不支持硬件抽象,使得每次在进行新处理器更换的时候,都需要重新去进行底层软件的开发,软件的模块化的过程也是非常有限的,导致了现在汽车电子发展过程中就出现了很多的问题。

2、AutoSAR成员        

        在这个背景下,有一些主机厂和供应商就提出了这个AutoSAR的概念。AutoSAR是automotive open system architecture的缩写,是汽车开放系统架构的一个缩写。最初AutoSAR架构建立的时候,主要是有一些主机厂和供应商。

        到2018年为止已经有55个高级会员和42个发展会员,可以看到有一些中国的企业参与到AutoSAR的标准的开发。除了这些高级会员,发展会员以外,还有外围会员。到目前为止,这个外围会员的数量已经有124家,在所有AutoSAT的组织会成员里面包含了主机商、半导体供应商、软件和工具的供应商。

3、AutoSAR发展历史

        AutoSAR是在2003年建立,到现在的话已经发展了20年,经过这20年的发展呢,AutoSAR的最新版本是4.3.1。

        在2005年的时候发布了1.0的版本,那在这个1.0版本里面呢,发布了最初的BSW,是一个初始版本。

        到2006年和2007年的时候又发布了2.1版本,在2.1版本基本上就已经完成了一个完整的这个BSW。

        到2007年2008年的时候发布了3.0的版本,在3.0版本里面体系已经基本上成熟了,在原先的这个2.0的版本上有很多的改进和更正,功能上也有一些增强。

        到2013年的时候发布了4.0的版本,4.0版本增加了很多的特性,包括对多核操作系统的支持和对功能安全的支持,需要说明的一点是我们说的这些版本指的都是AutoSAR的classic platform。除了plasticic platform以外,AutoSAR现在还提出adapt platform,adapt platform相比classic platform的主要区别是它是面向服务的,服务可以驻留在本地的这个ECU上也可以在远程的ECU上,通过网络的形式进行服务的调用,今天我们主要介绍内容是classic platform的内容,在这个classic platform里面程序还是驻留在本地的ECU里面。

4、AutoSAR应用场景

        classic platform的主要应用场景就是我们常见的传统的汽车ECU的应用,这些应用它有以下这些特点:

        首先,它与硬件有很强的交互,需要这个传感器和执行器的支持。

        第二方面,是通过车身网络进行连接,车身网络包括这个CAN总线,LIN总线,或者以太网,

        第三方面,大部分都是基于16位获得32位的单片机进行开发的,从成本的角度考虑,片上资源相对来说都是比较有限的,因此这些ECU主要都是使用这个实时操作系统,代码也主要是存储在片内或者片外的flash。

        classic platform是针对我们传统的以单片机为中心的这种汽车电子控制器,重新定义了他们的一个软件架构和软件开发方法。

5、AutoSAR开发方法        

        AutoSAR的口号是在这个标准上进行合作,在实现上进行竞争。

        所以我们可以看到现在AutoSAR主要组成的文档实际上是由大量的requirement和spake,对于这个具体的实现方法并没有一个明确的规定,所以说我们仍然可以使用不同半导体供应商提供的单片机,使用不同工具商提供的这个软件开发工具,虽然实现方法没有明确的规定,但是他们的接口是统一的,这样做的好处就是在OEM进行开发的时候有更大的一个选择灵活性。

        同时也避免了在切换过程中导致的一些问题和额外开销,但是现实的情况是为了满足这样一个目标,AutoSAR的要求还是比较复杂的,可以看到在这个AutoSAR标准设计的过程中,有很多目标,系统的可用性和安全性的要求,系统的冗余的要求,同时还要考虑系统在不同的车辆和不同的ECU和不同的这个平台上面可能需要进行一个裁剪,还要求底层软件也就是BSW作为一个标准的内核来进行提供,同时功能上面需要能够通过网络进行传递,也就是说我们这个ECU的功能要在网络上进行移植,要考虑到来自不同供应商提供模块,要能够进行整合,要考虑在整个产品的生命周期里面产品的软件要进行维护,要尽可能多的使用现成的硬件产品,而不是说要去进行单独的开发,要能够对软件进行在汽车的生命周期里面进行升级和更新,另外一方面AutoSAR平台应用的领域也要能够覆盖汽车的大部分的领域啊,比如说车身安全,以及底盘,还有人机界面和娱乐系统等等,这就使得AutoSAR的标准制定就非常的困难。

6、中间件

        针对上述问题AutoSAR提出了一套解决方案,解决方案的核心就是我们使用AutoSAR软件来作为一个中间件。

        在过去ECU的硬件和软件,往往是紧密相关的。如果要增加一些功能,或者是要更换控制平器平台,或者是要对这个硬件进行一些修改的话,ECU的开发往往是需要进行推倒重来的,那么在这个使用了中间件以后呢,我们有了模块化和标准化的一个软件平台,就使得很多软件模块,都是可以进行重用的,我们不需要去针对这个新增的功能,或者是ECU的一些变动,完全的对这个软件进行重新开发。从这个角度来讲我们可以说是使用了AutoSAR中间件技术实现了硬件和软件的一个解耦。

        在后面的介绍里面,我们还会对这一点有更加深入的认识。

7、AutoSAR方法论

        AutoSAR是尝试去统一以前的五花八门的硬件和软件的开发平台。从而对开发的过程进行简化。那么为了实现这个目的他把软件架构进行了标准化定义,同时还提出了一套标准化的开发方法,这个开发方法我们就把它称为AutoSAR的方法论。

        方法论里面包括了使用AutoSAR软件平台进行ECU开发的流程。在流程里面介绍了是使用什么样的工具进行的开发?开发的输入是什么?输出是什么?通过标准化的开发流程使得工作可以在OEM和供应商之间进行分割。同时也使得我们在不同的阶段可以使用不同的工具来进行标准化的开发。那么这个在后面章节里面我们还会对这个AutoSAR的方法论再进一步的介绍。

8、AutoSAR软件架构

        除了前面提到的标准化的开发流程以外,AutoSAR还提出了标准化的软件架构,在这个软件架构里面,把ECU的软件分割成若干层。在最上层是应用层软件,也就是ECU所要实现功能的软件。在应用软件层以下是我们所谓的runtime environment,也就是RTE。RTE实际上是将它以下的硬件特征和它以下的底层软件进行了隐藏,在这个意义上来讲,应用层开发软件并不需要关心我们使用的是什么样的底层硬件,或者是使用了什么样的底层软件服务,这样呢就可以实现对ECU底层软底层硬件的抽象。

9、AutoSAT标准化

        AutoSAR的另外一个解决方案就是标准化,除了标准化的软件架构以外呢,还在另外几个方面对开发进行了规定,比如说我们这个交换格式的标准化。AutoSAR规定了一系列的以XML文件为基础的交换格式,所有的开发都可以基于AutoSAR提供的模板来进行软件和硬件的描述,对系统的描述。在OEM和供应商之间也可以进行这样信息的交换。

        第二个是底层软件的标准化,标准化可以从两个方面来进行理解,一方面是底层软件功能的一个规范的标准化,AutoSAR有很多的软件规范和软件要求,其中就规定了软件需要实现什么样的功能。

        另一个层面,软件的标准化是软件接口的一个标准化,通过这些标准化的接口,我们可以不用关心软件内部是如何实现的啊,只需要去调用这些标准化的接口就可以实现对应的功能了。

        还有一个是这个对单片机的一个抽象化,在前面讲到使用中间件技术的时候,也就是也就提到了这一点,就是对不同平台的单片机呢,对它进行抽象化,我们不需要因为更换单片机平台而去对这个软件进行完全的重新开发。

        那么最后一点呢,是基于这个VFB的运行环境,VFB实际上就是前面提到的RTE的一个抽象的概念,所有的软件组件,都是在这个virtual function bus上面进行运行的啊,这就是AutoSAR标准化的几个方面。

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

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

相关文章

修炼k8s+flink+hdfs+dlink(六:学习k8s)

一:增(创建)。 直接进行创建。 kubectl run nginx --imagenginx使用yaml清单方式进行创建。 二:删除。 kubectl delete pods/nginx 三:修改。 kubectl exec -it my-nginx – /bin/bash 四:查看。 …

【Leetcode每日一题 1726】「组合|哈希表」同积元组

2023.10.19 本题重点: 1.题目的理解,如何转化成一种组合问题 2.哈希表的使用 题目介绍: 给你一个由 不同 正整数组成的数组 nums ,请你返回满足 a * b c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元…

11. 机器学习 - 评价指标2

文章目录 混淆矩阵F-scoreAUC-ROC 更多内容: 茶桁的AI秘籍 Hi, 你好。我是茶桁。 上一节课,咱们讲到了评测指标,并且在文章的最后提到了一个矩阵,我们就从这里开始。 混淆矩阵 在我们实际的工作中,会有一个矩阵&am…

【计算机网络笔记】OSI参考模型基本概念

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

分布式存储 vs. 全闪集中式存储:金融数据仓库场景下的性能对比

作者:深耕行业的 SmartX 金融团队 张德敏 近年来随着金融行业的高速发展,经营决策者及监管机构对信息时效性的要求越来越高,科技部门面临诸多挑战。例如,不少金融机构使用数仓业务系统,为公司高层提供日常经营报表&am…

阿里云服务器x86计算架构ECS规格大全

阿里云企业级服务器基于X86架构的实例规格,每一个vCPU都对应一个处理器核心的超线程,基于ARM架构的实例规格,每一个vCPU都对应一个处理器的物理核心,具有性能稳定且资源独享的特点。阿里云服务器网aliyunfuwuqi.com分享阿里云企业…

InitializeComponent报错(提示不存在)

我是c#新手。为了解决这个问题,需要按照以下步骤进行。、 WPF应用(.NET Framework) 解决问题 首先,确保项目的类型为WPF应用(.NET Framework); 然后,代码的位置应正确处于项目的MainWindow.xaml.cs; 最后&#xff0c…

Deno 快速入门

目录 1、简介 2、安装Deno MacOS下安装 Windows下安装 Linux 下安装 3、创建并运行TypeScript程序 4、内置Web API和Deno命名空间 5、运行时安全 6、导入JavaScript模块 7、远程模块和Deno标准库 8、使用deno.json配置您的项目 9、Node.js API和npm包 10、配置IDE…

宏(预编译)详解

目录 一、程序的编译环境 二、运行环境 三、预编译详解 3.1预定义符号 3.2.1 #define 定义标识符 3.2.2 #define 定义宏 3.2.3#define替换规则 3.2.4 #和## 2)##的作用: 3.2.5宏和函数的对比 3.2.6宏的命名约定和#undef指令 一、命名约定: …

CCC数字钥匙设计【NFC】--通过NFC进行车主配对Phase3

1、车主配对流程介绍 车主配对可以通过车内NFC进行,若支持UWB测距,也可以通过蓝牙/UWB进行。通过NFC进行车主配对总共有5个Phase。本文档主要对Phase3进行介绍。 1) Phase0:准备阶段; 2) Phase1:启动流程&#xff1…

C语言中的3种注释方法

C语言中的3种注释方法 2021年8月28日星期六席锦 在用C语言编程时,常用的注释方式有如下几种: (1)单行注释 // … (2)多行注释 /* … */ (3)条件编译注释 #if 0…#endif (1)(2)在入门教程中比较常见。 对于(1) 【单行注释 // …】,注释只能显示…

将输入对象转换为数组数组的维度大于等于1numpy.atleast_1d()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将输入对象转换为数组 数组的维度大于等于1 numpy.atleast_1d() 选择题 使用numpy.atleast_1d()函数,下列正确的是? import numpy as np a1 1 a2 ((1,2,3),(4,5,6)) print("…

Dev-C++ 软件安装教程(附安装包下载)

Dev-C(123网盘)提取码:EoF8https://www.123pan.com/s/JRpSVv-dKnjv.html (软件包下载后,右键解压) 一、打开文件夹,双击“Dev-C” 二、软件安装,点击“OK” 三、点击“I Agree” 四、点击“Ne…

计算机视觉基础(5)——特征点及其描述子

前言 本文我们将学习到特征点及其描述子。在特征点检测中,我们将学习角点检测和SIFT关键点检测器,角点检测以哈里斯角点检测器为例进行说明,SIFT将从高斯拉普拉斯算子和高斯差分算子展开。在描述子部分,我们将分别学习SIFT描述子和…

49数码论坛系统设计与实现

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

浅析限流式保护器在低压配电系统中电气火灾的应用

安科瑞 华楠 【摘要】文章分析了低压配电系统短路的类型、原因及火灾危险性,并提出改善措施。 【关键词】:低压配电系统; 短路; 措施 0引言 随着人类进入现代文明社会,电气的普及深入千家万户,广泛应用于…

npm ERR! exited with error code: 128

1.遇到的问题 报错信息:npm ERR! E:\tools\Gitt\Git\cmd\git.EXE ls-remote -h -t https://github.com/nhn/raphael.git npm ERR! npm ERR! fatal: unable to access https://github.com/nhn/raphael.git/: OpenSSL SSL_read: Connection was reset, errno 10054 …

FPGA project : IIC_wr_eeprom

简介: 简单双向二线制,同步串行总线。 scl:串行时钟线,用于同步通讯数据。 sda:双向串行数据线。 物理层: 1,支持挂载多设备。 2,二线制。 3,每个设备有其单独的地…

【已解决】java的gradle项目报错org.gradle .api.plugins .MavenPlugin

我的java的gradle项目经常报错org.gradle .api.plugins .MavenPlugin。报错这个问题是因为依赖起冲突了,我在网上试了很多方法都没有效果,折让小编我很是苦恼,不过还好到最后问题还是解决了。 首先要知道你的项目所使用的gradle版本&#xf…

Webpack十大缺点:当过度工程化遇上简单的静态页面

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…