0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SOA的软件组件部署实例分析

jf_C6sANWk1 来源:阿宝1990 2023-02-07 11:02 次阅读

SWC软件部署前言

整个软件的模块的部署需要对需求、软件架构、硬件、中间件平台Autosar,AP/CP都有较为深入的了解。其中流程分为三个主要的阶段:

首先,系统架构设计阶段:

专业针对最终实现的功能分配模块,总体讨论ECU融合方案、分配原则,形成初版针对控制器的需求。

其次,系统需求及软件架构设计阶段:

通过讨论功能需求涉及的产品能力PC、测试用例Usecase,生成对应的软件模块Module和软件元素SWC。

随后,软件架构设计阶段:

进行分配原则、非功能性需求讨论、SWC分配方案编写、专业讨论并更新控制器需求,搭建PreEvision/EA模型。

ad018fa8-a606-11ed-bfe3-dac502259ad0.png

如上,最终基于软件架构,Module核SWC要分配到各个控制器中,区域控制器VIU中分配到MCU或MPU,MPU中分配到A核、R核,都需要详细的定义。

SWC的软件部署实例分析

本文以高级自动驾驶辅助功能NOA为例,详细讲解实现该功能需要如何定位并细化软件部署过程。

如前所述,所有的部署从本质上就是识别到所能承载软件组件运行能力的核资源,并进行软件集中嵌入该硬核资源的过程。主要包括如下几个关键步骤:

1)识别部署需求

这个阶段设计对部署对象,即需要部署的是哪个功能对应的SWC,该部署过程需要消耗多少部署资源,比如多少核计算能力;相关模块的快速识别,比如如何快速识别出可用于部署的核资源;同时利用设备抽象的概念分理处顶层软件抽象处理模块FDD、底层设备抽象处理模块EDD的颗粒度及部署方案。其中软件模块部署需求中,需要重点界定出AP端、CP端各自的特性,比如CP端非快速启动、快速启动、低功耗等相关特性。

ad207b84-a606-11ed-bfe3-dac502259ad0.png

2)搭建物理架构视角的功能链路

功能ID功能名称子功能非功能性需求

XxxHWP高速跟车、巡航、自动减速、车道保持、自动上下匝道、高速路口减速停车执行器响应能力

传感器识别距离

端对端响应时间

传感器时间同步

功能安全等级

XxxTJP拥堵跟车、巡航、跟停、起步、自动减速、车道保持

XxxALC/ALCA拨杆换道、自动换道、推荐换道

XxxSafeStop换道安全停车、本车道安全停车

XxxAES自动转向避让、自动换道避让

主要是根据功能项梳理物理架构视角功能连路图,同时提取非功能性需求。

整个物理架构视角开发的功能逻辑链路实际是类似于时序图中的对应部分,是考虑将整个功能在工作过程中的数据流进行梳理。

ad3a4096-a606-11ed-bfe3-dac502259ad0.png

如上图表示了对NOP功能的开启与激活中的自动转向避障控制逻辑PC时序图,各应用模块的产品能力主要涉及对整个NOP系统自动转向控制的能力和交互过程,在我们进行软件组件SWC部署中,首先需要绘制类似上图中的功能交互图,从图中提取我们需要实现的子模块PC,并为每个PC设计对应的SWC即可获得我们需要的总体SWC。

3)梳理SWC软件模块

根据功能需求划分出来的SWC包含如下模块,各SWC分别位于SOA软件架构的不同分层中,对于软件SWC到硬件核的部署过程来说,需要根据其不同的功能子项合理的分配到对应的控制器中。

ad74e728-a606-11ed-bfe3-dac502259ad0.png

4)SWC部署到整车控制器

SWC的整个部署过程应尽量遵循如下原则:

(01)高等级的SWC尽可能地部署到对应的计算平台中;

(02)与传感器、执行器紧密耦合的SWC部署到S&A中;

(03)与彼此紧密耦合地SWC部署到一起;

(04)休眠后需要工作的SWC考虑功耗问题部署到CP端;

(05)功能安全相关的SWC按照ASIL等级拆解后归类部署;

(06)信息安全相关的SWC根据具体安全级别需求归类部署;

(07)与快速启动相关的SWC部署到CP实时核资源中;

(08)与强实时性要求相关的SWC部署到CP实时核资源中;

(09)功能链路交互避免过于复杂,接口过多;

(10)功能特性相同的SWC尽可能部署到同一个资源上;

(11)功能链路时间长度要满足用户体验;

(12)高等级的SWC尽可能部署到AP端;

(13)资源预留度尽可能多。

从整车功能层分配到控制器的角度可以对如上的SWC软件模块进行总体的功能分配。以自动驾驶系统高性能计算平台为轴心,外围存在其软件模块相关的各个区域控制单元。我们以SOA架构中各个软件子模块为部署的原子模块,为了实现各个模块信息间的通信和控制,我们可以实现如下的软件模块部署。

