AUTOSAR学习

文章目录

  • 前言
  • 1. 什么是autosar?
    • 1.1 AP(自适应平台autosar)
    • 1.2 CP(经典平台autosar)
    • 1.3 我的疑问
  • 2. 为什么会有autosar
  • 3.autosar的架构
    • 3.1 CP的架构
      • 3.1.1 应用软件层
      • 3.1.2 运行时环境
      • 3.1.3 基础软件层
    • 3.2 AP的架构
  • 4. 参考资料


前言

前段时间参加系统架构师的软考,其中案例分析中的嵌入式题目是分析autosar架构,但是自己只是听说过汽车领域正在使用这个架构,实际上这个架构到底是什么?以及它有什么作用,则是全然不知,最终作为一个嵌入式工程师,案例题也没有选择这个嵌入式题目。 其实软考会考这个东西再一定层面上就说明,国家或者当前社会这块的人才是有些稀缺的,然后想通过这种软考让更多的人去了解autosar架构。

另外最近在看机器人领域的工作,发现和ROS(机器人操作系统)相关的开发工作中很多都提到了要对autosar有一定的了解。
再加上近些年新能源汽车越来越火,很多相关的高薪嵌入式岗位中都要求对autosar有一定了解,就想着去学习一下,看看这个autosar到底是个啥。

因为属于自我科普的记录文章,所以不会太深入去进行研究和讨论。如果想要对autosar有个深入的了解,建议大家可以去参考资料中寻找对应的信息。

1. 什么是autosar?

Home Autosar是一个汽车软件架构,提供开放式汽车软件架构,帮助您应对日益复杂的代码挑战。该架构支持开发标准化的电子系统,可改进质量、性能、安全性和环保功能。它还有助于简化汽车使用寿命内软件的更新流程。

autosar目前分为两种,分别是CP(经典autosar)和AP(自适应autosar)。
在这里插入图片描述

1.1 AP(自适应平台autosar)

全称为自适应AUTOSAR平台(AUTOSAR Adaptive Platform,AP)
2018年,为了迎合未来汽车智能化、网联化的需求,AUTOSAR联盟推出的一个全新平台,将AP加入到原有的AUTOSAR平台中

官方介绍地址:https://www.autosar.org/standards/adaptive-platform

1.2 CP(经典平台autosar)

经典AUTOSAR平台(AUTOSAR Classic Platform)
官方介绍地址:https://www.autosar.org/standards/classic-platform

1.3 我的疑问

1.AP和CP的关系是啥?

AP 和 CP 在 AUTOSAR 中是相互补充、协同发展的关系:

一方面,它们共同构成了 AUTOSAR 架构以满足不同类型汽车电子系统的需求。CP 作为基础,在传统汽车电子领域发挥着重要作用,保障了车辆基本功能的稳定运行;AP 则适应新的发展趋势,为智能网联汽车提供了更强大的功能扩展和灵活性。

另一方面,它们之间也存在一定的过渡和融合。随着技术的发展,一些 CP 上的功能可能会逐渐向 AP 迁移或融合,以实现更高效的系统整合和创新。并且在实际应用中,一辆车上可能同时存在基于 CP 和 AP 的不同系统,它们之间需要进行良好的协同和交互。

2. AP和CP的区别是啥?

  • CP

      应用场景:面向汽车电子的基础控制领域硬件要求:对处理器要求不高,经常是运行在8 位、16 位、32 位的微控制器(MCU)中操作系统:一般采用实时操作系统RTOS
    
  • AP

      应用场景:面向主要面向高度智能化、联网化且功能需求不断变化的复杂应用场景硬件要求:对处理器要求较高,一般是运行在64位的高性能处理器(MPU)或CPU中操作系统:一般是兼容POSIX的操作系统,如LINUX
    

2. 为什么会有autosar

随着电子技术在动力总成控制、底盘控制、车身控制以及车载信息娱乐系统等各个部分所占的比重越来越大、所占的整车成本也越来越高,电子技术已悄悄成为汽车各方面功能拓展和性能提升的重要技术支撑。

为了满足汽车电子硬件系统的多样性,提高软件的模块化和复用度,减少研发成本、降低研发周期。因此在 2003 年,基于先前 EAST-EEA 项目的研究成果,由全球汽车制造商、零部件供应商及其他电子、半导体和软件系统公司联合建立了汽车开放系统架构联盟(Automotive Open System Architecture),即 AUTOSAR。

