一、AUTOSAR
AUTOSAR全称为“AUTomotive Open System ARchitecture”,译为“汽车开放系统体系结构”。
二、AUTOSAR核心思想
1)提倡“在标准上合作,在实现上竞争”原则;
2)核心思想是“统一标准,分散实现、集中配置”,即统一的开放平台、软件系统层次化模块化,降低应用与平台耦合性、统一格式的配置信息,集中配置生成系统;
3)应用系统可包含多个相互关联的AUTOSAR组件;4)组件通过虚拟功能总线(VFB)提供标准通信机制与服务,实现平台无关性。
三、AUTOSAR分层模型
(1)应用软件层(Application Software Layer,ASW)
包含若干个软件组件(Software Component,SWC),软件组件间通过端口(Port)进行交互。每个软件组件可以包含一个或者多个运行实体(Runnable Entity,RE),运行实体中封装了相关控制算法,其可由RTE事件(RTE Event)触发。
应用层包括应用软件组件、传感器、执行器软件组件。
应用层软件组件通过RTE进行内部通信和ECU资源访问。
(2)运行时环境(Runtime Environment,RTE)
RTE封装了基础软件层的通信和服务,为应用层软件组件提供了标准化的基础软件和通信接口。
RTE层与ECU、具体应用相关,为每个ECU分别实现;
RTE层为组件之间的通信提供支持;
RTE层实现应用软件与硬件的无关性;
(3)基础软件层(Basic Software Layer,BSW)
AUTOSAR BSW:提供基础软件服务,包括标准化的系统功能以及功能接口,并且由一系列的基础服务软件组件构成,包括系统服务、内存服务、通信服务等。
A.系统服务层
系统服务层包括OS操作系统、系统服务、存储器服务,通信服务
系统服务层的实现与微控制器、ECU、具体应用相关
1)系统服务
DLT诊断逻辑DET诊断错误DEM诊断管理ComM通信管理BSWM基础软件管理看门狗管理ECU状态管理
2)存储服务
NVM:NVRAM Manager存储服务
MEMIF:Memory Abstraction Interface内存抽象接口
FEE:Flash EEPROM Emulation内存抽象硬件层
EA:EEPROM Abstraction
FLS:Flash Driver 驱动
EEP:EEPROM Driver
3)通信服务
BSW主要配置5个模块:Com、PduR(通讯架构中间模块)、CanTp(CAN运输协议)、CanIf(CAN接口)、Can。
4)OS操作系统
A.任务分类:
用户任务:基本任务/扩展任务;系统任务:空闲任务
B.任务状态:
基本任务:运行、就绪、挂起;扩展任务:运行、就绪、挂起、等待
C.任务的调度策略(Scheduling Policy)
OS的任务调度是基于优先级:调度策略(非抢占式;完全抢占式;混合抢占式;)
D.计数器与报警器
E.调度表:每个报警器只能激活一个任务或者设置一个事件,需要定义多个报警器来实现在同一时刻激活多个任务或者设置多个事件
F.中断处理
两类中断服务程序(ISR):不能使用操作系统的服务,中断不会影响系统对任务的管理;可以使用一部分操作系统提供的服务,如激活任务、设置事件等
G.资源管理
H.自旋锁:是一种为保护共享资源而提出的锁机制,一般用于多核处理器解决资源互斥问题
I.一致类(Conformance Class)
J.可扩展性等级(Scalability Class)
SC1: 在OSEK OS基础上加入调度表;(堆栈监控)
SC2:在SC1基础上加入时间保护;
SC3:在SC1基础上加入存储保护;
SC4:在SC1基础上加入时间保护和存储保护;(多核通信IOC)
B.微控制器ECU抽象层
微控制器抽象层实现的不同硬件接口的统一,实现了对硬件的封装;
微控制器抽象层包括板载设备(看门狗)抽象,存储器硬件抽象,通信硬件抽象,IO硬件抽象
C.微控制器驱动
MCAL驱动层:微控制器驱动,存储器驱动,通信驱动,IO驱动。
1)微控制器驱动
通用定时器驱动:操作系统定时器;硬件定时器看门狗驱动MCU驱动:直接访问微控制器硬件内核测试2)存储器驱动存储器驱动内部EEPROM驱动:初始化;内部EEPROM读写、写、擦除内部Flash驱动:初始化;内部Flash读、写、擦除;将Flash访问代码下载至RAMRAM和Flash测试3)通信驱动SPI驱动:微控制器内部同步通信串行接口驱动EEPROM/看门狗读写访问服务以太网、CAN、LIN、FlexRay驱动4)IO驱动ICU驱动:正常模式和休眠模式PWM驱动:为微控制器PWM模块提供初始化和控制服务,可生成周期和占空比可变的脉冲DIO驱动:数字化输入输出PORT驱动:初始化;进行引脚功能服用ADC驱动:数模转换
D.复杂驱动模块
复杂驱动模块是复杂传感器和执行器操作模块的映射。
(4)硬件层(HardWare)
MCU芯片
四、VBF
VFB将软件构件间、软件构件与基础软件间的通信进行了抽象;
VFB是虚拟硬件和独立映射系统的集合;
VFB为构件提供了标准的通信机制和服务;
VFB包含SWC标准化接口、设备驱动(底层软件中实现)、ECU抽象层(底层软件中实现)、AUTOSAR服务(底层软件中实现);
五、 AUTOSAR接口分类
1)AUOSAR接口:描述原件接收和发送的数据和服务
2)标准化AUTOSAR接口:AUOSAR框架定义的接口
3)标准化接口:软件中具有的API
注:
SWC - Software Component 软件组件
RTE - Run-Time Environment 实时运行环境
BSW - Basic Software 基础软件
BswM - Basic-software mode Manager 基础软件管理模块
CAN IF - CAN interface CAN接口
CAN TP - CAN Transport CAN运输协议
CAN SM - CAN State Manager CAN状态管理模块
DCM - Diagnostic Communication Manager 诊断通讯管理模块
DEM - Diagnostic Event Manager 诊断事件管理模块
DLT - Diagnostic Logger Tracer 诊断日志追踪模块
DET - Development Error Tracer 开发错误追踪模块
DIO - Digital Input/Output 数字输入输出
EcuM - ECU State Manager ECU状态管理模块
EcuC - ECU Configuration ECU配置模块
FEE - Flash EEPROM Emulation 内存抽象硬件层
IoHwAb - I/O Hardware Abstract I/O 硬件抽象层
MemIf - Memory Interface 内存接口
NvM - Non-Volatile Manager 非易失数据管理模块
PduR - Protocol Data Unit Route 通讯架构中间模块
XCP - University Calibration Protocol 多用传输协议
CDD - Complex Device Driver 复杂设备驱动