基于PREEvision的AUTOSAR Adaptive设计

2023-05-16

导读:

 

为适应汽车智能化、网联化等的发展趋势,应对汽车E/E系统开发面临的高性能处理器的应用、自动驾驶的软件实现、高带宽通信需求、车与外界的互联互通等的挑战,AUTOSAR组织推出了AUTOSAR Adaptive。本文将重点讨论基于PREEvision的AP设计流程。

AUTOSAR Adaptive概述

2003年,汽车行业的高端玩家们发起了汽车嵌入式系统软件架构标准化项目——AUTOSAR(汽车开放系统架构)。2017年,为适应汽车的发展趋势(智能化、网联化等),应对汽车E/E系统开发面临的新的挑战(高性能处理器的应用,自动驾驶的软件实现,高带宽通信需求,车与外界的互联互通等),AUTOSAR组织推出了AUTOSAR Adaptive。

于是,在AUTOSAR的体系内有了两大概念:AUTOSAR Classic Platform(后面将简称CP)和AUTOSAR 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。

设计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下创建状态机进行设计。

软件和硬件的映射

前面初步完成了软件及硬件层的设计,接下来将进行软件和硬件的映射。如前所述,AP软件是运行在Machine上的,所以软/硬件的映射,实际上是将软件层的Adaptive Application SWC与硬件层HPC中的Machine进行映射。

另外,在Adaptive AUTOSAR架构下,程序是动态运行的,Adaptive Application在其部署的Machine上运行时,都是操作系统(比如Linux)中的一个个Process(进程)。在进行软/硬件映射的设计时,可以定义每个process应该运行在的哪些core(核)上以及不能运行在哪些core上。

Machine Deployment

Machine Deployment包含两部分设计内容:Machine Mode以及Service Discovery Configuration

1)Machine Modes设计

Adaptive application在machine上运行时是操作系统中的一个个process(进程),而这些process的启动依赖于Machine的状态(其实就是前面设计machine状态机时的各种simple state,只是这些simple state并不是AUTOSAR中的类,但可以指导后续的Machine Mode设计)。在Adaptive AUTOSAR方法论中,Machine state表示Machine的状态,在最新版规范(R19.11)中,Machine state被Function Group States所取代。Function Group(功能组)表示一组关系紧密的Processes,这些Processes的启动或停止依赖于相同的Function Group State。本示例中,Machine Mode设计如下图所示:

2)Service Discovery Configuration

此处主要是设计服务发现报文的端口号,传输协议及IP地址。在AP里,Machine可以作为一个网络通信节点。

Aplication Deployment

Application Deployment主要是设计Process与Machine状态(前面Machine Deployment已完成Function Group State设计)的Startup dependency(启动依赖关系),也可以设计Processes之间的Startup dependency。另外,还需为操作系统配置这些process的启动相关参数,如进程调度策略及调度优先级等;

该示例中,各个process配置如下图所示:

Service Instance设计

从软件架构的角度, AUTOSAR Adaptive是一种面向服务的架构(SOA);从通信角度,AUTOSAR Adaptive系统采用面向服务的通信。Service Instance(服务实例)是服务角色在通信层面的一种实现,分为Provided Service Instance和Consumed Service Instance。在本示例中,采用SOME/IP作为应用层协议,实现面向服务的通信。此处Service Instance的设计,其实主要内容就是进行基于SOME/IP的通信配置。

1)首先需要创建Service Instance(一般借助于PREEvision的信号路由功能,前提是已完成软/硬件的映射设计)。路由之后生成的Service Instances分为两类:Consumed SOME/IP Service Instance和Provided SOME/IP Service Instance。接下来就是完成Service Instance的Service ID及版本等参数的设计。

2)完成网络层及传输层的配置。

3)SOME/IP SD参数配置。分为服务端和客户端。实际上Service Instance的设计与CP的设计类似,此处不再赘述。

综上,在目前的PREEvision 9.5版本中,支持的Adaptive AUTOSAR的设计内容及基本设计流程已介绍完了。

下表显示了目前PREEvision中支持的Adaptive设计内容以及暂不支持的内容。

最后再简单介绍下PREEvision中AUTOSAR Adaptive设计内容的导出。在PREEvision中完成了AUTOSAR Adaptive设计后,可以导出如下文件:

1)Service Interface Description

Service Interface Description可以包含一个或多个服务接口的详细信息,如Method/Event/Property以及对应的数据类型等内容。该文件可以将服务接口信息准确的传递给其他工具,如DaVinci Adaptive IDE,用于生成服务接口的头文件。

2)Execution Manifest

