一
傳統(tǒng)V型開(kāi)發(fā)流程向DevOps開(kāi)發(fā)流程轉(zhuǎn)換
伴隨著汽車行業(yè)向新四化的推動(dòng),車輛的功能越來(lái)越豐富,車內(nèi)控制器的軟件迭代速度更是不斷提升,從智能座艙、信息娛樂(lè)到先進(jìn)駕駛輔助系統(tǒng),消費(fèi)者希望這些功能像手機(jī)應(yīng)用一樣時(shí)刻保持最新,導(dǎo)致汽車軟件開(kāi)發(fā)由V型開(kāi)發(fā)流程轉(zhuǎn)向DevOps敏捷開(kāi)發(fā),以幫助軟件團(tuán)隊(duì)縮短開(kāi)發(fā)周期,加速軟件迭代。 ? ?DevOps全稱Developemt and Operations,提倡Continueous Integration(持續(xù)集成),CT(持續(xù)測(cè)試),CD(持續(xù)交付),通過(guò)工具平臺(tái)使得構(gòu)建、測(cè)試、發(fā)布軟件能夠更加的快捷、頻繁和可靠?!?/p>
? 為應(yīng)對(duì)流程轉(zhuǎn)變上的挑戰(zhàn),開(kāi)發(fā)團(tuán)隊(duì)可將軟硬件解耦后,硬件和軟件的部分各自按照獨(dú)立時(shí)間線來(lái)開(kāi)發(fā),并在進(jìn)行軟件更改后無(wú)需對(duì)整個(gè)車輛進(jìn)行重新驗(yàn)證,純軟件的開(kāi)發(fā)和驗(yàn)證過(guò)程從原型車或者硬件在環(huán)測(cè)試過(guò)渡到軟件在環(huán)(SIL)的測(cè)試驗(yàn)證。這種軟硬解耦的方式同時(shí)也迎合了當(dāng)下將ECU功能整合到中央計(jì)算單元或域控制器的趨勢(shì),在多合一控制器融合的過(guò)程中發(fā)揮作用,軟件模塊可以在不同的硬件平臺(tái)運(yùn)行, 并在車輛整個(gè)生命周期內(nèi)更新。
二
軟件在環(huán)的應(yīng)用場(chǎng)景
快速變更的功能需求下敏捷開(kāi)發(fā)及快速迭代。
盡早進(jìn)行軟件驗(yàn)證并發(fā)現(xiàn)和糾正代碼中的重要錯(cuò)誤,特別是涉及安全相關(guān)的錯(cuò)誤。
在高頻率OTA云端升級(jí)軟件的情況下自動(dòng)化持續(xù)驗(yàn)證。
在以上場(chǎng)景下軟件在環(huán)SIL測(cè)試能夠脫離硬件而快速驗(yàn)證控制器的功能代碼。
軟件在環(huán)(SIL)包括三個(gè)部分:虛擬控制器(vECU)、被控對(duì)象模型或環(huán)境模型(Plant Model)及聯(lián)合仿真平臺(tái)(Simulation Middleware Platform)。
三
什么是虛擬ECU
虛擬ECU簡(jiǎn)稱vECU,表示脫離真實(shí)硬件依賴后基于PC獨(dú)立編譯和運(yùn)行的軟件,vECU所包含的內(nèi)容通??捎葾SW,vBSW,vCDD以及RTE這幾個(gè)部分構(gòu)成,在集成編譯后封裝成基于PC的可執(zhí)行文件。
對(duì)于功能測(cè)試驗(yàn)證工程師,通常他會(huì)拿到一個(gè)帶有軟件的完整ECU,在硬件在環(huán)或?qū)嵻嚟h(huán)境下進(jìn)行測(cè)試,整個(gè)測(cè)試過(guò)程可能受硬件和線束的限制,每當(dāng)遇到軟件的失效首先考慮線束或者硬件通信上的問(wèn)題,測(cè)試效率受硬件條件限制,難以高效的完成測(cè)試任務(wù)。但對(duì)于ECU內(nèi)與硬件無(wú)關(guān)功能,解耦ECU代碼后生成vECU即可運(yùn)行在PC上直接測(cè)試目標(biāo)代碼,數(shù)據(jù)采集和驗(yàn)證過(guò)程同真實(shí)環(huán)境軟件測(cè)試工具一致,如INCA、Debugger調(diào)試器等。
對(duì)功能開(kāi)發(fā)工程師來(lái)說(shuō),驗(yàn)證功能時(shí)需要在完整ECU軟件上進(jìn)行集成并驗(yàn)證功能,該集成過(guò)程通常由軟件集成工程師負(fù)責(zé),軟件集成工程師在集成該功能同時(shí)還需考慮ECU平臺(tái)化bugfix,底層芯片配置等方方面面因素,導(dǎo)致反饋過(guò)程冗長(zhǎng),迭代效率低效的問(wèn)題。其實(shí)對(duì)于生成的ECU功能代碼,依然將這一部分代碼封裝成一個(gè)vECU并進(jìn)行仿真測(cè)試,可以在任意時(shí)間終止仿真并進(jìn)行Debug,還可以在功能驗(yàn)證過(guò)程中根據(jù)需要對(duì)vECU做預(yù)標(biāo)定從而提前驗(yàn)證預(yù)設(shè)數(shù)據(jù)。
隨著vECU復(fù)雜程度的逐步提升,vECU使用場(chǎng)景也會(huì)越來(lái)越多。如下圖中隨著虛擬化和自動(dòng)化程度提升,vECU使用場(chǎng)景能逐步過(guò)渡到第二和第三個(gè)階段。
簡(jiǎn)而言之,就是將控制器C代碼基于PC環(huán)境編譯后生成FMU格式的可執(zhí)行文件運(yùn)行在常規(guī)PC仿真環(huán)境上,以更早和更快的方式進(jìn)行測(cè)試及調(diào)試。
四
虛擬控制器vECU的分類
生成虛擬控制器的方式有兩種,一種是通過(guò)C源碼經(jīng)過(guò)PC的x86編譯器(MinGW或者Visual Studio)后生成vECU目標(biāo)文件,并于PC上進(jìn)行系統(tǒng)測(cè)試和驗(yàn)證后反饋給研發(fā)工程師。另一種是將C源碼編譯成目標(biāo)芯片的程序(hex文件)后,運(yùn)行在目標(biāo)芯片的指令模擬器上來(lái)進(jìn)行系統(tǒng)測(cè)試后再將結(jié)果反饋給研發(fā)工程師。
如下圖所示,Type-1 vECU、Type-2 vECU和Type-3 vECU為第一類通過(guò)C源碼的構(gòu)建方式生成的vECU,Type-4為第二類通過(guò)目標(biāo)程序運(yùn)行在目標(biāo)芯片指令模擬器的方式實(shí)現(xiàn)vECU。 ?
Type-4 vECU雖然可執(zhí)行的是同一個(gè)目標(biāo)hex文件,但考慮到Type-4 vECU本身緩慢的運(yùn)行效率及芯片迭代所帶來(lái)大量工程,當(dāng)前多數(shù)用戶會(huì)采用基于源碼的Type-1、Type-2 和Type-3的vECU生成方式,它可以獲得的更快的運(yùn)行效率、仿真時(shí)的在線Debug、解耦硬件(芯片)以及對(duì)實(shí)驗(yàn)結(jié)果更快的反饋時(shí)間。
雖然采用vECU來(lái)驗(yàn)證有諸多優(yōu)勢(shì),但用其進(jìn)行測(cè)試和仿真時(shí)仍有一定限制,比如無(wú)法評(píng)估和分析諸如軟件上的時(shí)間表現(xiàn)、CPU負(fù)載、內(nèi)存資源的消耗以及模擬硬件中斷等特性。
五
構(gòu)建虛擬ECU
VECU-BUILDER 是一款生成虛擬ECU的工具,它將C代碼源文件或者預(yù)編譯后的二進(jìn)制庫(kù)文件構(gòu)建成虛擬 ECU。
虛擬ECU可在虛擬仿真環(huán)境中對(duì)ECU軟件進(jìn)行仿真、調(diào)試和標(biāo)定。
作為集成vECU的環(huán)境,它的輸入可以是C代碼、靜態(tài)庫(kù)文件(lib)或動(dòng)態(tài)鏈接庫(kù)(dll),與通過(guò)ARXML配置 Classic Autosar 代碼不同,進(jìn)行vECU集成和配置時(shí)只需維護(hù)唯一個(gè)YAML文件,YAML文件是一個(gè)文本形式的配置文件。VECU-BUILDER通過(guò)YAML文件的配置信息將代碼封裝成FMU格式的目標(biāo)文件。
YAML文件包含編譯配置信息、所需集成的C代碼或者庫(kù)文件、vECU的輸入輸出端口以及任務(wù)調(diào)度的入口函數(shù),該配置文件可在vECU增量編譯的過(guò)程中重復(fù)使用。
構(gòu)建虛擬ECU工具演示
vECU生成演示
vECU測(cè)試及Debug
六
軟硬件解耦后的vECU應(yīng)用案例
軟硬件解耦后vECU的集成和測(cè)試可以覆蓋從模塊測(cè)試到系統(tǒng)集成測(cè)試。
以下列舉5個(gè)典型的應(yīng)用案例
案例1(?短周期內(nèi)在SIL環(huán)境下ASW的持續(xù)性開(kāi)發(fā))
案例描述:
1.集成ECU應(yīng)用層軟件產(chǎn)品代碼成vECU,生成可執(zhí)行SIL文件。
2.在試驗(yàn)環(huán)境上運(yùn)行SIL,該測(cè)試環(huán)境等價(jià)于目標(biāo)環(huán)境(相同仿真、測(cè)試和標(biāo)定工具)。
3.預(yù)集成虛擬化通訊協(xié)議棧的vECU可以是該SIL環(huán)境的一部分。
案例2 (仿真時(shí)間或?qū)崟r(shí)時(shí)間下的SIL集成測(cè)試)
案例描述:
1.集成測(cè)試帶有一個(gè)或多個(gè)vECU,滿足相關(guān)的功能需求。
2.基于不同的應(yīng)用案例,可在時(shí)間基準(zhǔn)上調(diào)節(jié)仿真時(shí)間。
3.使用ECUTest或TPT或Robot Framework框架進(jìn)行vECU的集成測(cè)試。
案例3(?vECU虛擬標(biāo)定)
案例描述:SIL環(huán)境用于執(zhí)行vECU以及經(jīng)標(biāo)定過(guò)的被控對(duì)象模型,針對(duì)軟件在環(huán)中特定客戶項(xiàng)目或者車輛調(diào)整vECU的標(biāo)定參數(shù),從而實(shí)現(xiàn)預(yù)標(biāo)定。
案例4(多方協(xié)作在云端集成SIL測(cè)試環(huán)境)
案例描述:
為虛擬控制器測(cè)試人員提供結(jié)合云端的軟件測(cè)試SIL測(cè)試環(huán)境以測(cè)試vECU功能。
案例5(?Software Sharing)
案例描述:
對(duì)第三方代碼(以靜態(tài)或動(dòng)態(tài)庫(kù)文件的方式)在軟件在環(huán)的環(huán)境下進(jìn)行集成和測(cè)試。
相關(guān)案例:
七
結(jié)語(yǔ):
ETAS 可提供:
1.虛擬控制器vECU工具鏈
2.聯(lián)合仿真平臺(tái)(Simulation Middleware Platform)支持標(biāo)準(zhǔn)FMU集成及跨平臺(tái)聯(lián)合仿真,各類虛擬總線
3.持續(xù)集成持續(xù)測(cè)試的自動(dòng)化流程 (Automation Pipeline)
4.專業(yè)的工程服務(wù)
用戶收益:
1.支持生成不同類型的虛擬控制器,可靈活應(yīng)用在軟件開(kāi)發(fā)前期、中期、后期,提升開(kāi)發(fā)效率。
2.標(biāo)準(zhǔn)化仿真平臺(tái),易于接入各種虛擬控制器和被控對(duì)象模型等,實(shí)現(xiàn)軟件在環(huán)測(cè)試,盡早發(fā)現(xiàn)關(guān)鍵錯(cuò)誤。
3.通過(guò)建立持續(xù)集成、持續(xù)測(cè)試的pipeline,減少開(kāi)發(fā)人員的重復(fù)工作,加速集成和測(cè)試過(guò)程。
4.支持幀級(jí)的虛擬總線、國(guó)內(nèi)云端部署,更好地協(xié)助開(kāi)發(fā)部門(mén)進(jìn)行數(shù)字化轉(zhuǎn)型。
審核編輯 :李倩
評(píng)論
查看更多