为应对日益复杂的汽车电子软件开发,更新和维护的问题,AUTOSAR-AUTomotive Open System ARchitecture(汽车开放系统架构)联盟应运而生。在AUTOSAR分层模型中,软件模块及软件模块之间的接口定义更加标准化,使得整车厂、供应商、科研机构之间可以方便的实现软件联合开发,为汽车工业的软件系统框架建立了一套开放标准。
一般汽车电子的嵌入式系统是由硬件和软件两个部分组成,因此汽车电子系统的开发也分为硬件和软件连个层面。硬件由电源、微处理器/控制器、AD、DA、通信和输入输出接口;软件系统包括设备驱动层、嵌入式操作系统、应用程序接口和应用程序层。
开发流程按照V字开发流程:
AUTOSAR模型为了实现应用程序和硬件模块之间的分离,AUTOUSAR软件体系包括完全独立于硬件的应用层和与硬件相关的基础软件层,并在两者中间设立了一个运行时环境,从而使得两者分离,形成一个分层体系架构被抽象成四层由上至下依次为:应用层App、运行时环境RTE、基础软件层BSW以及微控制器Microcontroller。今天先介绍BSW层。
基础软件层BSW:主要有四部分组成
-
微控制器抽象层:位于AUTOSAR分层模块中BSW的最底层,进一步又可以分为
-
微控制器驱动
-
定时器驱动;
-
看门狗;
-
微控制器单元驱动
-
内核测试;
-
-
存储器驱动
-
内部EEPROM;
-
内部Flash;
-
RAM测试;
-
Flash测试;
-
-
通信驱动
-
以太网;
-
FlexRay驱动;
-
CAN驱动;
-
LIN驱动;
-
SPI驱动;
-
-
I/O驱动
-
PORT端口驱动;
-
DIO读写驱动;
-
ADC驱动;
-
PWM驱动;
-
ICU捕获驱动;
-
OCU输出比较单元驱动;
-
-
-
ECU抽象层:
-
板载设备抽象;
-
ECU板载设备驱动,这些设备不能被看作是传感器或者执行器,比如外部看门狗;
-
存储器硬件抽象,从外围存储器所在位置以及ECU硬件层进行抽象,用户可以通过存储器特性抽象/仿真模块访问存储器驱动;
-
通信硬件抽象
-
传输请求确认;
-
接收指示;
-
错误通知;
-
CAN网络启动/停止;
-
-
I/O硬件抽象,传递I/O信号向更高的软件层隐藏ECU硬件属性
-
-
服务层:服务层是基础软件层的最高层可以实现与应用软件的关联 操作系统,汽车网络通信,内存服务,诊断服务,错误记忆,故障处理 ECU状态和模式管理加密服务。
-
通信服务:J1939协议栈;
-
存储器服务在AUTOSAR架构下所在位置内存服务值包括一个模块即NVRAM它负责非易失性数据的管理;
-
系统服务:多任务实时操作系统(AUTOSAR系统)和错误管理;
-
-
复杂驱动:复杂驱动跨越于微控制器硬件和RTE之间,其主要任务是整合具有特殊目的的非标准模块将该部分功能嵌入到AUTOSAR基础软件层中从而实现处理复杂传感器以及执行器的特定功能和时间要求。
基于Auto开发的优势:
1. 底层软件平台化规范化;
2. 应用层与底层解耦,易于应用层平台化移植;
3. 便于产品质量控制;