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