近年來,汽車“新四化”(智能化、網(wǎng)聯(lián)化、電動化、共享化)的快速推進(jìn),給汽車行業(yè)帶來了新的技術(shù)變革,汽車的功能變得越來越復(fù)雜,尤其是智能座艙、智能駕駛、智能底盤的出現(xiàn),促使汽車電子電氣架構(gòu)也相應(yīng)地發(fā)生變革。
隨著汽車智能化發(fā)展、汽車功能的增加,汽車上的電子控制單元(Electronic Control Unit,ECU)也越來越多,每個(gè)ECU的信號都必須在設(shè)計(jì)時(shí)進(jìn)行靜態(tài)規(guī)劃和路由,為了應(yīng)對這種增長帶來的挑戰(zhàn),汽車行業(yè)正在采用1種新的架構(gòu),即面向服務(wù)的體系架構(gòu)(Service-Oriented Architecture,SOA)。
SOA簡介
SOA是從遵循服務(wù)導(dǎo)向原則的可重用服務(wù)中構(gòu)建復(fù)雜軟件系統(tǒng)的方法。SOA也是1個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù)),通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口采用中立的方式進(jìn)行定義,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)以1種統(tǒng)一和通用的方式進(jìn)行交互。
SOA可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進(jìn)行分布式部署、組合和使用。服務(wù)層是SOA的基礎(chǔ),可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中因軟件代理交互而產(chǎn)生的人為依賴性。
SOA的特點(diǎn)是松耦合性、路徑透明、可復(fù)用性、一定的標(biāo)準(zhǔn)化,不涉及底層編程接口和通訊模型。
SOA在IT行業(yè)中已經(jīng)使用了多年,旨在描述和構(gòu)建分布式系統(tǒng)。同時(shí),面向服務(wù)的設(shè)計(jì)在汽車工業(yè)中也變得極為重要。
傳統(tǒng)汽車通訊是基于信號的通訊方式,即信息發(fā)送者不關(guān)心誰接收而只負(fù)責(zé)將信號發(fā)送出去,接收者也不關(guān)心是誰發(fā)送的,而只負(fù)責(zé)接收信號,這種方式適用于有限大小控制數(shù)據(jù)的應(yīng)用場景。
SOA代碼靈活性強(qiáng),支持請求/響應(yīng)模式,支持復(fù)雜的數(shù)據(jù)模型,可擴(kuò)展性強(qiáng),能夠滿足自動駕駛等應(yīng)用場景下,大量數(shù)據(jù)的動態(tài)交互,可以對系統(tǒng)進(jìn)行部分更新,如圖1所示。
圖1?面向信號與面向服務(wù)對比
汽車領(lǐng)域采用SOA的優(yōu)勢是能加快車輛與互聯(lián)網(wǎng)的互聯(lián)互通。比如,能夠?qū)⒏鞣N新功能靈活地與互聯(lián)網(wǎng)集成;能夠?qū)崿F(xiàn)更高效的車載自動診斷系統(tǒng)OBD(On Board Diagnostics,OBD)及空中下載技術(shù)(Over-The-Air Technology,OTA)軟件升級,有助于實(shí)現(xiàn)各種遠(yuǎn)程診斷、預(yù)診斷功能;能夠大幅提升影音娛樂功能的用戶體驗(yàn),能夠?qū)崿F(xiàn)不同平臺間的各種App共享功能;更便于實(shí)現(xiàn)平臺架構(gòu)升級;同時(shí)各個(gè)服務(wù)可以由不同團(tuán)隊(duì)獨(dú)立開發(fā),可以縮短車輛開發(fā)的時(shí)間。
SOA主要模塊及功能
Wonseon和Seung設(shè)計(jì)了端到端的SOA,如圖2。
圖2 端到端面向服務(wù)的架構(gòu)
在傳統(tǒng)的車載網(wǎng)絡(luò)中:
(1)許多ECU是基于CAN等舊式IVN進(jìn)行工作。
(2)大量的車輛信息和功能也來自舊式IVN。
(3)基于以太網(wǎng)的ECU上的新應(yīng)用程序應(yīng)可以訪問這些信息/功能。
在本架構(gòu)中,主要的功能模塊有SOA適配器(SOA Adaptor),SOA網(wǎng)關(guān)(G/W),SD代理(SD Proxy)和服務(wù)路由(Service Router)。下面將介紹各個(gè)模塊的功能。
SOA適配器
(1)將信息/功能從舊式IVN轉(zhuǎn)換為“服務(wù)”,任何基于以太網(wǎng)的ECU上的應(yīng)用程序都可以輕松訪問。
(2)在以太網(wǎng)方面,服務(wù)是在SOME/IP協(xié)議之上提供的。
(3)可以在舊版IVN和基于以太網(wǎng)的IVN之間的“橋接ECU”上實(shí)現(xiàn),例如域控制單元,區(qū)域控制器等。也可以僅在具有以太網(wǎng)接口的非橋接ECU上實(shí)現(xiàn)。
(4)SOA適配器提供的服務(wù)可以動態(tài)更改。
SOA網(wǎng)關(guān)
(1)處理與外部設(shè)備/網(wǎng)絡(luò)互通相關(guān)的問題。
(2)必要時(shí)轉(zhuǎn)換協(xié)議并翻譯。
(3)緩存外部信息以處理外部網(wǎng)絡(luò)的可用性和成本問題。
(4)應(yīng)用策略并執(zhí)行服務(wù)級別的訪問控制。
(5)應(yīng)該在具有外部連接的ECU上實(shí)施。
SD代理
(1)可以使用SD代理實(shí)現(xiàn)集中式SD。通過1個(gè)稱為“SD代理”的中央模塊交換服務(wù)發(fā)現(xiàn)消息。SOME/IP-SD消息也可用于ECU與SD代理之間的通信。
(2)分布式SD方法的安全和流量問題可以由集中式SD處理。每個(gè)服務(wù)只能由允許的ECU查找和訂閱??梢杂行У乇O(jiān)視服務(wù)可用性和搜索/訂閱嘗試。
服務(wù)路由
可以使用服務(wù)路由器來處理來自SOA分布式性質(zhì)的問題。服務(wù)只能通過服務(wù)路由器來使用。服務(wù)路由可以應(yīng)用于選定的服務(wù)。SD代理可用于高效的服務(wù)路由實(shí)施,安全和資源問題可以得到有效處理,可以基于域、ECU、服務(wù)甚至方法來控制服務(wù)訪問,策略也可以動態(tài)應(yīng)用。
汽車SOA應(yīng)用現(xiàn)狀
SOA是汽車以太網(wǎng)和IP帶來的汽車系統(tǒng)/軟件體系架構(gòu)的創(chuàng)新,其概念可以擴(kuò)展到從傳統(tǒng)ECU到外部設(shè)備的端到端范圍。SOA適配器和SOA網(wǎng)關(guān)可以分別用于舊設(shè)備和外部設(shè)備。通過使用其他SOA實(shí)體可以有效地管理SOA。端到端SOA支持快速高效地部署各種互聯(lián)汽車服務(wù)。
劉佳熙等在面向服務(wù)架構(gòu)汽車軟件開發(fā)方法和實(shí)踐中,提出SOA汽車軟件的分成模型,如圖3示。
圖3?SOA汽車分層模型
該模型主要包括3個(gè)層級:元服務(wù)、基礎(chǔ)服務(wù)和應(yīng)用服務(wù),通過不同的服務(wù)層級來分別對應(yīng)不同層級的汽車業(yè)務(wù)邏輯。
元服務(wù)是最小單元。包括汽車的傳感器和執(zhí)行器等的基本接口?;A(chǔ)服務(wù)是中間層服務(wù),在利用元服務(wù)的基礎(chǔ)上,可自定義汽車業(yè)務(wù)模塊,比如利用自車狀態(tài)服務(wù)和雷達(dá)傳感器等服務(wù),組合出環(huán)境信息融合的服務(wù)。應(yīng)用服務(wù)是最頂層的服務(wù),可以訪問和調(diào)用基礎(chǔ)服務(wù)以幫助其解決業(yè)務(wù)問題。
在設(shè)計(jì)中,上層服務(wù)調(diào)用下層服務(wù),下層服務(wù)不調(diào)用上層服務(wù),這一原則有助于構(gòu)建清晰簡單的SOA汽車軟件架構(gòu)。寶馬公司在新一代的E/E架構(gòu)中引入了SOA的方法,如圖4所示。SOA為整個(gè)系統(tǒng)提供大量的抽象服務(wù)。嚴(yán)格的封裝和層次結(jié)構(gòu)允許針對接口和使用敏捷方法進(jìn)行測試,并且它們降低了系統(tǒng)復(fù)雜性。在各代汽車之間重用軟件組件將變得更加簡單。
圖4 BMW下一代E/E架構(gòu)
大眾MEB平臺車載應(yīng)用服務(wù)架構(gòu)(In-Car Appli?cation-Server,ICAS),采用了1種可升級的新方法,如圖5所示。采用集中式功能與應(yīng)用程序軟件和I/O功能分離的架構(gòu),來降低整體系統(tǒng)復(fù)雜性和應(yīng)用程序之間的依賴性,同時(shí)可以高效快速地開發(fā)客戶功能,提供一些客戶職能所需的基本服務(wù),并且利用面向服務(wù)的通信。
圖5?大眾MEB平臺車載應(yīng)用服務(wù)架構(gòu)升級方法示例
在該架構(gòu)中還強(qiáng)調(diào),SOA是數(shù)字化的關(guān)鍵,如圖6所示,該架構(gòu)的優(yōu)點(diǎn)如下:
圖6?面向服務(wù)通信架構(gòu)
(1)采用面向服務(wù)的通信;
(2)使用服務(wù)發(fā)現(xiàn)和發(fā)布/訂閱進(jìn)行動態(tài)綁定;
(3)數(shù)據(jù)表示主要基于REST(表述性狀態(tài)傳遞)過渡到統(tǒng)一接口、無狀態(tài)、關(guān)注點(diǎn)分離;
(4)接口的向前和向后兼容性。
最后,通過提高可更新性、可升級性、重用能力和便攜性,使大眾汽車可以實(shí)現(xiàn)各種功能。
在AUTOSAR自適應(yīng)平臺(Adaptive Platform,AP)設(shè)計(jì)中,為了支持復(fù)雜的應(yīng)用程序,同時(shí)在處理分布和計(jì)算資源分配方面允許最大的靈活性和可擴(kuò)展性,AP遵循了面向服務(wù)的體系結(jié)構(gòu)理念。
SOA通常具有AP所具有的系統(tǒng)間特性。例如,服務(wù)可以駐留在應(yīng)用程序運(yùn)行的本地ECU上,也可以位于遠(yuǎn)程ECU上,該遠(yuǎn)程ECU也在運(yùn)行另一個(gè)AP例。
上汽組建“零束”軟件子公司,聚焦基于SOA技術(shù)的智能駕駛系統(tǒng)工程,同時(shí)推出“Z-ONE”的SOA開放平臺,致力于打造上汽SOA的軟件生態(tài)。該平臺是以SOA理念打造整車功能,將汽車各個(gè)功能模塊化。同時(shí)可以讓第3方開發(fā)者甚至是普通用戶參與到軟件功能的打造。
威馬汽車在2021年4月交付的威馬W6汽車,率先推出了車輛自定義場景編程功能,實(shí)現(xiàn)25種能力、自定義場景超100個(gè)、手機(jī)端與車機(jī)端的同步,未來將攜手用戶及開發(fā)者,打開“千人千面”的全新格局。
汽車SOA開發(fā)流程
Andreas等開發(fā)面向服務(wù)的車用應(yīng)用程序,并使用空中軟件更新部署它。主要流程如圖7所示。
圖7 汽車的SOA開發(fā)流程
研究背景如下:在巴塞羅那舉行的2019年世界移動通信大會上,梅賽德斯·奔馳展示了1款經(jīng)過改裝的車輛,可與開源SuperTuxKart游戲一起用作沉浸式游戲系統(tǒng)。游戲是使用真實(shí)的方向盤控制游戲中的車輛,空調(diào)模擬虛擬賽車的氣流、溫度效果。
Andreas假設(shè)車輛類型的制造商現(xiàn)在想要開發(fā)這樣的游戲系統(tǒng)并將其部署到車輛上,可作為車主購買的可選更新,其開發(fā)流程如下。
需求分析
首先,進(jìn)行需求分析,具體過程如下:
(1)主機(jī)將顯示1個(gè)賽車視頻游戲。聲音應(yīng)來自車載音響系統(tǒng)。
(2)游戲中的效果應(yīng)由實(shí)車反映,例如:空調(diào)應(yīng)根據(jù)游戲中的場景(即駛過火山)和虛擬車的速度調(diào)節(jié)氣流和溫度。游戲中的撞車事故應(yīng)通過可逆安全帶拉緊器告知用戶。電動座椅調(diào)節(jié)器和按摩器可產(chǎn)生更多的觸覺效果。在虛擬比賽開始時(shí),車內(nèi)的環(huán)境照明應(yīng)用作交通信號燈。
(3)虛擬車輛的水平動力學(xué)應(yīng)根據(jù)當(dāng)前方向盤角度得出。
(4)虛擬車輛的速度應(yīng)從油門踏板和制動踏板得出。
(5)中指定的效果體驗(yàn)應(yīng)與視頻游戲中顯示的情況相匹配。
(6)游戲的最小幀速率應(yīng)為30 fps。
(7)效果的延遲應(yīng)等于或小于1幀持續(xù)時(shí)間(最小幀頻)。
還存在一些非功能性需求:
(1)此功能應(yīng)部署在現(xiàn)有汽車上,無需對硬件進(jìn)行任何修改。
(2)該功能不得損害機(jī)動車的安全。
(3)只有在車輛周圍環(huán)境允許安全操作時(shí),該功能才有效。
起草軟件和系統(tǒng)架構(gòu)
根據(jù)起草軟件和系統(tǒng)架構(gòu),構(gòu)建面向服務(wù)的部分。
在“SuperTuxKart”應(yīng)用程序的需求定義完成后,起草它的軟件和系統(tǒng)架構(gòu)。本樣例中關(guān)注需求第2~4步,為此一共設(shè)計(jì)了3個(gè)步驟。
分解
實(shí)現(xiàn)“SuperTuxKart”應(yīng)用程序的必要組件在某種程度上遵循面向服務(wù)、面向信號的方法。
面向服務(wù)的部分:在這部分中,“Super-TuxKart”應(yīng)用程序被描述為1個(gè)服務(wù)消費(fèi)者組件(客戶端)。消費(fèi)的服務(wù)是噴油嘴服務(wù)(Nozzle)和轉(zhuǎn)向/踏板狀態(tài)服務(wù)(Steering/Pedal status)。其中,轉(zhuǎn)向/踏板狀態(tài)服務(wù)接口目的是定期接收踏板和轉(zhuǎn)向角的狀態(tài),為“Super?TuxKart”應(yīng)用程序提供施加的踏板壓力和轉(zhuǎn)向角;噴油嘴服務(wù)接口目的是實(shí)現(xiàn)對油泵執(zhí)行器的控制,“Su?perTuxKart”應(yīng)用程序根據(jù)游戲中的場景和虛擬車輛的速度以所需的噴嘴效果強(qiáng)度刺激界面。如圖8所示。
圖8 面向服務(wù)部分的架構(gòu)
面向信號的部分:軟件架構(gòu)的某些部分不會由服務(wù)接口實(shí)現(xiàn),而是由經(jīng)典的面向信號的方法。通??紤]與傳感器和執(zhí)行器密切相關(guān)的軟件功能。對于該應(yīng)用,必要的傳感器是踏板和轉(zhuǎn)向裝置。執(zhí)行器則是由噴油嘴表示。為了將3個(gè)組件集成到我們的軟件架構(gòu)草案中,引入了圖9中的信號接口。傳感器踏板和轉(zhuǎn)向裝置為轉(zhuǎn)向/踏板狀態(tài)服務(wù)提供接口;執(zhí)行器噴油嘴為噴油嘴服務(wù)提供接口(圖9)。
圖9 信號接口
部署
接下來,用適合的網(wǎng)絡(luò)技術(shù)部署軟件架構(gòu)??紤]3個(gè)通信網(wǎng)絡(luò),包括:以太網(wǎng),底盤/動力總成網(wǎng)絡(luò),LIN網(wǎng)絡(luò)。
(1)第1個(gè)網(wǎng)絡(luò)是以太網(wǎng)拓?fù)洹?個(gè)ECU通過1個(gè)中央以太網(wǎng)交換機(jī)互連。ECU 1是中央計(jì)算平臺。在ECU 1上,部署“SuperTuxKart”應(yīng)用程序。對于踏板/轉(zhuǎn)向服務(wù),底盤/傳動系統(tǒng)域的域控制器ECU2作為部署目標(biāo)給出。以類似的方式,車身域的域控制器ECU3作為部署噴油嘴服務(wù)的目標(biāo)。
(2)第2個(gè)底盤/傳動系統(tǒng)網(wǎng)絡(luò):該網(wǎng)絡(luò)描述兩種基于CAN和FlexRay協(xié)議的系統(tǒng)總線拓?fù)浣Y(jié)構(gòu)連接到底盤/傳動系統(tǒng)域的域控制器。
(3)第3個(gè)網(wǎng)絡(luò)描述了基于LIN協(xié)議的系統(tǒng)總線拓?fù)?。在此網(wǎng)絡(luò)中,專注于油泵執(zhí)行器,該執(zhí)行器部署在專用的LIN組件上,并由噴油嘴服務(wù)控制?;旌贤ㄐ湃鐖D10所示。
圖10 網(wǎng)絡(luò)混合通信
“Super-TuxKart”應(yīng)用程序所需的網(wǎng)絡(luò)通信是以太網(wǎng)拓?fù)渲忻嫦蚍?wù)的通信與CAN、FlexRay和LIN系統(tǒng)總線拓?fù)渲械慕?jīng)典面向信號的通信相結(jié)合。
開發(fā)階段
應(yīng)用程序的開發(fā)階段主要有3部分。
構(gòu)建基礎(chǔ)組件
SOA中的主要基礎(chǔ)組件是API存儲庫,它是1個(gè)中央數(shù)據(jù)庫,包含詳細(xì)的有關(guān)服務(wù)及其功能和接口的信息??梢圆渴鸬杰囕v內(nèi)計(jì)算平臺的應(yīng)用程序可以使用這些服務(wù)為客戶提供額外的功能。
現(xiàn)有服務(wù)的使用
一旦應(yīng)用程序確定了它的需求,它將通過API存儲庫并嘗試找到可以滿足所有要求的服務(wù)。理想情況下,存儲庫中的服務(wù)可以滿足所有要求。在這種情況下,應(yīng)用程序可以使用API存儲庫提供的接口描述來設(shè)計(jì)軟件。由于面向服務(wù)架構(gòu)的解耦性質(zhì),不需要對域控制器或它們背后的ECU進(jìn)行修改。在“SuperTuxKart”示例中,應(yīng)用程序設(shè)計(jì)將根據(jù)需求調(diào)整空調(diào)的氣流,并在API中尋找合適的服務(wù)存儲庫。他們會找到噴油嘴服務(wù)并集成此服務(wù)接口到應(yīng)用程序中。
創(chuàng)建新服務(wù)
當(dāng)API存儲庫中的服務(wù)不能滿足應(yīng)用程序的需求時(shí),需要聯(lián)系A(chǔ)PI的創(chuàng)建者來進(jìn)行更新API存儲庫,以滿足開放的要求。由于這個(gè)擴(kuò)展過程大大減慢了新應(yīng)用程序的設(shè)計(jì),因此API存儲庫設(shè)計(jì)時(shí)應(yīng)提供盡可能多的功能。
空中更新
要通過空中更新汽車嵌入式系統(tǒng)的軟件,需要2部分:一部分由汽車制造商維護(hù)服務(wù)器,用于管理更新程序包;另一個(gè)負(fù)責(zé)接收,驗(yàn)證和分發(fā)更新程序的客戶端,將文件更新到相應(yīng)的ECU。
更新客戶端功能通常在車輛的中央網(wǎng)關(guān)平臺上實(shí)現(xiàn),該平臺可直接訪問主機(jī)并代表通信總線之間的中央通信點(diǎn)。下載的更新包括1個(gè)或多個(gè)交叉編譯的二進(jìn)制文件,準(zhǔn)備在相應(yīng)的ECU中進(jìn)行刷新。中央網(wǎng)關(guān)的更新功能(或服務(wù))負(fù)責(zé)檢查更新包,并將二進(jìn)制文件分發(fā)到目標(biāo)ECU。
該研究表明,使用現(xiàn)有服務(wù)可以較少的協(xié)調(diào)并提高開發(fā)速度。如果任何應(yīng)用程序始終都可以使用現(xiàn)有服務(wù),則可能會帶來安全方面的挑戰(zhàn)(即訪問行駛中的車輛的主動懸架系統(tǒng))。因此,有必要對汽車SOA的訪問控制管理進(jìn)行研究。
“分析和設(shè)計(jì)面向服務(wù)的架構(gòu)”,“實(shí)現(xiàn)和部署面向服務(wù)的軟件”是有效開發(fā)SOA汽車軟件的關(guān)鍵環(huán)節(jié)。
為了實(shí)現(xiàn)汽車智能駕駛,通用高性能計(jì)算平臺是未來新型E/E架構(gòu)的硬件基礎(chǔ),而SOA則是“軟件定義汽車”的軟件基礎(chǔ)。通過SOA平臺,實(shí)現(xiàn)軟硬件解耦、終端用戶、汽車廠家及第3方開發(fā)者攜手共建跨品牌、跨平臺、跨車型的軟件開發(fā)能力,打造以用戶體驗(yàn)為核心,各方開發(fā)者共同參與、合作共贏的智能汽車生態(tài)。
在此生態(tài)里,汽車企業(yè)將不只是生產(chǎn)制造汽車,還將成為移動出行的服務(wù)供應(yīng)商,能夠面向用戶提供多種多樣的軟件服務(wù)。SOA軟件平臺上多方的協(xié)同合作,將為軟件汽車的不斷進(jìn)化和用戶體驗(yàn)的不斷提升提供源源不絕的動力。
未來,車主可以根據(jù)乘員數(shù)量、道路情況、目的地甚至自己心情等不同條件,在車機(jī)及移動端APP上下載配置不同的功能,滿足個(gè)性化需求。在SOA軟件平臺的幫助下,通過數(shù)據(jù)、算法、軟件的不斷積累和迭代升級,最終汽車將由執(zhí)行指令的冰冷機(jī)械,進(jìn)化為能夠?qū)崟r(shí)交流、洞察需求、主動服務(wù)的“有生命的出行伙伴”。
審核編輯:黃飛
?
評論
查看更多