3.Adaptive AUTOSAR 架构详解

2023-05-16

3.1 逻辑层架构

下面显示了AP的逻辑架构.AA(adaptive application)在ARA (AUTOSAR Runtime for Adaptive Applications) 上运行. ARA包含了所有功能集合的应用接口.这些功能属于 Adaptive Platform foundation 和 Adaptive Platform Service. 任何AA多可以为其他AA提供服务.

这些功能接口对应用程序来说没啥差别,不论这些功能属于Adaptive Platform Foundation还是Adaptive Platform Service. 这些接口仅提供C++接口或者将来AP将来支持的其他语言接口。这两个部分内部实现肯定是有差别的。并且,AA调用的ARA的库中,可以使用ARA之外的接口来实现AP规范。这取决于AP的实现

需要注意的是为了展现一个更好的整体架构,图3-1显示的AP架构逻辑层包含的功能集合不是当前发布的AP的一部分。在这里没有显示的新功能会加入到未来发布的AP中。

语言绑定, C++标准库和POSIX API

这些API使用的语言是C++,并且C++标准库是ARA的一部分。关于OS API, 仅PSE51接口是ARA的一部分。PSE51是POSIX标准的单进程配置文件。PSE51被选来实现POSIX应用程序的移植以实现应用程序之间的免打扰。

C++标准库包含很多基于POSIX的接口,多线程API也包含在内。不推荐C++标准库的线程接口和PSE51的线程接口混合使用。不行的,c++标准库并不能cover所有的PSE51的功能,比如设置一个线程的调度策略。在这种情况下混合起来是使用是很有必要的。

应用程序启动和关闭

应用程序的生命周期是由EM(execution management )来管理的。应用程序的加载和关闭是有EM提供的功能来管理的。启动一个应用程序需要再在系统集成和运行时间内进行正确的配置。实际上,除了EM自己,所有的功能对于EM来说都是一样的应用,加载方式都一样。图3-2展示了AP 内不同的应用程序类型。

事实上决定应用程序启动和关闭的并不是EM 。SM (state management )才是控制着者。SM 会基于整个系统的设计命令EM , 仲裁不同的状态从而控制整个系统的行为。这里的系统指的是整个机器AP 和其应用程序的内部行为,因此SM的实现是基于特定项目的。SM 也会和其他功能模块交互来协调整个机器的行为。SM 应当使用标准的ARA 接口来维护不同的AP stack 之间的可移植行。

应用程序交互

关于AA之间的交互,PSE51并不包括IPC (inter process communication ),  因为并没有直接的接口实现AA 之间的交互。CM (communication management )提供机器内和机器之间面向服务的通信。不管服务和客户端程序的部署拓补结构,CM 都可以处理服务 request/replies 的路由。其他的ARA 接口也可以内部触发AA之间的交互,但是这并不是一个显示的通信接口,仅仅是其他ARA接口提供的一个附带功能。

非标准接口

AA和功能组合也可以调用非标准接口,只要他们和标准AP 功能不冲突,并且他们也能符合项目对safety 和security 的要求。特别是那些纯的应用程序本地运行库,尽量保证使用范围最小,因为它会影响其它AP 实现的软件可移植性。

3.2 物理架构

这里讨论的物理层架构仅以解释为目的,不包含任何的AP 的正式的软件需求。任何AP 实现的正式需求都会明确说明。

OS, 进程和线程

AP 操作系统必须能够提供多进程的POSIX OS . 每一个AA的实现都是一个独立的进程,有自己独立的逻辑内存空间和命名空间。一个单独的AA有可能包含多个进程,他们有可能部署成一个单独的实例或者分布式部署成多个AP 实例。从模块组织的角度,每个进程会被OS 实例成一个可执行文件。多个进程可以从一个可执行文件实例出来。并且一个AA 有可能包含多个可执行文件。

功能簇也被实现为进程。一个功能簇可以被实现成一个进程或多个进程。Adaptive 平台的服务和非adaptive的服务也被实现为进程。

所有的这些进程可以是单线程的1也可以是多线程的。根据这些进程所属的逻辑层的不同使用不同的OS API. 如果这些进程是运行在ARA 之上的进程,他们应该使用PSE51.如果这些进程是其中一个功能簇,可以自由使用OS 的API.

总而言之,从OS的角度,AP 和AA 只是一个进程的集合。每个进程包含一个或多个线程。尽管它们取决于AP的实现来提供任何类型的分区,但这些进程之间没啥差别。这些进程之间的交互通过IPC 或其它OS 可用的功能。说明一下,AA 进程也可能不用IPC 而仅通过ARA 通信

