麻新兵,蘇婷,張文,王號,李萌
(陜西汽車控股集團有限公司 技術中心,陜西 西安 710200)
伴隨電子信息化的飛速發展,汽車智能化時代已經加速駛來。整車EE架構革新大勢所趨。“軟件定義汽車”正由一個概念名詞,轉變為汽車電控軟件架構開發與功能實現的行業共識。通過自動代碼生成的方式進行大部分軟件開發工作,其相比較傳統的手動軟件開發,可以規范團隊軟件開發方法,提高開發效率,最大限度提升汽車嵌入式軟件系統的可靠性和安全性。
“軟件定義汽車”的汽車電控技術發展趨勢,在不斷豐富汽車功能的同時必然導致汽車電控系統的功能日益龐大,汽車軟件開發工作量日益復雜。一輛特斯拉Model 3的軟件代碼已突破1000萬行,一輛寶馬X5的軟件代碼量更甚超過3億行,這些直接導致軟件程序設計人員工作量不斷增加。傳統的手動編程設計方法越來越不能滿足汽車電子系統軟件設計對開發效率、代碼安全的質量要求。
基于圖形化的代碼自動生成軟件工具EC利用模塊庫搭建的控制系統軟件,自動生成符合某一特點軟件規范的代碼文件,從而提高軟件開發人員的工作效率。
軟件開發人員快速完成控制系統核心策略的開發和測試驗證,經過自動代碼生成技術,快速生成軟件代碼,相比較于其他嵌入式軟件開發方法,存在以下優點:
1)軟件開發工程師可以將主要精力投入到功能需求梳理和算法設計;
2)可以產生符合“高內聚,低耦合”軟件設計規范的高質量功能模型,提高算法的可移植性,便于版本管理;
3)提高團隊軟件開發的工作效率和代碼設計規范的一致性;
4)將應用層算法設計與底層驅動分層開發,便于功能模塊職責劃分,實現平臺化、模塊化的軟件設計流程。
以Infineon TC2**主核的底層驅動通過S-function將底層驅動封裝至模型庫(CanDIDOPWM 等),并實現接口的GUI配置,供軟件開發人員進行應用層控制軟件開發。
首先應用層策略開發人員需要在創建一個 slx文件,用于基于圖形化的控制策略開發。
建模完成后還可通過仿真調試軟件工具,實現控制算法的測試驗證,直到控制算法符合設計需求。

圖1 GUI庫文件

圖2 整車動力系統控制模型
當系統模型搭建完成后,軟件開發人員需要利用目標編譯器生成_rtw中間文件,rtw文件包含對應模型的若干屬性,比如參數變量、模塊命名及其他屬性,然后rtw文件經過目標編譯器TLC生成c文件,通過TLC將底層驅動庫融入自動代碼生成過程。

圖3 自動代碼生成架構
再通過手動集成到C編譯器(本文使用HighTec編譯器)后進行代碼編譯,即可得到系統可執行文件(hex)。

圖4 控制系統軟件編譯
利用建模環境,搭建整車控制策略模型,使用EC工具將控制模型生成C代碼文件,再通過TLC將底層驅動融入自動代碼生成過程,最終手動集成到目標編譯器下生成可執行文件。這種基于模型的開發方法具有更高的系統移植性,提高系統軟件開發效率,有效降低軟件設計成本。該方法已成功應用于一款純電動載貨車整車控制設計開發過程中,通過路試試驗表明系統運行穩定可靠,滿足設計要求。