0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SOA的軟件組件部署實例分析

jf_C6sANWk1 ? 來源:阿寶1990 ? 2023-02-07 11:02 ? 次閱讀

SWC軟件部署前言

整個軟件的模塊的部署需要對需求、軟件架構(gòu)、硬件、中間件平臺Autosar,AP/CP都有較為深入的了解。其中流程分為三個主要的階段:

首先,系統(tǒng)架構(gòu)設(shè)計階段:

專業(yè)針對最終實現(xiàn)的功能分配模塊,總體討論ECU融合方案、分配原則,形成初版針對控制器的需求。

其次,系統(tǒng)需求及軟件架構(gòu)設(shè)計階段:

通過討論功能需求涉及的產(chǎn)品能力PC、測試用例Usecase,生成對應(yīng)的軟件模塊Module和軟件元素SWC。

隨后,軟件架構(gòu)設(shè)計階段:

進行分配原則、非功能性需求討論、SWC分配方案編寫、專業(yè)討論并更新控制器需求,搭建PreEvision/EA模型。

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

如上,最終基于軟件架構(gòu),Module核SWC要分配到各個控制器中,區(qū)域控制器VIU中分配到MCU或MPU,MPU中分配到A核、R核,都需要詳細的定義。

SWC的軟件部署實例分析

本文以高級自動駕駛輔助功能NOA為例,詳細講解實現(xiàn)該功能需要如何定位并細化軟件部署過程。

如前所述,所有的部署從本質(zhì)上就是識別到所能承載軟件組件運行能力的核資源,并進行軟件集中嵌入該硬核資源的過程。主要包括如下幾個關(guān)鍵步驟:

1)識別部署需求

這個階段設(shè)計對部署對象,即需要部署的是哪個功能對應(yīng)的SWC,該部署過程需要消耗多少部署資源,比如多少核計算能力;相關(guān)模塊的快速識別,比如如何快速識別出可用于部署的核資源;同時利用設(shè)備抽象的概念分理處頂層軟件抽象處理模塊FDD、底層設(shè)備抽象處理模塊EDD的顆粒度及部署方案。其中軟件模塊部署需求中,需要重點界定出AP端、CP端各自的特性,比如CP端非快速啟動、快速啟動、低功耗等相關(guān)特性。

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

2)搭建物理架構(gòu)視角的功能鏈路

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

XxxHWP高速跟車、巡航、自動減速、車道保持、自動上下匝道、高速路口減速停車執(zhí)行器響應(yīng)能力

傳感器識別距離

端對端響應(yīng)時間

傳感器時間同步

功能安全等級

XxxTJP擁堵跟車、巡航、跟停、起步、自動減速、車道保持

XxxALC/ALCA撥桿換道、自動換道、推薦換道

XxxSafeStop換道安全停車、本車道安全停車

XxxAES自動轉(zhuǎn)向避讓、自動換道避讓

主要是根據(jù)功能項梳理物理架構(gòu)視角功能連路圖,同時提取非功能性需求。

整個物理架構(gòu)視角開發(fā)的功能邏輯鏈路實際是類似于時序圖中的對應(yīng)部分,是考慮將整個功能在工作過程中的數(shù)據(jù)流進行梳理。

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

如上圖表示了對NOP功能的開啟與激活中的自動轉(zhuǎn)向避障控制邏輯PC時序圖,各應(yīng)用模塊的產(chǎn)品能力主要涉及對整個NOP系統(tǒng)自動轉(zhuǎn)向控制的能力和交互過程,在我們進行軟件組件SWC部署中,首先需要繪制類似上圖中的功能交互圖,從圖中提取我們需要實現(xiàn)的子模塊PC,并為每個PC設(shè)計對應(yīng)的SWC即可獲得我們需要的總體SWC。

3)梳理SWC軟件模塊

根據(jù)功能需求劃分出來的SWC包含如下模塊,各SWC分別位于SOA軟件架構(gòu)的不同分層中,對于軟件SWC到硬件核的部署過程來說,需要根據(jù)其不同的功能子項合理的分配到對應(yīng)的控制器中。

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

4)SWC部署到整車控制器

SWC的整個部署過程應(yīng)盡量遵循如下原則:

(01)高等級的SWC盡可能地部署到對應(yīng)的計算平臺中;

(02)與傳感器、執(zhí)行器緊密耦合的SWC部署到S&A中;

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

(04)休眠后需要工作的SWC考慮功耗問題部署到CP端;