基于库或基于服务的功能簇的实现

根据图3-1的AP 逻辑架构,一个功能簇可以是一个Adaptive 平台的功能模块或是Adaptive 平台的服务。根据之前的描述,这些都是进程,需要通过IPC 和AA 进行交互。这里有两种方式可以实现。一个是基于库的设计。功能簇提供接口库,链接到AA, 直接调用IPC. 另外一种是基于service的设计。进程会使用CM的功能-有一个server代理库链接到AA。代理库调用CM接口,协调AA和Server进程之间的IPC。实现功能的时候可以定义是选择AA仅使用CM直接实现IPC或者使用server通过代理库实现IPC。

对于如何为功能簇选择设计,一个通用的指导意见是如果是本地单一AP实力,基于库的设计可能更合适因为它更简单且效率更高。如果是分别是的AP实例,建议使用基于service的色剂,因为CM提供透明的通信无论是否是本地的AA还是service.  属于Adaptive 平台的功能簇都是基于库的,Adaptive平台都是基于service就像名字所显示的那样。

最后,对于FC的实现是允许不以库的形式实现而不是以进程的方式实现,只要能满足FC定义的RS和SWS的需求。在这种情况下,AA和FC之间的交互就是一般的进程调用,而不是像之前描述的那样是基于IPC的。

功能簇之间的交互

通常来讲,FC之间可以交互以AP特定的实现方式,因为它们不给ARA接口束缚。比如PSE51 禁止使用PIC。它可以使用其他FC的ARA public的接口。其他FC之间的接口,为了实现FC一些特殊的功能,可以使用protected 的接口提供优先访问权限.

并且,从AP 18-03开始,一个新的概念引入,是Inter-Functional-Cluster(IFC)。它描述了FC提供给其FC的接口。注意它既不是ARA的一部分, 也不包括AP 实现正式的规范需求。通过澄清FC 之间的接口,它的出现只是为了促进AP 规范的开发。对于AP规范的使用者来说,它提供了一个更好的AP 架构视图。这些接口的描述在对应的FC SWS 的附录中。

机器/硬件

AP 允许的硬件被称为一个machine。背后的原理是不论使用何种虚拟技术,都可以达成一个一致的平台。这个机器可以是一个真实的物理机器,也可以是一个虚拟机,或者是一个半虚拟化的OS, 或者是一个OS级别虚拟的container, 亦或者是其他虚拟环境。

硬件上面可以有一个或多个machine.一个machine 上运行一个CP 实例。一般假设就是一个硬件也就是一个芯片,上面运行一个或多个machine .如果AP 实现允许的话,也可以是多个芯片组成一个machine.

3.3 methodology

为了能够功能应用分布式,独立和敏捷开发,需要标准的开发方式。AUTOSAR adaptive方法论为像服务,应用,机器和配置这些东西提供标准和对应的task。这些对应的task定义了在adaptive平台上开发产品,不同的活动如何交互可以达到交换设计信息的目的。图3-3是一个草稿图,说明了adaptive的方法论是如何实现的。详细的细节在参考文档3中。

3.4 manifest

清单Manifest是AUTOSAR 模型的描述。它用来支持AUTOSAR AP产品的配置。Manifest可以上传到AP 产品,和它对应的文件比如二进制文件结合在一起。

Manifest的使用被限制在AP平台。但是这并不意味着在AP 项目开发过程中产生的ARXML会自动被认为是manifest. 事实上,在汽车项目组中,AUTOSAR AP 不是被唯一使用的。

一个典型的汽z车也包含许多部署CP 的ECU。因此,一个整车的系统设计是包含两者的,即部署CP的ECU 和部署AP的ECU.

原则上,manifest这个词可以定义为在概念上只有一个。所有的部署都可以在这个上下文中处理。这看起来显然是不合理的。因为模型相关的元素存在于典型项目开发的不同阶段。

这部分是应用设计的主要动机。把manifest 细分成三种不同的类型是很有必要的。

应用设计. 这种描述详细描述了适用AP 应用软件创建所有设计相关的部分。它不是必须部署在adaptive 平台机器上。但是应用设计在执行清单上和服务实例清单上能够帮助应用软件部署的定义。

执行清单。这种清单地方是用来详细说明AP应用程序运行时部署相关的信息。执行清单是和实际执行的code绑定在一起用来支持可执行程序在机器上的集成。

