【摘" 要】文章提出一種基于Adaptive AUTOSAR的汽車場(chǎng)景引擎應(yīng)用設(shè)計(jì),能夠通過(guò)車機(jī)、手機(jī)和云端3種方式獲取用戶編輯好的場(chǎng)景配置文件信息,從而進(jìn)行場(chǎng)景的管理、觸發(fā)判斷和服務(wù)調(diào)度。通過(guò)實(shí)車功能的測(cè)試驗(yàn)證整體方案的可行性和優(yōu)勢(shì)。
【關(guān)鍵詞】場(chǎng)景引擎;SOA;高并發(fā);車云互聯(lián)
中圖分類號(hào):U463.6" " 文獻(xiàn)標(biāo)識(shí)碼:A" " 文章編號(hào):1003-8639( 2024 )12-0024-03
An Automobile Scene Engine that Satisfies High Concurrency
【Abstract】This article proposes a design of an automotive scene engine application based on Adaptive AUTOSAR,which can obtain user edited scene configuration files through three ways: IVI,mobile phone,and cloud,thereby managing scenes,triggering judgments,and service scheduling. The feasibility and advantages of the overall solution were verified through actual vehicle function testing.
【Key words】scene engine;SOA;high concurrency;vehicle-cloud Internet
0" 引言
隨著用戶對(duì)車輛使用體驗(yàn)和信息反饋的日漸重視以及千人千面的定制化功能需求的日益增長(zhǎng),軟件定義汽車成為了未來(lái)汽車發(fā)展的必然趨勢(shì)。軟件定義汽車(Software Defined Vehicles,SDV),其本質(zhì)是通過(guò)汽車控制器內(nèi)的軟件快速迭代,實(shí)現(xiàn)對(duì)汽車功能的快速加持或更新,從而滿足用戶對(duì)期待的功能在愛(ài)車中快速實(shí)現(xiàn)的渴求[1]。基于SOA架構(gòu)的場(chǎng)景引擎應(yīng)用將每一個(gè)車輛功能視為一種場(chǎng)景,為軟件定義汽車提供了一種動(dòng)態(tài)配置、快速部署、即刻生效、高擴(kuò)展性的實(shí)現(xiàn)方式。場(chǎng)景引擎和云技術(shù)的結(jié)合使車輛的一些新功能的開(kāi)發(fā)和部署周期大大縮短。
目前,已有車企實(shí)現(xiàn)和量產(chǎn)了具備定制化場(chǎng)景編程能力的汽車,某W車型開(kāi)通25項(xiàng)能力,可任意排序組合全車200多項(xiàng)功能,讓用戶擁有有趣的場(chǎng)景編程智能體驗(yàn)[2]。某L車型應(yīng)用了場(chǎng)景引擎,打造主動(dòng)服務(wù)行車助手,顛覆傳統(tǒng)人車交互模式,讓用戶想要的服務(wù)可以隨時(shí)隨地實(shí)現(xiàn)[3]。
本文設(shè)計(jì)一種基于SOA架構(gòu)和Adaptive AUTOSAR平臺(tái)的場(chǎng)景引擎應(yīng)用,通過(guò)場(chǎng)景編輯器的場(chǎng)景編排和車輛SOA服務(wù)的自由靈活的調(diào)用,用戶可以獲得和使用多種多樣定制的車輛新功能,實(shí)現(xiàn)從功能導(dǎo)向到用戶導(dǎo)向的轉(zhuǎn)變。
1" 場(chǎng)景引擎整體方案
1.1" 系統(tǒng)架構(gòu)
汽車自定義場(chǎng)景功能所涉及到的系統(tǒng)元素包括場(chǎng)景編輯器、無(wú)線通信模塊、場(chǎng)景引擎、車輛服務(wù)平臺(tái)、汽車傳感器組和執(zhí)行器組。場(chǎng)景編輯器的主要功能是自定義場(chǎng)景的編輯和場(chǎng)景配置文件的生成、下載;場(chǎng)景引擎作為整個(gè)系統(tǒng)的核心組件,實(shí)現(xiàn)全部場(chǎng)景的管理、配置文件的解析、場(chǎng)景條件的監(jiān)控和場(chǎng)景動(dòng)作的調(diào)度等功能;車輛服務(wù)平臺(tái)作為場(chǎng)景執(zhí)行動(dòng)作的載體完成場(chǎng)景引擎的指令。場(chǎng)景引擎作為一個(gè)SOA應(yīng)用軟件模塊,具備可移植和靈活部署的特性,本文的設(shè)計(jì)將其部署于汽車中央網(wǎng)關(guān)之中,使其更方便地與關(guān)聯(lián)控制器進(jìn)行交互。自定義場(chǎng)景系統(tǒng)架構(gòu)如圖1所示。
1.2" 場(chǎng)景引擎軟件架構(gòu)
場(chǎng)景引擎是本文論述的重點(diǎn)。場(chǎng)景引擎作為一個(gè)SOA車載應(yīng)用,在設(shè)計(jì)時(shí)著重考慮其以下特點(diǎn):①滿足多場(chǎng)景管理和高并發(fā)場(chǎng)景運(yùn)行;②車輛和手機(jī)、云端無(wú)線通信的安全性;③服務(wù)調(diào)度的狀態(tài)判斷和仲裁;④硬件資源開(kāi)銷的節(jié)省;⑤軟件功能的可靠性和自檢能力;⑥應(yīng)用的可移植性和擴(kuò)展性。綜合以上本文設(shè)計(jì)一種基于Adaptive AUTOSAR的場(chǎng)景引擎應(yīng)用軟件,其軟件架構(gòu)如圖2所示。
場(chǎng)景引擎應(yīng)用劃分為4個(gè)主要組成部分,分別是場(chǎng)景配置、場(chǎng)景管理、場(chǎng)景監(jiān)控、場(chǎng)景執(zhí)行。場(chǎng)景配置模塊主要處理應(yīng)用和外界通信相關(guān)的功能;場(chǎng)景管理模塊是應(yīng)用的核心組成部分,負(fù)責(zé)場(chǎng)景的存儲(chǔ)、管理和對(duì)場(chǎng)景的常規(guī)操作;場(chǎng)景監(jiān)控模塊主要負(fù)責(zé)監(jiān)控和判斷每個(gè)場(chǎng)景的觸發(fā)條件的滿足性;場(chǎng)景執(zhí)行模塊通過(guò)服務(wù)調(diào)用的方式實(shí)現(xiàn)場(chǎng)景的具體執(zhí)行動(dòng)作。此外,場(chǎng)景引擎作為一個(gè)AP應(yīng)用,使用AP協(xié)議棧中的PHM(平臺(tái)健康管理)功能,即通過(guò)應(yīng)用監(jiān)控模塊上報(bào)自身的運(yùn)行狀態(tài)。
2" 場(chǎng)景引擎軟件設(shè)計(jì)
2.1" 場(chǎng)景配置模塊
場(chǎng)景配置模塊實(shí)現(xiàn)連接場(chǎng)景編輯器、獲取車輛場(chǎng)景、對(duì)無(wú)線通信內(nèi)容進(jìn)行安全校驗(yàn)解析以及上報(bào)車輛狀態(tài)等功能。由于場(chǎng)景配置模塊涉及到車端和手機(jī)、云端的無(wú)線通信,信息安全的設(shè)計(jì)顯得尤為重要。本文通過(guò)3種方法的共同作用保證了通信的安全性,分別是車輛和設(shè)備端無(wú)線傳輸報(bào)文配置的雙向身份認(rèn)證、動(dòng)態(tài)加密算法對(duì)報(bào)文主體內(nèi)容的編解碼和通信內(nèi)容關(guān)鍵值對(duì)信息的核對(duì)。安全編解碼的具體實(shí)現(xiàn)是在實(shí)際傳輸中不使用固定的加密算法,而隨機(jī)調(diào)用密碼庫(kù)中的某個(gè)方法,并在傳輸報(bào)文頭中通過(guò)密碼ID進(jìn)行區(qū)分。
經(jīng)過(guò)場(chǎng)景配置模塊解析后的配置文件是以JSON格式呈現(xiàn)的,如表1所示,包括了場(chǎng)景來(lái)源、場(chǎng)景ID、場(chǎng)景名稱、場(chǎng)景優(yōu)先級(jí)、場(chǎng)景類型、屬性設(shè)置、子場(chǎng)景個(gè)數(shù)、子場(chǎng)景信息、子場(chǎng)景觸發(fā)條件、子場(chǎng)景狀態(tài)條件、子場(chǎng)景執(zhí)行動(dòng)作和動(dòng)作延時(shí)信息等多項(xiàng)配置。這些配置信息即為通過(guò)車輛服務(wù)調(diào)用的新功能。
場(chǎng)景配置模塊同時(shí)也負(fù)責(zé)匯總車輛可用的服務(wù)和場(chǎng)景信息并上報(bào)給車機(jī)、手機(jī)和云端。這些信息通過(guò)場(chǎng)景引擎統(tǒng)一上報(bào),解決了因每臺(tái)車的實(shí)際服務(wù)和場(chǎng)景清單不同而導(dǎo)致的不同客戶端信息難同步的問(wèn)題。
2.2" 場(chǎng)景管理模塊
場(chǎng)景管理模塊是場(chǎng)景引擎的核心部分,通過(guò)場(chǎng)景容器維護(hù)車輛全部場(chǎng)景的管理,具體包括場(chǎng)景的初始化、安裝、啟用、禁用、刪除、恢復(fù)出廠設(shè)置和非易失性存儲(chǔ)等,場(chǎng)景容器設(shè)定同時(shí)處理場(chǎng)景的最大個(gè)數(shù)(100個(gè)),最大程度上滿足用戶部署車輛新功能的要求。預(yù)處理模塊獲取場(chǎng)景配置文件的解析結(jié)果,并對(duì)每個(gè)服務(wù)的取值有效性進(jìn)行檢查,即是否有類型、范圍溢出和符號(hào)等錯(cuò)誤,存儲(chǔ)和上報(bào)返回的檢查結(jié)果。預(yù)置場(chǎng)景模塊存儲(chǔ)了車輛出廠預(yù)置的若干場(chǎng)景信息,方便用戶使用。
場(chǎng)景狀態(tài)管理維護(hù)了每個(gè)場(chǎng)景的狀態(tài)信息,每個(gè)場(chǎng)景由一個(gè)或多個(gè)子場(chǎng)景組成,子場(chǎng)景狀態(tài)包括初始化、禁能、未觸發(fā)、執(zhí)行中、已完成、故障和超時(shí)7個(gè),場(chǎng)景的最終狀態(tài)由這些子場(chǎng)景的狀態(tài)共同決定。例如,任一子場(chǎng)景的狀態(tài)是執(zhí)行中整個(gè)場(chǎng)景的狀態(tài),即執(zhí)行中當(dāng)退出子場(chǎng)景的狀態(tài)是已完成,則整個(gè)場(chǎng)景的狀態(tài)為已完成。場(chǎng)景管理模塊對(duì)外提供了和場(chǎng)景監(jiān)控、場(chǎng)景執(zhí)行、場(chǎng)景狀態(tài)設(shè)置相關(guān)的多個(gè)接口便于和其他模塊進(jìn)行交互。
2.3" 場(chǎng)景監(jiān)控模塊
場(chǎng)景監(jiān)控模塊實(shí)現(xiàn)全部場(chǎng)景觸發(fā)條件的監(jiān)控功能。其中的數(shù)據(jù)引擎模塊通過(guò)Field Notify類型的服務(wù),緩存并動(dòng)態(tài)更新由車輛服務(wù)平臺(tái)提供的全部車輛狀態(tài)信息,這些車輛狀態(tài)值被所有場(chǎng)景共用。場(chǎng)景監(jiān)控模塊維護(hù)一個(gè)獨(dú)立運(yùn)行的監(jiān)控線程,通過(guò)遍歷從場(chǎng)景管理模塊獲取到的全部使能場(chǎng)景的觸發(fā)條件和狀態(tài)條件信息,結(jié)合當(dāng)前及歷史車輛狀態(tài)值,實(shí)現(xiàn)對(duì)全部場(chǎng)景的觸發(fā)判斷。對(duì)場(chǎng)景條件的統(tǒng)一監(jiān)控節(jié)省了系統(tǒng)開(kāi)銷并使得接口通用化,即場(chǎng)景監(jiān)控模塊在場(chǎng)景有增刪時(shí)不受影響,無(wú)須做出改動(dòng),滿足了軟件設(shè)計(jì)的開(kāi)閉原則。
場(chǎng)景條件判別包括對(duì)車輛狀態(tài)值的多種比較邏輯:等于、大于、小于、大于等于、小于等于、與、或、非及其組合。這些邏輯運(yùn)算結(jié)合車速、車門、車燈、開(kāi)關(guān)、擋位、用戶語(yǔ)音等不同的車輛信息即可滿足用戶對(duì)場(chǎng)景功能多樣化的使能要求。
2.4" 場(chǎng)景執(zhí)行模塊
場(chǎng)景執(zhí)行模塊通過(guò)消費(fèi)車輛服務(wù)的方式實(shí)現(xiàn)場(chǎng)景觸發(fā)后車輛執(zhí)行器動(dòng)作的執(zhí)行,其特點(diǎn)就是全部車輛場(chǎng)景共享和實(shí)現(xiàn)多任務(wù)的高并發(fā)。其中,服務(wù)引擎模塊實(shí)現(xiàn)了Adaptive AUTOSAR的服務(wù)代理接口,主要包括Fire Forget、Request Response和Setter三大類,本文共設(shè)計(jì)281個(gè)服務(wù)接口。服務(wù)調(diào)度模塊通過(guò)添加線程池任務(wù)的方式進(jìn)行服務(wù)執(zhí)行動(dòng)作的下發(fā),即滿足條件的執(zhí)行動(dòng)作序列可以隨時(shí)進(jìn)行任務(wù)的執(zhí)行,并且不同場(chǎng)景間互不干擾,從而在最節(jié)省資源的方式下滿足多場(chǎng)景觸發(fā)的可行性。
由于車輛執(zhí)行器的特點(diǎn)和屬性各不相同,有的執(zhí)行器動(dòng)作瞬間完成,如打開(kāi)車燈、打開(kāi)空調(diào)等;有的動(dòng)作需要一定的執(zhí)行時(shí)間,如座椅調(diào)節(jié)、車窗控制和天窗調(diào)節(jié)等。這就要求在不同場(chǎng)景需要同時(shí)執(zhí)行同一個(gè)服務(wù)動(dòng)作時(shí)進(jìn)行仲裁判斷。本文提出一種車輛服務(wù)的調(diào)度策略,見(jiàn)表2。
3" 場(chǎng)景引擎實(shí)車測(cè)試
3.1" 基本功能測(cè)試
通過(guò)實(shí)車場(chǎng)景引擎部署并結(jié)合車輛總線工具驗(yàn)證本設(shè)計(jì)的合理性。場(chǎng)景引擎測(cè)試設(shè)備見(jiàn)表3。
通過(guò)手機(jī)場(chǎng)景編輯器編輯車輛場(chǎng)景信息,并由無(wú)線傳輸?shù)姆绞讲渴鸬杰囕v上。通過(guò)CAN設(shè)備對(duì)這些場(chǎng)景的觸發(fā)條件和執(zhí)行動(dòng)作進(jìn)行監(jiān)控。以小憩模式場(chǎng)景為例,其場(chǎng)景編輯器界面如圖3所示,實(shí)車CAN報(bào)文如圖4所示。根據(jù)所編輯的場(chǎng)景信息,當(dāng)場(chǎng)景觸發(fā)時(shí),車輛執(zhí)行了小憩模式語(yǔ)音播報(bào)、開(kāi)啟位置燈、車輛座椅位置調(diào)節(jié)和空調(diào)開(kāi)啟等動(dòng)作,完全符合預(yù)期的場(chǎng)景結(jié)果。
3.2" 高并發(fā)CPU負(fù)載測(cè)試
對(duì)比每個(gè)場(chǎng)景由獨(dú)立線程進(jìn)行條件監(jiān)控、觸發(fā)和本文設(shè)計(jì)的由單線程監(jiān)控全部場(chǎng)景實(shí)現(xiàn)高并發(fā)兩種情況下的CPU負(fù)載率。測(cè)試場(chǎng)景數(shù)分別為0、10、20、50、100五種情況。測(cè)試結(jié)果見(jiàn)表4。
根據(jù)測(cè)試數(shù)據(jù)分析,本文設(shè)計(jì)的場(chǎng)景引擎方案能夠滿足多場(chǎng)景高并發(fā)的功能要求,在場(chǎng)景數(shù)較少時(shí)和對(duì)比方案性能相差不大;當(dāng)場(chǎng)景數(shù)較多時(shí),CPU的負(fù)載占用率有了明顯的性能提升,尤其當(dāng)場(chǎng)景數(shù)達(dá)到100個(gè)的時(shí)候,性能提升了將近25%,節(jié)省了控制器資源。
4" 結(jié)束語(yǔ)
本文基于軟件定義汽車的開(kāi)發(fā)理念,提出一種車輛場(chǎng)景引擎應(yīng)用的設(shè)計(jì)方案,并通過(guò)實(shí)車測(cè)試進(jìn)行了方案的功能和性能驗(yàn)證,其滿足了場(chǎng)景引擎多場(chǎng)景并發(fā)處理、安全可靠的設(shè)計(jì)要求。
參考文獻(xiàn):
[1] 龐仁勇,陳文慶,姚昂,等. 軟件定義汽車的功能架構(gòu)設(shè)計(jì)過(guò)程研究[J]. 汽車電器,2023(11):35-37.
[2] 威馬汽車擁有個(gè)性化自主編程功能可以讓用戶解鎖豐富的場(chǎng)景模[EB/OL].(2022-02-22).https://baijiahao.baidu.com/s?id=1725436718010484284amp;wfr=spideramp;for=pc.
[3] 斑馬智行AI場(chǎng)景引擎技術(shù)換代升級(jí) 賦能智己汽車服務(wù)智能[EB/OL].(2022-04-21).https://www.sohu.com/a/539933034_120616779.