(05)功能安全相關(guān)的SWC按照ASIL等級拆解后歸類部署;

(06)信息安全相關(guān)的SWC根據(jù)具體安全級別需求歸類部署;

(07)與快速啟動相關(guān)的SWC部署到CP實時核資源中;

(08)與強實時性要求相關(guān)的SWC部署到CP實時核資源中;

(09)功能鏈路交互避免過于復(fù)雜,接口過多;

(10)功能特性相同的SWC盡可能部署到同一個資源上;

(11)功能鏈路時間長度要滿足用戶體驗;

(12)高等級的SWC盡可能部署到AP端;

(13)資源預(yù)留度盡可能多。

從整車功能層分配到控制器的角度可以對如上的SWC軟件模塊進行總體的功能分配。以自動駕駛系統(tǒng)高性能計算平臺為軸心,外圍存在其軟件模塊相關(guān)的各個區(qū)域控制單元。我們以SOA架構(gòu)中各個軟件子模塊為部署的原子模塊,為了實現(xiàn)各個模塊信息間的通信和控制,我們可以實現(xiàn)如下的軟件模塊部署。

轉(zhuǎn)向、制動、驅(qū)動、懸架等底盤控制單元,由于其功能安全較高,實時性要求較強,且往往與執(zhí)行器緊密耦合,這類控制SWC可以考慮部署在高性能整車控制單元VDC中。其余如原BCM功能的車身控制及相關(guān)的傳感執(zhí)行器、模式控制單元SWC可部署在低功能安全等級PDC中。其余,如電源控制SWC由專門的電源控制單元PMIC進行硬件搭載。

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

5)SWC部署到HPC內(nèi)核資源

進一步的,我們以高性能計算平臺,針對性的對HPC中的云端單元,從SWC角度分配其功能到內(nèi)核層面??紤]到不同ADAS功能子模塊在SWC中需要遵循的原則,整個部署過程應(yīng)盡量確保從架構(gòu)實現(xiàn)、可靠性、高效率、功能安全、信息安全等方面進行全方位考量。

這里我們需要重點說明下關(guān)于通用ARM芯片常提到的R核與A核在部署過程中的關(guān)系原則。R核是指實時性能高只支持物理地址,并支持內(nèi)存管理,用于實時性領(lǐng)域。比如,我們在軟件部署過程中,通常將與制動、轉(zhuǎn)向等功能安全等級高、實時性也高的軟件SWC模塊布置在R核中。同時,針對部分實時性操作系統(tǒng)RTOS也布置于R核上進行運行。

A核算力高支持虛擬地址和內(nèi)存管理,用于應(yīng)用領(lǐng)域,實時性比R核差些,考慮ADAS功能應(yīng)用層規(guī)控軟件功能安全級別有所區(qū)別,主要涉及系統(tǒng)管理、應(yīng)用接口、環(huán)境、軌跡預(yù)測、規(guī)劃決策、執(zhí)行控制/顯示等相應(yīng)的模塊。因此,可以將與ADAS應(yīng)用層相關(guān)的軟件功能部分布置在A核上。

如下表示了典型的基礎(chǔ)軟件的部署方案涉及對如下幾個重點模塊的布局,這里我們以TDA4中主要的核資源核軟件Module為主要考慮點。

其中Framework負責(zé)為ServiceAPP和Module提供運行環(huán)境,并負責(zé)實體間通信,讓ServiceAPP和Module專注于功能邏輯,以及監(jiān)視運行環(huán)境的狀態(tài)。因此,我們將服務(wù)管理、節(jié)點管理、錯誤管理、模式管理幾個“上層服務(wù)”應(yīng)用布置在該應(yīng)用軟件模塊中。ServiceManager主要用于大通服務(wù)提供端和服務(wù)客戶端的連接通道,同時提供服務(wù)監(jiān)控;NodeManager主要用于進行進程和節(jié)點的生命周期管理、節(jié)點間的Com通道以及節(jié)點監(jiān)控;ErrorManagement主要用于進行ADS系統(tǒng)及子系統(tǒng)的錯誤管理并發(fā)送錯誤報告;ModeManagement主要用于子系統(tǒng)的錯誤處理、降級管理等。

同時,如上這類框架性服務(wù)連同通信管理、執(zhí)行管理、平臺健康管理、狀態(tài)管理幾項都主要布局在TDA4服務(wù)級的A核中。

