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

汽车基础软件AutoSAR自学攻略(二)-AutoSAR CP分层架构(1)

汽车基础软件AutoSAR自学攻略(二)-AutoSAR CP分层架构(1)

一、本专栏的动机

下面开始开始AutoSAR的介绍,想必在汽车行业搞软件的人,或多或少都听说过AutoSAR,那为什么AutoSAR能在现在的汽车软件圈如此的火爆,如果找工作的时候不说点自己会AutoSAR,想必都很难通过面试,在汽车基础软件的面试中被淘汰。我接触过很多猎头,基本都要懂AutoSAR,小厂要求你全懂,大厂要求你专精某一块。有些猎头甚至只做和AutoSAR相关岗位的挖人,薪资开的极其诱人,涨薪30%,年薪40-60w+。你要想想,猎头招一个人他要拿你半年薪资的作为他的佣金,真的夸张。但是目前汽车行业的“”大家也是有目共睹,现在会AutoSAR也不一定能找到好工作,只能说今时不同往日了。但我们能做什么呢,静中细思,一个行业永远不缺重复工作只会配置的AutoSAR工程师,而是缺能解决问题,带给整个软件团队架构层次效率提升的专家。

为什么AutoSAR越来越多人参与其中,这是因为全球的各大主机厂、Tier1和芯片厂都在围绕这个标准展开合作或者竞争。减少重复造轮子,你不参与其中,那导致可能都没人带你玩(特斯拉除外,他是行业变革者),就是真么现实,你在国内可以不搞AutoSAR,但是你出口到国外的车不符合AutoSAR标准,想必很难通过当地的严苛的检查,这只是其一。下一个就是质量,你用到了供应商提供的BSW软件工具,芯片原厂的驱动,这些工具从根本上给你保证了软件开发的质量,你可能是一个什么都不会的初创公司,工具在手,不说天下第一,也位列江湖一众高手之列,在招聘一些AutoSAR专家+工程师,基本一套控制器软件几个月就能初具雏形,基础软件层面并不比大厂差在哪里。只凭这两个优点,不可能不让各大小厂家投身其中。

目前本专栏的目标是普及AutoSAR相关的标准、方法论、软件的设计思路,以及最重要的软件实战。目标是今年出100篇AutoSAR相关的文章专栏,让我们拭目以待。

二、 AutoSAR的背景与目标

这套AutoSAR的标准全称是“Automotive Open System Architecture”,是由全球主要汽车制造商和供应商于2003年9月成立的联盟,旨在为汽车电子/电气(E/E)架构开发开放且标准化的软件架构。AUTOSAR 于 2003 年 7 月由宝马(Bavarian Motor Works,BMW)、罗伯特博世(Robert Bosch)、大陆集团(Continental)、梅赛德斯-奔驰(原名戴姆勒-奔驰,后为戴姆勒-克莱斯勒)、西门子威迪欧(Siemens VDO)和大众汽车成立,旨在推动汽车电气电子(E/E)架构的开放行业标准。2003 年 11 月,福特汽车公司作为核心合作伙伴加入,12 月,斯特兰蒂斯(原名标致雪铁龙集团,PSA Peugeot Citroën)和丰田汽车公司加入。次年 11 月,通用汽车也成为核心合作伙伴。这些公司负责组织、管理和控制 AUTOSAR 开发伙伴关系。在这个核心中,董事会定义了总体战略和路线图。目前,以下核心合作伙伴支持 AUTOSAR:

image-20250101120530092

两年后,经过众多专家的讨论和修订,第一版AUTOSAR标准于2005年正式发布,该标准发布后立刻引起汽车电子行业的巨大反响,其分层开发和模块化的软件解决方案也得到众多企业包括主机厂、零部件厂和半导体厂商的支持,它们也纷纷加入了AUTOSAR组织。截止到2020年年底,全球共有284家成员。随着汽车行业的发展,AUTOSAR标准也不断更新迭代,目前已经发布了AUTOSAR R23-11。

