基于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
  • 3.Adaptive AUTOSAR 架构详解

    3 1 逻辑层架构 下面显示了AP的逻辑架构 xff0e AA xff08 adaptive application 在ARA AUTOSAR Runtime for Adaptive Applications 上运行 ARA包含了所有功能
  • Autosar CAN通讯——CANSM

    关于CANSM参考 xff1a https zhuanlan zhihu com p 126073070
  • AUTOSAR简介

    1 简介 AUTOSAR全称为 AUTomotive Open System ARchitecture xff0c 译为 汽车开放系统体系结构 xff1b AUTOSAR是一家由汽车电子 半导体和软件行业的汽车制造商 供应商 服务提供商等公
  • AUTOSAR架构的故事(干货)

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

    软件定义汽车 的火热带动了工程师们对于汽车电子软件热烈地讨论 不曾想到 xff0c 隐藏在控制器内部 xff0c 默默地发挥着作用的汽车电子软件 xff0c 如今备受瞩目 本人毕业到现在 xff0c 一直在汽车行业做软件 xff0c 切身感
  • Adaptive AUTOSAR 简介 (2021版)

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

    16 Network Management 16 1 What is Network Management 网络管理是Adaptive Platform Services中的一个功能集群 作为AP AUTOSAR平台的服务 xff0c 网络
  • Adaptive AUTOSAR——State Management(VRTE 3.0 R21-11)

    状态管理是自适应平台服务中的一个功能集群 在自适应平台中 xff0c 状态决定了一组活动的自适应应用程序 特定于项目的应用程序 xff0c 即状态管理器 xff0c 决定何时请求状态更改 xff0c 从而更改当前活动的应用程序集 状态管理器
  • 什么是AUTOSAR?为什么汽车公司开始采用AUTOSAR来开发新产品?

    越来越多的车企开始应用ATUOSAR xff0c 也有很多公司在招聘时会在JD里注明 xff0c 应聘者需要熟练掌握AUTOSAR xff0c 那么什么是AUTOSAR xff1f 为什么从奔驰 宝马等传统豪华汽车巨头 xff0c 到新势力
  • [Adaptive Autosar]深入理解--Persistency

    目录 1 Per架构 2 Per初始化 3 Per错误处理 4 多进程访问 5 冗余存储 6 安装和更新per数据 7 Key Value 方式 8 file storage 方式 9 典型使用代码 Persistency模块对比 CP 中
  • Autosar Configuration(五) Security之Csm配置

    本系列教程是根据实际项目开发中总结的经验所得 如发现有不对的地方 还请指正 目录 Autosar Configuration 一 Davinci Developer 工具介绍 Autosar Configuration 二 Davinci
  • Adaptive Autosar通讯层:ARA::COM中的Instance Identifiers

    一般概念 实例标识符 在收发两端都是要用的 是很核心的概念 proxy端用来搜索服务 xff0c skeleton端用来创建服务实例 站在API的角度来看 xff0c 这样的识别符是和特定的技术绑定的 所以 xff0c 标识符的结构和内容都
  • 【AUTOSAR】【通信安全】CRC

    目录 一 概述 二 功能说明 2 1 通用行为 2 2 8位CRC计算 2 2 1 8位SAE J1850 CRC计算 2 2 2 8位0x2F多项式CRC计算 2 3 16位CRC计算 2 3 1 16位CCITT FALSE CRC16
  • 【AUTOSAR】【以太网】TCPIP

    目录 一 概述 二 约束和假设 三 依赖模块 3 1 EthIf 3 2 EthSM 3 3 SoAd 3 4 KeyM 3 5 CSM 四 功能说明 4 1 系统扩展性 4 2 IPv4 4 2 1 IPv4 4 2 2 ARP 4 2
  • 7、AUTOSAR MCAL入门-实战:I/O驱动组

    7 AUTOSAR MCAL入门 实战 xff1a I O驱动组 在第三节中有介绍AUTOSAR 把MCAL 抽象分为4个驱动组 xff0c 分别为 xff1a 微控制器驱动组 xff0c 存储器驱动组 xff0c 通信驱动组 输入 输出驱
  • C/C++语言中的注释:功能、符号和使用方法详解

    目录 引言 注释的功能 注释符号 单行注释 多行注释 注释结尾问题 利用预处理实现多行注释 示例代码和解析 结论 引言 在C语言中 注释是一种非常有用的工具 可以帮助程序员在代码中添加说明 解释和备注 本文将深入探讨注释的功能 不同注释符号
  • AutoSAR 学习笔记2:AutoSAR架构

    1 应用层 ASW 2 运行时环境层 RTE RTE 是专门为应用软件 AutoSAR 软件组件和 或 AutoSAR 传感器 执行器组件 提供通信服务的层 在 RTE 之上 软件架构风格从 分层 转变为 组件风格 AutoSAR 软件组件
  • 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