服务实例清单。这种清单是用来说明如何根据传输协议的要求面向服务的通信是如何配置的。服务实例清单是和实际的可执行code绑定在一起的来实现面向服务的的使用。

机器清单。这种清单应该用来说明运行AP应用程序的机器的部署相关的配置的。机器清单和创建AP实例的软件绑定在一起。

这种临时定义的不用清单的用处会导致困惑。大多数情况下不同的文件用来存储三中清单。

除了用用程序设计和三种不同的清单,AUTOSAR方法论还支持系统设计。用来描述AUTOSAR平台的软件模块。这些软件模块用来在一个系统中一个模型中。不同AUTOSAR平台的软件模块会以面向服务的形式互相通信。但是描述一个信号到服务的映射可以在面向服务的通信和信号通信之间搭建一座桥梁。

3.5 应用程序设计清单

应用程序的设计描述了所有AP应用软件创建的设计相关的模型。

应用设计关注一下几个方面。

* 数据类型用来说明软件设计和实现的信息

*服务接口作为面向服务的通信的关键元素。

*定义应用如何访问面向服务的通信。

*持久接口是访问持久数据和文件的关键元素

*定义用用程序如何访问持久存储。

*定义应用程序如何访问文件。

*定义应用程序如何访问加密软件

*定义应用程序如何访问PHM模块

*定义应用程序如何访问时间基数

*序列化属性用来定义如何序列化网络传输上的数据

*REST服务接口是通过REST模式与web服务通信的关键元素

*客户端和服务器功能的描述

*分组应用程序以简化软件的部署

*应用程序设计中定义的构件独立于应用程序软件的特定部署,从而简化了对不同部署场景的应用程序实现的重用。

3.6 执行清单

执行清单的目的是为了提供AP应用程序实际部署需要的信息。这种想法是为了尽可能的保持代码和特定的部署场景独立,以增加在不同的部署场景中重用应用程序软件的可能性。

使用可执行清单可以控制应用程序的实例化, 因此,

*在同一台计算机上多次实例化相同的应用程序软件

*将应用程序软件部署到多台计算机上,并为每台计算机实例化应用程序软件。

执行清单关注一下几个方面

* 启动配置,以定义如何启动应用程序实例。启动包括启动选项和访问角色的定义。每个启动可能依赖于机器状态和/或功能组状态。

*资源管理,特别是资源组分配。

3.7 服务实例清单

在网络上实现面向服务的通信需要特定于所使用的通信技术(例如SOME/IP)的配置。由于通信基础设施在服务的提供者和请求者上的行为应该相同,所以服务的实现必须保证双方都兼容。

服务实例清单关注以下几个方面。

*服务接口部署,以定义如何在特定的通信技术上表示服务。

*服务实例部署,为特定的服务实例定义所使用的通信技术要求的证书

*E2E保护的配置

*信息安全保护的配置

*Log和trace的配置

3.8 机器清单

机器清单允许配置在特定硬件(机器)上运行的实际AP实例。

机器清单关注以下几个方面

*配置网络连接和定义网络技术的基本证书(例如,对于以太网,这涉及到设置静态IP地址或定义DHCP)。

*服务发现技术的配置(比如,对于SOME/IP,这涉及所使用的IP端口和IP组播地址的定义)

*定义使用的机器状态

*定义使用的功能组

*自适应平台功能集群实现的配置(例如,操作系统提供具有特定权限的OS用户列表)

*配置密码平台模块

*配置PHM

*配置时间同步

*可用硬件资源的文档(例如可用内存大小;有多少个处理器核可用)

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