发展历程:

  • 第一阶段(2004-2006): 初步开发标准规范,发布了1.0、2.0和2.1版本。
  • 第二阶段(2007-2009): 补充架构和方法,发布了3.0、3.1和4.0版本。
  • 第三阶段(2010-2013): 维护和部分改进,发布了3.2、4.1和4.2版本。
  • 当前发展(2019年至今): 从2019年开始,AUTOSAR采用新的版本命名方式,每年11月发布新版本,版本号以年份加11标定,如R23-11。

当前版本:

  • Classic Platform(CP): 主要用于嵌入式实时系统,适用于固定功能的电子控制单元(ECU)。最新版本为R24-11。
  • Adaptive Platform(AP): 针对动态可扩展的高性能计算应用,如自动驾驶和高级驾驶辅助系统(ADAS)。最新版本为R24-11。

三、AutoSAR核心思想

3.1 在标准上合作,在实现上竞争

AUTOSAR(AUTomotive Open System ARchitecture)开发联盟倡导“在标准上合作,在实现上竞争”的原则,旨在推动汽车电子行业形成统一的技术标准。这种标准不仅体现在功能和接口上,还涵盖开发方法和流程的标准化。通过这样的统一标准,各个厂商可以在一个开放的平台下展开竞争,各自提供符合标准的创新产品。换句话说,虽然标准是统一的,但软件的具体实现可以各具特色。谁能够在应用层面提供更优质、更高效的实现,谁就能在市场竞争中脱颖而出。

AUTOSAR的核心思想可以概括为“统一标准、分散实现、集中配置”:

  1. 统一标准
    统一的标准是AUTOSAR理念的基础,它为汽车电子行业提供了一个通用的开放平台。通过标准化,厂商能够减少开发过程中因不兼容而带来的障碍,实现不同供应商产品之间的无缝协作。这种标准化不仅限于软件接口,还包括开发流程和工具的规范化,从而为整个行业的协同合作奠定了基础。
  2. 分散实现
    虽然标准是统一的,但具体的软件实现是分散的。AUTOSAR倡导一种层次化、模块化的软件架构设计,这种设计思想将应用软件与底层平台进行解耦,降低了不同模块之间的依赖性。例如,不同厂商可以专注于各自的模块开发,这些模块之间可以通过明确的标准接口进行通信。模块化设计还使得系统具有更高的灵活性,方便后续功能的扩展和维护。
  3. 集中配置
    分散实现的模块可能来自不同的厂商,但它们之间往往存在复杂的依赖关系和交互。为了将这些模块整合成一个完整的系统,AUTOSAR要求将所有模块的配置信息以统一的格式进行集中管理。通过集中配置,可以自动生成系统配置文件,减少人为错误,提高开发效率。

3.2 AUTOSAR的关键技术支撑

在AUTOSAR架构中,汽车电子系统通常包含多个相互关联的AUTOSAR组件。这些组件之间通过**虚拟功能总线(Virtual Functional Bus,VFB)**进行通信。VFB是一种平台无关的通信机制,它为组件之间的交互提供了标准化的接口和服务,屏蔽了底层硬件的差异性,从而实现了平台的抽象化。这种运行环境使开发者能够专注于功能实现,而无需担心具体硬件细节。

3.3 AUTOSAR的目标

AUTOSAR的最终目标是为汽车电子领域建立一套完整、开放且灵活的开发生态系统,具体体现在以下几个方面:

  1. 交换格式的标准化
    建立统一的数据交换格式,便于不同工具链之间的信息共享和交互。
  2. 基础软件的标准化
    通过标准化的基础软件模块,简化系统开发,提高模块的可重用性。
  3. 接口的标准化
    定义标准化的接口,确保不同厂商的模块能够无缝集成。
  4. 对单片机的抽象化
    屏蔽底层硬件差异,通过抽象化机制实现跨平台兼容。
  5. 基于VFB的运行环境
    提供统一的运行环境,使得应用开发与底层硬件解耦,促进系统的可移植性和灵活性。