autosar的特点:
在讨论为什么有autosar时,其实我们也可以看一下autosar有哪些优点,知道了他有哪些优点,也就大概能够反推为什么汽车电子领域会需要autosar了

  • 高度的标准化
    通过定义一整套全面且细致的标准和规范,包括软件架构、接口定义、通信协议等各个方面,确保了不同的汽车电子组件和系统能够在统一的框架下和谐共存、协同工作,避免了因缺乏标准而导致的兼容性问题和混乱局面,极大地提升了系统的整体协调性和稳定性。

  • AUTOSAR 具备强大的可扩展性
    其架构设计灵活,能够轻松容纳新的功能和技术的融入。无论是新的传感器、执行器的加入,还是新的软件模块的引入,都可以较为顺畅地与现有系统进行整合,无需对整个体系进行大规模的重构,这使得汽车电子系统能够快速适应不断变化的技术发展趋势和用户多样化的需求,保持与时俱进的能力。

  • 软件复用性在 AUTOSAR 中得到了高度的体现
    它创建了一个有利于软件组件重复使用的环境,减少了重复开发的工作量和成本。开发人员可以从已有的软件库中挑选合适的组件,并根据具体项目需求进行定制和组合,从而大大提高了开发效率,缩短了产品的上市时间,同时也保障了软件质量的一致性和可靠性。

  • AUTOSAR 对于安全性和可靠性的保障极为重视
    它制定了严格的安全准则和测试要求,对软件的开发、验证和部署过程进行严格把控。通过严格的质量控制和风险评估机制,确保软件在各种复杂环境和工况下都能稳定、安全地运行,降低潜在故障和风险发生的可能性,为驾驶者提供了高度可靠的行车保障。

  • AUTOSAR 还具有良好的兼容性和互操作性
    不同的汽车制造商、零部件供应商以及软件开发商都可以在这一统一的平台上进行合作和交流。它打破了传统的技术壁垒和界限,促进了整个汽车产业链的协同发展,使得各方资源能够更加高效地整合和利用,共同推动汽车电子技术的进步和创新。

3.autosar的架构

3.1 CP的架构

完整版本:
在这里插入图片描述
简化版本:
在这里插入图片描述

3.1.1 应用软件层

包含若干个软件组件(Software Component,SWC),这些组件实现了具体的车辆功能,每个软件组件都具有明确的功能定义和接口,比如控制类组件,负责对车辆的某些系统进行精确控制;监测类组件,实时监控车辆的状态和参数;通信类组件,处理与其他 ECU 或外部系统的信息交互等。

软件组件间通过端口(Port)进行交互。每个软件组件可以包含一个或者多个运行实体(Runnable Entity,RE),运行实体中封装了相关控制算法,其可由 RTE 事件(RTE Event)触发。

  • 我的疑问
    • autosar组件中的端口是指socket的端口吗?
      在 AUTOSAR 中,端口(Port)并不是指网络编程中的 Socket 端口。在 AUTOSAR 架构中,端口是软件组件(Software Component,SWC)之间进行通信的接口。每个端口都有明确的定义和功能,用于在不同的软件组件之间传递数据和控制信息。

    • autosar中的SWC又是个啥?
      SWC(Software Component)即软件组件,是 AUTOSAR 架构中的核心概念之一。它是一个独立的、可重用的、自我描述的、可替换的软件单元,具有清晰的输入输出接口。

      在使用 AUTOSAR 架构时,开发人员首先需要将整个汽车电子系统分解为不同的 SWC,每个 SWC 都应具有特定的功能,如传感器数据处理、控制算法、用户界面等,同时需要定义其输入输出接口以及其它自述和控制接口,这些接口都要符合 AUTOSAR 定义的规范。

3.1.2 运行时环境

AUTOSAR 运行时环境(Runtime Environment,RTE)作为应用软件层和基础软件层交互的桥梁,为软硬件分离提供了可能。RTE 可以实现软件组件间、基础软件间以及软件组件和基础软件之间的通信

