01--使用Autosar的优势

现阶段未使用Autosar的软件存在以下问题:

1.开发效率低,开发周期长

2.代码可重用性差,移植困难,维护困难(更换硬件平台,代码几乎重写)

3.软硬件耦合严重,代码质量低

使用Autosar的优势:

1.软硬件隔离:隔离后,不管硬件如何设计,都不需要再重复敲代码,只需要配置一下Autosar,匹配更换后的硬件即可。

2.能够有效缩短开发周期,提高软件的开发效率,并且代码质量稳定

3.代码具有可重用性和移植性,维护更方便

4.不需要手写代码,对代码能力不需要那么高,都是通过配置后自动生成代码。

02--Autosar的组成结构

1.APP层:即应用层软件,是我们根据需求或软件设计,基于模型(matlab/simulink)或者代码完善控制策略和逻辑的层级

2.RTE层:将应用层与底层隔离,调度所有的资源分配

3.BSW层:即底层软件,将相关硬件进行封装,供应用层调取时提供服务

OSEK跟AUTOSAR架构各有什么优缺点 autosar架构的优缺点_封装

 APP层:由一个或多个SWC构成,为实现不同的功能。一个SWC可能就对应一个.c和.h文件

BSW层:分为MCAL,ECU抽象层,服务层,复杂驱动层

                MCAL:即硬件抽象层,可以把MCAL想象成一个库,封装了芯片寄存器的操作(或叫                    Api),这套操作支持不同的厂商,ETAS 的工具EB Tresos可以用来配置MCAL

                 ECU抽象层:MCAL用来封装了芯片上的所有功能,但是我们的控制板上还有很多其他                  采样电路、电源电路等等,ECU抽象层就是完成整个的统一封装。ECU 层Api

                 服务层:该层包含操作系统OS,OS使用ECU抽象层的Api,RTOS在这层工作(嵌入                     式实时操作系统)

                复杂驱动:主要是将Autosar未定义的功能封装起来,提供接口供APP层调用

OSEK跟AUTOSAR架构各有什么优缺点 autosar架构的优缺点_代码质量_02

 

03--APP层

1.应用软件组件(SWC)

2.Autosar接口(Ports)和连接器(Connector)

3.可运行实体(Runnable)

04--RTE层

1.提供控制器内部和外部的通信管理,应用层SWC之间的互相通信和外部通信。

2.提供对runnable的管理功能

3.在Vector中,RTE是自动生成的

05--BSW层

1.MCAL:将芯片的功能封装为一个个API函数,方便上层调用。而这些API函数都是Autosar规定好的,针对不同的芯片,在这一层做到和上层的接口完全一致。配置好以后,同样的操作可以兼容所有的芯片。

2.ECU抽象层:控制器的PCB板子上不光有主芯片,还有一些其他设备(如存储器,看门狗等),需要对所有设备包含主芯片进行封装,且这些设备也会通过主芯片进行控制,该底层需要MCAL支持

3.服务层:包含了操作系统OS,将下层的功能统一汇总在这里,将硬件相关的功能抽象成具体应用服务(如通信)

具体功能:诊断、存储管理、看门狗管理、通信、操作系统、调度管理等

4.复杂驱动:不属于上面3层,但属于补充作用。在上面3层中没有定义,但是实际上运用到的功能。

06--Autosar开发的一般流程

OSEK跟AUTOSAR架构各有什么优缺点 autosar架构的优缺点_应用层_03

 

OSEK跟AUTOSAR架构各有什么优缺点 autosar架构的优缺点_封装_04

 

OSEK跟AUTOSAR架构各有什么优缺点 autosar架构的优缺点_代码质量_05