AUTOSAR体系结构在最高抽象级别上分为三个软件层:应用程序层、运行时环境层和在微控制器上运行的基础软件层。
以中间件运行时环境层RTE(Runtime Environment)为界,隔离上层的应用层(Application Layer)与下层的基础软件(Basic Software)。
应用层中的功能由各软件组件(SWC)实现,组件中封装了部分或者全部汽车电子功能,包括对其具体功能的实现以及对应描述。
RTE提供基础的通信服务,支持 Software Component之间和Software Component到BSW的通信(包括ECU内部的程序调用、ECU外部的总线通信等情况)。RTE使应用层的软件架构完全脱离于具体的单个ECU和BSW。
BSW层将基础软件层(BSW)分为Service、 ECU Abstraction、Microcontroller AbstractionComplex以及 Complex Drivers。
BSW中各层又分为若干不同的功能模块。
BSW层中的四个分层
1.BsW微控制器抽象层
微控制器抽象层(Microcontroller Abstraction Layer)是在BSW的最底层,它包含了访问微控制器的驱动。
微控制器抽象层使上层软件与微控制器相分离,以便应用的移植。
2.BSW-ECU抽象层
ECU抽象层封转了微控制器层以及外围设备的驱动。
将微控制器内外设的访问进行了统一,使上层软件应用与ECU硬件相剥离。
3.BSW-复杂驱动
为了满足实时性等要求,可以利用复杂驱动(Complex Drivers),让应用层通过RTE直接访问硬件。也可以利用复杂驱动封转已有的非分层的软件,以实现向 AUTOSAR软件架构逐步实施。
4.Service层
服务层(Service Layer)位于BSW的最上面,将各种基础软件功能以服务的形式封转起来,供应用层调用。
服务层包括了RTOS(系统)、通信与网络管理、内存管理、诊断服务、状态管理、程序监控等服务。
BSW包括以下服务类型:
Input/output(I/o)服务:将执行器、传感器以及外设的访问标准化;
内存服务:将微控制器内外内存的访问进行统一封转;
通信服务:将整车网络系统、ECU网络系统、软件组件内的访问进行统一封转;
系统服务:包括RTOS、定时器、错误处理、看门狗、状态管理等服务。
应用层详解
应用层由各种 AUTOSAR Software Component (sw-c,软件组件)组成
每个 AUTOSAR SW-C都封转了各种应用的功能集,可大可小;
每个 AUTOSAR SW-C只能运行在一个CU中,也可称为 Atomic SWC.
SW-C的实现可以通过算法建模、手写代码等多种方式实现。
在 AUTOSAR架构体系中,SW-C的实现方式:
1.与MCU类型无关;
2.与ECU类型无关;
3.与相互关联的SW-C的具体位置无关;
4.与具体SW-C的实例个数无关。
Software Component Template规定了sW-C的描述规范。
Port和 Interface
port:表示输入(RPort)或输出(PPort)。
Interface:具体输入输出的方式、数据类型等。
这些port和interface的图例,简单明了,非常方便。
AUTOSAR软件组件大体上可分为原子软件组件(Atomic SWC)和部件(Composition SWC)。其中,部件可以包含若干原子软件组件或部件。原子软件组件则可根据不同用途分为以下几种类型:
·应用软件组件(Application SWC);
·传感器/执行器软件组件(Sensor/Actuator SWC);
·标定参数软件组件(Parameter SWC);
·ECU抽象软件组件(ECU Abstraction SWC);
·复杂设备驱动软件组件(Complex Device Driver SWC);
·服务软件组件(Service SWC)。
·应用软件组件(Application SWC)主要用于实现应用层控制算法。
传感器/执行器软件组件(Sensor/Actuator SWC)用于处理具体传感器/执行器的信号,可以直接与ECU抽象层交互。
所有IO的输入输出都通过 Sensor/ActuatorSW-C。
虚拟功能总线VFB及运行环境RTE
虚拟功能总线VFB(Virtual Functional Bus),它是对AUTOSAR所有通信机制的抽象,利用VFB,开发工程师将软件组件的通信细节抽象,只需要通过AUTOSAR所定义的接口进行描述,即能够实现软件组件与其他组件以及硬件之间的通信,甚至ECU内部或者是与其他ECU之间的数据传输。
狭义上讲,所有的 component (包括ASWC、ECU抽象、服务、复杂驱动)之间的通信组成了VFB。
RTE是VFB在具体一个ECU中的实例。
RTE实现了应用层SWC之间、应用层SWC与BSW之间的具体通信.
RTE通过划分RTOS的任务、资源、事件等,提供给组件一个隔离底层中断的运行时环境。
图中的图例参考上文port和interface部分
RTE的通信实现
SW-C之间的通 信是RTE调用 API函数而非直接实现的,都在RTE的管理和控制之下。
每个AP遵循统一的命名规则且只和软件组件自身的描述有关。
领取专属 10元无门槛券
私享最新 技术干货