Execution Manifest包含了Adaptive Application部署到目标AUTOSAR Adaptive平台上所需的信息,比如进程启动配置,进程与Machine的映射等内容。

3)Machine Manifest

Machine Manifest包含Machine部署相关的信息,比如网络配置信息,计算资源等。 

4)Service Instance Manifest

Service Instance Manifest包含基于服务的通信相关信息,如应用层及相应的传输层、网络层通信参数信息。

当前PREEvision支持AUTOSAR Adaptive导入/导出的版本为R19.03。

以上就是本期介绍的全部内容了。Adaptive AUTOSAR引入了许多新的概念,对目前汽车设计人员的知识面提出了更高的要求。当然,AP的设计肯定需要不同人员及团队的分工协作。在AP的方法论中也提出了OEM、Tier1及Tier2的职责范围,不过在实际项目实施过程中,不一定需要完全按照规范进行分工。

本文只是从PREEvision工具应用的角度,介绍了AP的基本设计流程,有很多细节内容也没有展开,事实上AP中涉及的很多概念都可以作为一个专题进行详细介绍。大家若想了解AP的更多内容,请持续关注我们,期待与大家一起探讨,共同进步。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于PREEvision的AUTOSAR Adaptive设计 的相关文章

  • Adaptive AutoSAR 标准介绍

    关于自适应AutoSAR 平台 自适应autosar 平台实现了adaptive applications的运营环境 它提供了两种接口 xff0c 一种是service 一种是API 平台功能分成两部分 xff1a service部分和ad
  • 1、AUTOSAR简介

    AUTOSAR xff08 AUTotmotive Open System ARchitecture xff09 汽车开放系统架构是由全球各大汽车整车厂 汽车零部件供应商 汽车电子软件系统公司联合建立的一套标准协议 xff0c 是对汽车技术
  • 【笔记】自适应卡尔曼滤波 Adaptive Extended Kalman Filter

    0 阅读文章 Adaptive Adjustment of Noise Covariance in Kalman Filter for Dynamic State Estimation 1 主要内容 一般情况下 xff0c kalman中的
  • Autosar CAN通讯——CANSM

    关于CANSM参考 xff1a https zhuanlan zhihu com p 126073070
  • 老板说项目要上AUTOSAR,我慌得一批

    莫慌 xff0c 淡定 xff0c 先来看看AUTOSAR是个什么鬼 AUTOSAR是什么 AUTOSAR AUTomotive Open System ARchitecture xff0c 中文是 汽车开放系统架构 xff0c 是一家致力
  • Autosar 软件中间件

    我们都知道手机 xff0c 电脑啥的在应用之下 xff0c 硬件之上 xff0c 还有一个东西叫操作系统 xff0c 车辆里也有类似的东西 操作系统 xff0c 中间件 xff0c 应用软件 各司其职分工不同 操作系统 我负责对硬件 xff
  • AUTOSAR和ROS有哪些联系和区别

    AUTOSAR和ROS有哪些联系和区别 xff1f AUTOSAR和ROS有哪些联系和区别 xff1f 用ROS可以实现AUTOSAR的功能吗 xff1f 从Linux和Ros系统转向AP该如何转 xff1f 为什么需要转 xff1f AP
  • ETAS Adaptive AUTOSAR 自适应平台示例视频教程

    ETAS AP AUTOSAR自适应平台示例视频教程 本系列文章旨在提供一个详细的操作指南 xff0c 以构建ETAS AP AUTOSAR自适应平台的示例 实践练习的目标是加强AUTOSAR自适应平台中的理论概念 xff0c 并更好地理解
  • Adaptive AUTOSAR 简介 (2021版)

    目录 1 Adaptive AUTOSAR 简介 Adaptive平台 一种新的 AUTOSAR 1 1 Adaptive的案例 1 2 经典平台与适应性平台的比较 1 3 单一系统 1 4 架构 逻辑架构 1 5 软件架构 本文图片来源
  • 从Adaptive AUTOSAR的角度看SOA

    前言 身处汽车行业的我们深知 xff0c 新技术的应用或者新概念的提出 xff0c 一定是事出有因的 通常是为了抢夺新技术高地 xff0c 让汽车更好地满足未来的需求 那么 xff0c 汽车电子电气架构领域掀起的这股SOA热潮是由什么导致的
  • AP AUTOSAR——Security Management

    11 Security Management 11 1 What is Security Management 安全管理是自适应平台体系结构中的一个功能集群 作为一个功能集群 xff0c 安全管理由多个模块组成 xff0c 这些模块向在Ad
  • Adaptive AUTOSAR——Time Synchronization(VRTE 3.0 R21-11)

    15 Time Synchronization 15 1 What is Time Synchronization 时间同步是自适应平台基础中的一个功能集群 时间同步通过库向应用程序提供C 43 43 API xff0c 该库作为RTA V
  • Adaptive AUTOSAR——State Management(VRTE 3.0 R21-11)

    状态管理是自适应平台服务中的一个功能集群 在自适应平台中 xff0c 状态决定了一组活动的自适应应用程序 特定于项目的应用程序 xff0c 即状态管理器 xff0c 决定何时请求状态更改 xff0c 从而更改当前活动的应用程序集 状态管理器
  • Adaptive Autosar 整体架构理解

    1 总体说明 xff08 图片来源主要来源于Simulink 以及 Vector xff09 在Autosar官网 xff08 autosar org xff09 上 xff0c 目前CLASSIC PLATFORM 更新到4 4版本 xf
  • AutoSar之微控制器抽象层MCAL

    微控制器抽象层位于AUTOSAR BSW的最底层 xff0c 包含内部驱动 xff0c 可直接访问微控制器和外设芯片 从具体应用来看 xff0c MCAL主要包括微控制器驱动 存储器驱动 通信驱动和输入输出驱动四个部分 xff0c 各部分又
  • 【AUTOSAR】【信息安全】SecOC

    目录 一 概述 二 约束和假设 三 依赖模块 四 功能描述 4 1 安全解决方案的规范 4 1 1 安全解决方案的基本实体 4 1 2 安全的I PDU构建 4 1 3 安全的I PDU验证 4 2 与PduR的关系 4 3 初始化 4 4
  • 7、AUTOSAR MCAL入门-实战:I/O驱动组

    7 AUTOSAR MCAL入门 实战 xff1a I O驱动组 在第三节中有介绍AUTOSAR 把MCAL 抽象分为4个驱动组 xff0c 分别为 xff1a 微控制器驱动组 xff0c 存储器驱动组 xff0c 通信驱动组 输入 输出驱
  • AutoSAR 学习笔记5:基于 AutoSAR 工具链的开发流程

    1 西门子 CVI 工具开发流程 博世 ETAS 工具开发流程 Vector Davinci 工具开发流程
  • SOTA机制详解

    1 SOTA的定义 SOTA即软件在线升级 Software updates Over The Air 是指在不连接烧写器的情况下 通过CAN UART或其它通讯方式 实现应用程序的更新 在进行SOTA时 需要把旧的应用程序擦除 把新的应用
  • Apollo平台计算框架CyberRT

    Cyber RT 框架 Cyber RT Robotic Technology 是一种基于ROS Robot Operating System 的开发框架 专门设计用于构建高性能 实时性要求较高的机器人应用程序 旨在提供一套可靠 高效 灵活

