AUTOSAR系统架构与分层
AUTOSAR(AUTomotive Open System ARchitecture,汽车开放系统架构)是汽车和软件行业领先公司的全球合作联盟,旨在为智能移动开发和建立标准化的软件框架以及开放的E/E系统架构。AUTOSAR架构不仅代表了AUTOSAR联盟本身,也代表了其推行的软件架构标准。
一、AUTOSAR架构概述
AUTOSAR架构的核心功能在于其模块化、标准化和高效的开发方法。模块化设计使得组件可以独立开发和测试,减少了开发时间和成本;可重用性使得相同的组件可以在不同项目中复用,提高了开发效率;标准化则提供了一整套标准和规范,确保了不同供应商之间的兼容性;而易于集成这一特性,得益于基础软件层的规范化,使得不同组件之间的集成变得更加简单。
二、AUTOSAR分层架构
AUTOSAR架构基于分层结构,将汽车软件划分为不同的层次,每个层次负责处理特定的功能。以下是AUTOSAR架构的主要分层:
1. 应用层(Application Layer):
- 是软件架构的最高层,负责处理汽车的具体应用逻辑
- 包含各种应用软件组件(SWC),例如驾驶员辅助系统、车载娱乐系统等
- 通过调用下一层(运行时环境层或基础软件层)的服务来实现特定的功能需求
2. 运行时环境层(Runtime Environment,RTE)(在Classic Platform中存在):
- 是AUTOSAR架构中的中间件,负责实现软件组件与基础软件之间的通信。
- 提供了一种标准化的通信机制,使得不同的软件组件能够相互交互和通信,而无需了解底层基础软件的具体细节。
- 支持跨ECU(电子控制单元)和ECU内部的通信管理,以及对软件组件中运行项(Runnable)的管理。
3. 基础软件层(Basic Software Layer,BSW):
- 提供了底层的功能支持,包括任务调度、内存管理、通信协议等。
- 为上层提供了统一的接口,隐藏了底层硬件的细节。
- 在Classic Platform中,BSW层可以进一步细分为以下几个子层:
- 服务层:提供了一系列通用服务,以支持应用层的功能实现,如通信、诊断、存储器管理等。服务层是应用层和基础软件层之间的接口,为应用层提供了抽象的功能接口。
- ECU抽象层:与微控制器抽象层交互,同时也包含外部设备的驱动。ECU抽象层提供API函数来访问外部设备,无论这些设备在芯片外部还是内部,以及它们是如何与芯片连接的。
- 微控制器抽象层(Microcontroller Abstraction Layer,MCAL):是与底层硬件直接交互的层次,包含了内部驱动,直接对芯片和外围设备进行访问的软件模块。这一层的作用是使微控制器以上层级的软件能独立于芯片存在(即不管芯片是哪种都能够无差别使用)。
- 复杂驱动层:从硬件跨越到RTE层(在Classic Platform中存在),提供特殊部件的驱动,这些部件是非AUTOSAR标准部件,如喷油器等。
在Adaptive Platform中,架构分层有所不同,但总体目标仍是一致的,即更好地管理数量增多、功能复杂度增加的汽车ECU,改善ECU软件质量和可靠性,提升产品升级灵活性,以及缩短产品推向市场的时间。Adaptive Platform中的ARA(AUTOSAR Runtime for Adaptive Applications)层主要由两部分组成:Foundation和Service。所有的模块都称为功能集群(Functional Clusters,FC),这些FC之间并非严格的上下层关系,而是基于面向服务的架构(SOA)设计范式进行交互。
三、AUTOSAR架构的优势
AUTOSAR架构在汽车电子系统开发中具有显著优势,主要包括:
- 提高了开发效率:通过模块化和标准化的开发方法,AUTOSAR架构使得开发人员能够更快地构建和集成汽车软件系统。
- 降低了开发成本:由于组件的可重用性,开发人员无需从头开始编写每个软件组件,从而节省了时间和资源。
- 增强了系统的可靠性和可维护性:AUTOSAR架构提供了标准化的接口和组件,使得系统的维护和升级变得更加简单和高效。
- 促进了不同供应商之间的兼容性:AUTOSAR架构提供了一整套标准和规范,确保了不同供应商之间的软件组件能够相互兼容和集成。
综上所述,AUTOSAR架构作为汽车电子系统开发的基础,尤其是当前新能源车,其模块化、标准化和高效的开发方法为汽车行业带来了显著的效益。