AUTOSAR整体预览

首先我们先看一个图:

AUTOSAR整体预览_第1张图片

1 Overview of Software Layers

 软件层概述

AUTOSAR 最高抽象层划分成了三个部分:应用层、RTE层、基础软件层

AUTOSAR整体预览_第2张图片

基础软件层又划分成四个部分:

服务层、ECU抽象层、微控制器抽象层、复杂驱动层;

AUTOSAR整体预览_第3张图片

1.1基础软件层(BSW分层介绍

从底层向顶层依次介绍:

(1)MCAL层是基础软件层的最底层,他包含内部驱动,可以访问微控制器(uC)和内部外设。

(内部驱动:内部器件位于微控制器(单片机)的内部,例如内部EEPROM、内部CAN控制器、内部ADC模块等。内部驱动程序就是针对单片机内部器件资源的驱动程序,这部分驱动程序属于微控制器抽象层(MCAL))

(2)ECU抽象层连接微控制器抽象层的驱动程序。 它还包含外部驱动程序。它提供了一个访问外围设备和设备的API,不管设备位置如何(μC内部/外部)、它们与μC的连接(端口引脚,接口类型)怎么样。

外部器件是指单片机外部的ECU硬件,比如外部EEPROM、外部看门狗、外部Flash等。外部驱动程序就是针对单片机外部硬件资源的驱动程序,属于ECU抽象层。外部驱动程序需要通过微控制器抽象层(MCAL)驱动程序来实现对外部器件的驱动。这种方法下AUTOSAR也支持嵌入在系统基础芯片(SBCs)中的组件,像收发器以及看门狗等。例如,使用SPI通信接口的外部EEPROM驱动程序是通过SPI总线处理程序来驱动外部EEPROM的。但是有一种例外,对于和内存映射相关的外部器件(如外部Flash存储器),其驱动程序是可以直接对微控制器进行存取访问的,所以这部分驱动程序属于微控制器抽象层(MCAL

(3)复杂设备驱动层,贯穿了硬件层到TRE层。主要用来定义没有被AUTOSAR指定的设备,有高度时间限制的的设备,以移动为目的的驱动等等。

(4)服务层是基础软件的最高层,他也用来跟应用层进行交流,他可以提供:

1)操作系统

2)车载通信网络和管理服务

3)内存服务

4)诊断服务(包括UDS通信,内存错误,和错误处理)

5)ECU状态管理模式管理;

6)逻辑和时间程序流监控;

 

1.2 基础软件层(BSW)服务类型介绍

(1)输入输出类型:标准化访问传感器、执行器、ECU片上外设;

(2)内存:标准化访问内部或者外部存储(非易失存储);

(3)加密:标准化访问加密基元,包括内外部硬件加速器;

(4)通信:标准化访问车载网络系统、ECU板上通信系统ECU内部软件;

(5)板外通信:标准化访问Vehicle-to-X通信,车载无线网络系统,ECU版外通信系统;

(6)系统:提供标准化(操作系统、定时器、错误内存)和特定于ECU (ECU状态管理、watchdog管理器)的服务和库功能;

 

1.3 RTE层

RTE层用来给应用软件提供服务(应用软件包括     AUTOSAR    软件模块 AUTOSAR传感器制动器模块);主要任务就是是软件模块脱离指定的平台,使软件模块更具有通用性。

1.4 BSW模块类型介绍

1.4.1 驱动介绍(BSW模块类型----Driver)

驱动可以用来访问和控制内部以及外部的设备。

(1)内部设备就是在微控制器内部的设备,例如:内部EEPROM,内部CAN controller,内部ADC;内部驱动位于MCAL层。

(2)外部设备就是在微控制器外部的设备,例如外部EEPROM,外部看门狗,外部flash,外部驱动位于ECU抽象层

1.4.2 接口介绍(BSW模块类型----驱动)

接口模块具有模块抽象的功能,从结构上看,这些模块位于接口的下面。例如从指定设备的硬件上抽象出来接口模块。例如接口模块提供一个通用的API接口来访问特定类型的设备,该API和该类型设备的数量以及不同硬件的实现无关。

一般来说,接口位于ECU抽象层,例如CAN通信系统接口提供了一个常规的API来访问CAN通信网络,该接口独立于CAN控制器的数量,并且独立于硬件的实现。

 

1.4.3 Handler介绍 (BSW模块类型----Handler)

Handler是一个特殊的接口,他可以用来控制并发、多重、同步、一个或多个客户端对一个或多个驱动程序进行访问。完成缓冲、队列、仲裁、多路复用。

