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