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 发展现状

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件测试分类介绍

大家好,软件测试是确保软件质量的关键环节之一,通过对软件系统的各个方面进行测试,可以发现和解决潜在的问题,提高软件的稳定性、可靠性和用户满意度。在软件测试领域,根据测试的目的、方法和对象的不同,可…

LLM大模型的挑战与未来,挑战大但是机遇更大!

大模型必然是未来很长一段时间我们工作生活的一部分,而对于这样一个与我们生活高度同频互动的“大家伙”,除了性能、效率、成本等问题外,大规模语言模型的安全问题几乎是大模型所面对的所有挑战之中的重中之重,机器幻觉是大模型目…

揭秘!wifi贴项目市场到底怎么样??

在共享经济市场中WiFi贴这个看似微小的项目,正逐渐散发出它独特的光芒。它的出现既充满了希望又伴随着疑惑:WiFi贴项目的真正面貌究竟如何?让我们一同揭开这神秘面纱。 首先,我们必须理解WiFi贴的本质:它由微火的罗经理…

【每日刷题】Day63

【每日刷题】Day63 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 414. 第三大的数 - 力扣(LeetCode) 2. 2265. 统计值等于子树平均值的节点数…

农业领域科技查新点提炼方法附案例!

农业学科是人类通过改造和利用生物有机体(植物、动物、微生物等)及各种自然资源(光、热、水、土壤等)生产出人类需求的农产品的过程,人类在这一过程中所积累的科学原理、技术、工艺和技能,统称为农业科学技术,该领域具有研究范围广、综合性强…

音乐APP界面设计步骤详解

伴随着互联网的迅速发展,许多与因特网相关的职位应运而生,UI界面设计师是因特网的核心职位之一。UI界面设计已经渗透到我们生活的方方面面,包括网站、应用程序或其它数字平台上的按钮、菜单布局、配色方案和排版。很多人认为 UI界面设计只是关…

计算机图形学入门12:纹理映射

1.问题 如上图所示,前面的内容已经知道怎么对物体进行着色,在球和地板上出现了不同的颜色,也就是定义了不同的kd颜色系数,那么如何在物体不同位置定义不同属性呢? 2.纹理映射 2.1什么是纹理映射 如上图球的表面贴上一…

探索Jetpack Compose中的高效导航库:Voyager项目

探索Jetpack Compose中的高效导航库:Voyager项目 在Jetpack Compose中实现高效、可扩展的导航是每个开发者的追求。Voyager作为一个多平台导航库,不仅与Jetpack Compose无缝集成,还提供了一套务实的API,帮助开发者创建单活动应用…

tvm实战踩坑

今天玩了一下tvm的安装 我要安装v0.14.0的版本 所以按照官网的方法 https://tvm.apache.org/docs/install/from_source.html#python-package-installation git clone --recursive https://github.com/apache/tvm tvmgit checkout v0.14.0recursive是很重要的 这一步可以替换成…

显卡GPU、CUDA、Pytorch版本对应即下载安装

显存大于4G的建议使用GPU版本的pytorch,低于4G建议使用CPU版本pytorch,直接使用命令安装对应版本即可 GPU版本的pytorch的使用需要显卡支持,需要先安装CUDA,即需要完成以下安装 1.查看显卡GPU支持的CUDA版本(最高&…

Flutter系列:关于ensureInitialized()

Flutter系列 关于ensureInitialized() - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28…

vue3 proxy对象转为原始对象

https://cn.vuejs.org/api/reactivity-advanced.html#toraw import { toRaw } from "vue";const foo {} const reactiveFoo reactive(foo)console.log(toRaw(reactiveFoo) foo) // true 人工智能学习网站 https://chat.xutongbao.top

18.9k star!一个高性能的嵌入式分析型数据库,主要用于数据分析和数据处理任务

大家好,今天给大家分享的是一个开源的面向列的关系数据库管理系统(RDBMS)。 DuckDB是一个嵌入式的分析型数据库,它提供了高性能的数据分析和数据处理能力。DuckDB的设计目标是为数据科学家、分析师和数据工程师提供一个快速、灵活且易于使用的数据分析工…

『SD』场景变换魔法:InstructP2P控制类型助你一键换天气

本文简介 InstructP2P 控制类型是 ControlNet 插件中的一个强大功能,InstructP2P 的主要能力是实现场景转换,风格迁移。 我将绫波丽的形象从她原本身着机甲、在夜空下站着的场景,转换到春意盎然的环境中,四周环绕着绽放的花朵和嫩绿的新叶。…

如何基于Excel文件图形化从零建表并导入数据(以MySQL和SQLynx为例)

目录 1. 准备Excel数据 2. 导入Excel数据 a. 登录SQLynx b. 导入Excel文件 3. 验证数据 4. 使用和管理表 5. 总结 在实际的业务过程中,我们经常会有很多数据存储在Excel中,但在Excel中的数据分析不如使用SQL和数据库方便,数据量大些的…

蒂姆·库克解释Apple Intelligence和与ChatGPT合作的区别|TodayAI

在2024年全球开发者大会(WWDC 2024)上,苹果公司首席执行官蒂姆库克(Tim Cook)隆重介绍了公司的最新人工智能(AI)计划——Apple Intelligence,并宣布了与OpenAI的ChatGPT的合作。虽然…

大型语言模型(LLMs)是如何工作的?

大型语言模型(LLMs)如ChatGPT、Bing的“Sydney”模式和Google的Bard正在占据新闻头条。与其讨论它们将使哪些工作变得过时,本文将探讨这些模型的工作原理,包括它们从哪里获取数据以及使它们能够生成令人信服的真实文本的基本数学方…

【课程总结】Day8(上):深度学习基本流程

前言 在上一篇课程《【课程总结】Day7:深度学习概述》中,我们了解到: 模型训练过程→本质上是固定w和b参数的过程;让模型更好→本质上就是让模型的损失值loss变小;让loss变小→本质上就是求loss函数的最小值&#xf…

Postman接口测试工具详解(高清图例)

一、引言 1. 介绍接口测试的重要性 在当今软件开发领域,接口(API)已成为不同系统、服务或组件之间交互的桥梁。随着微服务架构的普及,接口的重要性日益凸显。然而,接口的复杂性和多样性也带来了诸多挑战,其…

【中间件】Pulsar集群安装

目录 一、Pulsar介绍 1.1 Pulsar基本介绍 1.2 Pulsar架构 Producer & Consumer Apache Zookeeper Pulsar Brokers Apache Bookkeeper 二、Zookeeper集群安装 三、Pulsar集群安装 3.1 bookie与broker配置 3.1.1 修改bookie配置文件 3.1.2 修改broker配置文件 3…