基于PREEvision的AUTOSARAdaptive设计
导读:
为适应汽车智能化、⽹联化等的发展趋势,应对汽车E/E系统开发⾯临的⾼性能处理器的应⽤、⾃动驾驶的软件实现、⾼带宽通信需求、车与外界的互联互通等的挑战,AUTOSAR组织推出了AUTOSAR Adaptive。本⽂将重点讨论基于PREEvision的AP设计流程。
AUTOSAR Adaptive概述
2003年,汽车⾏业的⾼端玩家们发起了汽车嵌⼊式系统软件架构标准化项⽬——AUTOSAR(汽车开放系统架构)。2017年,为适应汽车的发展趋势(智能化、⽹联化等),应对汽车E/E系统开发⾯临的新的挑战(⾼性能处理器的应⽤,⾃动驾驶的软件实现,⾼带宽通信需求,车与外界的互联互通等),AUTOSAR组织推出了AUTOSAR Adaptive。
于是,在AUTOSAR的体系内有了两⼤概念:AUTOSAR Classic Platform(后⾯将简称CP)和AUTOS
AR Adaptive Platform(后⾯将简称AP)。AP的出现并不会取代CP,⽽是⼀种补充。⽬前,AP主要应⽤于MPU(Microprocessor Unit),CP则应⽤于MCU(Microcontroller Unit)。关于CP的详细介绍请参考我们的《浅谈AUTOSAR架构及开发⽅法》。
在不同的语境下,AP有不同的含义。⾸先AP是⼀个标准,它标准化了软件开发的⽅法论,软件分层结构,软件模块之间的接⼝以及编程语⾔,⽬前该标准的最新版本是R19.11(2019年11⽉发布)。从软件实现的⾓度,AP是⼀个运⾏在POSIX操作系统上的基础软件平台,也可称为⼀种平台级的中间件,其核⼼是ARA(AUTOSAR Runtime for Adaptive Application)。
AUTOSAR Adaptive架构图
( 图⽚源⾃AUTOSAR_EXP_PlatformDesign R19.11)
ARA是应⽤程序(AP中称为Adaptive Application)运⾏时的基础环境,可以提供多种本地功能供应⽤程序调⽤,这些本地功能在AP中统称为Function Clusters,其分为两个部分:Foundation Function Clusters和Service Function Clusters。
上⾯对AP进⾏了⼀些简单的介绍,接下来本⽂将重点讨论基于PREEvision的AP设计流程。PREEvision是⼀款架构开发⼯具,使⽤该⼯具进⾏AP的设计,需重点关注AP⽅法论。如前所述,AUTOSAR AP是⼀个标准,它对软件开发的⽅法论进⾏了标准化,其⽅法论实现的标准流程如下图所⽰:
图AP development workflow
(图⽚来源AUTOSAR_EXP_PlatformDesign)
相关概念介绍:
Machine:在AP的概念体系中,Machine代表⼀种计算资源,它可以是真实存在的处理器(Process Unit),也可以是⼀个虚拟机(Virtual Machine),AP软件则运⾏在某⼀特定的Machine上。
Manifest:Manifest是⼀种AUTOSAR模型的描述⽂件,主要包含AP软件部署涉及到的⼀些配置信息(⽐如Service Instance Manifest会包括服务接⼝的版本信息,SD参数信息等内容)。
注:AUTOSAR Adaptive的⽅法论详细介绍可以参考AUTOSAR_TR_AdaptiveMethodology⽂档
PREEvision中AUTOSAR Adaptive的基本设计流程
PREEvision中AP设计流程
(图⽚来源PREEvision Help⽂档)
PREEvision中AUTOSAR Adaptive设计内容主要包含以下⼏个部分:
1)软件层
服务设计:服务定义,服务⾓⾊定义
服务接⼝设计:设计Method,Event及Property;并完成数据类型的定义;
服务接⼝部署:选择SOA的通信⽅式,如SOME/IP等;并将服务接⼝与通信协议进⾏映射;
服务接⼝序列化:定义服务接⼝(Method/Event/Properties)的序列化⽅式及属性
Adaptive Application设计:设计Adaptive SW components,Executables及Adaptive Applications
2)硬件层
基于以太⽹的硬件拓扑设计
Machine设计及部署(Deployment):创建machine,设计machine的状态及服务发现等内容
3)通信层
软/硬件映射:Adaptive Application SWC与Machine映射
服务实例化:基于软/硬件映射⽣成服务实例;完成服务实例的配置
以太⽹通信设计:TP/IP地址及SOME/IP SD设计等
下⾯⼩编将基于PREEvision 9.5 SP1的Demo介绍PREEvision中AP的基本设计流程。
基本设计流程如下:
1.服务及服务接⼝设计
AP是⼀个⾯向服务的软件架构(SOA),基于AP平台的软件开发,⾸先需要进⾏服务及服务接⼝的设计。
服务设计:服务是对功能单元的抽象描述;服务的定义包含服务的ID以及服务⾓⾊(服务提供⽅及服务消费⽅)的定义。本⽰例定义了两个服务:Navigator及TrafficInformation。
若服务之间存在依赖关系,也需在服务设计阶段明确,⽤于指导后续的软件开发。
服务接⼝设计:服务接⼝定义了服务的功能特性,是Method、Event及Property的集合。
设计methods(包括F&F methods)、events及properties:
设计服务接⼝数据类型:
不同于CP的设计,在AP中,对于implementation data type,需定义数据类型C++相关属性。
服务接⼝部署:
选择应⽤协议(如SOME/IP),将服务接⼝与应⽤层协议进⾏绑定。⽬前PREEvision仅⽀持SOME/IP。
adaptive设计SOME/IP Interface:完成SOME/IP interface版本,以及method/event ID等属性的定义。
服务接⼝序列化属性定义:
序列化是⼀种将数据转化为⽐特流,⽅便数据在通信链路上传输的技术⼿段;在AP中⽀持SOME/IP的序列化功能;在该Demo⽰例中选择SOME/IP的序列化⽅式。对于SOME/IP序列化的属性设置,与CP类似,此处不再赘述。
2.Adaptive软件设计:
前⾯定义了服务和服务接⼝,接下来需要定义应⽤层软件架构。在AUTOSAR Adaptive中,软件架构
由Adaptive Application SWC(Software Component)组成,类似于CP中SWC的概念。服务及服务接⼝是⼀种抽象的概念,Adaptive Application SWC是服务接⼝的软件实现。⼀个服务接⼝⾄少需要⼀对Adaptive Application SWC来实现,⼀个Adaptive Application SWC实现了服务接⼝的调⽤,承担服务客户端的⾓⾊;另⼀个实现了服务接⼝Method/Event/Property的具体功能,承担服务端的⾓⾊。
AP软件架构设计:
前⾯定义了两个服务Navigator以及TrafficInformation,对应的Adaptive软件架构设计的如下图所⽰:
Adaptive Application SWC port与Service Interface ⼀⼀对应。Service Interface在软件层的体现如下图所⽰:
Adaptive application设计:
在AUTOSAR Adaptive⽅法论中,Adaptive application是Executables(可执⾏⽂件)的集合,⼀个Executable源于⼀个Adaptive Application SWC。
Adaptive application有两种类型:Application level和Platform Level。在本⽰例中定义的Adaptive application都是Application level。
硬件层设计
AUTOSAR Adaptive主要应⽤于HPC(High Performance Computer,⾼性能计算机),PREEvision 9.5版本的硬件层已⽀持HPC的设计,如下图所⽰:
1)硬件拓扑的定义:
在该⽰例中,创建了三个HPC,HPC之间通过以太⽹进⾏通信。
2)Machine设计:
在AUTOSAR Adaptive⽅法论中,AUTOSAR Adaptive软件将运⾏在Machine上。如前所述,Machine实际上代表的是⼀种计算资源,在PREEvision 中,Machine有三种表现形式:Process Unit,Virtual Machine以及Execution unit。
在该⽰例中,每个HPC包含⼀个Machine,其表现形式为Process unit;同时MPU中的多个Core(核)全部分配给了该Machine。
Machine的设计还包括其运⾏状态的设计,在PREEvision中可通过在Machine下创建状态机进⾏设计。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。