根据上周读者小伙伴Ning的问题,相信有些朋友对于AUTOSAR并不是很熟,我这次主要会对它进行简要的介绍,让大家有个概念。
简单来说AUTOSAR是一套软件架构,它涉及到了从软件底层到上层的各个模块,底层是和硬件相关的驱动模块,上层主要是和应用逻辑,算法相关的应用层。在这两者之间有中间的抽象层,服务层和RTE模块,每个模块都有自己的功能,每个模块的功能在AUTOSAR的标准文档中都有描述,文档较多并且有些信息并没有详细说明,本博主主要是对一些大家比较模糊的信息进行阐述,让大家对整体和细节都有所了解。
在没有AUTOSAR架构时,各个公司都拥有自己的一套软件架构,有些复杂,有些简单。不同的架构之间,接口,参数定义的不统一,功能的重叠导致不同架构之间的软件模块复用几乎不可能。因此针对这种情况(还有其他的情况,对于开发人员来说这点很重要),AUTOSAR架构被提出来了,它描述了整个架构中有哪些功能模块,模块与模块的交互接口有哪些,模块的整体功能是什么,模块的配置项有哪些,基于整个架构开发的标准软件,即使是不同的公司的产品也可以很好地进行衔接和复用。
AUTOSAR的架构图简要如下:
从上往下依次是SWC,RTE,BSW,ECU,其中最上层就是应用层(SWC),可以是手写代码或者相应的工具(simulink)生成代码,整体工具和概念难度小,主要根据具体的应用需求来实现。
RTE,RTE层次的代码都是工具生成的代码,它主要根据SWC之间的交互关系,SWC和BSW之间的交互关系来生成代码,整体来说内容很多,但是主要是工具的工作量,如果你是制作AUTOSAR工具的相关人士,那么这一块比较复杂,如果你是使用工具去生成和配置RTE的人士,那么这一块的工作量就比较小。
BSW,基础软件,整体来说是比较复杂层次,它里面并不只有一个模块,它里面还有分层的结构,如下图所示:
再细分一下,就是下面这个图片:
再细分的话这张图片就不太塞得下了,后面我会再进行细分的介绍,今天主要想让大家知道BSW有什么内容,它主要包括了通信(CAN,LIN,ETHERNET等),存储(FLASH,EEPROM),看门狗,OS等等等。
PS.本博客主要是基于AUTOSAR的规范进行说明,不针对各个标准软件的说明,如果有标准软件的问题可以评论中询问,我会给予尽可能多的帮助,谢谢!
参考文献:AUTOSAR Release 4.2.2