AUTOSAR架构中的应用层
AUTOSAR 应用层构成AUTOSAR 架构中的最顶层,被认为对所有车辆应用至关重要。AUTOSAR 标准使用“组件”概念指定应用层实现。
在谈论应用层实现时,应该考虑的三个最重要的部分是:
- AUTOSAR 应用软件组件
- 这些组件的 AUTOSAR 端口
- AUTOSAR 端口接口
AUTOSAR应用软件组件:典型的E2E(端到端)功能包括许多互连的AUTOSAR应用软件组件(SW-C)。应用软件组件构成具有某些功能的应用程序的最简单形式。AUTOSAR 定义了与开发汽车应用程序所需的所有应用程序软件组件相关的标准化接口。
这些软件组件通过明确定义的端口进行连接。这些端口有助于软件组件之间以及与AUTOSAR BSW之间的通信。在应用程序软件组件的上下文中,有一些称为 Runnable 的实体,它们基本上是包含软件组件实际实现的过程。
可运行或可运行实体在 VFB 规范中定义,并且是原子软件组件的一部分(在后面的部分中描述)。Runnable 被定义为由组件给出并由 RTE 执行的最小代码片段或指令序列。可运行实体可以循环触发,也可以在数据接收等事件期间触发。
AUTOSAR SWC 只能被视为一个原子实体,这意味着 AUTOSAR SWC 的每个实例仅分配给一个 ECU,并且不能分布在多个 ECU 上。
AUTOSAR应用层软件组件类型
要更详细地了解 AUTOSAR 软件组件,了解应用层中可用的 AUTOSAR SW-C 的各种类型至关重要
- 传感器/执行器软件组件(Sensor/Actuator Software Component):一种 AUTOSAR 软件组件,用于处理传感器评估和执行器控制功能。这个特定的 AUTOSAR 软件组件取决于相关的传感器/执行器,并且独立于它所映射到的特定 ECU。
- 应用软件组件(Application Software Component):应用软件组件是实现应用程序(的一部分)的原子软件组件。原子软件组件无法分解为更小的单元,只能分配给一个 ECU。
- 校准参数组件(Calibration Parameter Component):该组件提供校准参数值。
- 服务组件(Service Component):它通过标准化接口提供标准化服务,并且可以直接与某些其他BSW模块交互
- ECU 抽象组件(ECU-Abstraction Component):它提供对 ECU 特定 IO 功能的访问
- 复杂设备驱动程序组件(Complex Device Driver Component):它概括了 ECU 抽象组件。它可以定义端口以特定方式与其他组件交互,也可以直接与其他基础软件模块交互。
- NVBlock 软件组件(NVBlock Software Component):它允许软件组件访问非易失性数据。
- 复合软件组件(Composite Software Component):复合组件提供其他组件的逻辑互连,这些组件可以是原子的也可以是复合的。这些组件称为原型,通常不需要部署在同一 ECU 上。相反,这些可以分布在多个 ECU 上。
AUTOSAR 端口: AUTOSAR 软件组件使用定义明确的端口,这些端口封装了某些接口,以保证组件相互通信时的类型安全。
端口映射到单个组件并表示组件之间的通信点。这种组件间通信由虚拟功能总线 (VFB) 管理。
APPL 端口:
1、客户端-服务器接口(SR Send/Receiver Port):该接口定义了一组可以基于客户端-服务器模式调用的操作。这里客户端发起通信,并请求服务器执行服务。服务器执行请求服务并发送对请求的响应。消息发起的方向可用于识别 AUTOSAR 软件组件是客户端还是服务器。在下图中,客户端 AUTOSAR SWC(分别为客户端 1 和 2)通过 RPort(请求端口)请求服务,该服务被发送到服务器 AUTOSAR SWC,服务器通过 PPort(提供者端口)提供所需的服务。
2、发送者-接收者接口(CS Client/Server Port):该接口定义了异步信息分发,并允许通过虚拟功能总线进行更加面向数据的信息交换。
软件组件之间的通信 (SW-C)
在 AUTOSAR 应用程序的设计期间,VFB 用于管理软件组件之间的通信。该虚拟总线将应用程序从基础设施中抽象出来。VFB是一个抽象组件,通常由运行时的运行时环境(RTE)表示,并为AUTOSAR系统中的每个ECU唯一生成。VFB 连接设计模型中的各个 SWC。
VFB通过专用端口进行通信,这意味着应用软件的通信接口必须映射到这些端口。VFB 处理各个 ECU 内部和 ECU 之间的通信。
应用软件组件之间的通信可以是:ECU 间或者ECU内
如上图所示。应用软件组件之间的 ECU 间和 ECU 内通信均通过 RTE 进行管理。
ECU I 和 ECU II 之间的交互是ECU 间通信的一个示例,通过 RTE 及其之下进行,并通过基本软件模块进行。BSW 处理与内存交互、诊断等功能,以及用于 ECU 间通信的通信服务(如果需要)。
ECU 内部通信,即 ECU 内软件组件 B (SW-C B) 和软件组件 C (SW-C C) 之间的通信,完全通过 RTE 进行。从图中可以明显看出,软件映射到单个 ECU 的组件使用 ECU 内方法。
RTE 的作用: RTE 为 AUTOSAR 软件组件 (SWC) 提供统一的环境,从而使 AUTOSAR 软件组件的实现独立于可用的通信机制。
应用层通过RTE的发送端和接收端与底层交换数据。每当 AUTOSAR 软件组件调用服务对象时,RTE 就会将这些请求映射到本地 ECU 上的实际服务对象符号。