在AUTOSAR的第一阶段,预计只有车身/舒适、底盘和动力总成领域会有成果,其他领域优先级较低。
4.AUTOSAR架构
AUTOSAR架构中的软件组件(SW-C)通过虚拟功能总线(Virtual Functional
Bus)进行通信。
每个ECU(电子控制单元)都有自己的系统配置提取(ECU Extract of System Configuration),这是从系统配置描述中提取的信息,专门针对该ECU。
4.1 AUTOSOSAR SW-C
AUTOSOSAR软件组件封装了一个运行在AUTOSOSAR基础设施上的应用程序。AUTOSOSAR
SW-C具有明确定义的接口,这些接口被描述并标准化。
– SW-C 描述
对于AUTOSOSAR软件组件的接口以及其他所需的集成方面,AUTOSOSAR提供了一种标准的描述格式(SW-C描述)。
4.2 虚拟功能总线(VFB)
VFB是AUTOSAR在抽象 (技术独立) 级别上提供的所有通信机制 (以及与基本软件的接口) 的总和。定义了具体系统的连接后,VFB允许在早期开发阶段进行虚拟集成。
4.3 系统约束和ECU描述
为了将AUTOSAR SW组件集成到ECU网络中,AUTOSAR为系统以及ECU的资源和配置提供了描述格式。
– AUTOSAR架构: 在ecu上映射
AUTOSAR定义了构建具体的ecu系统的方法和工具支持。这包括在每个ECU上配置和生成运行时环境
(RTE) 和基本软件 (RTOS)。
4.4 运行时环境 (RTE)
从AUTOSAR软件组件的角度来看,RTE在特定ECU上实现VFB功能。
4.5 基础软件
基本软件提供在ECU上执行的基础设施。
AUTOSAR软件组件,AUTOSAR的基本概念是: 应用程序和基础设施之间的分离。AUTOSAR中的应用程序由通过连接器相互连接的软件组件组成。
5.AUTOSAR Component
5.1 通用 “AUTOSAR Component” 概念
• AUTOSAR软件组件
• 传感器/执行器软件组件 (特殊情况)。
• 组合 - 组件的逻辑互连。与原子软件组件相比,组合中的组件可以分布在多个ecu上。
• ECU抽象
• Complex Device Driver
• AUTOSAR服务。
每个AUTOSAR软件组件封装了应用程序的部分功能。-AUTOSAR不规定软件组件的粒度。根据应用程序域的要求,AUTOSAR软件组件可能是一个小的、可重用的功能
(如过滤器),也可能是封装整个syb system的较大块。
AUTOSAR软件组件是 “原子软件组件” 原子意味着AUTOSAR软件组件的每个实例被静态地分配给一个ECU。
实现AUTOSAR软件组件
Autosar并未规定应如何实现AUTOSAR软件组件-组件可以是手写的或从模型生成的。
装运一个AUTOSAR软件组件
AUTOSAR软件组件的装运包括:
• 完整和正式的软件组件说明,其中指定了必须如何为组件配置基础结构,以及
• 组件的实现,可以作为 “目标代码” 或 “源代码” 提供。
AUTOSAR软件组件说明包含:
• 软件组件提供和需要的操作和数据元素
-使用Port Interface概念进行描述
• 对基础设施的要求,
• 软件组件所需的资源 (内存,CPU时间等),
• 有关软件组件的具体实现的信息。
• 此描述的结构和格式称为 “软件组件模板”。
源代码组件实现独立于:
- ECU的微控制器类型和组件映射在其上的ECU类型。
• AUTOSAR基础设施负责为软件组件提供关于ECU硬件的标准化视图
- 与之交互的其他组件的位置。组件描述定义它提供或需要的数据或服务。该部件不知道它们是从相同ECU上的部件还是从不同ECU上的部件提供的。
- 软件组件在系统中或在一个ECU中实例化的次数。
5.2 AUTOSAR 组件描述级别
最高 (最抽象) 的描述级别是虚拟功能总线。这里用数据类型和接口、端口和它们之间的连接以及分层组件的方式来描述组件。在这个层面上表达了组件的基本通信特性及其相互之间的通信关系。
-软件组件
-组合
-接口
RTE级别的组件描述: 中间级别允许给定组件的行为描述。此行为通过RTE概念表示,例如RTE事件和可调度单元。例如,对于在VFB上的接口中定义的操作,该行为指定由于该操作的调用而激活了哪些单元。
-Runnables
-事件
-与运行时环境的交互
实现级别的组件描述: 描述的最低 (最具体) 级别指定给定行为的实现。更准确地说,这种行为的可调度单元被映射到代码。上面的两层限制了组件提供的RTE
API,现在的实现利用了这个API。
-组件实现
-sw组件的资源消耗
6. 面向组件的设计
什么是SW组件?可重用的自包含artefact实现具有给定属性的功能。
6.1 组件结构关键概念: 信息隐藏和封装
组件依赖关系以接口和端口的形式描述,不存在任何内部隐藏的依赖关系。因此,理论上来说,只要组件实现了相同的逻辑并向其余系统提供相同的公共通信接口,它们就可以相互替代。一旦利用软件组件模板定义了一个组件,一种新的组件类型就被定义出来了。这种组件可以在系统内任意次数地使用,也可以在不同的系统中使用。组件是在虚拟功能总线上开发的,这是一种不直接依赖于
ECU 和通信总线的抽象通信通道,它们不得直接调用操作系统或通信硬件。
—— 因此,它们是可以迁移的,并且可以在开发过程的后期阶段部署到 ECU 上。
6.2 组件、端口和接口
一个组件具有明确定义的端口,组件具有定义明确的端口,组件可以通过这些端口与其他组件进行交互。通过这些端口,端口始终只属于一个组件,并表示组件与其他组件之间的交互点。为了定义组件端口所提供的或需要的服务,引入了AUTOSAR接口的概念。AUTOSAR接口可以是
– 客户端-服务器接口,定义一组可以调用的操作
– 发送者-接收者接口,适用于数据导向的通信
端口可以是:
- PPort(提供的接口)
- RPort(所需接口)
当PPort提供一个接口时,属于该端口的组件:
- 提供"客户端-服务器接口"中定义的操作的实现。
- 生成"数据导向发送者-接收者接口"中描述的数据。
当组件的RPort需要一个AUTOSAR接口时,组件可以:
- 当接口是一个客户端-服务器接口时,调用操作。
- 读取发送者-接收者接口中描述的数据元素。
6.3 通信模式
6.3.1. 概述
基本通信模式
客户端-服务器
发送方-接收方
接口规范
指定发送方接收方通信传输的信息
指定哪些服务可以通过客户端服务器通信调用
接口的正式描述在软件组件模板中,包括可以使用的数据类型和接口兼容性。
基本通信模式的详细行为由属性指定。通过这些属性,例如数据队列的长度和接收方的行为(阻塞、非阻塞等)以及发送方(周期发送等)可以被定义。
6.3.2 客户端-服务器通信
服务器是服务的提供者,而客户端是服务的使用者。客户端发起通信,请求服务器执行一项服务,如有必要则传送一组参数。服务器等待来自客户端的通信请求,执行所请求的服务,并向客户端的请求分发响应。启动方向用于分类AUTOSAR软件组件是客户端还是服务器。单个AUTOSAR软件组件可以根据软件实现既是客户端又是服务器。在服务请求发出后直到收到服务器的响应期间,客户端可以被阻止(同步通信)或不被阻止(异步通信)。
在VFB模型视图中由三个软件组件和两个连接组成的客户端-服务器通信示例。
6.3.3 发送方-接收方通信
模型用于异步分布信息的情况,其中发送者将信息分发给一个或多个接收者。发送者不会被阻塞(异步通信),也不会期望或接收到接收者的响应(数据流或控制流),发送者只是提供信息,接收者自主决定何时以及如何使用它。
分配信息的责任在于通信基础设施。发送者不知道接收者的身份或数量。
在AUTOSAR中如何建模发送方-接收方通信的示例
6.4. AUTOSAR组件、接口和端口
组件模型中组件、端口和接口的可视化表示
6.4.1 AUTOSAR组件: 连接
两个组件最终通过将一个组件的p端口连接到另一个组件的兼容r端口来连接。
- 该模型表明,可以定义没有任何端口的组件,这似乎违反直觉,但这只适用于完全自包含的组件。
端口是否实际兼容是由“PortInterface”描述的。如稍后所示,这些端口接口声明了各自端口所需和服务的数据元素。
端口接口有一个名为 “isService” 的属性。此标志指示接口中描述的服务或数据实际上是由AUTOSAR服务而不是其他AUTOSAR组件提供的。
6.4.2 AUTOSAR组件: 通信行为
AUTOSAR软件组件通过虚拟功能总线进行通信。他们需要表达交换数据的需求和能力的方式,这目前可以通过两种类型的属性来实现:
通信属性,允许指定影响RTE生成或实时实际通信的通信参数。这种属性的一个例子就是上述的通过连接器的传输时间。
应用级别属性,允许描述不影响RTE生成的交换数据的特性,而是指示开发人员如何处理数据。这种属性的一个例子就是一个标志,表示数据是“过滤”的还是“原始”的。
6.4.3 AUTOSAR组件: 传感器/执行器组件
传感器/执行器组件是特殊的AUTOSAR软件组件,它们封装了微控制器的依赖关系(这在MCAL中完成,即微控制器抽象层,它是运行在ECU上的AUTOSAR基础设施的一部分)和电子元件的依赖关系(这由ECU-抽象处理,也是AUTOSAR基础软件的一部分)。
典型的从物理信号到软件信号 (例如汽车速度) 和返回 (例如汽车灯) 的转换过程。
AUTOSAR基础设施并不隐藏传感器和执行器的具体细节。对特定传感器和/或执行器的依赖是在“传感器/执行器软件组件”中处理的,这是一种特殊类型的软件组件。此类组件独立于其映射的ECU,但取决于为其设计的特定传感器和/或执行器。
- 例如,“传感器组件组件”通常输入ECU输入引脚处的电信号的软件表示形式(例如,由传感器产生的电流),并输出传感器测量的物理量(例如,汽车速度)。
通常,由于性能问题,此类组件需要在其对应的传感器/执行器物理连接的ECU上运行。
6.4.4 虚拟功能总线 (VFB)
虚拟功能总线是整个车辆的AUTOSAR软件组件互连的抽象。可以独立指定不同软件组件之间以及软件组件与其环境
(例如硬件驱动程序,操作系统,服务等) 之间的通信。可以独立于任何底层硬件 (例如通信系统) 指定。VFB的功能由通信模式提供。
从AUTOSAR软件组件的VFB查看端口,可以连接复杂的设备驱动程序,ECU抽象和AUTOSAR服务。复杂的设备驱动程序,ECU抽象和AUTOSAR服务是基本软件的一部分。