EAL相關(guān)的軟件模塊主要負責(zé)封裝底層環(huán)境,包括底層硬件和OS、整車環(huán)境及云端等,提供相應(yīng)的傳感器底層I/O服務(wù)、總線通信服務(wù),實現(xiàn)軟硬件分離。因此,通常講設(shè)備抽象模塊EDD模塊部署在EAL之上。

Core表示一種核心模塊,主要是提供頂層應(yīng)用框架與底層EAL的通用服務(wù),并為ADS系統(tǒng)提供通用功能,同時為這些通用服務(wù)定義真正的外部環(huán)境和部署結(jié)構(gòu)。

Module表示支持自動駕駛開發(fā)的基礎(chǔ)模塊,包含通常的感知、融合、規(guī)劃、決策等幾個模塊。

這類軟件模塊處理任務(wù)包含:

資源管理:系統(tǒng)、總線、傳感器、存儲、資源配置等管理;

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

協(xié)調(diào)端系統(tǒng):傳感器信息、車身信息、駕駛信息等;

ADS功能服務(wù):數(shù)據(jù)記錄、診斷等

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

從如上功能單元不難看出絕大部分Core資源所涉及的軟件模塊具備較高的功能安全等級和強實時性要求。同時從運算角度將,可以將其中的軟件部署拆分成兩個部分,其一是針對圖像處理、深度學(xué)習(xí)模塊的感知單元,這部分往往在功能安全上要求從ASILB起步,而后端規(guī)劃控制和決策執(zhí)行,則是更加傾向于更高級別功能安全等級。多數(shù)規(guī)控模塊要求達到ASILD級別功能安全,且由于涉及與執(zhí)行器之間的交互,很多情況下本身系統(tǒng)上層的交互信號安全等級也較高,可達到ASILD級別,同時考慮自動駕駛本身安全性需求,需要執(zhí)行控制過程往往具備強實時性。因此,感知、融合這類前端計算量大,安全等級一般的SWC可部署于A核中間,而后端規(guī)控、執(zhí)行安全等級、實時性都較高,可以考慮布置在R核中。為了減少對于后端MCU的計算壓力,可以將軌跡規(guī)劃和決策放在前端SOC的R核中,而執(zhí)行控制、反饋調(diào)節(jié)等MPC過程可以考慮放在外圍MCU中。

如下圖表示了功能軟件主要部署的幾個大模塊,以TDA4作為SOC表示的對系統(tǒng)功能需求相應(yīng)的A核和R核部署方法。

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

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

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2730

    瀏覽量

    47652
  • SOA
    SOA
    +關(guān)注

    關(guān)注

    1

    文章

    293

    瀏覽量

    27536
  • 軟件組件
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    8038

原文標(biāo)題:SOA中的軟件模塊在硬件中的最優(yōu)化部署方法論(二):SOA的軟件組件部署實例分析

