在AUTOSAR的第一阶段,预计只有车身/舒适、底盘和动力总成领域会有成果,其他领域优先级较低。
4.AUTOSAR架构
AUTOSAR架构中的软件组件(SW-C)通过虚拟功能总线(VirtualFunctionalBus)进行通信。
每个ECU(电子控制单元)都有自己的系统配置提取(ECUExtractofSystemConfiguration),这是从系统配置描述中提取的信息,专门针对该ECU。
4.1AUTOSOSARSW-C
AUTOSOSAR软件组件封装了一个运行在AUTOSOSAR基础设施上的应用程序。AUTOSOSARSW-C具有明确定义的接口,这些接口被描述并标准化。
–SW-C描述
对于AUTOSOSAR软件组件的接口以及其他所需的集成方面,AUTOSOSAR提供了一种标准的描述格式(SW-C描述)。
4.2虚拟功能总线(VFB)
VFB是AUTOSAR在抽象(技术独立)级别上提供的所有通信机制(以及与基本软件的接口)的总和。定义了具体系统的连接后,VFB允许在早期开发阶段进行虚拟集成。
4.3系统约束和ECU描述
为了将AUTOSARSW组件集成到ECU网络中,AUTOSAR为系统以及ECU的资源和配置提供了描述格式。
–AUTOSAR架构:在ecu上映射
AUTOSAR定义了构建具体的ecu系统的方法和工具支持。这包括在每个ECU上配置和生成运行时环境(RTE)和基本软件(RTOS)。
4.4运行时环境(RTE)
从AUTOSAR软件组件的角度来看,RTE在特定ECU上实现VFB功能。
4.5基础软件
基本软件提供在ECU上执行的基础设施。
AUTOSAR软件组件,AUTOSAR的基本概念是:应用程序和基础设施之间的分离。AUTOSAR中的应用程序由通过连接器相互连接的软件组件组成。
5.AUTOSARComponent
5.1通用“AUTOSARComponent”概念
AUTOSAR软件组件
传感器/执行器软件组件(特殊情况)。
组合-组件的逻辑互连。与原子软件组件相比,组合中的组件可以分布在多个ecu上。
ECU抽象
ComplexDeviceDriver
AUTOSAR服务。
每个AUTOSAR软件组件封装了应用程序的部分功能。-AUTOSAR不规定软件组件的粒度。根据应用程序域的要求,AUTOSAR软件组件可能是一个小的、可重用的功能(如过滤器),也可能是封装整个sybsystem的较大块。
AUTOSAR软件组件是“原子软件组件”原子意味着AUTOSAR软件组件的每个实例被静态地分配给一个ECU。
实现AUTOSAR软件组件
Autosar并未规定应如何实现AUTOSAR软件组件-组件可以是手写的或从模型生成的。
装运一个AUTOSAR软件组件
AUTOSAR软件组件的装运包括:
完整和正式的软件组件说明,其中指定了必须如何为组件配置基础结构,以及
组件的实现,可以作为“目标代码”或“源代码”提供。
AUTOSAR软件组件说明包含:
软件组件提供和需要的操作和数据元素
-使用PortInterface概念进行描述
对基础设施的要求,
有关软件组件的具体实现的信息。
此描述的结构和格式称为“软件组件模板”。
源代码组件实现独立于:
-ECU的微控制器类型和组件映射在其上的ECU类型。
AUTOSAR基础设施负责为软件组件提供关于ECU硬件的标准化视图
-与之交互的其他组件的位置。组件描述定义它提供或需要的数据或服务。该部件不知道它们是从相同ECU上的部件还是从不同ECU上的部件提供的。
-软件组件在系统中或在一个ECU中实例化的次数。
5.2AUTOSAR组件描述级别
最高(最抽象)的描述级别是虚拟功能总线。这里用数据类型和接口、端口和它们之间的连接以及分层组件的方式来描述组件。在这个层面上表达了组件的基本通信特性及其相互之间的通信关系。
-软件组件
-组合
-接口
RTE级别的组件描述:中间级别允许给定组件的行为描述。此行为通过RTE概念表示,例如RTE事件和可调度单元。例如,对于在VFB上的接口中定义的操作,该行为指定由于该操作的调用而激活了哪些单元。
-Runnables
-事件
-与运行时环境的交互
实现级别的组件描述:描述的最低(最具体)级别指定给定行为的实现。更准确地说,这种行为的可调度单元被映射到代码。上面的两层限制了组件提供的RTEAPI,现在的实现利用了这个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.1AUTOSAR组件:连接
两个组件最终通过将一个组件的p端口连接到另一个组件的兼容r端口来连接。
-该模型表明,可以定义没有任何端口的组件,这似乎违反直觉,但这只适用于完全自包含的组件。
端口接口有一个名为“isService”的属性。此标志指示接口中描述的服务或数据实际上是由AUTOSAR服务而不是其他AUTOSAR组件提供的。
6.4.2AUTOSAR组件:通信行为
AUTOSAR软件组件通过虚拟功能总线进行通信。他们需要表达交换数据的需求和能力的方式,这目前可以通过两种类型的属性来实现:
应用级别属性,允许描述不影响RTE生成的交换数据的特性,而是指示开发人员如何处理数据。这种属性的一个例子就是一个标志,表示数据是“过滤”的还是“原始”的。
6.4.3AUTOSAR组件:传感器/执行器组件
传感器/执行器组件是特殊的AUTOSAR软件组件,它们封装了微控制器的依赖关系(这在MCAL中完成,即微控制器抽象层,它是运行在ECU上的AUTOSAR基础设施的一部分)和电子元件的依赖关系(这由ECU-抽象处理,也是AUTOSAR基础软件的一部分)。
典型的从物理信号到软件信号(例如汽车速度)和返回(例如汽车灯)的转换过程。
AUTOSAR基础设施并不隐藏传感器和执行器的具体细节。对特定传感器和/或执行器的依赖是在“传感器/执行器软件组件”中处理的,这是一种特殊类型的软件组件。此类组件独立于其映射的ECU,但取决于为其设计的特定传感器和/或执行器。
-例如,“传感器组件组件”通常输入ECU输入引脚处的电信号的软件表示形式(例如,由传感器产生的电流),并输出传感器测量的物理量(例如,汽车速度)。
通常,由于性能问题,此类组件需要在其对应的传感器/执行器物理连接的ECU上运行。
6.4.4虚拟功能总线(VFB)
虚拟功能总线是整个车辆的AUTOSAR软件组件互连的抽象。可以独立指定不同软件组件之间以及软件组件与其环境(例如硬件驱动程序,操作系统,服务等)之间的通信。可以独立于任何底层硬件(例如通信系统)指定。VFB的功能由通信模式提供。
从AUTOSAR软件组件的VFB查看端口,可以连接复杂的设备驱动程序,ECU抽象和AUTOSAR服务。复杂的设备驱动程序,ECU抽象和AUTOSAR服务是基本软件的一部分。