转向、制动、驱动、悬架等底盘控制单元,由于其功能安全较高,实时性要求较强,且往往与执行器紧密耦合,这类控制SWC可以考虑部署在高性能整车控制单元VDC中。其余如原BCM功能的车身控制及相关的传感执行器、模式控制单元SWC可部署在低功能安全等级PDC中。其余,如电源控制SWC由专门的电源控制单元PMIC进行硬件搭载。

ada3f7b6-a606-11ed-bfe3-dac502259ad0.png

5)SWC部署到HPC内核资源

进一步的,我们以高性能计算平台,针对性的对HPC中的云端单元,从SWC角度分配其功能到内核层面。考虑到不同ADAS功能子模块在SWC中需要遵循的原则,整个部署过程应尽量确保从架构实现、可靠性、高效率、功能安全、信息安全等方面进行全方位考量。

这里我们需要重点说明下关于通用ARM芯片常提到的R核与A核在部署过程中的关系原则。R核是指实时性能高只支持物理地址,并支持内存管理,用于实时性领域。比如,我们在软件部署过程中,通常将与制动、转向等功能安全等级高、实时性也高的软件SWC模块布置在R核中。同时,针对部分实时性操作系统RTOS也布置于R核上进行运行。

A核算力高支持虚拟地址和内存管理,用于应用领域,实时性比R核差些,考虑ADAS功能应用层规控软件功能安全级别有所区别,主要涉及系统管理、应用接口、环境、轨迹预测、规划决策、执行控制/显示等相应的模块。因此,可以将与ADAS应用层相关的软件功能部分布置在A核上。

如下表示了典型的基础软件的部署方案涉及对如下几个重点模块的布局,这里我们以TDA4中主要的核资源核软件Module为主要考虑点。

其中Framework负责为ServiceAPP和Module提供运行环境,并负责实体间通信,让ServiceAPP和Module专注于功能逻辑,以及监视运行环境的状态。因此,我们将服务管理、节点管理、错误管理、模式管理几个“上层服务”应用布置在该应用软件模块中。ServiceManager主要用于大通服务提供端和服务客户端的连接通道,同时提供服务监控;NodeManager主要用于进行进程和节点的生命周期管理、节点间的Com通道以及节点监控;ErrorManagement主要用于进行ADS系统及子系统的错误管理并发送错误报告;ModeManagement主要用于子系统的错误处理、降级管理等。

同时,如上这类框架性服务连同通信管理、执行管理、平台健康管理、状态管理几项都主要布局在TDA4服务级的A核中。

EAL相关的软件模块主要负责封装底层环境,包括底层硬件和OS、整车环境及云端等,提供相应的传感器底层I/O服务、总线通信服务,实现软硬件分离。因此,通常讲设备抽象模块EDD模块部署在EAL之上。

Core表示一种核心模块,主要是提供顶层应用框架与底层EAL的通用服务,并为ADS系统提供通用功能,同时为这些通用服务定义真正的外部环境和部署结构。

Module表示支持自动驾驶开发的基础模块,包含通常的感知、融合、规划、决策等几个模块。

这类软件模块处理任务包含:

资源管理:系统、总线、传感器、存储、资源配置等管理;

HPC信息处理:DNN处理、CV处理、并行处理、算法嵌入等;

协调端系统:传感器信息、车身信息、驾驶信息等;

ADS功能服务:数据记录、诊断等

ade5d0be-a606-11ed-bfe3-dac502259ad0.png

从如上功能单元不难看出绝大部分Core资源所涉及的软件模块具备较高的功能安全等级和强实时性要求。同时从运算角度将,可以将其中的软件部署拆分成两个部分,其一是针对图像处理、深度学习模块的感知单元,这部分往往在功能安全上要求从ASILB起步,而后端规划控制和决策执行,则是更加倾向于更高级别功能安全等级。多数规控模块要求达到ASILD级别功能安全,且由于涉及与执行器之间的交互,很多情况下本身系统上层的交互信号安全等级也较高,可达到ASILD级别,同时考虑自动驾驶本身安全性需求,需要执行控制过程往往具备强实时性。因此,感知、融合这类前端计算量大,安全等级一般的SWC可部署于A核中间,而后端规控、执行安全等级、实时性都较高,可以考虑布置在R核中。为了减少对于后端MCU的计算压力,可以将轨迹规划和决策放在前端SOC的R核中,而执行控制、反馈调节等MPC过程可以考虑放在外围MCU中。

如下图表示了功能软件主要部署的几个大模块,以TDA4作为SOC表示的对系统功能需求相应的A核和R核部署方法。

ae505042-a606-11ed-bfe3-dac502259ad0.png

ae81be20-a606-11ed-bfe3-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2653

    浏览量

    47270
  • SOA
    SOA
    +关注

    关注

    1

    文章

    281

    浏览量

    27400
  • 软件组件
    +关注

    关注

    0

    文章

    4

    浏览量

    7996

原文标题:SOA中的软件模块在硬件中的最优化部署方法论(二):SOA的软件组件部署实例分析

