顧 嫣,孫 競,黃曉玥
(泛亞汽車技術(shù)中心有限公司,上海 201201)
隨著汽車電子技術(shù)的不斷發(fā)展,車載電子控制單元(Electronic Control Unit,ECU)的軟件架構(gòu)和邏輯復(fù)雜度日漸提高。同時,引入了第三方軟件和開源庫,使代碼規(guī)模更加龐大,導(dǎo)致ECU在開發(fā)中后期極易出現(xiàn)問題井噴現(xiàn)象。為了盡早發(fā)現(xiàn)代碼問題,幫助軟件品質(zhì)快速收斂,應(yīng)在ECU開發(fā)的每個階段著重于軟件性能的分析及優(yōu)化。
AUTOSAR是汽車開放式系統(tǒng)架構(gòu) (Automotive Open System Architecture)的簡稱,旨在引入模塊化概念,簡化軟件開發(fā)流程,并提升軟件兼容性,目前已廣泛應(yīng)用于汽車ECU的軟件開發(fā)。AUTOSAR架構(gòu)如圖1所示,可分為應(yīng)用層、運(yùn)行時環(huán)境 (runtime environment, RTE)、基礎(chǔ)軟件層 (basic software, BSW)和微控制器層[1]。應(yīng)用層中的應(yīng)用軟件以軟件組件形式進(jìn)行封裝,具有標(biāo)準(zhǔn)化的應(yīng)用程序接口,通過RTE進(jìn)行通信。RTE提供虛擬功能總線,使應(yīng)用層和BSW獨(dú)立,提供ECU內(nèi)部以及ECU之間的通信。BSW包括系統(tǒng)服務(wù)層、ECU抽象層、微控制器抽象層和復(fù)雜驅(qū)動模塊。
ECU實(shí)現(xiàn)的具體功能在軟件架構(gòu)中屬于應(yīng)用層,由于功能不同,所以ECU的上層軟件架構(gòu)也會不同。對于應(yīng)用層而言,更關(guān)注邏輯正確性和算法優(yōu)化,軟件的穩(wěn)定性還是以BSW為基礎(chǔ)。為了總結(jié)出適用于不同ECU軟件性能分析的方法,從BSW層抽象出與軟件性能相關(guān)的要素,并增加了ECU的基礎(chǔ)功能,以確認(rèn)BSW層的正確性和穩(wěn)定性 (表1)。
表1 軟件性能分析表
圖1 AUTOSAR架構(gòu)
軟件性能劃分為4部分,分別是系統(tǒng)、資源、I/O和基礎(chǔ)功能。前兩項(xiàng)與應(yīng)用層相關(guān),屬于所有ECU需要關(guān)注的重要性能,著重于穩(wěn)定性。如出現(xiàn)偶發(fā)的系統(tǒng)異常或資源緊張,應(yīng)及時更新上層處理策略,并調(diào)整資源分配。I/O和基礎(chǔ)功能是ECU的基本特性,也是正確實(shí)現(xiàn)上層功能的前提,所以更關(guān)注其正確性。
根據(jù)不同的關(guān)注點(diǎn),將這4部分歸總成兩大類軟件性能分析:系統(tǒng)和資源對應(yīng)最壞情況分析,驗(yàn)證其穩(wěn)定性和魯棒性;I/O和基礎(chǔ)功能進(jìn)行常規(guī)情況分析,確保其正確性。根據(jù)不同的測試場景設(shè)計相應(yīng)的測試用例,見表2和表3。
表2 軟件性能最壞情況分析優(yōu)化表
表3 軟件性能常規(guī)情況分析優(yōu)化表
系統(tǒng)和資源進(jìn)行最壞情況分析之后,根據(jù)分項(xiàng)結(jié)果可對軟件架構(gòu)、資源分配、處理機(jī)制及時進(jìn)行優(yōu)化,避免功能實(shí)現(xiàn)的正確性受軟件穩(wěn)定性的影響。對于I/O和基礎(chǔ)功能,在常規(guī)情況測試中已確保其正確性,即保證了實(shí)現(xiàn)上層功能的正確前提?;谲浖阅芊治鰞?yōu)化的基礎(chǔ)上,選擇ECU的關(guān)鍵狀態(tài),并加載典型的電壓波形,實(shí)現(xiàn)完整周期的軟件壓力測試,以進(jìn)一步確認(rèn)軟件的魯棒性。
ECU的關(guān)鍵狀態(tài)分別是啟動 (ECU_Startup)、喚醒 (ECU_Wakeup)、功能正常 (ECU_Normal)和即將休眠 (E-CU_Shutdown)狀態(tài)。其中,ECU_Normal以外的狀態(tài)均屬于瞬態(tài),一旦在瞬態(tài)之后如果出現(xiàn)狀態(tài)切換異常,就會影響ECU的功能實(shí)現(xiàn),甚至影響后續(xù)的休眠。
ECU的功能實(shí)現(xiàn)受工作電壓的影響,所以加載的電壓波形以Umax(ECU的最大工作電壓)和Umin(最小工作電壓)為上下限的參照值,具體波形包括LVM1(Low Voltage Mode#1)和LVM2(Low Voltage Mode#2) (圖2)。這兩組電壓波形分別在ECU進(jìn)入ECU_Startup,ECU_Wakeup,ECU_Normal,ECU_Shutdown后的T1<5 ms,T1=20 ms, T1=50 ms,T1=100 ms,T1=250 ms,T1=1Sec時注入,然后觀察ECU的功能是否正常,具體的評判標(biāo)準(zhǔn)見表4。
圖2 軟件壓力測試電壓波形圖
表4 軟件壓力測試評判標(biāo)準(zhǔn)
如果在壓力測試過程中出現(xiàn)問題,可按表5進(jìn)行原因分析。軟件更改后,重新進(jìn)行壓力測試,通過閉環(huán)測試來鞏固軟件的穩(wěn)定性。從而使軟件在每個階段遞增功能代碼時,整體品質(zhì)都處于平穩(wěn)的收斂趨勢,避免發(fā)生問題井噴現(xiàn)象。
隨著汽車領(lǐng)域日新月異的功能創(chuàng)新,ECU軟件復(fù)雜化已成為趨勢。為了正確實(shí)現(xiàn)ECU功能,降低代碼問題發(fā)生的概率,減輕開發(fā)中后期的研發(fā)壓力,必須從軟件性能著手。通過周期性的軟件性能分析優(yōu)化及軟件壓力測試,進(jìn)行閉環(huán)且有效的軟件品質(zhì)鞏固,確保軟件的穩(wěn)定性與可靠性,為實(shí)現(xiàn)汽車功能的多元化和智能化奠定基礎(chǔ)。