RTE 封装了基础软件层的通信和服务,为应用层软件组件提供了标准化的基础软件和通信接口,使得应用层可以通过 RTE 接口函数调用基础软件的服务。

  • 虚拟功能总线VFB及运行环境RTE
    在这里插入图片描述

    虚拟功能总线(VFB)是底层基础软件与网络拓扑结构的抽象。是AutoSar提供的所有通信机制的集合,在信息学数据交互的过程中,应用程序被建模为组合组件。软件组件之间通过VFB进行通讯的。

    在系统配置时,软件组件会被映射到制定的ECU上,同时组件间的虚拟连接也被映射到了CAN,FlexRay, MOST等总线上。

    需要注意的是 RTE也就是单个ECU上对VFB接口的实现。

    使用虚拟功能总线,可以使得负责应用层软件的开发人员不用去关心一个软件组件最终在整车中的哪个 ECU 中具体实现,从而使得应用软件的开发可以独立于具体的 ECU 开发。因此,可以让应用软件开发人员专注于应用软件组件的开发。而 VFB 的真实通信实现则由 RTE 和基础软件来保证,从这一角度来看,RTE 是 AUTOSAR 虚拟功能总线的具体实现。

  • 什么是AUTOSAR中的ECU?

    ECU可以看作是一个单独的芯片或者说是微型计算机。
    汽车电子中要控制那么多的电子器件,不同的电子器件对实时性和性能要求又不一样,因此一辆汽车中肯定是有多个控制芯片组成的。
    不同的控制芯片就是不同的ECU。

    虽然一辆完整的汽车,物理上是不同的控制芯片组成,但是在用户的角度来看整个汽车仍然是一个实体,所以不同的ECU之间是要进行交互和通讯的。这也就引出了VFB虚拟总线的概念。不同的ECU去实现该协议,然后借助WIFI或者CAN等通过该协议进行设备发现,状态同步等功能。

3.1.3 基础软件层

在这里插入图片描述

AUTOSAR 基础软件层(Basic Software Layer,BSW)又可分为四层,即服务层(Services Layer)、ECU 抽象层(ECU Abstraction Layer)、微控制器抽象层(Microcontroller Abstraction Layer,MCAL)和复杂驱动(Complex Drivers)。

  • 服务层

    • 通信服务:
      • 也就是对CAN、LIN、FlexRay在内的整车网络系统进行统一封装。
      • 对上层应用隐藏协议以及报文属性,也就是说上层应用无需关注通信是通过CAN还是LIN 去进行的。
      • 提供统一的总线通信接口、网络管理服务、诊断通讯服务

    • 内存服务
      • 也就是对内存访问进行了统一的封装。

    • 系统服务
      • 提供RTOS服务,包括中断管理、资源管理、任务管理等

  • ECU抽象层
    ECU 抽象层(ECU Abstraction Layer)包括板载设备抽象、存储器硬件抽象、通信硬件抽象和 I/O 硬件抽象。该层将 ECU 结构进行了抽象,负责提供统一的访问接口,实现对通信、存储器以及 I/O 的访问,从而不需要考虑这些资源是由微控制器片内提供的,还是由微控制器片外设备提供的。该层与 ECU 平台相关,但与微控制器无关,这种无关性正是由微控制器抽象层来实现的。

    刚开始我以为ECU抽象层应该就是微控制器抽象层,但实际上它是在微控制器之上的一层,可以把微控制器抽象层理解为驱动层。
    当驱动有了之后,应用层在使用时很少会直接使用驱动,因为驱动提供的接口很全,但是使用起来也会更加麻烦,我理解ECU应该是对驱动又进行了一些封装。

  • 微控制器抽象层
    微控制器抽象层(Microcontroller Abstraction Layer,MCAL)是实现不同硬件接口统一化的特殊层。通过微控制器抽象层可将硬件封装起来,避免上层软件直接对微控制器的寄存器进行操作。微控制器抽象层包括微控制器驱动、存储器驱动、通信驱动、I/O 驱动等模块。

  • 复杂驱动层
    由于对复杂传感器和执行器进行操作的模块涉及严格的时序问题,难以抽象,所以在 AUTOSAR 规范中这部分没有被标准化,统称为复杂驱动(Complex Drivers)。

3.2 AP的架构

在这里插入图片描述
核心功能点:

Adaptive Application:自适应应用程序是AP架构的核心,它是一种可以根据运行时环境动态调整的软件组件。这些应用程序可以实现环境感知、行为规划等功能。

ARA(Adaptive Runtime for AUTOSAR):ARA是自适应应用程序的运行环境,它提供了与CP RTE(Runtime Environment)完全不同的接口。ARA由多个功能集群组成,这些功能集群被划分为基础服务和自适应服务两类。

POSIX操作系统:AP架构构建在POSIX操作系统之上,以提供更高的性能和灵活性。
功能集群:功能集群是ARA的组成部分,每个功能集群都实现了特定的功能,例如通信管理、诊断服务等。

