從去年開(kāi)始(可能更早),SOA的概念在汽車(chē)軟件行業(yè)逐漸蔓延開(kāi)來(lái),很多公眾號(hào)都發(fā)過(guò)講汽車(chē)SOA的文章,很多車(chē)廠都要開(kāi)始(或者已經(jīng)在)搞SOA。但我覺(jué)得吧,在開(kāi)搞新技術(shù)之前,是不是先花點(diǎn)時(shí)間弄明白這個(gè)技術(shù)到底是什么,它解決的是什么樣的問(wèn)題,然后再談架構(gòu),再談開(kāi)發(fā),很多時(shí)候我們連問(wèn)題是什么都沒(méi)整明白,就急著去做解決方案,最后的結(jié)果只能是一地雞毛。對(duì)個(gè)人來(lái)說(shuō),要搞SOA開(kāi)發(fā),需要夯實(shí)哪些基礎(chǔ)知識(shí),看了很多SOA文章,卻很少有人梳理這些,這段時(shí)間我陸續(xù)思考了一些,盡管可能不全面(更偏向SOC開(kāi)發(fā)涉及的技術(shù)點(diǎn)),但仍然試圖寫(xiě)出來(lái),以期逐步構(gòu)建出自己的領(lǐng)域知識(shí)體系。
①
SOA架構(gòu)理解
1、軟件定義汽車(chē),E/E架構(gòu)是關(guān)鍵
汽車(chē)電子電氣架構(gòu)(簡(jiǎn)稱(chēng)E/E架構(gòu))是指整車(chē)電子電氣系統(tǒng)的總布置方案。在智能網(wǎng)聯(lián)汽車(chē)產(chǎn)業(yè)大變革背景下,軟件定義汽車(chē)?yán)砟钜殉蔀楣沧R(shí)。傳統(tǒng)汽車(chē)采用的分布式E/E架構(gòu)因計(jì)算能力不足、通訊帶寬不足、不便于軟件升級(jí)等瓶頸,已經(jīng)不能滿足現(xiàn)階段汽車(chē)發(fā)展的需求,E/E架構(gòu)的變革已成為智能網(wǎng)聯(lián)汽車(chē)發(fā)展的關(guān)鍵,其升級(jí)主要體現(xiàn)在硬件架構(gòu)、軟件架構(gòu)、通信架構(gòu)三個(gè)方面:
-
硬件架構(gòu)升級(jí):由分布式ECU向域控制/中央集中架構(gòu)方向發(fā)展,汽車(chē)E/E架構(gòu)的升級(jí)路徑表現(xiàn)為分布式(模塊化→集成化)、域集中(域控制集中→跨域融合)、中央集中式(車(chē)載電腦→車(chē)-云計(jì)算)。好處在于:提升算力利用率,減少算力設(shè)計(jì)總需求;數(shù)據(jù)統(tǒng)一交互,實(shí)現(xiàn)整車(chē)功能協(xié)同;縮短線束,降低故障率,減輕質(zhì)量。

-
軟件架構(gòu)升級(jí):通過(guò) AutoSAR 等軟件架構(gòu)提供標(biāo)準(zhǔn)的接口定義,模塊化設(shè)計(jì),促使軟硬件解耦分層,實(shí)現(xiàn)軟硬件設(shè)計(jì)分離;Classic AutoSAR架構(gòu)逐步向Classic AutoSAR+Adaptive AutoSAR混合式架構(gòu)發(fā)展。好處在于:可實(shí)現(xiàn)軟件/固件 OTA 升級(jí)、軟件架構(gòu)的軟實(shí)時(shí)、操作系統(tǒng)可移植;采集數(shù)據(jù)信息多功能應(yīng)用,有效減少硬件需求量,真正實(shí)現(xiàn)軟件定義汽車(chē)。
-
通信架構(gòu)升級(jí):車(chē)載網(wǎng)絡(luò)骨干由 LIN/CAN 總線向以太網(wǎng)方向發(fā)展。好處在于:滿足高速傳輸、高通量、低延遲等性能需求,同時(shí)也可減少安裝、測(cè)試成本。
2、中央計(jì)算單元:E/E架構(gòu)的核心
中央計(jì)算單元是E/E架構(gòu)中最關(guān)鍵的部分,不管是按區(qū)域的架構(gòu),還是以后的純中央計(jì)算平臺(tái),其硬件構(gòu)型從根本上決定了軟件架構(gòu)的設(shè)計(jì)方向。中央計(jì)算單元可以分為以下三種形態(tài):

