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

AutoSAR入门:应用背景及简介

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标准化的几个方面。

相关文章:

AutoSAR入门:应用背景及简介

1、应用背景 在我们现在的汽车行业里面,汽车电子的发展过程中,我们发现有一些新的趋势汽车电子系统的复杂性不断增长。 我们现在可以看到车辆有越来越多的功能,那么这些功能呢,也在往这个控制器上进行集中,比如说我们现…...

C++初阶(三)

文章目录 一、auto关键字(C11)1、auto简介2、auto使用规则1、 auto与指针和引用结合起来使用2、 在同一行定义多个变量 3、auto不能推导的场景1、 auto不能作为函数的参数2、 auto不能直接用来声明数组3、特性总结 二、基于范围的for循环(C11)1、范围for的语法2、 范围for的使用…...

PHP的学习入门建议

学习入门PHP的步骤如下: 确定学习PHP的目的和需求,例如是为了开发网站还是为了与数据库交互等。学习PHP的基础语法和程序结构,包括变量、数据类型、循环、条件等。学习PHP的面向对象编程(OOP)概念和技术。学习与MySQL…...

骰子涂色(Cube painting, UVa 253)rust解法

输入两个骰子,判断二者是否等价。每个骰子用6个字母表示,如图4-7所示。 例如rbgggr和rggbgr分别表示如图4-8所示的两个骰子。二者是等价的,因为图4-8(a)所示的骰子沿着竖直轴旋转90之后就可以得到图4-8(b&a…...

elasticsearch的docker安装与使用

安装 docker network create elasticdocker pull docker.elastic.co/elasticsearch/elasticsearch:8.10.4# 增加虚拟内存, 此处适用于linux vim /etc/sysctl.conf # 添加 vm.max_map_count262144 # 重新启动 sysctl vm.max_map_countdocker run --name es01 --net …...

ELK 单机安装

一丶软件下载 elasticsearch: https://www.elastic.co/downloads/past-releases kibana: https://www.elastic.co/downloads/past-releases 选择对应的版本的下载即可 二、es 安装es比较简单 rpm -ivh elasticsearch-2.4.2.rpm 修改配置文件 /etc/elasticsearch/elas…...

优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. 运算符

🥴博主:小猫娃来啦 🥴文章核心:优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. 运算符 文章目录 引言空值处理的挑战解决方案1:?? 运算符基本用法与 || 运算符的区别实际应用场景举例 解决方案2&#xff…...

Nginx配置负载均衡

Nginx配置负载均衡 使用nginx来配置负载均衡也是比较简单的 首先在http块中配置虚拟域名所对应的地址 # 负载均衡upstream myserver {server 127.0.0.1:8080;server 127.0.0.1:8082;}可以配置的参数有以下选项 #down 不参与负载均衡 #weight5; 权重,越高分配越多 #b…...

Ubuntu 20.04 上安装 neo4j

1. 进入要安装neo4j的ubuntu环境。 2. 添加Debian资源库。 Java 1.8.xx版本对应Neo4j 3.xx版本: (1)wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add - (2)echo deb https://debian.…...

大规模爬虫系统面临的主要挑战及解决思路

在构建大规模爬虫系统时,我们常常面临一系列挑战。这些挑战包括高效爬取、频率限制、分布式处理、存储和数据管理等方面。为了应对这些挑战,我们需要采取一些解决思路和策略。在本文中,我将与大家分享大规模爬虫系统面临的主要挑战以及解决思…...

统计学习方法 感知机

文章目录 统计学习方法 感知机模型定义学习策略学习算法原始算法对偶算法 学习算法的收敛性 统计学习方法 感知机 读李航的《统计机器学习》时,关于感知机的笔记。 感知机(perceptron)是一种二元分类的线性分类模型,属于判别模型…...

Linux命令(103)之wc

linux命令之wc 1.wc介绍 linux命令wc是用来统计文件的字数、行数和字节数 2.wc用法 wc [参数] [filename] wc参数 参数说明-l统计总行数,备注:常用于查看进程是否启动-L统计最长一行的字符数-c统计字节数-m统计字符数-w统计单词数 3.实例 3.1.统计…...

京东店铺公司名爬虫

内容仅供学习参考,如有侵权联系删除 先通过京东非自营的店铺名拿到的公司名,再通过公司名称去其他平台拿到联系方式(代码省略) from aioscrapy.spiders import Spider from aioscrapy.http import Request, FormRequest import dd…...

如何解决不同浏览器的样式兼容性问题?

目录 1. 理解浏览器差异: 2. 使用标准CSS属性和值: 3. CSS Reset 或 Normalize: 4. 使用浏览器引擎前缀: 5. 使用CSS兼容性工具: 6. 测试和调试: 7. 使用Polyfill: 8. 条件注释&#xf…...

C++ 中迭代器的使用

在C中,"iter"通常是一个缩写,代表迭代器(iterator),用于遍历容器类(如数组、列表、向量等)中的元素。迭代器允许你按顺序访问容器中的元素,而无需了解底层容器的实现细节。…...

如何使用BERT生成单词嵌入?

阿比贾特萨拉里 一、说明 BERT,或来自变形金刚(Transformer)的双向编码器表示,是由谷歌开发的强大语言模型。它已广泛用于自然语言处理任务,例如情感分析、文本分类和命名实体识别。BERT的主要特征之一是它能够生成单词…...

第三章 内存管理 十一、虚拟内存的基本概念

目录 一、传统存储管理 1、缺点 二、局部性原理 1、时间局部性: 2、空间局部性: 三、虚拟内存的定义和特征 1、结构 ​编辑 2、定义 3、特征 (1)多次性: (2)对换性: (3)…...

web前端面试-- http的各个版本的区别(HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP/3.0)

本人是一个web前端开发工程师,主要是vue框架,整理了一些面试题,今后也会一直更新,有好题目的同学欢迎评论区分享 ;-) web面试题专栏:点击此处 http的各个版本的区别 HTTP(超文本传输协议&…...

统计学习方法 隐马尔可夫模型

文章目录 统计学习方法 隐马尔可夫模型基本概念概率计算问题直接计算法前向算法后向算法前向概率和后向概率 学习问题监督学习算法Baum-Welch 算法E 步M 步参数估计公式算法描述 解码问题近似算法Viterbi 算法 统计学习方法 隐马尔可夫模型 读李航的《统计学习方法》时&#x…...

Cypress 与 Selenium WebDriver

功能测试自动化工具的王座出现了新的争夺:Cypress.io。赛普拉斯速度快吗?是的。赛普拉斯是交互式的吗?是的。赛普拉斯可靠吗?你打赌。最重要的是……这很酷! 但 Cypress 是Selenium WebDriver的替代品吗?S…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...