服务和API:AP架构使用服务和API来完成数据交换,应用程序通过这些接口与其他组件进行通信。

以太网通信:AP架构的通信是面向服务类型的,它将网络绑定到DDS(Data Distribution Service)或SOME/IP(Scalable service-Oriented Middleware over IP),并使用以太网与其他ECU进行通信。

灵活性和可扩展性:AP架构设计为具有高度的灵活性和可扩展性,以满足不断变化的汽车电子系统需求。它支持软件的动态更新和配置,以及新功能的添加。

AUTOSAR自适应平台基础中的功能集群必须每个(虚拟机)至少有一个实例,而服务可以分布在车载网络中。

与AUTOSAR经典平台相比,自适应平台的AUTOSAR运行时环境在运行时动态链接服务和客户端。

4. 参考资料

豆包

autosar 官网

来来来!我告诉你 AUTOSAR架构深度解析从入门到放弃

AUTOSAR 发展现状

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

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

相关文章

shell脚本中的变量

关于Linux操作系统中当前shell进程与子shell进程的详细解释 如上图所示,使用ps -f可以当前查看Linux操作系统中当前正在运行的进程。 然后敲bash后,相当于在当前的bash shell环境下又创建了一个子bash shell的进程, 如上图所示,…

win环境安装Node.js的多种方式

今天我们分享win环境安装Node.js的多种方式: 首先要明白Node.js是一个JavaScript运行环境,它基于Google的V8引擎进行封装,允许JavaScript运行在服务器端。Node.js让JavaScript成为一种与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语…

图神经网络入门(1)-networkx

简介 NetworkX是一个Python语言的图论建模工具,用于创建、操作复杂网络结构(如图、有向图等)。它提供了许多用于分析网络、生成随机网络、以及可视化网络的函数和工具。用户可以利用NetworkX来研究复杂网络的拓扑结构、节点间的关系以及路径查…

【RK3588/算能/Nvidia智能盒子】挑战「无电无网」部署AI算法,守护大亚湾荃美石化码头工地安全

“万顷碧波之上,一座千米钢栈桥如蛟龙出水,向大海蜿蜒。钢栈桥上的项目建设者正在加紧作业,为助推惠州大亚湾加快建设成为世界级绿色石化基地全力奋战。”这是不久前北京日报对大亚湾惠州港荃湾港区荃美石化码头工地的描述。 △ 图片来源于北…

序列化与反序列化漏洞实例

实验环境&#xff1a; 本次的序列化与反序列化漏洞为2021年强网杯上的一道比赛题目&#xff0c;我使用phpstudy集成环境将其测试环境搭建在了本地&#xff0c;如下。涉及的几个页面php为&#xff1a; index.php function.php myclass.php index.php : <?php // inde…

2024年阿里巴巴全球数学竞赛首次向人工智能(AI)开放

大家好&#xff0c;我是微学AI&#xff0c;最近大家突然开始关注阿里巴巴全球数学竞赛了&#xff0c;在这个人工智能爆发的时代&#xff0c;2024年阿里巴巴全球数学竞赛首次向人工智能&#xff08;AI&#xff09;开放&#xff0c;要求参赛的AI模型在比赛前提交源代码&#xff0…

个人博客测试用例设计

个人博客测试用例设计 个人博客测试用例 分别从功能、性能、安全、兼容及界面分别展开 个人博客测试用例

【长春理工大学主办 | EI检索稳定 | SPIE出版 | 过往4届均检索 】第五届计算机视觉和数据挖掘国际学术会议(ICCVDM 2024)

第五届计算机视觉和数据挖掘国际学术会议&#xff08;ICCVDM 2024&#xff09; 2024 5th International Conference on Computer Vision and Data Mining 会议简介 第五届计算机视觉与数据挖掘国际学术会议&#xff08;ICCVDM 2024&#xff09;将于2024年7月19-21日在中国长春…

内部类介绍

内部类&#xff08;Inner Class&#xff09;是在另一个类的内部定义的类。它可以访问外部类的所有成员&#xff0c;包括私有成员。内部类有两种主要形式&#xff1a;局部内部类&#xff08;定义在方法内部&#xff09;和成员内部类&#xff08;定义在类的内部&#xff0c;但不在…

day02论文学习:能够使大语言模型产生带有引用的文章