通过“统一标准、分散实现、集中配置”这一核心思想,AUTOSAR为汽车电子开发提供了一个开放、协作的生态系统。它不仅推动了汽车电子行业的标准化进程,也为各厂商的技术创新和市场竞争创造了条件。在这一框架下,开发者能够更加高效地开发出符合标准、具有竞争力的产品,从而推动汽车电子技术的持续进步与发展。

四、 AutoSAR CP的架构

AUTOSAR经典平台(Classic Platform,CP)采用分层架构,将整个系统按照功能和职责划分为多个层级,如图3.19所示。它可以分为四个主要层级应用软件层(Application Layer)运行时环境(Runtime Environment,RTE)基础软件层(Basic Software,BSW),以及底层的硬件(例如微控制器,Microcontroller)。这种分层设计的理念类似于搭建一栋建筑,每一层都有明确的分工和作用,同时通过“楼梯”或“电梯”(接口)进行上下层之间的连接和通信。为了保证架构的清晰性和模块的独立性,每一层通常只能使用下一层提供的接口,同时向上一层提供相应的服务。

image-20250101192533187

以下是对AUTOSAR CP四层架构的详细解读:


1. 应用软件层(Application Layer)

应用软件层位于架构的最顶端,像是整栋大厦的“居住区”,主要承载着应用功能的实现。在这一层中,功能被划分为多个软件组件(Software Components, SWCs),而每个SWC都通过“端口”与其他组件进行交互。这些端口可以被比喻为大厦中的“门窗”,它们连接着组件与外界的通信。

每个SWC包含一个或多个运行实体(Runnable Entities),这些运行实体就像住户中的各种家电设备,它们被封装了相关的控制算法,用于处理特定的任务。运行实体的启动通常由RTE(运行时环境)触发,类似于按下开关启动家电。


2. 运行时环境(Runtime Environment,RTE)

运行时环境可以看作是整栋大厦的“电力网络”或“管道系统”,它负责在应用层与基础软件层之间提供通信机制,同时屏蔽底层实现的差异性。

RTE的核心作用在于通过**虚拟功能总线(Virtual Functional Bus,VFB)**将系统的不同模块连接起来。它是VFB在ECU内部的具体实现,能够使软件组件彼此独立于底层硬件。无论是软件组件之间的通信,还是组件与基础软件的交互,都通过RTE进行标准化管理。可以将RTE看作是“翻译官”,它隐藏了底层基础软件的复杂性,向应用软件提供了一致的接口,从而实现了软硬件分离,使得开发者无需关心硬件的具体实现。


3. 基础软件层(Basic Software,BSW)

基础软件层位于架构的中间部分,是整个系统的“地基”和“骨架”。它为应用层提供各种服务和驱动,并屏蔽了底层硬件的细节。BSW可以进一步划分为以下几个部分:

image-20250101200434417

(1) 服务层(Services Layer)

服务层是基础软件的顶层,类似于为大厦提供服务的“物业管理系统”。它为应用层的SWC提供标准化的服务,例如操作系统功能(如任务调度)、网络通信服务、ECU管理、内存管理、诊断服务以及逻辑和时序监控等功能。通过这些服务,应用层可以专注于业务逻辑,而不需要直接处理底层硬件。

(2) ECU抽象层(ECU Abstraction Layer)

ECU抽象层的作用类似于将大厦中的电力、电信线路等设备进行抽象,它使得软件与具体的硬件设计无关。通过调用下一层的微控制器抽象层,ECU抽象层将硬件特性(例如电压、电流、频率等)转换为高层可理解的信号(例如开/关信号)。这种抽象设计让应用软件开发者无需了解底层硬件的细节。

(3) 微控制器抽象层(Microcontroller Abstraction Layer,MCAL)

微控制器抽象层可以被比喻为大厦中的“机械室”,它直接与硬件设备相连,控制着最底层的微控制器功能(如ADC、看门狗、计时器等)。MCAL为上层提供统一的接口,无论底层使用什么型号的微控制器,上层软件看到的接口始终保持一致。通过这种抽象,当更换硬件平台时,只需调整MCAL层,而无需修改上层软件逻辑,从而大大提高了系统的移植性和灵活性。

