面向服務(wù)的開發(fā)模式已經(jīng)是為大家熟知的下一代智能汽車開發(fā)模式了,由于SOA(Service Oriented Architecture)架構(gòu)的靈活性和可擴展性,而這個恰恰與「軟件定義汽車」的思路不謀而合,因此可以說SOA的發(fā)展基礎(chǔ)是伴隨著軟件定義汽車的模式而產(chǎn)生的。為了更好的支持車控軟件的分布式部署與更新迭代,針對SOA的開發(fā)模式,需要在基于信號的服務(wù)通訊架構(gòu)下進行開發(fā),這種新架構(gòu)下的開發(fā)模式本身也存在一定的難度。
SOA系統(tǒng)由一組服務(wù)組成,并且其中的總服務(wù)包可以依次使用其他的多個子服務(wù),也可以根據(jù)需要使用一個或多個服務(wù)的應(yīng)用程序,SOA通常以不同系統(tǒng)間隔表現(xiàn)出不同的功能特性。
為了支持復(fù)雜的應(yīng)用程序,同時在處理分布式和計算資源分配方面提供最大的靈活性和可擴展性,業(yè)界均采用AP(Adaptive Platform)作為中間件進行SOA的設(shè)計開發(fā),遵循面向服務(wù)的體系結(jié)構(gòu)。
AP作為HPC(High Performance Controller)類型ECU的重要組成部分,可以統(tǒng)一管理下屬OS以及周邊資源,使得系統(tǒng)運行時的一切調(diào)度、狀態(tài)和資源消耗都處在一個可控的范圍內(nèi),以滿足車載安全性、確定性的要求。
此外,AP架構(gòu)可以實現(xiàn)分布式計算,通過某種形式的消息傳遞進行有效通信。這種基于消息傳遞和基于通信的架構(gòu)也可以實現(xiàn)快速和高帶寬的有效通信(例如以太網(wǎng))。
本文將以系統(tǒng)設(shè)計和開發(fā)者的身份重點講解如何設(shè)計一個SOA架構(gòu),并重點說明整個過程中需要完成哪些具體的工作。
1.SOA開發(fā)流程設(shè)計
下一代自動駕駛系統(tǒng)將定義整車級SOA軟件架構(gòu),通過分層部署的方式,將全局變量的服務(wù)統(tǒng)籌提取出來(例如車速、時間、車輛狀態(tài)等),作為共用的軟件模塊提供服務(wù),實現(xiàn)特定的基礎(chǔ)功能軟件接口統(tǒng)一,并可靈活部署。
大體上,AP(Adaptive Platform)的開發(fā)是一個“從上至下”的流程,其中跟SOA設(shè)計相關(guān)的有以下幾個重要步驟:
Step1:定義服務(wù)內(nèi)容
此步驟實際上就是搭建了一個系統(tǒng)功能架構(gòu),從整車層面即是按照功能需求定義并劃分服務(wù)。對于SOA中的服務(wù)表示了一種獨立的功能單元,一個服務(wù)可以包含其他子服務(wù)單元,使用標(biāo)準接口進行通訊,將內(nèi)部信息封裝成一個黑盒子,實現(xiàn)子服務(wù)的重用性。
上層服務(wù)可以通過該標(biāo)準接口調(diào)用下層服務(wù)封裝的子服務(wù)內(nèi)容。同時,整體的服務(wù)內(nèi)容可以被操控單元遠程訪問和獨立更改或更新。同時,對于SOA來說,需要通過服務(wù)編排來定義清楚服務(wù)之間的相互關(guān)系。
簡單地說服務(wù)對于智能駕駛汽車而言就是定義產(chǎn)品,對其中產(chǎn)品的能力進行描述,這里的產(chǎn)品能力我們稱之為PC(Product Capability)。
實現(xiàn)這種產(chǎn)品能力需要從下至上定義硬件抽象服務(wù)、平臺核心服務(wù)、域核心服務(wù)、應(yīng)用程序服務(wù)。而每一個服務(wù)內(nèi)容對應(yīng)著一個或多個實現(xiàn)的軟件模塊,這里我們稱之為SWC(Software Capability)
產(chǎn)品能力(PC) 描述了系統(tǒng)所需的一些高級功能。區(qū)別于系統(tǒng)設(shè)計,PC是用來分配職責(zé)的,所以很清楚哪個SWC Module軟件模塊(如攝像頭識別模塊、雷達識別模塊、中央域控制器模塊)應(yīng)該實現(xiàn)什么。
它們在功能設(shè)計時由功能負責(zé)人識別和請求。一些系統(tǒng)相關(guān)的PC也可以由系統(tǒng)架構(gòu)師或模塊負責(zé)人直接識別,在模塊架構(gòu)工作中映射PC時,模塊所有者還可以確定對更多 PC 的需求。
在確定并決定添加 PC 后,對應(yīng)的軟件模塊擁有該 PC,模塊所有者負責(zé)將其實施到正確的版本,并在平臺的整個生命周期內(nèi)維護/發(fā)展 PC。
?
Step2:定義服務(wù)接口
服務(wù)接口是一種通信內(nèi)容定義,其目的在于將服務(wù)從功能架構(gòu)過渡到軟件技術(shù)架構(gòu),且軟件模塊之間的關(guān)系需要被清晰的定義出來,過程中將服務(wù)內(nèi)容封裝成相應(yīng)的接口被實際調(diào)用。這種接口定義是獨立于通信協(xié)議的抽象實體,這種接口可以建立任何兩個服務(wù)間的通信能力,而使用合適的工具鏈可以由此生成基于特定協(xié)議的接口。
服務(wù)接口可分為方法(Method)、屬性(Property)、事件(Event)三種類型。以智能駕駛的一個子功能執(zhí)行接口服務(wù)為例,假設(shè)需要獲取攝像頭傳感器探測的環(huán)境數(shù)據(jù),而需要進行定義的服務(wù)接口中方法是要對傳感器的參數(shù)進行后融合,那么就需要其底層服務(wù)提供攝像頭處理的基礎(chǔ)函數(shù)(如ISP、深度學(xué)習(xí)函數(shù)、BEV函數(shù)等)。
而服務(wù)接口的屬性則是通過一定的方法操作(如get/set)來獲取該服務(wù)函數(shù),這種服務(wù)屬性可以對上層調(diào)用的服務(wù)部分可見,底層服務(wù)有變動上層的調(diào)用方式也會隨之變動,這種變動所帶來的更新會由服務(wù)底層決定何時發(fā)送給上層調(diào)用它的服務(wù)單元。 服務(wù)接口定義完整后,開發(fā)人員可以根據(jù)該接口定義對其中的函數(shù)進行定義開發(fā)了。
Step3:配置服務(wù)映射關(guān)系
此過程會建立軟硬件之間的映射關(guān)系,實現(xiàn)從抽象的服務(wù)定義到軟件層面的推導(dǎo),從而方便實現(xiàn)軟件驅(qū)動或調(diào)用硬件實現(xiàn)單元,這種結(jié)果是實現(xiàn)服務(wù)與中間件或底層硬件ECU之間的映射關(guān)系。
從整個SOA的架構(gòu)模型中我們知道服務(wù)需要從通用服務(wù)平臺開始進行底層驅(qū)動,然后對上層傳感器執(zhí)行器的控制管理進行驅(qū)動。
由于AP直接支持服務(wù)接口,可以直接面向上層應(yīng)用層,CP仍然是對常用的底層應(yīng)用服務(wù)的驅(qū)動映射,因此,兩層驅(qū)動分別對應(yīng)著經(jīng)典的CP Autosar中間件調(diào)用和AP Autosar模式。
Step4:通訊協(xié)議設(shè)計
智能網(wǎng)聯(lián)汽車的SOA架構(gòu)設(shè)計需要強大的環(huán)境感知、信息處理、實施決策、控制能力可以把智能交通、地圖、定位、通訊、云、大數(shù)據(jù)等進行系統(tǒng)集成,故車端與云端、車輛與車輛之間、車輛內(nèi)部的各個ECU之間通信的速率和數(shù)據(jù)量都比傳統(tǒng)汽車高出幾個數(shù)量級,這些需要由多種復(fù)雜的硬件、軟件和高速通信總線共同實現(xiàn),并在很大程度上決定智能汽車的功能實現(xiàn)和擴展的可靠性。
車載以太網(wǎng)能夠很好的解決大數(shù)據(jù)量的信息交互,整個通信協(xié)議的定義包括虛擬以太網(wǎng)VLAN,以太網(wǎng)交換機Switch,套接字Socket,基于IP的可擴展面向服務(wù)的中間件SOME/IP,SD等。而基于AVB的下一代協(xié)議TSN(時間敏感網(wǎng)絡(luò))可以提供非常優(yōu)秀的實時性。
以太網(wǎng)通訊設(shè)計過程包含對服務(wù)實例進行通訊協(xié)議相關(guān)的信息配置。由于SOA架構(gòu)中包含多個應(yīng)用實體之間的多通路通信過程,且這些通信通常是網(wǎng)狀通信,因此需要在各個實體節(jié)點之間建立中間路由、轉(zhuǎn)化等。
區(qū)別于傳統(tǒng)總線(Can/Lin),在軟件架構(gòu)設(shè)計過程中,開發(fā)人員需要設(shè)計具體的服務(wù)類型、服務(wù)ID、服務(wù)數(shù)據(jù)類型、服務(wù)角色等。
2.SOA架構(gòu)設(shè)計流程
SOA的邏輯架構(gòu)內(nèi)容需要根據(jù)分層架構(gòu)策略分配給一層的多個模塊。這些層也被分成幾個功能區(qū),使用Enterprise Architect進行架構(gòu)模型管理是SOA模塊架構(gòu)設(shè)計的基礎(chǔ),如下圖表示了典型的SOA系統(tǒng)的架構(gòu)設(shè)計模型。
區(qū)別于傳統(tǒng)Can總線面向信號的設(shè)計思路,在以太網(wǎng)設(shè)計過程中,開發(fā)人員需要在邏輯層面將功能抽象為服務(wù)的方式進行架構(gòu)設(shè)計。
如上圖,從下至上包含了SOA基礎(chǔ)服務(wù)管理、硬件I/O控制管理、系統(tǒng)功能控制管理、單元域功能控制管理、整車功能控制管理、云端控制管理、人機交互管理。
SOA基礎(chǔ)服務(wù)管理:該模塊主要是對整車軟件模塊的基礎(chǔ)功能(例如診斷管理、驅(qū)動管理、存儲、日志記錄、OTA等)進行分解并統(tǒng)一管理。
SOA硬件I/O控制管理:該模塊主要涉及對SOA中的傳感器&執(zhí)行器進行的相應(yīng)管理,包括定義傳感器輸入源硬件(Camera、Radar、Lidar、Uss、GPS等),定義執(zhí)行器輸入輸出源硬件(方向盤、制動踏板、轉(zhuǎn)向電機、車門車窗、電源電池、藍牙wifi等)。
傳感器執(zhí)行器層中的所有模塊都必須包含其各自設(shè)備的功能設(shè)備驅(qū)動程序 (FDD)。設(shè)備管理模塊將包含所有 ECU 使用的通用 ECU 設(shè)備驅(qū)動程序 (EDD)。
SOA系統(tǒng)功能控制管理:以SOA服務(wù)所需要實現(xiàn)的系統(tǒng)內(nèi)部作為劃分區(qū)間,將對特定功能進行控制的特殊功能服務(wù),例如比如ADAS系統(tǒng)將傳感器輸入的信息進行統(tǒng)一初級信息處理(如ISP、加串解串、原始點云處理)。
單元域功能控制管理:對系統(tǒng)內(nèi)部功能進行協(xié)調(diào)的功能服務(wù),如ADAS系統(tǒng)中利用深度學(xué)習(xí)進行環(huán)境信息檢測、傳感器信息融合,同時在動力學(xué)模型中進行車輛運動控制、車身姿態(tài)控制。
整車功能控制管理:對單個整車內(nèi)的系統(tǒng)進行調(diào)度的功能服務(wù),包括協(xié)調(diào)運動控制單元、動力系統(tǒng)、車輛安全相關(guān)的能力,特別是車身安全上需要充分考慮智能網(wǎng)聯(lián)車輛的功能安全設(shè)置相應(yīng)的軟硬件安全門檻。
云端服務(wù)管理:云端管理可以是以總監(jiān)控臺管理的該車輛及其周邊車輛、基礎(chǔ)設(shè)施相關(guān)的功能服務(wù),例如網(wǎng)絡(luò)安全管理、云端計算服務(wù)、軟件升級等協(xié)同控制。
基于以太網(wǎng)的SOA架構(gòu)設(shè)計,需要開發(fā)人員明確4個問題: 服務(wù)提供者(Provider)+ 服務(wù)·類型(Service)+ 客戶端(Consumer) + 服務(wù)接口(Service Interface)。
一般的,對于SOA系統(tǒng)架構(gòu)設(shè)計過程中可使用面向?qū)ο蟮脑O(shè)計工具進行設(shè)計。
如前所述對于服務(wù)來說我們需要首先進行產(chǎn)品能力PC定義,對應(yīng)于該服務(wù)模塊需要設(shè)計相應(yīng)的服務(wù)軟件模塊組建SWC。
其中服務(wù)組件包和軟件組件包的設(shè)計流程分別如下:
如上過程的設(shè)計和配置完成之后可采用一些現(xiàn)有的SOA開發(fā)工具PREEvision生成Arxml文件。該文件區(qū)別于CAN/CANFD/LIN總線的DBC和LDF等數(shù)據(jù)文件,Arxml包含了SOA架構(gòu)設(shè)計所有相關(guān)的服務(wù)、屬性以及服務(wù)的軟硬件實現(xiàn)方式,成為了以太網(wǎng)總線開發(fā)的通用標(biāo)準數(shù)據(jù)接口。
SOA架構(gòu)主要優(yōu)勢是可以很大程度上實現(xiàn)軟硬解耦,通過軟件升級OTA可以更加方便靈活的實現(xiàn)服務(wù)實體有效部署在任意的域控制器上,而且可以在售出車輛上調(diào)整部署策略。
同時,SOA的衍生功能是可以在汽車功能安全方面實現(xiàn)有效的冗余部署。例如,對于安全性要求比較高的智能駕駛功能可以實現(xiàn)雙重制動冗余配置,同時在車端布置雙重中央域控制服務(wù),確保當(dāng)一個域控制器失效時,那么另外一個域控制器上的備用服務(wù)實例立刻啟動,重新與服務(wù)使用者建立連接,以保證功能的正常運轉(zhuǎn),借此實現(xiàn)冗余機制。
對于SOA來說,是需要在AP Autosar流程下設(shè)計從服務(wù)定義到服務(wù)實例化的整個過程,為了實現(xiàn)在算法和軟硬件調(diào)用中的有效通信,就需要設(shè)計有效的通信協(xié)議,對于SOA來說基礎(chǔ)的通信協(xié)議除了Can以外,最基本的就是以太網(wǎng)的通訊設(shè)計。
審核編輯:劉清
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5426瀏覽量
171733 -
ecu
+關(guān)注
關(guān)注
14文章
886瀏覽量
54504 -
SOA
+關(guān)注
關(guān)注
1文章
288瀏覽量
27478 -
HPC
+關(guān)注
關(guān)注
0文章
316瀏覽量
23774
原文標(biāo)題:一文詳解基于SOA架構(gòu)的開發(fā)策略
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論