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