(4) 复杂驱动层(Complex Drivers)

复杂驱动层负责为某些复杂的传感器和执行器提供特殊驱动,可以看作是大厦中为某些特殊设备提供的定制化服务。例如,对于一些复杂的应用模块(如喷油量控制、胎压监测等),由于它们可能对时序有严格要求或者难以抽象,开发者会直接将这些设备的驱动放入复杂驱动层中,使其能够直接访问硬件资源。


4. 硬件(如微控制器,Microcontroller)

硬件位于架构的最底层,是整个系统的“地基”。微控制器作为硬件的核心,提供了基本的计算和控制功能。它包含多种外设模块,例如模数转换器(ADC)、计时器、看门狗等。这些硬件资源通过MCAL层向上层暴露统一的接口,从而让软件开发者无需直接面对硬件细节。


总结与比喻

AUTOSAR CP的架构设计就像是建造一栋模块化的智能大厦:

  • 应用软件层是住户及家电设备,它们负责实现最终的功能。
  • 运行时环境是大厦中的电力网络或通信管道,确保各个部分之间的顺畅连接。
  • 基础软件层是大厦的骨架和服务系统,提供稳定的支撑和基础服务。
  • 硬件是地基和机械室,提供底层计算和控制能力。

通过这种分层设计,AUTOSAR实现了功能解耦、软硬分离和平台独立性,从而提高了汽车电子系统的开发效率和模块化程度。这种架构设计不仅让开发变得更加灵活,也为未来的硬件升级和功能扩展提供了坚实的基础。

五、基础软件层(Basic Software,BSW):AUTOSAR架构的核心支撑

在AUTOSAR经典平台(Classic Platform)中,**基础软件层(Basic Software,BSW)**是整个架构的重要组成部分。它位于运行时环境(Runtime Environment, RTE)之下,硬件抽象层之上,负责为应用层提供底层服务和硬件访问接口。BSW通过模块化设计,将底层硬件和上层应用完全解耦,为整个系统的功能实现和灵活开发提供了坚实的基础。

在这一章中,我们将深入解析BSW的主要组成部分、功能以及其在AUTOSAR架构中的重要性。

image-20250101201508955


1. 基础软件层的作用

基础软件层可以被看作是汽车电子系统的“操作系统”与“驱动程序”。它负责处理从系统初始化到内存管理、通信协议支持等所有与硬件相关的底层操作。BSW的主要作用包括:

  • 硬件抽象:将复杂的硬件细节屏蔽,提供统一的访问接口,使上层软件开发无需关心底层硬件的差异。
  • 系统服务支持:为应用层和运行时环境提供标准化的系统服务,如操作系统服务、通信服务和诊断服务。
  • 模块化与标准化:将功能分为独立模块,每个模块通过标准化接口进行通信,确保系统的可扩展性和兼容性。

2. BSW的主要组成部分

BSW由多个功能模块组成,这些模块按照功能可划分为以下几个子层,每一层都承担特定的职责:

2.1 系统服务层(System Services)

系统服务层是基础软件层的顶层,主要为应用层提供核心支持服务,包括:

  • 操作系统服务(OS Services):管理任务调度、中断处理和时间服务。
  • 电源管理(ECU State Management):控制ECU的启动、关闭以及休眠/唤醒过程。
  • 诊断服务(Diagnostic Services):提供故障检测与报告功能,支持车辆的诊断与维护。

举例:当系统需要切换到低功耗模式时,系统服务层负责协调各个模块,确保切换过程平稳进行。


2.2 内存服务层(Memory Services)

内存服务层主要负责管理ECU中的存储资源,确保数据存取的可靠性和效率。其主要功能包括:

  • 非易失性内存管理(NVM Services):管理EEPROM或Flash存储器中的数据读写,确保数据的持久化。
  • 内存诊断:检测内存错误,确保存储的可靠性。

举例:在记录车辆故障码时,内存服务层负责将数据安全写入非易失性存储器,以便在车辆断电后仍能保留数据。