-
SOC分離式:將多個(gè)不同的芯片集成到一個(gè)中央計(jì)算單元上去,每個(gè)運(yùn)行不同的操作系統(tǒng),只是在形態(tài)上集中到了一起,各單元依然獨(dú)立的完成各自任務(wù);
-
硬件隔離式:在統(tǒng)一的計(jì)算平臺(tái)上采用虛擬化方案,同時(shí)運(yùn)行多個(gè)操作系統(tǒng),但是各個(gè)系統(tǒng)依然在硬件上進(jìn)行隔離,每個(gè)系統(tǒng)都有自己的專(zhuān)屬硬件資源;
-
軟件虛擬式:在統(tǒng)一的計(jì)算平臺(tái)上采用虛擬化方案,同時(shí)運(yùn)行多個(gè)操作系統(tǒng),每個(gè)操作系統(tǒng)所使用的硬件資源,由Hypervisor層動(dòng)態(tài)調(diào)配,每個(gè)系統(tǒng)并沒(méi)有專(zhuān)屬的硬件資源。
硬件隔離式和軟件虛擬式,都采用了虛擬化方案,唯一不同點(diǎn)在于硬件資源是否專(zhuān)屬,如果是專(zhuān)屬的,就意味著資源無(wú)法動(dòng)態(tài)調(diào)配,容易產(chǎn)生資源浪費(fèi)。虛擬化方案最大的好處是,硬件上的可拓展性,如果中央計(jì)算單元采用刀片式的設(shè)計(jì)結(jié)構(gòu),可以很方便地拓展計(jì)算單元的算力,而不用替換整個(gè)計(jì)算單元。
在中央計(jì)算單元中,只需要兩個(gè)操作系統(tǒng)即可,用于自動(dòng)駕駛、車(chē)控、網(wǎng)關(guān)的RTOS,以及用于娛樂(lè)的普通OS(如Android、Linux)。用于娛樂(lè)的OS完全可以通過(guò)虛擬機(jī)的方式運(yùn)行,用于自動(dòng)駕駛、車(chē)控、網(wǎng)關(guān)的RTOS,可以直接運(yùn)行在Hypervisor層,既能兼顧實(shí)時(shí)計(jì)算的要求,也能獲得豐富的娛樂(lè)系統(tǒng)功能。
3、SOA:解決軟件定義汽車(chē)中服務(wù)間通信的分布式架構(gòu)
在軟件定義汽車(chē)中,應(yīng)用間跨進(jìn)程或跨核的通信,必然成為軟件架構(gòu)設(shè)計(jì)中一個(gè)需要去解決的問(wèn)題。SOA在互聯(lián)網(wǎng)已經(jīng)應(yīng)用了很長(zhǎng)時(shí)間,但在汽車(chē)行業(yè)中,算是比較新的概念。鑒于汽車(chē)的應(yīng)用場(chǎng)景和通信需求有其特殊性,很多互聯(lián)網(wǎng)的SOA技術(shù),并不能照搬過(guò)來(lái)。雖然Adaptive AutoSAR采用了SOA作為通信架構(gòu)(ARA::COM架構(gòu)如下圖),但是Adaptive AutoSAR的應(yīng)用可以說(shuō)還沒(méi)有普及,應(yīng)該說(shuō)整個(gè)行業(yè)就沒(méi)什么標(biāo)準(zhǔn)的SOA中間件解決方案,幾乎沒(méi)有專(zhuān)業(yè)做中間件研發(fā)的公司,可能在國(guó)內(nèi)這種慢工出細(xì)活的東西很難有什么成長(zhǎng)的空間和土壤吧。所以,對(duì)于汽車(chē)SOA,還有很多值得我們?nèi)プ龅难芯亢蛧L試~

摘自《Introduction of ARA::COM as common communication middleware》April, 2018 by GENIVI
SOA,Service-Oriented Architecture(面向服務(wù)的架構(gòu)),是一種架構(gòu)思想,實(shí)施者可以根據(jù)實(shí)際情況設(shè)計(jì)SOA的技術(shù)實(shí)現(xiàn)。為什么要面向服務(wù)?以前用得好好的面向信號(hào)或者面向消息的通信架構(gòu)怎么就不香了?面向服務(wù)的通信架構(gòu),它的優(yōu)勢(shì)到底在哪里,如果不能很好地理解這點(diǎn),可能很難從過(guò)去面向信號(hào)的思維轉(zhuǎn)變過(guò)來(lái),也就無(wú)法體會(huì)引入SOA的價(jià)值和意義。這有點(diǎn)悖論哈,不去用,無(wú)法感受其奧義,但又因?yàn)闆](méi)用過(guò),對(duì)它保有質(zhì)疑,過(guò)往的再擰巴,也是千錘百煉了,從零開(kāi)始,談何容易。因此,我覺(jué)得短時(shí)間內(nèi)不太可能全面鋪開(kāi)做整車(chē)SOA,可能會(huì)在安全等級(jí)不高的域比如智能座艙先嘗試SOA。
本質(zhì)上SOA就是服務(wù)的集合。在SOME/IP 協(xié)議介紹一文中,我寫(xiě)過(guò)對(duì)于“服務(wù)”的理解。以智能座艙域?yàn)槔?如下圖),可以把“服務(wù)”分為兩類(lèi):基礎(chǔ)服務(wù)和應(yīng)用服務(wù),基礎(chǔ)服務(wù)的功能可能包括:總線消息的解析和路由(如車(chē)身數(shù)據(jù)服務(wù))、直接與硬件相關(guān)的邏輯處理(如音頻服務(wù))、上層應(yīng)用有共同需求的一些基礎(chǔ)設(shè)施(如日志服務(wù));應(yīng)用服務(wù)的功能相對(duì)復(fù)雜些,可能需要由多個(gè)基礎(chǔ)服務(wù)提供數(shù)據(jù)支撐,也可能需要應(yīng)用服務(wù)之間相互協(xié)同,實(shí)現(xiàn)業(yè)務(wù)邏輯(如導(dǎo)航服務(wù))。

這只是一個(gè)很簡(jiǎn)單的例子,想表達(dá)的是,每個(gè)服務(wù)將自己的功能,以接口的方式提供,基于這些服務(wù)和接口,便可以設(shè)計(jì)出應(yīng)用場(chǎng)景,以滿足各種用戶需求,提升駕車(chē)體驗(yàn)??梢韵胂螅瑧?yīng)用場(chǎng)景的需求一定是豐富且變化的,面向信號(hào)的話,新增一個(gè)需求,可能要等上一年,但如果服務(wù)也能夠方便地進(jìn)行開(kāi)發(fā)、擴(kuò)展和更新,是不是好多了,是不是挺有價(jià)值呢~
轉(zhuǎn)載汽車(chē)電子相關(guān)文章
轉(zhuǎn)自汽車(chē)電子與軟件