AutoSar是啥

AUTOSAR 由 OEM 与 Tier-1供应商联合推动,提出了统一的分层架构与接口规范,把 ECU 软件开发从“手工作坊”转变为“工业化装配”。
AUTOSAR 就是Automotive Open System Architecture的简称,是一个汽车行业的开放架构。 它将汽车电子控制单元(ECU)的软件底层做了一个标准的封装。使得大家都能共用一套底层软件,大部分情况下只需要修改其中的一些参数,就可以匹配不同硬件,也可以匹配不同的应用层软件。
早期工程师只需掌握单片机和底层驱动,而今天的整车已包含上百个 ECU、成千上万的信号交互。在这种背景下,AUTOSAR 便成了应对复杂度和保证协作可控的行业共识。对于汽车嵌入式工程师而言,掌握 AUTOSAR 已经是进入主流项目的必修课。
汽车电子正从单一 ECU 走向集中化与高度互联,软件规模和复杂度急剧膨胀,AUTOSAR 对软硬件的解耦,可以使得应用软件不依赖硬件进行开发。
它的计划目标主要有三个:一是建立分层的体系架构;二是为应用程序的开发提供方法论;三是制定各种应用接口规范。
AutoSar 架构描述

首先就能看出AutoSAR主要分为3个层级:应用软件层(AppL),实时运行环境(RTE)和基础软件层(BSW)
- 应用软件层(Application Layer):执行用户应用层代码的地方
- 实时运行环境层(Runtime Environment):提供应用层所需要的一些资源,同时将应用层和底层分离
- 基础软件层(Basic Software):这一层从图中就可以看出,比其它几层都庞大,它主要是将对硬件的操作封装成统一AutoSAR标准的接口,供上层系统调用,需要将其封装到一个标准操作系统的状态才行
- 硬件层(Hardware):由硬件工程师设计的PCBA
对于双核的处理器,也能够将应用层和底层解耦开。

AutoSAR层级
基础软件层(BSW)

基础软件层又分为四大类,分别是如下描述:
微控制器抽象层(MCAL):就是将芯片的寄存器操作都封装成一个AutoSAR规定的统一的库API。就是说这套API是不同厂商都支持的,但是底层怎么实现,就是芯片厂商的事了。同时也有软件工具EB,可以通过界面配置MCAL功能。
没有什么问题是中间层解决不了的,如果有,那么就再加个中间层。
没错,这玩意像极了STM32的Cube,只不过ST自己做了个上位机配置软件,生成统一代码,然后它提供的各种型号的芯片的Hal库上层是一个统一的API。确切地说,这个Cube是学习的AutoSAR。
ECU抽象层:ECU层实际上是对一个PCBA板子的封装,或者说是功能模块级别的封装,如果说MCAL只封装了芯片,那么ECU抽象层就是将硬件上所有的硬件都进行了封装。
比如我们的控制器上有一个主芯片STM32,还有采样电路,电源电路,CAN电路等等。MCAL就是封装了芯片上有的外设功能。这里的ECU抽象层就是将所有的这些都做一个统一的封装,直接获取到温度,电压,电流信息。
所以,ECU抽象层要做的就是,不管硬件是如何实现的,这里封装后,也形成了统一的API,比如电流采样,不管你是基于霍尔效应的,还是通过采样电阻放大的,亦或是软件偷偷写入的,到这一层都变成了一个电流值。
确切的说,这是一个模型,一个模块的模型,不管你里面乱成什么样,你必须得两个胳膊两条腿,一个脑袋一张嘴。
服务层:这就是是更加高级的一层了,服务层里是包含操作系统的。RTOS将使用ECU抽象层的API再对上层暴露出服务接口,你看,没有什么是中间层解决不了的,刚刚ECU还是单个功能,这里直接把多个功能连在一起凑成了一个服务。
复杂驱动:又叫做CDD,主要工作是将AutoSAR未定义的一些功能封装起来,给应用层提供接口来调用这些功能,如果所有的车都按照定义好的结构来做,那整个汽车市场大概率是千篇一律了,我指的是从电子技术上来说的,抄个保时捷外壳不算在里面。
所以,这个复杂驱动层就是为了灵活创新用的,给一些新东西的加入留个后门。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
没有相关内容!
暂无评论...