1.主题&#xff1a;Enabling Large Language Models to Generate Text with Citations&#xff08;能够使大语言模型产生带有引用的文章&#xff09; 引用出处&#xff1a; Gao, T., Yen, H., Yu, J., & Chen, D. (2023). Enabling Large Language Models to Generate Tex…

Java基础 - 练习(二)打印菱形

Java基础练习 打印菱形&#xff0c;先上代码&#xff1a; // 方法一&#xff1a;基础&#xff0c;好理解 public static void diamond() {//控制行数for (int i 1; i < 4; i) {//空格的个数for (int k 1; k < 4 - i; k) {System.out.print(" ");}//控制星星…

vcruntime140_1.dll文件【安装包】【压缩包】【文件】【下载】

安装程序时有时候出现 类似无法启动程序&#xff0c;缺少vcruntime140_1.dll的提示&#xff0c;我们找到该文件并放到对应目录就可以&#xff1b;获取方法有很多&#xff0c;下面介绍两种&#xff1a;&#xff08;方法二更简便&#xff0c;不过建议两种方法都试试&#xff09; …

Swift开发——索引器扩展

扩展用于向已存在的类型(例如,类、结构体、枚举和协议等)中添加新的功能,扩展甚至可以向系统类型(包括无法查阅代码的类型)中添加新的功能,但是扩展不能覆盖原类型中已有的方法,扩展也不能向类中添加新的存储属性。 01、索引器扩展 扩展可为类、结构体等类型添加索引器。程序段…

基于S32K144驱动NSD8308

文章目录 1.前言2.芯片介绍2.1 芯片简介2.2 硬件特性2.3 软件资源2.4 芯片资料 3.测试环境4.软件驱动4.1 SPI4.2 寄存器4.3 SPI ON/OFF控制4.4 PWM控制 5.测试情况 1.前言 最近有些客户在前期调试NSD8308时&#xff0c;软件上遇到一些问题&#xff0c;正好笔者手上有一套NSD83…

Linux---系统的初步学习【 项目三 磁盘管理与文件系统】

项目三 磁盘管理与文件系统 3.1 项目知识准备 3.1.1 硬盘 ​ 如果从存储数据的介质上来区分&#xff0c;硬盘可分为机械硬盘&#xff08;Hard Disk Dirve&#xff0c;HHD&#xff09;和固态硬盘&#xff08;Solid State Disk&#xff0c;SSD&#xff09;&#xff0c;机械硬盘…

[保姆级教程]uniapp实现页面路由配置

文章目录 新建目录新建页面配置页面路由修改tabBar地址其他&#xff1a;在package.json中的pages配置详细 新建目录 先点击src–》新建–》目录 输入名称&#xff0c;并以此类推完成所有新建目录 新建页面 右击目录&#xff0c;点击新建–》vue文件 弹出弹框&#xff0c;…

电路笔记 : 嘉立创EDA 导入、查找、设计管理器(快速寻找网络标签)功能+DRC错误检查和处理

导入功能 查找功能 可查找多种类型&#xff0c;如原件名称、网络标签等 设计管理器 图层查看 DRC错误 规则设置 线距问题 大多数PCB制造商能够可靠地生产5 mil间距的走线和间隙。这是一个常见的标准&#xff0c;适合大多数消费级和工业级电子产品。在5 mil以上的间距&#xff…

嵌入式中间件_3.嵌入式中间件的一般架构

根据嵌入式中间件的不同类型和其应用对象的不同&#xff0c;其架构也有所不同&#xff0c;通常嵌入式中间件没有统一的架构&#xff0c;这里仅仅列举两种中间件架构。 1.消息中间件 1.1消息中间件原理架构 消息中间件是消息传输过程中保存消息的一种容器。它将消息从它的源中…

VirtualStudio配置QT开发环境

环境 VirtualStudio2022Qt5.12.10 安装msvc工具链&#xff08;这一步不是必须的&#xff09; 打开virtual studio&#xff0c;打开Virtual Studio Installer界面选择要安装的msvc版本&#xff0c;点击安装 安装VirtualStudio扩展 在线安装 打开virtual Studio&#xff0c;…

玄机平台流量特征分析-常见攻击事

前言 熟悉常见的攻击流量特征&#xff0c;我们就可以通过主机的一个流量情况来判断主机遭受了何种攻击。这里来看看玄机平台的一道题目。 步骤1.1 这里需要我们找出恶意扫描者&#xff0c;也就是黑客的ip。下载好附件之后用wiresharke打开&#xff0c;直接筛选http协议的流量…