AUTOSAR软件架构(二)
章节回顾
AUTOSAR软件架构(一)中描述了以下内容:
- Application Layer应用层
- Runtime Environment (RTE)运行时环境
-
Basic Software (BSW)基础软件层
- Services Layer服务层
- ECU Abstraction Layer ECU抽象层
- Microcontroller Abstraction Layer 微控制器抽象层
- Complex Drivers复杂设备驱动
本章节将主要描述
Microcontroller Abstraction Layer微控制器抽象层
微控制器抽象层包含以下模组:
微控制器驱动
- 片内外部设备,比如看门狗、GPT(通用定时器)
- 芯片可以直接访问的功能:Core test
通信驱动
- 片内通信:如SPI通信
- 外围通信:如CAN
内存驱动
- 片上存储设备(例如内部闪存,内部EEPROM)
- 存储器映射的外部存储设备(例如外部Flash)的驱动程序
I/O驱动
模拟和数字驱动程序,如ADC、PWM、DIO
加密驱动
加密驱动程序用于SHE或HSM等片上加密设备的驱动程序
无线通信驱动
无线网络系统的驱动程序(车内或车外通信)
SPI Hand Driver
SPIHandlerDriver允许多个客户端同时访问一个或多个SPI总线
为了抽象化专用于芯片选择的SPI微控制器引脚的所有功能,这些功能应由SPIHandlerDriver直接处理。
这意味着这些引脚在DIO驱动程序中不可用
举一个外部芯片通过SPI总线跟微控制器连接的例子:外部看门狗、外部EEPROM、外部ADC、外部I/O扩展器
复杂驱动Complex Drivers
复杂驱动程序是在基本软件堆栈中实现非标准化功能的模块。
一个示例是使用特定的中断和/或复杂的μC外设(例如PCP,TPU)直接访问μC,从而实现复杂的传感器评估和执行器控制,例如
- 喷油控制
- 电动阀控制
- 增量位置检测
满足处理复杂传感器和执行器的特殊功能和时序要求
I/O硬件抽象I/O Hardware Abstraction
I / O硬件抽象是一组模块,从外围I / O设备(片上或板上)的位置和ECU硬件布局(例如µC引脚连接和信号电平反转)中提取。 I / O硬件抽象不会从传感器/执行器中抽象出来!
可以通过I / O信号接口访问不同的I / O设备。
表示连接到ECU硬件的I / O信号(例如电流,电压,频率)。从更高的软件层隐藏ECU硬件和布局属性。
从上面这张图可以看出来,不管是片内的ADC、DIO还是片外的ADC、扩展I/O(通过SPI总线控制)都可以用I/O硬件来抽象
通信硬件抽象Communication Hardware Abstraction
通信硬件抽象是一组模块,从通信控制器的位置和ECU硬件布局中抽象出来。 对于所有通信系统,都需要特定的通信硬件抽象(例如,对于LIN,CAN,FlexRay)
示例:ECU具有一个带2个内部CAN通道的微控制器和一个带4个CAN控制器的附加板载ASIC。 CAN-ASIC通过SPI连接到微控制器。
CAN ASIC指片外的CAN控制器,有的芯片内部没有CAN控制器,可以通过SPI外扩一个CAN控制器
提供平等的机制来访问总线通道,而不论其位置(片上/板载)
内存硬件抽象Memory Hardware Abstraction
内存硬件抽象是一组模块,从外围存储设备(片上或板载)的位置和ECU硬件布局中提取
示例:可以通过相同的机制访问片内EEPROM和片外EEPROM设备
可通过特定于存储器的抽象/仿真模块(例如EEPROM抽象)访问存储器驱动程序。
通过在闪存硬件单元上模拟EEPROM抽象,可以通过存储器抽象接口对两种类型的硬件进行通用访问
提供相等的机制来访问内部(片上)和外部(板载)存储设备以及存储硬件类型(EEPROM,flash)。
简单点说就是把底层存储设备都抽象成对上提供统一的接口,不片内片外、不管是EEPROM、FLASH
板上设备抽象Onboard Device Abstraction
板载设备抽象包含用于ECU板载设备的驱动程序,这些驱动程序不能被视为内部或外部看门狗的传感器或执行器。 这些驱动程序通过µC抽象层访问ECU板载设备
加密硬件抽象Crypto Hardware Abstraction
加密硬件抽象是一组模块,从加密原语(内部或外部硬件或基于软件)的位置进行抽象。
示例:AES原语在SHE中实现或作为软件库提供
AUTOS