文章出处:【微信号:阿宝1990,微信公众号:阿宝1990】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于SOA的系统软件测试平台需求分析

    基于SOA的系统软件测试平台分为三个主要模块:前端程序(SOATest)、测试执行程序(ServiceExecutor)和服务部署容器(SvcHost),如图1所示。SOA测试负责生成
    的头像 发表于 09-23 10:57 1052次阅读

    Microsoft Lync Server 2010通信软件部署

    Microsoft Lync Server 2010 通信软件部署包括准备 Active Directory 域服务 (AD DS),部署前端服务器及其他核心 Lync Server 2010 内部组件,然后
    发表于 07-15 07:05

    如何对SOA进行软硬件部署

    功能控制管理、云端服务管理几个重要部分。SOA中的设备抽象技术在详细分析以中央域控为核心的软件架构部署核心技术之前,需要详细说明一下相关联的几个重要概念。Autosar中的传感器/执行
    发表于 06-10 17:23

    基于SOA的业务基础开发平台的应用研究

    本文提出了一个基于SOA 思想和模型驱动架构,面向业务流程信息软件系统开发的业务基础开发平台,描述了业务基础开发平台的总体结构以及其中的关键技术,并举出一个实例
    发表于 08-12 10:19 14次下载

    对于SOA的简单介绍分析

    SOA,是Service Oriented Architecture的缩写,翻译成中文叫做“面向服务架构”,所谓服务,可以理解为一个一个的小功能组件SOA就是把整个架构切分为众多小功能组件
    的头像 发表于 01-26 14:51 4899次阅读

    SOA是什么_SOA主要的开发方法和工具分析

    本文主要对SOA是什么以及SOA主要的开发方法和工具进行分析。面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用
    的头像 发表于 02-07 12:45 1w次阅读
    <b class='flag-5'>SOA</b>是什么_<b class='flag-5'>SOA</b>主要的开发方法和工具<b class='flag-5'>分析</b>

    soa和微服务的区别

    微服务究竟是压垮SOA的最后一根稻草,还是能够拯救整个软件工程行业的万能药?人们对于微服务的概念进行了大量的讨论,其中有许多讨论是关于微服务与SOA之间的关联。本文将对soa和微服务的
    的头像 发表于 02-07 14:11 1.4w次阅读
    <b class='flag-5'>soa</b>和微服务的区别

    如何使用SOA进行汽车软件本体的研究

    随着汽车软件的迅速发展,车内软件由分散、孤立的嵌入式软件逐步趋向具有相当规模、子系统之间需要频繁交互的集成软件分析了汽车
    发表于 03-04 08:00 6次下载
    如何使用<b class='flag-5'>SOA</b>进行汽车<b class='flag-5'>软件</b>本体的研究

    模板软件架构SOA详解

    SOA不是具体的技术实现,而是一种模板软件架构!   那么,怎么来理解SOA是一种模板软件架构?又如何理解为什么AP AUTOSAR是SOA
    的头像 发表于 01-04 11:28 4915次阅读
    模板<b class='flag-5'>软件</b>架构<b class='flag-5'>SOA</b>详解

    SOA软件定义汽车最关键的环节

    软件定义汽车”最关键的环节是SOA(Service-Oriented Architecture,面向服务的架构)。基于硬件算力提升、车载以太网的发展,以及汽车网联化带来的影响,SOA在二十年后将被重新召唤。
    发表于 09-13 18:16 1028次阅读

    SOA面向服务架构介绍

    应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
    的头像 发表于 11-02 10:36 1268次阅读

    一文详解汽车SOA主要功能模块及开发流程

    SOA可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中因软件
    的头像 发表于 11-22 10:42 1100次阅读

    自动驾驶领域的SOA软件架构设计应用分析

    面向服务的体系架构(Service-Oriented Architecture, SOA)因具有基于标准、松耦合性、互操作性等优势,更加贴近智能网联化时代车载系统对软件架构的要求,从而被汽车行业广泛采用。
    发表于 06-08 09:44 819次阅读
    自动驾驶领域的<b class='flag-5'>SOA</b><b class='flag-5'>软件</b>架构设计应用<b class='flag-5'>分析</b>

    使用Jenkins和单个模板部署多个Kubernetes组件

    在持续集成和部署中,我们通常需要部署多个实例组件到Kubernetes集群中。通过Jenkins的管道脚本,我们可以自动化这个过程。在本文中,我将演示如何使用Jenkins Pipe
    的头像 发表于 01-02 11:40 662次阅读
    使用Jenkins和单个模板<b class='flag-5'>部署</b>多个Kubernetes<b class='flag-5'>组件</b>

    汽车SOA功能模块与开发流程深度剖析

    SOA是从遵循服务导向原则的可重用服务中构建复杂软件系统的方法。SOA也是1个组件模型,它将应用程序的不同功能单元(称为服务),通过这些服务之间定义良好的接口和契约联系起来。
    发表于 04-07 10:13 756次阅读