首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

再说Autosar(1)-Autosar软件架构

AUTOSAR体系结构在最高抽象级别上分为三个软件层:应用程序层、运行时环境层和在微控制器上运行的基础软件层。

以中间件运行时环境层RTE(Runtime Environment)为界,隔离上层的应用层(Application Layer)与下层的基础软件(Basic Software)。

应用层中的功能由各软件组件(SWC)实现,组件中封装了部分或者全部汽车电子功能,包括对其具体功能的实现以及对应描述。

RTE提供基础的通信服务,支持 Software Component之间和Software Component到BSW的通信(包括ECU内部的程序调用、ECU外部的总线通信等情况)。RTE使应用层的软件架构完全脱离于具体的单个ECU和BSW。

BSW层将基础软件层(BSW)分为Service、 ECU Abstraction、Microcontroller AbstractionComplex以及 Complex Drivers。

BSW中各层又分为若干不同的功能模块。

BSW层中的四个分层

1.BsW微控制器抽象层

微控制器抽象层(Microcontroller Abstraction Layer)是在BSW的最底层,它包含了访问微控制器的驱动。

微控制器抽象层使上层软件与微控制器相分离,以便应用的移植。

2.BSW-ECU抽象层

ECU抽象层封转了微控制器层以及外围设备的驱动。

将微控制器内外设的访问进行了统一,使上层软件应用与ECU硬件相剥离。

3.BSW-复杂驱动

为了满足实时性等要求,可以利用复杂驱动(Complex Drivers),让应用层通过RTE直接访问硬件。也可以利用复杂驱动封转已有的非分层的软件,以实现向 AUTOSAR软件架构逐步实施。

4.Service层

服务层(Service Layer)位于BSW的最上面,将各种基础软件功能以服务的形式封转起来,供应用层调用。

服务层包括了RTOS(系统)、通信与网络管理、内存管理、诊断服务、状态管理、程序监控等服务。

BSW包括以下服务类型:

Input/output(I/o)服务:将执行器、传感器以及外设的访问标准化;

内存服务:将微控制器内外内存的访问进行统一封转;

通信服务:将整车网络系统、ECU网络系统、软件组件内的访问进行统一封转;

系统服务:包括RTOS、定时器、错误处理、看门狗、状态管理等服务。

应用层详解

应用层由各种 AUTOSAR Software Component (sw-c,软件组件)组成

每个 AUTOSAR SW-C都封转了各种应用的功能集,可大可小;

每个 AUTOSAR SW-C只能运行在一个CU中,也可称为 Atomic SWC.

SW-C的实现可以通过算法建模、手写代码等多种方式实现。

在 AUTOSAR架构体系中,SW-C的实现方式:

1.与MCU类型无关;

2.与ECU类型无关;

3.与相互关联的SW-C的具体位置无关;

4.与具体SW-C的实例个数无关。

Software Component Template规定了sW-C的描述规范。

Port和 Interface

port:表示输入(RPort)或输出(PPort)。

Interface:具体输入输出的方式、数据类型等。

这些port和interface的图例,简单明了,非常方便。

AUTOSAR软件组件大体上可分为原子软件组件(Atomic SWC)和部件(Composition SWC)。其中,部件可以包含若干原子软件组件或部件。原子软件组件则可根据不同用途分为以下几种类型:

·应用软件组件(Application SWC);

·传感器/执行器软件组件(Sensor/Actuator SWC);

·标定参数软件组件(Parameter SWC);

·ECU抽象软件组件(ECU Abstraction SWC);

·复杂设备驱动软件组件(Complex Device Driver SWC);

·服务软件组件(Service SWC)。

·应用软件组件(Application SWC)主要用于实现应用层控制算法。

传感器/执行器软件组件(Sensor/Actuator SWC)用于处理具体传感器/执行器的信号,可以直接与ECU抽象层交互。

所有IO的输入输出都通过 Sensor/ActuatorSW-C。

虚拟功能总线VFB及运行环境RTE

虚拟功能总线VFB(Virtual Functional Bus),它是对AUTOSAR所有通信机制的抽象,利用VFB,开发工程师将软件组件的通信细节抽象,只需要通过AUTOSAR所定义的接口进行描述,即能够实现软件组件与其他组件以及硬件之间的通信,甚至ECU内部或者是与其他ECU之间的数据传输。

狭义上讲,所有的 component (包括ASWC、ECU抽象、服务、复杂驱动)之间的通信组成了VFB。

RTE是VFB在具体一个ECU中的实例。

RTE实现了应用层SWC之间、应用层SWC与BSW之间的具体通信.

RTE通过划分RTOS的任务、资源、事件等,提供给组件一个隔离底层中断的运行时环境。

图中的图例参考上文port和interface部分

RTE的通信实现

SW-C之间的通 信是RTE调用 API函数而非直接实现的,都在RTE的管理和控制之下。

每个AP遵循统一的命名规则且只和软件组件自身的描述有关。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230103A08OVI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券