3.Adaptive AUTOSAR 架构详解 的相关文章

  • 一文读懂AUTOSAR SecOC通讯

    为什么用SecOC 在车载网络中 xff0c CAN总线作为常用的通讯总线之一 xff0c 其大部分数据是以明文方式广播发送且无认证接收 这种方案具有低成本 高性能的优势 xff0c 但是随着汽车网联化 xff0c 智能化的业务需要 xff
  • AUTOSAR —— S32K144 的 Fls 和 Fee 模块配置

    本文来简要介绍一下如何在EB中配置AUTOSAR Fls和Fee模块 Fls模块是Flash的驱动 xff0c 执行具体的Flash擦写读取等操作 Fee模块的全称是FlashEEPROMEmulation xff0c 即Flash模拟EE
  • 【笔记】自适应卡尔曼滤波 Adaptive Extended Kalman Filter

    0 阅读文章 Adaptive Adjustment of Noise Covariance in Kalman Filter for Dynamic State Estimation 1 主要内容 一般情况下 xff0c kalman中的
  • 老板说项目要上AUTOSAR,我慌得一批

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

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

    我们都知道手机 xff0c 电脑啥的在应用之下 xff0c 硬件之上 xff0c 还有一个东西叫操作系统 xff0c 车辆里也有类似的东西 操作系统 xff0c 中间件 xff0c 应用软件 各司其职分工不同 操作系统 我负责对硬件 xff
  • Adaptive AUTOSAR 简介 (2021版)

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

    11 Security Management 11 1 What is Security Management 安全管理是自适应平台体系结构中的一个功能集群 作为一个功能集群 xff0c 安全管理由多个模块组成 xff0c 这些模块向在Ad
  • 浅谈AP autosar 之 runtime 基础

    AP Autosar Architecture overview AP autosar在SOC 中的位置 xff0c 起到的作用 下面图可以看出 xff0c AP autosar封装了操作系统的接口 xff0c 封装了功能安全 xff0c
  • 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]深入理解--Persistency

    目录 1 Per架构 2 Per初始化 3 Per错误处理 4 多进程访问 5 冗余存储 6 安装和更新per数据 7 Key Value 方式 8 file storage 方式 9 典型使用代码 Persistency模块对比 CP 中
  • 【AUTOSAR】【信息安全】SecOC

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

    7 AUTOSAR MCAL入门 实战 xff1a I O驱动组 在第三节中有介绍AUTOSAR 把MCAL 抽象分为4个驱动组 xff0c 分别为 xff1a 微控制器驱动组 xff0c 存储器驱动组 xff0c 通信驱动组 输入 输出驱
  • AUTOSAR-自旋锁(spinlock)与互斥锁

    AUTOSAR多核OS为实现核间资源互斥 保证数据一致性 设计了自旋锁机制 该机制适用于核间资源互斥 对于多核概念 需要一种新的机制来支持不同内核上任务的互斥 这种新机制不应在同一内核上的 TASK 之间使用 因为它没有意义 在这种情况下
  • Classic AUTOSAR专题

    往期小怿向各位小伙伴介绍了Classic AUTOSAR专题之I O模块 相信看过的小伙伴对Classic AUTOSAR的I O模块已经有基本的认知了 本期为大家介绍 AUTOSAR模块之诊断模块 内容超丰富 将分两期推出哦 目录 1 概
  • 【AUTOSAR】CCP协议的代码分析与解读(四)----CCP协议数据下载和上传

    数据下载 DNLOAD DNLOAD指令负责将CRO中的数据下载到ECU中 起始地址为先前设定的MTA0 下载完毕后MTA0指针自增 自增的字数为下载的字节数 DNLOAD命令的CRO数据场结构 如下所示 位 置 类 型 描 述 0 字节
  • Adaptive让 Spark SQL 更高效更智能

    本文转发自技术世界 原文链接 http www jasongj com spark adaptive execution 1 背景 前面 Spark SQL Catalyst 内部原理 与 RBO 与 Spark SQL 性能优化再进一步
  • Autosar软件架构

    软件架构 应用层通过 Simulink模型实现 模型的代码生成使用统一配置脚本 底层软件模块满足AUTOSAR 4 2 1标准要求 其软件架构如下图所示 软件架构 2 2 2 Com通信模块配置 BCU通过唤醒信号控制相应CAN消息的通信使

