发布信息

SWC备注计算SWC软件部署实例分析|焉知知圈

作者:软荐小编      2024-02-02 13:05:17     228

软件software_soa软件_软件soary

作者|艾米

出品| 颜智

志全| 进入“计算平台群”请添加微信yanzhi-6,备注计算

SWC 软件部署前言

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

一、系统架构设计阶段:

专业聚焦最终实现的功能分配模块,总体讨论ECU集成方案和分配原则,形成第一版控制器需求。

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

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

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

进行分配原则,讨论非功能需求,编写SWC分配计划,专业讨论和更新控制器需求,并构建PreEvision/EA模型。

软件soary_软件software_soa软件

如上,根据软件架构,需要将Module核SWC分配给各个控制器soa软件,将区域控制器VIU分配给MCU或MPU,将MPU分配给A核和R核,这些都需要详细的定义。

SWC软件部署实例分析

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

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

1) 确定部署需求

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

软件software_soa软件_软件soary

2)从物理架构角度构建功能链接

功能编号

函数名

子功能

非功能性需求

xxx

热熔水压

高速跟随、巡航、自动减速、车道保持、自动进出匝道、高速公路路口减速停车

执行器响应能力

传感器识别距离

端到端响应时间

传感器时间同步

功能安全等级

xxx

TJP

堵车跟随、巡航、跟停、启动、自动减速、车道保持

xxx

ALC/ALCA

变速杆变道、自动变道、推荐变道

xxx

安全停止

变道时安全停车,在本车道安全停车

xxx

AES

自动转向避让、自动变道避让

主要根据功能项从物理架构角度梳理功能连接图,同时提取非功能需求。

从整个物理架构的角度展开的功能逻辑链路其实和时序图中对应的部分类似,考虑的是梳理整个功能在工作过程中的数据流。

软件software_soa软件_软件soary

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

3)梳理SWC软件模块

SWC按照功能需求划分,包括以下模块。 每个SWC 位于SOA 软件架构的不同层中。 对于软件SWC到硬件核心的部署过程,需要根据其不同的功能子项合理分配到相应的模块。 在控制器中。

软件soary_软件software_soa软件

4)SWC部署到车辆控制器

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

(01)高层SWC应尽可能部署在相应的计算平台上;

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

(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硬件配备。

软件software_软件soary_soa软件

5)将SWC部署到HPC内核资源

此外,我们使用高性能计算平台,以HPC中的云单元为目标soa软件,从SWC的角度将其功能分配到内核级别。 考虑到不同ADAS功能子模块在SWC中需要遵循的原则,整个部署过程应尽量从架构实现、可靠性、高效性、功能安全、信息安全等方面进行全方位的考虑。

这里需要重点关注通用ARM芯片在部署过程中经常提到的R核和A核之间的关系原则。 R核指的是实时性高,仅支持物理地址和内存管理,用于实时领域。 例如,在软件部署过程中,我们通常会将制动、转向等功能安全级别高、实时性高的软件SWC模块放置在R核中。 同时,一些实时操作系统RTOS也被安排在R内核上运行。

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

一个典型的基础软件部署方案如下所示,涉及以下关键模块的布局。 这里我们以TDA4中的主要核心资源核心软件模块为主要考虑。

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

同时,上述框架服务连同通信管理、执行管理、平台健康管理、状态管理等主要部署在TDA4服务级别的A核中。

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

Core代表一个核心模块,主要提供顶层应用框架和底层EAL的公共服务,为ADS系统提供公共功能,同时定义这些公共服务的真实外部环境和部署结构。

Module代表支持自动驾驶开发的基础模块,包括共感知、融合、规划、决策等模块。

此类软件模块处理任务包括:

soa软件_软件soary_软件software

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

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

软件soary_软件software_soa软件

软件software_软件soary_soa软件

soa软件_软件soary_软件software

相关内容 查看全部