随机推荐

  • extern “C”的作用详解

    extern 34 C 34 的主要作用就是为了能够正确实现C 43 43 代码调用其他C语言代码 加上extern 34 C 34 后 xff0c 会指示编译器这部分代码按C语言 xff08 而不是C 43 43 xff09 的方式进行编
  • Linux 进程与程序区别与联系

    一 xff0c 什么是程序 xff1f 程序是完成特定任务的一系列指令集合 二 xff0c 什么是进程 xff1f 从用户的角度来看进程是程序的一次动态执行过程从操作系统的核心来看 xff0c 进程是操作系统分配的内存 CPU时间片等资源的
  • 软件包的管理(Centos7)

    软件包类型 xff1a rpm软件包的管理 xff1a rpm包格式说明 xff1a span class token punctuation span root 64 aws span class token operator span
  • unix环境编程1 环境变量

    预处理 编译 汇编 连接 cpu中有个MMU xff0c 内存处理单元 xff1a 它的作用是 1 处理物理内存与虚拟内存映射的关系 2 设置修改内存访问级别 xff08 0 3级 xff09 内核空间的访问级别为0 用户空间的访问级别为3
  • RSU NTP时间同步配置方式

    RSU NTP同步配时方式 RSU ntp同步配时是基于一个开源工具chrony实现的 xff0c 这个工具集成在RSU里面了 xff0c 网上也能搜索到教程 xff0c 以下是一个参考链接 xff1a Centos使用chrony做时间同
  • Linux回收子进程

    孤儿进程 孤儿进程 父进程先于子进程结束 xff0c 则子进程成为孤儿进程 xff0c 子进程的父进程成为init进程 xff0c 称为init进程领养孤儿进程 include lt stdio h gt include lt unistd
  • C++内存管理(超长,例子很详细,排版很好)

    导语 内存管理是C 43 43 最令人切齿痛恨的问题 xff0c 也是C 43 43 最有争议的问题 xff0c C 43 43 高手从中获得了更好的性能 xff0c 更大的自由 xff0c C 43 43 菜鸟的收获则是一遍一遍的检查代码
  • c++ string 的常用库函数的用法

    目录 一 初始化 二 获取长度 xff08 length size xff09 三 插入 xff08 insert xff09 四 替换 xff08 replace xff09 五 添加 xff08 append xff09 六 赋值 xf
  • linux学习笔记1

    shutdown 一分钟后关机 shutdown c 取消关机命令 shutdown r 重新启动系统 shutdown 43 10 十分钟后关机 ifconfig 查看 配置计算机当前的网卡配置信息 ping 地址 检测目标ip地址的连接
  • 一道爬楼梯的算法题

    一个小孩爬楼梯 xff0c 每次可以爬1个 2个或3个台阶 xff0c 编程求出这个小孩爬完10个台阶的楼梯一共有多少种走法 def main k 61 0 构建函数1 x 43 2 y 43 3 z 61 10 确定x取值范围 for x
  • 面试技术杂ji——需要解决的问题

    需要搞明白的几个问题 xff1a 1 3次握手和4次挥手 2 TCP与UDP的区别 3 如果TCP连接出现问题该如何排查 xff0c 说明排查的思路 连接断开或者出错 xff0c 会返回一个错误码 xff0c errorNo 最后一次系统调
  •  SHELL 脚本学习笔记

    第十四章 SHELL 脚本 终于到 shell 脚本这章了 xff0c 在以前笔者卖了好多关子说 shell 脚本怎么怎么重要 xff0c 确实 shell 脚本在 linux 系统管理员的运维工作中非常非常重要 下面笔者就带你正式进入 s
  • 软件定义汽车 新一代技术发展

    引言 作为一个技术的爱好者 xff0c 搞算法 xff0c 玩芯片 xff0c 攒系统 xff0c 并不只是工作 xff0c 也是自己所追求的很重要的部分 写这个系列 xff0c 是为了梳理这几年的所学 所思 所想 xff0c 从而形成一个
  • 解压缩 tar命令详解

    1 tar命令进行文档的归档和压缩 归档和压缩文件 归档和压缩文件的好处 xff1a 节约硬盘的资源 xff0c 加快文件传输速率 tar命令 作用 xff1a 打包 压缩文件 xff1b tar文件是把几个文件和 xff08 或 xff0
  • 华测导航GPCHC协议ROS驱动包,CGI610、410接收机,NavSatStatus、GPSFix和普通格式

    目录 一 消息类型1 1 sensor msgs NavSatFix1 2 sensor msgs NavSatStatus1 3 gps common GPSFix1 4 sensor msgs Imu 二 部分源码2 1 相关的依赖和库
  • 淡定地撸了一遍AUTOSAR的基本概念

    1 AUTOSAR的解决方案 之前的文章 老板说项目要上AUTOSAR xff0c 我慌得一批 讲到了 xff0c 面对日益复杂的汽车E E架构 xff0c 在欧洲大地上诞生的AUTOSAR组织 xff0c 提出了解决方案 而且做了标准化
  • 图文并茂,一文讲透C语言结构体内存对齐

    面试官 xff1a 你知道C语言的结构体对齐吗 xff1f 应聘者 xff1a 听说过 平时很少关注 面试官 xff1a 好吧 xff0c 那回去等通知吧 C语言结构体对齐问题 xff0c 是面试必备问题 本文 xff0c 除了用图解的方式
  • 老板说项目要上AUTOSAR,我慌得一批

    莫慌 xff0c 淡定 xff0c 先来看看AUTOSAR是个什么鬼 AUTOSAR是什么 AUTOSAR AUTomotive Open System ARchitecture xff0c 中文是 汽车开放系统架构 xff0c 是一家致力
  • AUTOSAR架构的故事(干货)

    1 AUTOSAR架构概览 在新世纪 xff0c 汽车产业蓬勃发展 xff0c 欧洲大陆的车企们 xff0c 瞄准了这是一块大蛋糕 xff0c 于是在2002年成立了一个联盟 xff0c 搞了个叫AUTOSAR的标准 xff0c 以期一统天
  • 基于PREEvision的AUTOSAR Adaptive设计

    导读 xff1a 为适应汽车智能化 网联化等的发展趋势 xff0c 应对汽车E E系统开发面临的高性能处理器的应用 自动驾驶的软件实现 高带宽通信需求 车与外界的互联互通等的挑战 xff0c AUTOSAR组织推出了AUTOSAR Adap