如图所示,我们能快速的知道,在AUTOSAR软件架构中,软件可分三层,Basic Software(后面统称BSW),Runtime Environment(RTE),Application Software Component(ASW/SWC).
通过RTE隔离BSW和ASW,底层部分(BSW)主要实现基本系统,服务,硬件抽象,通信,复杂驱动等。应用层部分(ASW)主要实现和控制器相关的控制逻辑、算法等。RTE部分可实现BSW与ASW、ASW与ASW之间的接口交互,程序运行的基本环境。在AUTOSAR架构中,ASW会根据功能而有不同的SWC组成,但BSW和RTE的组成框架大家都是一致的,仅使用组件多少和具体功能有差异。
如图所示(来源于AUTOSAR4.4版本官方文档),BSW可分服务层,硬件抽象层(ECAL),微控制器抽象层(MCAL)和复杂驱动层(CDD)。
主要提供RTOS服务,包括中断管理、资源管理、任务管理等,提供功能禁止管理、通信管理、 ECU状态管理、看门狗管理、同步时钟管理、基本软件模式管理等服务。
将微控制器内外内存的访问进行统一封装,而NVRAM管理器提供了一个RAM镜像,来支持数据的快速读取。
微控制起主要有Data Flash 和外置EEPROM等模块
以统一的格式为上层的应用软件层传输非易失性数据
抽象了内存地址以及属性
为数据的保存、加载、校验保护、验证以及安全存储提供了统一的机制
包括CAN、LIN、FlexRay在内的整车网络系统、ECU网络及软件组件内的访问进行了统一封装,模块则通过通信硬件抽象层进行通信:
对上层的应用软件层隐藏了协议以及报文属性
提供了统一的总线通信接口供应用软件层调用
提供了统一的网络管理服务
提供了统一的诊断通信接口
主要包含V2X无线通信等,通过软件组件统一封装,提供标准通信结构给应用层。
目前车载娱乐系统通过无线网络接入以太网,信息安全问题突出,OEM关于信息安全要求越来越高,一般会要求控制器厂商增加加密服务,微控制器一般选用带有HSM模块的芯片实现。(本人没有使用过词模块,没法细讲)
ECAL和MCAL一般会根据上层需要使用的服务功能做对应的抽象层配置,如:
Services:NVM
ECAL:Fee
Mcal:Fls
其对应关系和参考 “BSW 层次图”中竖咧功能关系每一列包含了服务、ECAL、MCAL。
通过对复杂传感器评估,利用中断、TPU、PCP等来实现实时性高的传感器采样、执行器控制等功能。
拟功能总线是对AUTOSAR提供的所有通信机制的一种抽象,是所有软件组件进行交互的桥梁。通过虚拟功能总线,软件组件之间的通讯细节被抽象出来,软件组件通过AUTOSAR定义的接口对通讯进行描述,即可最大程度地独立于具体的通讯机制,实现与其他软件组件和硬件的交互。
虚拟功能总线是对AUTOSAR提供的所有通信机制的一种抽象,是所有软件组件进行交互的桥梁。通过虚拟功能总线,软件组件之间的通讯细节被抽象出来,软件组件通过AUTOSAR定义的接口对通讯进行描述,即可最大程度地独立于具体的通讯机制,实现与其他软件组件和硬件的交互。
在整车软件设计过程中,设计软件功能可以脱离ECU设计,所有的软件组件都是通过VFB进行抽象通讯,软件模块单元通过VFB联系在一起,组成一个完整的功能逻辑,在这个设计阶段没有ECU的概念,所有的SWC都是实现在VFB的环境里
整车软件单元在VFB通讯下软件架构
通过虚拟功能总线,无论软件组件使用的是单ECU的内部通信还是ECU间的外部通信,对于应用软件的设计者来说没有本质区别。内部通信与外部通信的区别只有等到系统配置阶段,将软件组件分配到不同的ECU之后,才能体现出来。而在这种情况下,虚拟功能总线的真实通信实现可以由RTE和基础软件来保证。因此,在虚拟功能总线的帮助下,应用软件的各个软件组件不需要关注通信的区别,从而可以在独立的情况下设计开发软件组件,使得应用软件的开发可以独立于具体的ECU,使得开发人员将精力集中在应用软件及其软件组件的开发上。
将软件设计与硬件决策分开使OEM 能够基于所需的车辆功能进行自上而下的设计。虚拟功能总线 (VFB) 的概念使得所有软件电子控制单元都能够实现互连和得到测试。通过采用虚拟功能总线,应用软件组件 (SWC) 与其它应用软件组件也相互独立。软件组件向虚拟功能总线发出输出信号,虚拟功能总线再将信息传送给目标组件的输入端口。AUTOSAR 为输入和输出端口以及交换信息格式提供定义。这种分离方法使得在定义相关硬件之前实现所有车辆软件功能和接口交互验证成为可能。设计调整也因此变得容易得多。
虚拟功能总线并不提供各ECU在真实车辆中如何分布和互连的信息,但对架构设计阶段来说却是很有用的测试基准。可针对所有车辆信号进行检查和接口定义。一旦设计人员对各项功能感到满意,这些功能便会被映射或聚集到特定的硬件电子控制单元中。AUTOSAR 为软件组件的映射和聚集过程提供支持,一个复杂的 ECU 可能包含很多软件组件,必要时可进行分级组织。
在系统实现过程中,虚拟功能总线所代表的功能最终以RTE的生成来体现。在系统配置阶段,每个SWC被映射到具体的ECU上,SWC之间的通讯被映射为ECU内部通讯与ECU外部通讯(比如CAN,Flexray等)。 VFB规范要求提供所有基础设施服务提供的概念,具体包括:
(1)与其他软件组件的通讯
(2)系统内传感器与执行器的通讯
(3)获取标准化服务,例如读写eeprom
(4)响应模式变化
(5)与标定与测量系统交互
(6)在软件设计过程中,特别注意,在设计软件单元模块前必须先与共同开发的同事沟通清楚VFB通信接口(变量交互全局变量接口),再去设计软件,这样会大大提高软件设计效率,减少软件设计出错率,规范软件开发。
AUTOSAR架构对软件组织结构的统一,使得当底层硬件配置升级时不需要更改整个系统,有利于未来整车系统软件的更新,而目前各OEM都在着力研发的智能汽车、自动驾驶等技术都对现有的汽车架构提出了较高的要求,因而AUTOSAR的推广也成为了汽车电子行业的趋势。