2.3 加密服务层(Crypto Services)

加密服务层提供与安全相关的服务,用于实现系统的机密性、完整性和认证。其功能包括:

  • 加密算法支持:为数据通信和存储提供对称与非对称加密。
  • 密钥管理:管理加密密钥的生成、存储和销毁。

举例:在远程软件更新(OTA)过程中,加密服务层确保传输数据的安全性,防止攻击者篡改或窃取数据。


2.4 车外通信服务层(Off-board Communication Services)

这一层专注于车辆与外部设备的通信,如诊断工具、车辆云平台等。其功能包括:

  • 数据传输协议支持:如UDS协议(统一诊断服务)。
  • 远程通信支持:支持无线连接,便于车辆的远程诊断与控制。

举例:在4S店使用诊断工具检测车辆故障时,车外通信服务层负责与诊断工具建立通信。


2.5 通信服务层(Communication Services)

通信服务层负责管理ECU之间的数据交换,支持多种通信协议,包括CAN、LIN、FlexRay和以太网等。其核心功能包括:

  • 网络管理:确保通信网络的初始化、运行和关闭。
  • 信号传输:管理数据打包和传输。

举例:当某个ECU需要将传感器数据发送到另一个ECU时,通信服务层通过CAN或以太网完成这一过程。


2.6 I/O硬件抽象层(I/O Hardware Abstraction)

这一层负责将底层硬件信号(如电平信号、频率信号)抽象为逻辑信号,供上层使用。主要功能包括:

  • 信号转换:将模拟信号转换为数字信号(ADC),或将数字信号输出为PWM信号。
  • 硬件接口:通过标准接口访问传感器和执行器。

举例:制动系统中的压力传感器检测到压力变化后,I/O硬件抽象层将其信号转换为逻辑值,并传递给上层应用。


2.7 复杂驱动层(Complex Drivers)

复杂驱动层用于处理时间敏感性高、复杂性强的硬件驱动。其特点是允许直接访问硬件资源,绕过抽象层,以满足实时性需求。

  • 典型应用:喷油控制、胎压监测。
  • 特点:实现快速响应和高精度的硬件控制。

举例:在控制发动机喷油量时,复杂驱动层直接与喷油器硬件交互,确保控制的精度和速度。


3. BSW的模块化设计

基础软件层的模块化设计是其最大的特点,每个模块都有独立的职责,并通过标准化接口进行通信。这种设计带来的优势包括:

  • 开发灵活性:开发者可以专注于模块内的功能实现,而无需考虑其他模块的实现细节。
  • 维护性:当某个模块需要升级或更换时,只需调整对应接口即可,无需影响整个系统。
  • 供应商协作:不同的供应商可以专注于不同的模块开发,通过标准接口无缝集成。

4. BSW在AUTOSAR中的意义

基础软件层作为AUTOSAR架构的核心部分,承担了桥接硬件与应用的职责。通过标准化的模块设计和功能划分,BSW实现了以下目标:

  • 硬件无关性:通过硬件抽象层,屏蔽底层硬件差异,为应用层提供一致的接口。
  • 性能优化:通过通信服务和内存管理模块,确保系统高效运行。
  • 安全保障:加密服务层提供数据加密和认证功能,满足现代汽车的安全需求。

基础软件层(BSW)是AUTOSAR架构不可或缺的组成部分,它不仅为应用层提供了统一的硬件接口,还通过模块化和标准化设计,极大地提高了系统开发的效率和灵活性。在未来,随着汽车电子系统的复杂化和功能需求的增长,BSW的作用将更加重要,为实现高度智能化和安全可靠的汽车系统奠定基础。

六、AutoSAR开发的优势与挑战

