龙,大则吞云吐雾,小则隐介藏形
文 | 啸西风
干货目录
1. 架构概述 2. App应用层 3. RTE运行时环境 4. BSW基础软件 5. MCAL微控制器抽象层 01
架构概述
AUTOSAR软件总体结构如上图,对软件实现了:
1. 结构化
2. 标准化:软件接口,交换格式,方法论
3. 将汽车系统的基础软件标准化为一个跨OEM的“标准栈”
4. 集成不同供应商生成的功能模块
5. 适用于不同的车辆及不同的车型
02
App应用层
ApplicationLayer实现具体的应用功能,由软件组件(SWC)组成,基于AutoSAR设计的SWC组件能够提高上层应用软件的复用性和灵活性。
SWC的组成之一:Ports
1. 和其他SWC的通信端口
2. 通信内容:Dataelements(S/R)与operations(C/S)
SWC的组成之二:Runnable entities(简称Runnables,可运行实体)
1. 包含实际实现的函数(具体的逻辑算法或者操作)
2. Runnables 由RTE周期性或者事件触发调用(如,当数据接收时触发时执行)
03
RTE运行时环境
目的:使SWC与ECU的映射无关
功能:提供通信服务的中间层(ECU内部/间通信)
实现:
1. 配置(把Runnables对应到os的tasks中去)
2. 通过RTE的时间触发Runnables的运行
3. 生成调用Runnables的task代码
4. 配置OS的一部分(tasks,events,alarms)
5. 实现SWC之间的通信
6. 每个ECU的RTE因SWC的需求而异
7. RTE抽象OS,防止SWC直接访问OS和BSW
04
BSW基础软件
BSW被抽象划分为如下层面:
MCAL:Microcontroller Abstraction Layer 微控制器抽象层
1. 使上层软件与微控制器信号无关
2. 包含MCU中内部外设的驱动
3. 包含使用MCU内存映射的外部设备的驱动
ECUAbstraction Layer:ECU抽象层
1. 使上层软件与ECU硬件设计无关
2. 包含ECU板上外部设备的驱动
3. 内部设备与外部设备的接口(I/O)
4. ServiceLayer:服务层
5. 提供给应用程序可以的服务
6. 诊断,非易失性内存管理,操作系统(OS),通讯
7. 内存和ECU管理
特别注意:复杂设备驱动不属于BSW,这里顺便提一笔
ComplexDevice Driver:复杂设备驱动
一般不好被BSW标准化的东西会被实现为一个复杂设备驱动
1. 提供复杂传感器和执行器的驱动
2. 重要的应用模块可以直接访问硬件资源
05
MCAL微控制器抽象层
MCAL也是属于BSW,跟底层硬件息息相关,一般是由芯片厂商提供,比如你要使用NXP的MCU,那么就需要向NXP购买MCAL,当然也有的芯片厂商为了推广自己的芯片,快速占领市场,标榜免费提供MCAL。
微控制器驱动
1. GPT:General Purpose Timer Driver,通用定时器,为操作系统或者其他基础软件模块提供计时功能。GPT驱动可以提供启动和停止硬件定时器、得到定时器数值、控制时间触发的中断、控制时间触发的中断唤醒等功能。GPT通道可以设置为连续模式(CONTINUOUS)或单次模式(ONESHOT)。
2. Watchdog:看门狗驱动,除防止程序跑飞基本功能外,功能安全还使用看门狗进行程序流监控(Deadline and Program Flow Monitoring),比如监控程序执行时间、执行顺序等。
3.MCU:Microcontroller Unit Driver,芯片时钟、休眠、复位设置。
4. Core Test:芯片内核测试,提供上电或者周期检测两种方式,检测结果能触发中断。
存储器驱动
1. Flash Test & Ram Test:存储器测试驱动。
2. Flash/Eep Driver:提供基本的存储器操作,如初始化,擦除,写入,读取等。
通信驱动
比较简单理解,这里省略。
I/O驱动
1. Port:pinmux配置。
2. ADC:采样模拟信号,转成数字信号。
3. DIO:Digital Input/Output Driver,数字输入输出驱动,在AUTOSAR中,将一个单片机数字I/O引脚(Pin)定义为DIO通道(DIO Channe可把若干个DIO通道通过硬件分组成为一个DIO端口(DIO Port),DIO端口中相邻几个DIO通道的逻辑组合则称为DIO通道组(DIO Channel Group),在配置过程中可以设置寄存器位蔽值、位偏移量等,从而对多个数字I/O引脚同时进行读/写操作。
4. PWM:生成周期和频率可变的方波
5. ICU:Input Caputre Unit,输入捕获单元,捕获方波周期或者捕获方波电平持续时间。
6. OCU:Output Compare Unit,输出比较单元,基于定时器单元的比较模块。
精彩预告
- AUTOSAR介绍
- 为什么是AUTOSAR?
END
作者:啸西风,一位渴望不平凡的广飘程序猿
龙,大则吞云吐雾,小则隐介藏形