SWC軟件部署前言
整個軟件的模塊的部署需要對需求、軟件架構、硬件、中間件平臺Autosar,AP/CP都有較為深入的了解。其中流程分為三個主要的階段:
首先,系統架構設計階段:
專業針對最終實現的功能分配模塊,總體討論ECU融合方案、分配原則,形成初版針對控制器的需求。
其次,系統需求及軟件架構設計階段:
通過討論功能需求涉及的產品能力PC、測試用例Usecase,生成對應的軟件模塊Module和軟件元素SWC。
隨后,軟件架構設計階段:
進行分配原則、非功能性需求討論、SWC分配方案編寫、專業討論并更新控制器需求,搭建PreEvision/EA模型。
如上,最終基于軟件架構,Module核SWC要分配到各個控制器中,區域控制器VIU中分配到MCU或MPU,MPU中分配到A核、R核,都需要詳細的定義。
SWC的軟件部署實例分析
本文以高級自動駕駛輔助功能NOA為例,詳細講解實現該功能需要如何定位并細化軟件部署過程。
如前所述,所有的部署從本質上就是識別到所能承載軟件組件運行能力的核資源,并進行軟件集中嵌入該硬核資源的過程。主要包括如下幾個關鍵步驟:
1)識別部署需求
這個階段設計對部署對象,即需要部署的是哪個功能對應的SWC,該部署過程需要消耗多少部署資源,比如多少核計算能力;相關模塊的快速識別,比如如何快速識別出可用于部署的核資源;同時利用設備抽象的概念分理處頂層軟件抽象處理模塊FDD、底層設備抽象處理模塊EDD的顆粒度及部署方案。其中軟件模塊部署需求中,需要重點界定出AP端、CP端各自的特性,比如CP端非快速啟動、快速啟動、低功耗等相關特性。
2)搭建物理架構視角的功能鏈路
功能ID功能名稱子功能非功能性需求
XxxHWP高速跟車、巡航、自動減速、車道保持、自動上下匝道、高速路口減速停車執行器響應能力
傳感器識別距離
端對端響應時間
傳感器時間同步
功能安全等級
XxxTJP擁堵跟車、巡航、跟停、起步、自動減速、車道保持
XxxALC/ALCA撥桿換道、自動換道、推薦換道
XxxSafeStop換道安全停車、本車道安全停車
XxxAES自動轉向避讓、自動換道避讓
主要是根據功能項梳理物理架構視角功能連路圖,同時提取非功能性需求。
整個物理架構視角開發的功能邏輯鏈路實際是類似于時序圖中的對應部分,是考慮將整個功能在工作過程中的數據流進行梳理。
如上圖表示了對NOP功能的開啟與激活中的自動轉向避障控制邏輯PC時序圖,各應用模塊的產品能力主要涉及對整個NOP系統自動轉向控制的能力和交互過程,在我們進行軟件組件SWC部署中,首先需要繪制類似上圖中的功能交互圖,從圖中提取我們需要實現的子模塊PC,并為每個PC設計對應的SWC即可獲得我們需要的總體SWC。
3)梳理SWC軟件模塊
根據功能需求劃分出來的SWC包含如下模塊,各SWC分別位于SOA軟件架構的不同分層中,對于軟件SWC到硬件核的部署過程來說,需要根據其不同的功能子項合理的分配到對應的控制器中。
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進行硬件搭載。
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功能服務:數據記錄、診斷等
從如上功能單元不難看出絕大部分Core資源所涉及的軟件模塊具備較高的功能安全等級和強實時性要求。同時從運算角度將,可以將其中的軟件部署拆分成兩個部分,其一是針對圖像處理、深度學習模塊的感知單元,這部分往往在功能安全上要求從ASILB起步,而后端規劃控制和決策執行,則是更加傾向于更高級別功能安全等級。多數規控模塊要求達到ASILD級別功能安全,且由于涉及與執行器之間的交互,很多情況下本身系統上層的交互信號安全等級也較高,可達到ASILD級別,同時考慮自動駕駛本身安全性需求,需要執行控制過程往往具備強實時性。因此,感知、融合這類前端計算量大,安全等級一般的SWC可部署于A核中間,而后端規控、執行安全等級、實時性都較高,可以考慮布置在R核中。為了減少對于后端MCU的計算壓力,可以將軌跡規劃和決策放在前端SOC的R核中,而執行控制、反饋調節等MPC過程可以考慮放在外圍MCU中。
如下圖表示了功能軟件主要部署的幾個大模塊,以TDA4作為SOC表示的對系統功能需求相應的A核和R核部署方法。
審核編輯 :李倩
-
模塊
+關注
關注
7文章
2696瀏覽量
47439 -
SOA
+關注
關注
1文章
287瀏覽量
27466 -
軟件組件
+關注
關注
0文章
4瀏覽量
8005
原文標題:SOA中的軟件模塊在硬件中的最優化部署方法論(二):SOA的軟件組件部署實例分析
文章出處:【微信號:阿寶1990,微信公眾號:阿寶1990】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論