优点:

  1. 软件可复用性高: AUTOSAR提倡软件分层、模块化和封装,将软件分为协议栈、硬件、系统服务和应用层等部分。这种分层设计使得软件模块可以在不同项目中重复使用,提高了软件的复用度。
  2. 软硬件解耦: 通过标准化接口,AUTOSAR实现了应用软件与基础软件的分离,使得软件能够在不同的硬件平台上运行,无需大幅修改代码,降低了开发和维护成本。
  3. 易于维护和升级: 分层设计和标准化接口使得系统维护和更新更加便捷,便于软件的升级和功能扩展。
  4. 标准化接口: AUTOSAR采用标准化的接口,确保不同供应商提供的组件能够无缝集成,减少设计错误,提高系统的兼容性和可靠性。
  5. 缩短开发周期: 通过减少手动代码量和提高软件质量,AUTOSAR有助于缩短开发周期,提高开发效率。

挑战:

  1. 系统复杂性: AUTOSAR架构复杂,对工程师的专业知识要求较高,增加了开发的学习曲线和理解难度。
  2. 高初始成本: 引入AUTOSAR需要较大的初始投资,包括工具链的采购和人员培训等,可能增加项目的前期成本。
  3. 性能优化难度: 在高复杂度的系统中,实现最优性能需要更多的调优工作,可能增加开发时间和成本。
  4. 版本迁移成本: AUTOSAR规范的更新可能带来版本迁移的成本,特别是在需要从一个版本升级到另一个版本时,可能需要额外的适配工作。
  5. 工具链兼容性问题: 不同厂商提供的工具可能存在兼容性问题,集成各个厂商所开发的软件模块需要大量的精力和时间。

尽管存在上述挑战,AUTOSAR在提高软件复用性、降低开发成本和提升系统可靠性方面的优势,使其在汽车电子系统开发中得到了广泛应用。

七、总结

AutoSAR分层架构-示意图

最后让我们用一张盖房子的比喻来作为AutoSAR Classic Platform(CP)分层架构的结尾。

房屋的各部分分别代表架构的层级:

  • 屋顶:表示应用层(Application Layer),象征着车辆功能与用户体验。
  • 中间楼层:展示了运行时环境(RTE)以及基础软件层(BSW)的各个模块(如系统服务、内存服务、通信服务、I/O抽象、复杂驱动等)。
  • 地基:象征微控制器(Microcontroller),提供硬件基础。
  • 分层清晰:各层通过箭头和标签展示交互关系。

以房屋层级和功能分工形象地体现了AutoSAR CP架构的模块化和系统化设计。


http://www.kler.cn/a/464285.html

相关文章:

  • Ⅱ.INTRODUCTION TO CUDA C
  • C语言渗透和好网站
  • 17爬虫:关于DrissionPage相关内容的学习01
  • vue cli更新遇到的问题(vue -V查询版本号不变的问题)
  • 【C语言的小角落】--- 深度理解取余/取模运算
  • springboot 跨域配置
  • Redis的生态系统和社区支持
  • Android 系统 `android.app.Fragment` 类的深度定制与常见问题解析
  • iOS 修改图片颜色
  • PyInstaller打包工具,使用以及pyinstaller权限问题,bash: pyinstaller: 未找到命令
  • 【Golang 面试题】每日 3 题(十四)
  • IJCNN2025 投稿准备
  • python中的assert和if的区别
  • ‌新手小白TikTok美区无货源:适合与否?
  • python代做/tensorflow代做/pytorch代做/keras/图像/目标检测/
  • df.groupby(‘team‘).agg({...}) 是 Pandas 中一个非常常用的聚合操作
  • 前端CSS3学习
  • [创业之路-232]:《华为闭环战略管理》-5-组织架构、业务架构、产品架构、技术架构、项目架构各自设计的原则是什么?
  • SpringCloud源码分析-Lettue Redis
  • NeurIPS 2024 | 像素级LLM实现图像视频理解、生成、分割和编辑大统一(昆仑万维等)
  • 前端如何用 canvas 做电影院选票功能
  • 【人工智能数据科学与数据处理】——深入详解数据科学与数据处理之数据获取与清洗
  • Visual Studio 2022安装教程
  • Effective C++读书笔记——item2(const,enum,inlines取代#define)
  • Java实现下载excel模板,并实现自定义下拉框
  • 应用架构模式