基于案例解析AP AUTOSAR开发流程

AP最重要的是给产业链带来了标准化。这个标准化包含应用接口标准化和AP平台本身标准化。对于AP平台使用方(OEM,Tier-1)来讲:1、 开发应用可以标准化,允许应用快速移植到不同的AP平台,减少重复开发。2、 因为AP标准对平台本身有要求,安全要求,架构要求等等,那么平台使用方在采购时不用重复在RFQ里定制需求,可以直接引用标准里的要求。对于比如在自动驾驶领域,拥有核心算法公司只需要将算法做成AP应用,提供给Tier-1/OEM做集成就可以。AP标准里定义了所有系统中间件,面向应用的接口。哪些中间件你可以参考autosar主页AP部分。都可以免费下载。网上也有很多对标准的中文翻译。AP标准每年更新2次。跟CP不同的是,AP不会标准化系统中间件之间的交互。那么,哪个公司号称自己开发了一部分AP中间件,应该是不可信的。因为,1、AP平台供应商不会开发中间件之间的内部接口, 自己开发的AP中间件甚至无法和AP平台供应商的中间件集成。2、即使能够集成,那针对不同的AP供应商,自己开发的中间件需要重新适配。效率太低。我认为使用AP只有下列几种情况:1, 使用一个AP供应商的工具链和AP平台,包括所有系统中间件。2, 采用了一部分AP中间件,比如ara::com (通讯管理)和Execution Manager( EM,进程管理)。其他部分没有使用AP组件。下面通过一个实际的应用案例,从AP AUTOSAR的整体使用流程进行简单的介绍,重点介绍了AP AUTOSAR建模。同时,读者将理解AP AUTOSAR的几个基本平台组件。01开发流程

AP AUTOSAR整体开发流程AP AUTOSAR的开发流程(如上图所示):1、定义服务:输出所需的ServiceInterface, 这属于OEM工作范围。2、基于AUTOSAR供应商(Vector、ETAS等)的工具链,生成基于Skeleton/Proxy 的Class。3、实现SWC和使用目标软件平台工具链编译为可执行文件。4、基于AUTOSAR工具链生成Machine Manifest,描述目标硬件和软件平台环境,并将应用映射到进程。02案例分析1、服务定义将车辆功能拆解为服务的部分暂不展开,个人认为其跟业务逻辑强相关,跟IT域的方法论没什么太大区别。一个服务接口需满足SOME/IP的组成,里面包含3部分:Fields,Events,Methods。SOME/IP的详细技术细节请戳(SOME/IP协议-科普帖深入浅出理解SOME/IP)。首先假设一个服务接口为RadarFusion,如下图所示。

对于一个SOA服务接口,肯定至少得有一个Provider和至少一个Consumer。

基于AP工具生成Skeleton/ProxySkeleton/Proxy是在CM (Communication Management)选择的基本设计模式。这是软件设计模式里最常用的设计模式之一。AP基本上参考了GENIVI的CommonAPI设计。原因很简单,都是由BMW主导。做个和比较常见的Publisher/Subscriber模式比较:PublisherSkeleton提供服务SubscriberProxy请求(或消费)服务Skeleton/Proxy的代码由AUTOSAR工具链自动生成,跟应用相关的主要是一个头文件,如下图所示。

SWC定义和实现在本案例中,两个SWC分别对应一个可执行文件。

服务接口为ap/radar。RadarService提供输出接口radar_PPort, Fusion提供输入接口radar_RPort。接下来,怎么去实现RadarService和Fusion两个SWC。几个关键点需要注意:SWC里只允许使用POSIX PSE51接口。SWC一般用C++14代码规范。注意遵循AUTOSAR标准文档Guidelines for the use of the C++14 language in critical and safety-related systems。SWC与其他SWC或者平台模块只能通过CM接口。注解:标准里没有文件系统接口,只有Persistency平台模块。所以严格来讲,直接访问文件系统是不允许的。和CP不同,对通常的外围定义了标准接口。而AP没有定义访问外围的BSP接口。严格来讲,AP需要把外围的访问抽象为服务。功能安全:值得注意的是,如果一个SWC是ASIL,其所依赖的POSIX PSE51库也必须是通过ASIL认证。一般来讲,这是由OS供应商提供。另外,一部分C++14的标准库也必须通过ASIL认证。这部分一般由编译器供应商提供。定义目标硬件平台Machine Manifest对应于流程里步骤3。用于定义目标环境。

从外看,我们可以把机器看做一个抽象的硬件+软件平台和通讯接口。硬件包括一个N核CPU。软件平台可以定义为具体OS。通讯接口如上图,可以有一个以太网接口连接在一个以太网上。1、定义机器状态比如,我们有如下7种状态定义:"name": "Driving""name": "Leaving""name": "Off""name": "Parking""name": "Restart""name": "Shutdown""name": "Startup"目的是:每一种机器状态里,可能会激活不同的应用。2、网络配置在我们这个RadarFusion案例里,我们假定最简单情况:一个Provider和一个Consumer。

