![]() 以下内容来源于《汽车电子与软件》,作者:刘向 一 AUTOSAR 平台逻辑体系结构 ![]() 图示逻辑体系结构描述了平台是如何组成的,有哪些模块,模块之间的接口是如何工作的。
在软件开发过程阶段,CP与AP都主要都包括以下三个阶段:
二 AUTOSAR AP平台逻辑体系结构 AP AUTOSAR的核心是自适应应用程序(Adaptive Application),它是一种可以根据运行时环境动态调整的软件组件。那么,AP AUTOSAR是如何定义和管理自适应应用程序的呢?下面将为你介绍AP AUTOSAR的逻辑视图和功能集群,详解自适应应用程序的运行环境。
AP AUTOSAR的运行环境是一种软件平台,它提供了自适应应用程序所需的基础服务,如通信,配置,诊断,安全等。运行环境由多个服务层(Service Layer)组成,每个服务层提供了一类特定的服务。服务层之间通过面向服务架构(Service Oriented Architecture, SOA)进行交互,即通过发布-订阅模式(Publish-Subscribe Pattern)进行异步消息传递。运行环境可以在不同的硬件平台和操作系统上运行,通过硬件BSP进行适配。 ![]() 自适应平台采用模块化软件体系结构。它比经典分层软件架构更模块化,反映了平台的动态特性。这种动态性也是平台的核心需求; AP遵循面向服务的架构,SOA设计理念,充分利用各种开源软件成熟技术,重用软件市场成熟组件,缩短开发周期。在ECU的生命周期内有独立更新应用程序的能力。 三 Adaptive Platform Architecture AP AUTOSAR的逻辑视图体现了其相应的体系结构,如下图所示: ![]() AP AUTOSAR的逻辑视图体现了其相应的体系结构,如下图所示: lAA(Adaptive Application) 自适应应用程序运行在AUTOSAR Runtime for Adaptive Applications (ARA)之上,用于实现碰撞预警、车道保持、自动驾驶等复杂的汽车功能。AA可以使用C 语言编写,也可以使用模型驱动开发(Simulink)工具生成。 lARA(AUTOSAR Runtime for Adaptive applications) 自适应应用程序的运行平台:提供了AA所需的运行时环境,包括内存管理、进程管理、文件安全读写、日志记录等。ARA由功能集群(Functional Clusters,FCs)提供的应用程序接口组成,这些群集属于Adaptive Foundation或Adaptive Services。Adaptive Foundation提供了AP的基本功能,而Adaptive Services提供了AP的平台标准服务。 lAdaptive Foundation 提供了AP AUTOSAR的基础功能,如服务发现、事件发布订阅、请求回复、持久化数据管理等。这些服务主要是为了实现AA之间以及AA与外部系统之间的面向服务的通信(Service-Oriented Communication,SOC),基于以太网和SOME/IP协议。此外,还包括操作系统接口、执行管理、平台健康管理(看门狗)、网络管理、诊断通信、时间同步等。这些功能主要是为了支持ARA和AA的运行。 lAdaptive Services 提供了AP AUTOSAR的标准服务,状态管理(特定于项目实现),网络管理,更新配置管理(UCM)即我们比较熟悉的运行时软件更新(OTA)。
四 Adaptive AUTOSAR 术语——Machine Adaptive AUTOSAR是一种基于服务的软件平台,它支持高性能、灵活和可更新的汽车应用程序。
![]() 一个重要的概念是,AUTOSAR的作用域是Machine,也就是运行环境所依赖的物理资源。每个Machine都有自己独立的功能集群和服务,它们可以实现不同的汽车应用程序。AUTOSAR也允许在同一个Machine上运行一些非AUTOSAR的进程,但是这些进程不受AUTOSAR平台实例的管理和约束。 ![]() adaptive autosar machine的启动过程包括哪几个步骤? adaptive autosar machine的启动过程包括哪几个步骤?
Adaptive application(AA):承载Service的应用实体
AUTOSAR使用ARXML格式文件进行建模 :
adaptive autosar machine的启动过程涉及到以下几个概念:
清单有三种不同的类型,分别是: Execution Manifest Execution Manifest在设计期间创建,提供应用部署所需的信息,定义每个可执行文件实例化几个进程(几次),每个进程的的启动参数、环境变量、UID/GID、资源组、调度策略、何时启动、停止等都可以独立配置。 ![]() 在RTA-VRTE中配置Execution Manifest 添加一个AA进程我们需要做几方面的配置:
2.选择AA将要部署在哪个Machine上
4.AA进程的Log模块配置
Machine Manifest Machine Manifest实际运行在特定硬件(机器)上的adaptive平台实例的配置,它包含了 machine属性,特性(资源,功能安全,信息安全等),例如machine state、function group state、resource group、访问权限组、SOME/IP配置、内存分区、硬件资源,如处理器和核心等等。
![]() 在RTA-VRTE中配置Machine Manifest 在ARXML文件中,我们可以配置Machine的以下属性和特征:
下表展示了Machine和Machine Design的关系: ![]() 每个Machine都需要至少一个IP配置,因为在网络中,每个Machine都是一个独立的end point。IP配置包括IP地址、子网掩码、网关等信息,用于标识和定位Machine。没有IP配置,Machine就无法与其他Machine或设备进行通信。 软件集群(software cluster)一种原子的、可更新的、可扩展的软件单元,由一个或多个进程组成,实现了一组特定的功能或应用程序。软件集群的作用是将应用程序和服务按照功能或特性进行分组和管理,提高了开发和部署的灵活性和效率。 软件集群通常需要配置以下几项内容: 功能组(Function group) 用来说明软件集群包含了什么样的功能,比如导航、泊车、通讯等。 进程 用来执行具体的软件代码,比如导航进程、泊车进程、通讯进程等。一个软件集群可以包含多个进程,但是它们要有相同的功能组。 设计(software cluster design) 用来描述软件集群的结构和属性,比如名称、版本、大小、依赖关系等。 software cluster design需要和MachineDesign相关联
·在MachineFG中添加Machine的四种状态:Off、Startup、Restart、shutdown,并将MachineFG设置初始状态为OFF。 ![]() 下表展示了功能组和状态的关系: ![]() ![]() MachineFG Function Group Transitions 功能组是一种逻辑分组,用于将具有相同或相似功能的进程聚合在一起。功能组可以有多个状态,表示该功能组所包含的进程的运行情况。执行管理根据功能组的状态,决定是否启动或停止该功能组所包含的进程。这样可以提高执行效率,节省资源,实现动态调度。 ![]() Service Instance Manifest Service Instance Manifest 主要包含面向服务通信的配置信息 ,描述针对特定的传输协议(如SOME/IP),进行面向服务通信的配置和可执行代码绑定(服务实例到机器的映射、服务实例到应用端点的映射),还包含基于服务的通信相关信息,如应用层及相应的传输层、网络层通信参数信息。 ![]() 在RTA-VRTE中配置Service Instance Manifest Processed Manifest Execution Manifest和Machine Manifest可以从原始的标准化ARXML转换为特定于平台的格式(称为Processed Manifest处理清单),在机器启动时可以有效地读取。 格式转换可以在集成时在板外或部署时进行,也可以在安装时在机器上(通过更新和配置管理)进行。 借着状态转换图来介绍一下AP AUTOSAR中用来描述Machine和功能集群的状态和行为的process state, Execution state, Function Group State, Machine State概念。 ![]() 它们的含义如下: process state: 进程状态,是指一个功能集群(Function Group)内部的一个进程(Process)或者一个AA的生命周期状态。进程状态有四种可能的值:未创建(NotCreated)、创建中(Creating)、已创建(Created)和销毁中(Destroying)。进程状态由进程管理(Process Management)模块控制和监视。 Execution state: 执行状态,是指一个功能集群(Function Group)内部的一个进程(Process)或者一个AA的运行状态。执行状态有四种可能的值:未启动(NotStarted)、启动中(Starting)、运行中(Running)和停止中(Stopping)。执行状态由执行管理(Execution Management)模块控制和监视。 Function Group State: 功能组状态,是指一个功能集群(Function Group)的整体状态,它反映了该功能集群内部所有进程或自适应应用程序的执行状态的综合情况。功能组状态有五种可能的值:未启动(NotStarted)、启动中(Starting)、运行中(Running)、停止中(Stopping)和已停止(Stopped)。功能组状态由状态管理(State Management)模块控制和监视。 Machine State: 机器状态,是指一个Machine的整体状态,它反映了该Machine上所有功能集群的功能组状态的综合情况。机器状态有几种可能的值:未启动(Off)、启动(Startup)、关机(Shutdown)和重启(Restart)。机器状态通常会引用功能组状态。 ![]() 状态金字塔 五 Adaptive AUTOSAR 平台架构 在AP架构下,同一台机器上的自适应应用程序都实现为一个独立的进程,都有自己的逻辑内存和命名空间相互隔离,以确保相互不受干扰。这是由操作系统的MMU内存管理单元提供的。这也是AP模块化的由来。 ![]()
AP平台需要提供相关模块的SDK和守护进程等。应用程序可以调用SDK提供的API来调用模块的功能,比如应用程序之间的通信,我们可以调用COM模块提供的API,可以进行片内或片间通信。
应用程序的加载/启动是通过使用EM的功能进行管理的,并且需要在系统集成或运行时进行适当的配置才能启动应用程序,软件功能在运行时才可以确定。从EM的角度来看,所有功能集群都是应用程序。 ![]() ![]() Adaptive autosar是一种用于高性能计算ECU的软件平台,它支持自适应应用程序的开发和运行¹。它由两部分组成:基础(Foundation)和服务(Service)。基础包括了操作系统接口、执行管理、网络管理、识别访问管理、加密、更新和配置管理等功能。服务包括了通信管理、RESTful、时间同步、诊断、状态管理、持久性、平台健康管理、日志和跟踪等功能。 Adaptive autosar各模块的功能如下: 执行管理 execution management (EM) ![]() 功能描述:EM负责系统执行管理的所有方面,包括平台初始化和应用的启动和关闭。EM和OS一起工作执行应用运行时间的调度。
状态管理(State Management) ![]() 功能描述: SM模块(State Management)是一种实现状态管理和事件处理功能的软件组件。SM模块负责所有和AP平台运行状态相关的方面。 主要功能: ▸处理输入的事件,如诊断请求、唤醒事件、错误恢复等,并根据事件类型和优先级来设置内部状态。
▸ 根据状态更改启动/停止应用程序
▸ 与ara::diag, ara::exec, ara::nm & ara::ucm模块的交互 ![]() 执行管理与SM的交互 核心类型:Core TYPES: 功能描述:
·全局初始化函数,ara::core::Initialize和ara::core:: Deinitialize,此调用必须在main()内部进行。 操作系统接口OSI 功能描述:
通信管理(Communication Management) ![]() 功能描述: 通信管理模块是一个用于实现服务导向通信的模块,它支持多种通信协议,如SOME/IP, DDS, IPC等。 ![]() 主要功能:
诊断管理(Diagnostics) ![]() 功能描述:
网络管理(Network Management) ![]() Architecture overview with example applications 功能描述: NM是一种网络管理机制,用于控制和协调负责协调内部协调状态机中基础网络(部分网络,VLAN或物理通道)的正常运行和总线睡眠模式之间的转换。它的目的是在满足ECU节点正常通信需求的情况下,又能节省汽车蓄电池电量。 ![]() Overview Of Network Management 主要功能:
身份识别访问管理(Identify Access Management) ![]() 功能描述: 身份识别访问管理块(IAM)是一种实现基于策略的访问控制功能的软件组件。IAM模块为应用程序提供权限隔离以及受攻击时权限越级的保护功能,同时,IAM模块还能方便集成人员在部署时就能验证应用对于资源的访问权限。 主要功能: 1.访问控制决策:IAM模块通过Policy Decision Point(PDP)基于访问控制策略来决定应用是否被允许执行请求动作。访问控制策略是一些约束条件,描述了访问特定资源或服务需要哪些Capability。Capability是应用身份信息的一个属性,在定义Application Manifest时,开发者为每个应用分配对应的Capability。
3.应用身份识别:IAM模块通过Execution Management(EM)模块获取应用身份信息,以便进行访问控制决策和执行。EM模块会根据模型信息,去创建Adaptive应用的运行实例,所以EM也需要去负责追踪运行进程的属性,也即正在运行的应用的PID、UID、Key或UUID。 加密(Cryptography) ![]() High level architecture of Cryptography 功能描述:
日志和跟踪(Log & Trace) ![]() 功能描述: 一种实现日志记录和追踪功能的软件组件。Log模块可以在开发期间以及生产中和生产后使用日志记录和追踪功能,以便对自适应平台的运行状态进行监测和分析。 主要功能: ▸ 本地日志 (输出到控制台或文件)日志记录,Log模块提供了一系列标准化的方法,用于向不同的日志接收器发送日志信息,例如通信总线、系统上的文件和串行控制台等。Log模块支持多种日志级别,例如错误、警告、信息、调试等,以及多种日志格式。Log模块还可以自动在日志信息中添加时间戳和其他元数据,以便进行排序和过滤。 ▸ 远程日志记录(使用DLT协议),Log模块提供了一种基于DLT协议的追踪功能,用于对自适应平台的运行时行为进行分析和优化。DLT协议是一种标准化的交付和表示格式,可以将日志信息打包为标准化的帧,并添加一些额外的信息,例如ECU ID、软件集群ID等。Log模块可以将LT帧发送到追踪工具或其他设备,以便进行可视化和分析。 更新配置管理UCM ![]() 功能描述:
PHM模块(Platform Health Management) 功能描述:
持久化(Persistence) ![]() 功能描述:
▸ 持久数据的安装、更新和回滚(Installation, Update and Rollback of Persistent Data) 时间同步(ara::tsync) 功能描述:
入侵检测系统管理(ara::idsm) ![]() IDS Overview 功能描述:
防火墙(ara::fw) ![]() Architecture of the FC Firewall (图片来自AUTOSAR官网) 功能描述:
![]() 更多信息请访问 www.etas.cn |
|