Handler函数经常并入驱动或者接口(e.g. SPIHandlerDriver—MCAL层的通信驱动中, ADC Driver)

1.4.4 Manager介绍 (BSW模块类型----Manager)

Manager为多个客户端提供特殊服务,他适用于纯处理函数不足以从多个客户端中抽象的所有情况。

Manager位于服务层;

Manager和Handler以及Interface不同,Manager可以评估更改或调整数据的内容,Interface和Handler不能修改数据。

例如:NVRAM manager 管理对内部和/或外部内存设备(如闪存和EEPROM内存)的并发访问。它还执行分布式可靠的数据存储、数据检查、提供默认值等

 

2 Content of Software Layers(上面是模块类型,下面是模块)

2.1.1 MCAL module groups

(1)微控制器驱动

可以用来驱动内部外设,例如:看门口狗,通用定时器;可以直接访问微控制器的函数,如内核测试程序。

(2)通信驱动

ECU板上资源驱动如SPI,车辆通信如CAN;

OSI-Layer:数据链路层一部分

(3)存储驱动

片上存储驱动(如内部flash,内部EEPROM),内存映射外部存储设备驱动程序。

(4)I/O驱动

模拟和数字I/O驱动(如ADC 、PWM 、DIO)

(5)加密驱动

片上加密驱动程序(SHE、HSM)

(6)无线通信驱动

车内片外通信

MCAL层模块组在软件层的位置示意图如下:

AUTOSAR整体预览_第4张图片

MCAL层模块组驱动程序综述如下图:(这个很重要,学习MCAL的时候可以可以看这个知道学习哪些)

AUTOSAR整体预览_第5张图片

2.2 复杂驱动

复杂驱动是用来实现基本软件栈中非标准化功能的模块。

2.3 ECU抽象层module groups

(1)I/O硬件抽象模块

I/O硬件抽象模块是一个从本地I/O外设(片上  or 板上)和ECU硬件设计的(如µC pin的连接和信号电平反转)抽象出来的模块。I/O硬件抽象不能是从传感器和执行器抽象而来。

(2)通信硬件抽象模块

通信硬件抽象模块是一个从本地通信控制器和ECU硬件设计抽象而来的模块。对于所有通信系统都需要特定的硬件抽象。

(3)存储硬件抽象模块

存储硬件抽象模块块是从本地存储外设(片内 or 板上)以及ECU硬件设计抽象而来的。

注意:内部和外部存储驱动的位置,分别处于MCAL层和ECU抽象层。

(4)板载设备抽象模块

板载设备(注意区分板载和片上设备)抽象包含ECU板载设备的驱动程序,这些板载设备不能被视为传感器或执行器,如内部或外部看门狗。这些驱动程序通过µC机载设备抽象层访问ECU。

(5)加密硬件抽象模块

密码硬件抽象是一组从密码基元(基于内部或外部硬件或软件)的位置抽象出来的模块。

例如:AES primitive是在SHE中实现的,或者作为软件库提供。

2.4 服务层module groups

(1)加密服务

加密服务由一个叫做加密服务管理器模块组成。它负责管理加密作业和密钥的存储。

(2)通信服务

通信服务是一组用于车辆网络通信(CAN,LIN,FlexRay和以太网)的模块。 它们通过通信硬件抽象与通信驱动程序连接。

为车辆网络提供统一的接口以进行通信。

为网络管理提供统一的服务。

为车辆网络提供统一的接口以进行诊断通信

隐藏应用程序中的协议和消息属性。

例子 之后用到在细说

(3)存储服务

内存服务由一个模块NVRAM管理器组成。 它负责管理非易失性数据(从不同的内存驱动程序读/写)

(4)系统服务

系统服务是一组可供所有层的模块使用模块和功能,。示例是实时操作系统(包括计时器服务)和错误管理器。

其中一些服务是:

μC依赖(如OS),可能支持特殊 μC功能(如时间服务)

部分ECU硬件和应用程序依赖(如ECU状态管理器)硬件和μC独立。

(5)错误处理报告和诊断

(6)软件层的传感器和执行器

传感器/执行器AUTOSAR软件组件是用于传感器评估和执行器控制的特定类型的AUTOSAR软件组件。 虽然不属于AUTOSAR Basic软件,但由于其与本地信号的密切关系, 由于集成原因(标准化接口实现和接口描述),已决定将传感器/执行器SW组件定位在RTE之上。 由于它们与原始本地信号的强烈交互,因此可重新定位性受到限制。

 

你可能感兴趣的:(AUTOSAR,AUTOSAR,preview)