在这里案例里,他们分别部署在不同的ECU上,通过以太网通讯。首先配置服务发现(Service Discovery,SD)用来交换SD消息。一般是一个multicast地址和UDP端口。

然后是两个应用本身的网络配置:

应用配置Application Manifest应用除了代码本身外,还包含应用配置。这个案例比较简单,每个应用只有一个进程。每个进程对应自己的可执行文件。

3、定义应用到进程的映射

如上图所示,一个Machine可以有N个进程。每个进程都会对应可执行文件。ServiceInstance定义这里主要定义SOA通讯怎么映射和部署到transport传输层协议,比如SOME/IP。1、服务接口部署这里定义对于一个接口的SOME/IP Service ID, 每个Method ID,Event ID。应该非常清晰。

2、服务实例Service Instance 部署定义一个服务实例是提供方还是消费方。

3、从服务实例映射到目标硬件Mapping from ServiceInstance to MachineService Instance可以理解为还在应用的层面,这步将会把一个服务实例映射到目标硬件层面。下表可以看出,ServiceInstance列以前属于应用层面,而Connector和TCP/UDP端口都属于目标硬件层面。

建模总结下图能比较直观的展示应用配置,目标硬件配置,服务实例配置的对应关系。

(0)

相关推荐

  • 大众MEB 电子电器架构

    #整车平台架构模块化查找).那么在"四化"浪潮,在软件定义汽车的大背景下仅靠机械整车平台架构模块化任然是无法取胜的,物理机械整车平台架构模块化是基础,大众有优秀的基础当然可以更有能 ...

  • 「软件定义汽车」时代下的SOA架构设计 !

    导读: 本文由几何四驱授权发布,作者为赵玉龙. 为了真正实现软件定义汽车.软件驱动创新,从技术角度来看,汽车软件架构需由"面向信号"迈向"面向服务(SOA)". ...

  • 整车控制器基础软件平台化开发与集成

    文章主要参照国际 Autosar 软件标准,结合项目实际要求,提出了新基础软件架构,并通过 MATLAB 的命令行工具 Legacy Code Tool 及 S- function 等功能,将底层驱动 ...

  • 如何理解SOA是一种模板软件架构?

    如何理解SOA是一种模板软件架构?

  • Diagnostic in Adaptive AutoSAR

    如有侵权,联系删除:编辑整理:糖果Autosar Part1Diagnostic in Adaptive AutoSAR概述 Adaptive AutoSAR将逐渐成为车辆高性能计算机 (HPC) 的 ...

  • 浅析AutoSAR APP层在配置工具中的实现

    // 作者:KaiTing,2020年2月4日 // 首发公众号:Vehicle软件开发 随着各个公司对AutoSAR的重视,想必越来越多的汽车软件开发人员走向这条路,所以想分享下自己的配置经历,也是 ...

  • Adaptive Autosar 整体架构理解

    Adaptive Autosar 整体架构理解

  • SOA在汽车上的应用(2)

    接上篇. 2)多项关键技术共同促进SOA在汽车上的应用 芯片: 在分布式EEA阶段,各个ECU只连接特定的传感器和执行器,ECU的主要工作是提供I/O资源和网络接口,并进行实时控制.即使ECU需要运行 ...

  • 车载SOA软件架构设计

    根据基于模型的系统工程方法和以下面向服务架构的建模语言(SOAML),提供了用于面向服务和软件架构建模的各种元模型的详细信息.SOA和软件层元模型大致分为两类:核心建模(数据)和图表(可视化). SO ...

  • 《车载SOA软件架构技术规范1.0》解读1:SOA架构技术概述及技术规范现状

    背景: <车载SOA软件架构技术规范1.0>是由AUTOSEMO撰写的首个车载SOA软件架构技术规范,这是首个面向汽车行业SOA软件架构的理论体系.近期,AUTOSEMO将组织针对本规范的 ...

  • Autosar VFB简介

    虚拟功能总线是对AUTOSAR提供的所有通信机制的一种抽象,是所有软件组件进行交互的桥梁.通过虚拟功能总线,软件组件之间的通讯细节被抽象出来,软件组件通过AUTOSAR定义的接口对通讯进行描述,即可最 ...

  • 自研操作系统成行业趋势,国内车控操作系统标准来了!

    导语 越来越多的企业选择自研操作系统,其中的标准谁来掌控? 在单片机时代,Autosar(AUTOmotive Open System Architecture)(汽车开放系统架构)是汽车电子领域主要 ...

  • 如何高效学习AUTOSAR?

    如何高效学习AUTOSAR?

  • 基于SIMULINK开发面向服务的汽车应用架构(SOA)。

    汽车功能越来越多地由软件定义,使它们更容易被黑客攻击.汽车电气工程向面向服务的架构演变,无论是向ADAS或信息娱乐系统添加新功能,还是修补漏洞,OTA更新都是一个有价值的解决方案.面向服务的架构(SO ...