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模型。
如上,最終基于軟件架構(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)特性。
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ù)流進行梳理。
如上圖表示了對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)的控制器中。
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進行硬件搭載。
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ù)記錄、診斷等
從如上功能單元不難看出絕大部分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核部署方法。
審核編輯 :李倩
-
模塊
+關(guān)注
關(guān)注
7文章
2730瀏覽量
47652 -
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)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論