文章出處:【微信號:阿寶1990,微信公眾號:阿寶1990】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于SOA的系統(tǒng)軟件測試平臺需求分析

    基于SOA的系統(tǒng)軟件測試平臺分為三個主要模塊:前端程序(SOATest)、測試執(zhí)行程序(ServiceExecutor)和服務(wù)部署容器(SvcHost),如圖1所示。SOA測試負責(zé)生成
    的頭像 發(fā)表于 09-23 10:57 ?1128次閱讀

    Microsoft Lync Server 2010通信軟件部署

    Microsoft Lync Server 2010 通信軟件部署包括準(zhǔn)備 Active Directory 域服務(wù) (AD DS),部署前端服務(wù)器及其他核心 Lync Server 2010 內(nèi)部組件,然后
    發(fā)表于 07-15 07:05

    如何對SOA進行軟硬件部署

    功能控制管理、云端服務(wù)管理幾個重要部分。SOA中的設(shè)備抽象技術(shù)在詳細分析以中央域控為核心的軟件架構(gòu)部署核心技術(shù)之前,需要詳細說明一下相關(guān)聯(lián)的幾個重要概念。Autosar中的傳感器/執(zhí)行
    發(fā)表于 06-10 17:23

    對于SOA的簡單介紹分析

    SOA,是Service Oriented Architecture的縮寫,翻譯成中文叫做“面向服務(wù)架構(gòu)”,所謂服務(wù),可以理解為一個一個的小功能組件。SOA就是把整個架構(gòu)切分為眾多小功能組件
    的頭像 發(fā)表于 01-26 14:51 ?4978次閱讀

    SOA是什么_SOA主要的開發(fā)方法和工具分析

    本文主要對SOA是什么以及SOA主要的開發(fā)方法和工具進行分析。面向服務(wù)架構(gòu)soa以其獨特的優(yōu)勢越來越受到企業(yè)的重視,它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用
    的頭像 發(fā)表于 02-07 12:45 ?1.1w次閱讀
    <b class='flag-5'>SOA</b>是什么_<b class='flag-5'>SOA</b>主要的開發(fā)方法和工具<b class='flag-5'>分析</b>

    soa和微服務(wù)的區(qū)別

    微服務(wù)究竟是壓垮SOA的最后一根稻草,還是能夠拯救整個軟件工程行業(yè)的萬能藥?人們對于微服務(wù)的概念進行了大量的討論,其中有許多討論是關(guān)于微服務(wù)與SOA之間的關(guān)聯(lián)。本文將對soa和微服務(wù)的
    的頭像 發(fā)表于 02-07 14:11 ?1.4w次閱讀
    <b class='flag-5'>soa</b>和微服務(wù)的區(qū)別

    如何使用SOA進行汽車軟件本體的研究

    隨著汽車軟件的迅速發(fā)展,車內(nèi)軟件由分散、孤立的嵌入式軟件逐步趨向具有相當(dāng)規(guī)模、子系統(tǒng)之間需要頻繁交互的集成軟件。分析了汽車
    發(fā)表于 03-04 08:00 ?6次下載
    如何使用<b class='flag-5'>SOA</b>進行汽車<b class='flag-5'>軟件</b>本體的研究

    模板軟件架構(gòu)SOA詳解

    SOA不是具體的技術(shù)實現(xiàn),而是一種模板軟件架構(gòu)! ? 那么,怎么來理解SOA是一種模板軟件架構(gòu)?又如何理解為什么AP AUTOSAR是SOA
    的頭像 發(fā)表于 01-04 11:28 ?5030次閱讀
    模板<b class='flag-5'>軟件</b>架構(gòu)<b class='flag-5'>SOA</b>詳解

    SOA軟件定義汽車最關(guān)鍵的環(huán)節(jié)

    軟件定義汽車”最關(guān)鍵的環(huán)節(jié)是SOA(Service-Oriented Architecture,面向服務(wù)的架構(gòu))?;谟布懔μ嵘?、車載以太網(wǎng)的發(fā)展,以及汽車網(wǎng)聯(lián)化帶來的影響,SOA在二十年后將被重新召喚。
    發(fā)表于 09-13 18:16 ?1084次閱讀

    SOA面向服務(wù)架構(gòu)介紹

    應(yīng)用組件進行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。
    的頭像 發(fā)表于 11-02 10:36 ?1383次閱讀

    一文詳解汽車SOA主要功能模塊及開發(fā)流程

    SOA可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中因軟件
    的頭像 發(fā)表于 11-22 10:42 ?1174次閱讀

    自動駕駛領(lǐng)域的SOA軟件架構(gòu)設(shè)計應(yīng)用分析

    面向服務(wù)的體系架構(gòu)(Service-Oriented Architecture, SOA)因具有基于標(biāo)準(zhǔn)、松耦合性、互操作性等優(yōu)勢,更加貼近智能網(wǎng)聯(lián)化時代車載系統(tǒng)對軟件架構(gòu)的要求,從而被汽車行業(yè)廣泛采用。
    發(fā)表于 06-08 09:44 ?901次閱讀
    自動駕駛領(lǐng)域的<b class='flag-5'>SOA</b><b class='flag-5'>軟件</b>架構(gòu)設(shè)計應(yīng)用<b class='flag-5'>分析</b>

    使用Jenkins和單個模板部署多個Kubernetes組件

    在持續(xù)集成和部署中,我們通常需要部署多個實例組件到Kubernetes集群中。通過Jenkins的管道腳本,我們可以自動化這個過程。在本文中,我將演示如何使用Jenkins Pipe
    的頭像 發(fā)表于 01-02 11:40 ?821次閱讀
    使用Jenkins和單個模板<b class='flag-5'>部署</b>多個Kubernetes<b class='flag-5'>組件</b>

    汽車SOA功能模塊與開發(fā)流程深度剖析

    SOA是從遵循服務(wù)導(dǎo)向原則的可重用服務(wù)中構(gòu)建復(fù)雜軟件系統(tǒng)的方法。SOA也是1個組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù)),通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。
    發(fā)表于 04-07 10:13 ?962次閱讀

    詳解MySQL多實例部署

    詳解MySQL多實例部署
    的頭像 發(fā)表于 11-11 11:10 ?309次閱讀