AutoSar基础概念


前言

本文主要介绍AUTOSAR中常见的基础概念

一、AutoSAR介绍

AUTOSAR(Automotive Open System Architecture)是一个用于汽车电子系统的开放式标准,它定义了一种面向汽车电子控制单元(ECU)的软件架构。AUTOSAR 旨在提供一种通用的软件架构,以便汽车制造商和供应商能够开发、部署和维护各种汽车电子系统的软件,包括引擎控制、制动系统、驾驶辅助系统等。

AUTOSAR 标准包括许多不同的规范和文档,用于定义汽车电子系统的各个方面,例如通信、操作系统、硬件抽象层等。AUTOSAR 标准的一个关键组成部分是 AUTOSAR 代码生成工具,其中包括 AUTOSAR 配置工具(AUTOSAR Authoring Tool)和 AUTOSAR 运行时环境

使用AutoSAR之前,汽车电子开发都是各自为战,没有统一规范,导致开发效率很低,且耦合度很大,代码可重用性很差。

使用AutoSAR之后,软件和硬件之间可以解耦,软件工程师不需要再过多考虑硬件,只需要配置一下AutoSAR告诉它所使用的硬件,AutoSAR会去匹配硬件。

在这里插入图片描述

AutoSAR的优势:

  • 缩短代码周期,提高开发效率
  • 增加代码可重用性
  • 帮助多人同时开发以及维护
  • 有图形界面配置工具(如DaVinci,IsolarA等),不需要手写代码,保证代码生成质量
    在这里插入图片描述

二、AUTOSAR基础概念

1.SWC(Software Component)

SWC即Software Component。一般位于AutoSAR的Application应用层,可以理解为应用层单元模块。细说的话还可以分成Atomic SWC和Composition SWC。

  • 一般单独说的SWC指的是Atomic SWC。
  • SWC最形象的对比就是一个.C文件了,那么Composition SWC顾名思义就是.C文件的集合,体现在代码上,就是保存.C文件的文件夹。

Swc是ECU的组成单元。一个ECU可以包含多个Swc。简单理解,一个ECU可以看做汽车中的一个功能模块,通过ECU中的多个Swc协同工作来实现该功能。

2.Runnable Entity

可运行实体,其实就是.c文件内的函数而已。

  • 一个SWC可以包含多个Runnable Entity,就是一个.C文件可以包含多个函数,每个函数可以执行一个特定的操作。
  • 并且Runnable Entity必须要挂在Task上,就像函数如果只是放在那里没有被调用的话,也不起作用,总归是要挂在某个Task上才会被运行

3.Port

Port是依附在SWC上的概念,Swc之间通过Port进行通信交互。Port可以分为PPort(ProvidedPort),RPort(RequiredPort)以及PRPort。

  • 其实也好理解,如果一个.C文件孤零零的放在那里,与别的C文件没有任何数据交互,那么作为一套代码中的一个C文件,根本没法发挥作用,所以必然在SWC上需要配置上或者输入(R-Port)的或者输出(P-Port)的Port。

Port之间进行数据交互最简单的方法就是“全局变量”。实际上,在配置好的代码中,可以发现,如果我为SWC1和SWC2之间配置了一个SR的interface的话,SWC1中会有一个函数Rte_Write(),里面会对一个全局变量进行赋值。而另一边SWC2的里面会有一个Rte_Read()的函数,来读取这个全局变量。通过这种方式,达到了数据的交互。

4.PortInterface

PortInterface是一个定义,相当于Java中的一个接口,Port即接口的具体实现类。PortInterface中可以定义Operation(Operation表示一个可以被调用的功能,一个PortInterface中可以定义多个Operation),由该PortInterface创建出来的Port,可以有选择的实现PortInterface中定义的Operation(通过RteEvent)。当通过Port调用一个Operation时,会触发Swc中的对应的RunnableEntry,该RunnableEntity会实现Operation的实际逻辑。

  • Operation:定义了可被调用的功能,主要用于组件间的接口定义。
  • RunnableEntity:定义了组件内部的执行逻辑,是RTE调度的基本单元。

两者之间的关系:Operation调用通常会触发相应组件中的RunnableEntity执行。Operation作为接口定义,而RunnableEntity则包含具体的实现逻辑。

5.Swc and multiple Instance

在这里插入图片描述

在AutoSAR中,一个软件组件可以具有多个实例,即在系统中可以多次实例化该软件组件。

SWC多实例的概念允许在汽车电子系统中多次使用同一种类型的软件组件。每个实例都代表一个独立的功能实体,具有自己的状态、行为和数据。这些实例可以在同一ECU(Electronic Control Unit)上或不同的ECU上运行,可以是相同的配置或不同的配置。

使用SWC多实例的主要优点包括:

  1. 复用性:可以在系统中多次使用相同类型的软件组件,提高了代码的复用性和可维护性。
  2. 灵活性:每个实例可以独立配置和管理,可以根据系统需求动态添加或移除实例。
  3. 并行性:多实例使得相同类型的功能可以并行运行,提高了系统的性能和响应能力。

SWC多实例的实现通常需要考虑实例之间的通信、数据共享、资源管理等方面的问题,以确保系统的稳定性和性能。 AUTOSAR提供了相应的标准和规范来支持SWC多实例的开发和集成。

multiple Instance

在AUTOSAR中,一个SWC(Software Component)可以类比为面向对象编程中的一个类。它包含了一组相关的功能、数据和操作。而多实例就像是对这个类的多次实例化,每个实例都拥有相同的结构和功能,但是它们是独立存在的。

实例句柄(instance handle)通常被用作一个标识符,用于区分不同的实例。在AUTOSAR中,为了管理这些实例并对其进行操作,通常将实例句柄作为第一个参数传递给SWC内部的各种操作函数。通过实例句柄,可以唯一地标识和访问每个实例,并且在调用操作时确保操作针对的是正确的实例。

因此,实例句柄充当了一个类似于对象的标识符,在调用操作时用于确定要操作的实例。这种设计可以有效地管理多个实例,确保它们在系统中的正确性和独立性。

6.SwConnector

AssemblySwConnector

用于同一个Composition Swc内的两个Swc之间连接
在这里插入图片描述

DelegationSwConnector

用于一个Composition Swc和另一个Composition Swc之间的连接
在这里插入图片描述

  • 28
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值