随机推荐

  • 3D目标跟踪(2)点云聚类

    点云聚类流程
  • GCAN -212(R2) can转网 使用记录

    GCAN 212 R2 使用udp模式 在配置软件进行配置 选择udp模式 xff1b 选择Remote IP 为本机PC的IP地址 xff1b 编写ROS程序 未完成 参考程序1 参考程序2 节点数据驱动 xff1a 主线程udp接收数据
  • 分卷压缩与分卷解压

    span class token comment 1 分卷压缩 span span class token function tar span cvzpf myfile span class token operator span span
  • java 域的概念_java中的域,静态域,实例域

    1 java中的域 所谓的域 xff0c 翻译成英文就是field xff0c 也就是我们常说的字段 xff0c 或者说是属性 比如类的字段 属性 xff0c 局部的 xff0c 全局的 所谓域 xff0c 其实是 field 的翻译 然后
  • mysql 字段最右匹配_【MySQL】-索引优化

    优化口诀 xff1a 全值匹配我最爱 xff0c 最左前缀要遵守 xff1b 带头大哥不能死 xff0c 中间兄弟不能断 xff1b 索引列上少计算 xff0c 范围之后全失效 xff1b Like百分写最右 xff0c 覆盖索引不写星 x
  • Meta-learning:Learn to learn

    基于李宏毅教授的ML课程做的笔记 xff0c 主要供自己复习 xff0c 所以就留下了一些自己想多看的东西 xff0c b站有全面的课程视频 引言 xff1a 为什么few shot任务常常提及元学习meta learning xff1f
  • Hadoop----hdfs dfs常用命令

    span class token operator span mkdir 创建目录 hdfs dfs span class token operator span mkdir span class token punctuation spa
  • 如何处罚被客户投诉的项目经理?

    没有被客户投诉过的项目经理很难体会到客户满意度的重要性 项目经理被客户投诉 xff0c 一定要执行合适的处罚 xff0c 否则项目管理将失去基本游戏规则 自由是有限度的 xff0c 项目经理一定不能突破客户投诉的红线 如同不断的抛接球 xf
  • k8s kube-router+ipvs pod网络分析

    集群中的每个节点上都有一个kube bridge网桥 xff0c 是部署k8s时创建的网桥 xff0c 用于pod间通信k8s 利用veth pair和网桥实现容器通信 xff0c 一端与pod绑定 xff0c 一端绑定到kube brid
  • 面试官常问的Promise问题

    1 Promise 有几种状态 xff1f 3种 pending 初始化状态 resolved 当调用成功时的状态 reject 当调用失败时的状态 2 Promise得状态是否可变 不可变 3 Promise如何解决地狱回调 xff1f
  • vnc连接linux服务器,用 TigerVNC 实现 Linux 远程桌面

    tigervnc 配置 1 确认 SSH 在运行 2 安装 TigerVNC Server yum install tigervnc server 已经安装过的 yum info tigervnc server 可以查看已安装的情况 3 配
  • 51单片机的轮胎气压监测系统_基于单片机的胎压监测设计毕业设计论文.doc

    PAGE 4 存档日期 xff1a 存档编号 xff1a 本科生毕业设计 论文 论 文 题 目 xff1a 基于单片机的胎压监测系统设计 姓 名 xff1a 学 院 xff1a 电气工程及自动化 专 业 xff1a 电气工程及其自动化 班
  • ros2foxy中gazebo11中导入soildworks中模型

    由于ros2中不能像ros1中一样使用soildworks导出urdf文件直接打开 xff0c 所以之前使用的下面的方法没有用了 https blog csdn net weixin 42454034 article details 106
  • 网络编程_TCP/UDP编程

    网络编程 一 网络通信要素 1 1 IP地址 1 1 1 概述 IP指互联网协议地址 xff08 Internet Protocol Address xff09 xff0c 俗称IP IP地址用来给一个网络中的计算机设备做唯一的编号 1 1
  • darknet_ros加速--使用GPU和CUDA

    更改darknet ros文件里面的Makefile编译文件 参考教程 xff1a ubuntu下darknet的gpu配置 包含ros下的 当然这个是不完整的 xff0c 不然我也没有必要重新写一份了 还有这个教程 xff1a darkn
  • 易错点:linux中shell命令 = 左右两侧不能有空格

    1 61 两边不能加空格 2 if语句的方括号与判断条件之间一定要是两边都有空格 3 除了等号之外 xff0c 其他运算符左右两侧都要有空格
  • RTX实时操作系统(RTOS)简介学习笔记

    RTX实时操作系统 RTOS 简介学习笔记 RTOS Real time Operation System Keil RTX 是免版税的确定性实时操作系统 适用于 ARM 和 Cortex M 设备 RTX概述 RTOS 可以自由地调度系统
  • java变量使用_java中变量使用的总结

    java中整数默认为int xff0c 小数默认为double float n5 61 1 3 这个句子就会报错 xff0c 应该修改成这样float n5 61 1 3f 八大基本类型 变量类型 位数 范围 备注 Byte 8位 27 2
  • 超声波雾化模块_超声波喷涂设备的工作原理及优点

    喷涂一直存在于我们的生活中 xff0c 并且已经出于多种目的使用了很长时间 xff0c 包括喷涂装饰性和保护性涂料 因此 xff0c 它是材料科学家可用于薄膜制备的另一种工具 在喷涂中 xff0c 喷嘴尺寸 xff0c 喷涂形状 xff0c
  • 3.Adaptive AUTOSAR 架构详解

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