伴隨著電動化、智能化、網聯化等技術發展的時代背景,各行各業電子電氣架構都在發生深度變革。新型架構逐漸取代傳統架構,比如汽車、工程機械、儲能、船舶等領域,電子電氣架構從傳統分布式向域集中式,甚至向著中央集中式發展,控制器功能呈現集中化、復雜化的特點。為了提升開發效率、提高軟件的穩定性以及便于平臺移植,基于 AutoSar 架構開發復雜軟件已成為行業共識。
另外,行業內競爭愈發激烈,開發周期大大壓縮,加之軟件復雜度的提升,在快速迭代的情況下確保軟件質量是一個重要課題。加之 ASPICE、ISO26262 等過程體系和法規標準的要求,如何開發符合 AutoSar 架構的應用軟件、評估軟件質量和性能、優化軟件結構、驗證壓力場景下的 ECU 穩定性成為各廠商面臨的新挑戰。
本文重點介紹符合 AutoSar 架構的應用軟件開發、MBD 開發模式下的軟件質量評估與優化方案、復雜場景下的 ECU 性能壓力測試方案。
符合 AutoSar 架構的應用軟件開發介紹
對于 AutoSar 軟件架構,分為經典平臺 AutoSar CP 和自適應平臺 AutoSar AP,二者應用場景存在一定差別:AutoSar CP 具有高安全、高實時性,其通常部署在微控制器 MCU 類型芯片或多核異構芯片 M 核;AutoSar AP 具有動態性和可擴展性,適用于大數據并行處理和高性能計算等應用場景,通常部署在 MPU 或多核異構芯片 A 核。目前從行業內來看,無論是域控制器還是中央 + 區域控制器,通常都是多核的,甚至是多核異構的,不同核根據實際使用需求部署 AutoSar CP 或 AP,基礎軟件通常采用標準的 BSW 協議棧。下圖所示是 AutoSar 軟件架構示例:
AutoSar 軟件架構那對于應用層軟件來說,如果要開發符合 AutoSar 架構的軟件,需要考慮以下兩個重要問題:
·采用何種開發工具鏈
·采用何種開發模式
對于應用軟件開發工具鏈,通常涉及 SWC 軟件架構設計工具和軟件編程實現工具。SWC 軟件架構設計工具主要對應用層軟件架構進行實現,定義 SWC、配置 SWC 的交互接口、配置 Runnable、導出 ARXML 文件等,一般不同品牌的協議棧都有對應的 SWC 軟件架構設計工具,經緯恒潤自研 AutoSar 協議棧提供工具鏈方案為 EAS-SWCDesigner。
EAS-SWCDesigner 界面而軟件編程實現可基于圖形化編程自動生成代碼或手寫代碼的方式,AutoSar CP 和 AP 架構應用層軟件開發實現方法略有差別,CP 架構應用層更多采用基于模型設計方法開發,工具鏈通常采用 Matlab/Simulink,其對 CP 架構應用層開發的支持比較完善且成熟,但是由于其對 AP 架構應用軟件開發支持還存在不完善的點,故 AP 架構應用層軟件開發目前更多還是基于手寫 C++ 代碼的方式,工具鏈基于一些代碼編輯工具比如 Vscode。
對于應用軟件開發模式,分為自上而下開發、自下而上開發和雙向開發模式。自上而下開發比較適用于正向開發流程,在有 EE 架構輸入的情況下采用該模式,這種模式的好處是可以繼承 EE 架構的工作產品,但是缺點是工作鏈路會比較長,應用層和底層軟件開發都需要依耐 SWC 架構設計導出的 ARXML 文件作為輸入,影響開發迭代效率;自下而上開發是直接在軟件編程工具實現軟件,然后配置 AutoSar 接口,再導出 ARXML,然后對 ARXML 文件進行合并,這種方式比較適用于沒有 EE 架構輸入的情況,應用軟件開發工程師獨立配置 AutoSar 接口,這種模式的好處是不依耐 AutoSar 工具鏈,比較靈活,但是缺點是對每個應用軟件開發人員 AutoSar 知識要求高些;雙向開發模式就是結合自上而下和自下而上開發模式的優點,針對第一版軟件采用自上而下開發模式,后續版本軟件更新迭代采用自下而上開發模式。
應用軟件開發模式MBD 開發模式下的軟件質量評估與優化方案
MBD 全稱是 Model Based Design(基于模型設計),是一種以可視化模型開發為主的開發方式,區別于傳統的以文本編碼為媒介的代碼開發。采用模型化的方式來描述控制算法設計,無論是可讀性、可維護性、可移植性、測試驗證的便利性等方面,相比于從前手工 C 代碼都有長足的進步。基于以上基于模型開發的特點基于 Simulink 的模型化 + 自動代碼生成的開發方式在汽車電子行業正在逐漸演變成開發的標準配置。接踵而來如何保證 MBD 開發方式下軟件質量問題也成為現階段人們熱議的話題。
針對軟件質量直接有效的手段便是開展完備的測試或在軟件開發過程中優化軟件結構減少問題的引入。
如何開展完備的模型測試?
模型驗證方法可以分為靜態驗證和動態驗證,模型靜態驗證,是一種通過 MAAB 和 dSPACE 等建模公司提供的建模規則指南來驗證模型設計是否符合規則的測試方法。此外,還有一種模型度量元指標檢查方法,可以分析模型的復雜程度,以此評判模型在可維護性、可移植性、可重用性等不同維度的質量特性。綜上所述,在模型靜態驗證部分,可以看出有兩種方法:建模規范規則檢查和模型度量元指標檢查。與模型靜態驗證不同,模型動態驗證可以通過比較在執行實際模型時的輸出值來進行驗證。通過根據用戶輸入預期結果值對比實際模型結果值來動態驗證模型。通過檢查模型的覆蓋率,可以提高測試用例針對需求的覆蓋率以及測試用例的充分性。此外借助 ASPICE 過程管理的思維,在整個測試過程中加入過程管理思維,確保測試過程、測試環境、測試策略的可靠性以及測試用例的充分性、一致性、追溯性,以此確保模型質量。
如何優化軟件結構?
現階段我們模型生成的代碼是否會存在以下問題:
·生成代碼一個函數可能會上萬行代碼
·看不懂 matlab 生成代碼后的變量的定義及過程轉化
·要不要針對模型生成的代碼做修改
優化軟件的前提是已經開展靜態測試優化完畢模型結構。確保模型結構的規范性。針對每一個軟件設計單元生成獨立函數、每一個軟件組件生成與之相對應的 C 文件可以確保模型生成代碼的結構清晰。同時不對模型生成的代碼做任何的修改是 MBD 開發過程中的軟件維護準則。
綜上讓我們一起來期待恒潤針對 MBD 開發模式下的軟件質量評估與優化的解決方案。
復雜場景下的 ECU 性能壓力測試方案
隨著控制器數量的激增和模塊交互復雜度的提升,只針對軟件基礎功能驗證的效果存在一定的缺陷,越來越多的項目實踐表明,軟件的偶發性故障需要從軟件性能指標、壓力場景來進行補充驗證,以確保軟件產品的質量。
性能測試針對 ECU 電控軟件的內存(堆棧、RAM/ROM/FLASH)、CPU 負載進行最差工況的分析,保證資源占用的合理性;壓力測試構建通信、IO 驅動、診斷、網絡管理等模塊的異常注入、總線故障、高頻觸發等場景,保證軟件功能在壓力場景下不存在致命風險。
基于 AbsInt 的靜態性能分析
?客戶收益
·評估資源使用率,指導芯片選型和工程優化
·保證軟件的任務、中斷預留堆棧空間和分配周期合理性
·保證芯片內存占用率和 CPU 負載在閾值范圍內
·開展符合功能安全和 ASPICE 流程要求的測試
?測試內容
·內存:自動化分析最差工況的堆棧用量、RAM/ROM/Flash 占用率
·WCET:分析最差工況下的執行時間,測試周期穩定性和任務實時性
·調度仿真:模擬任務調度,建模仿真 CPU 負載率和任務占比
?方案特點
·借助 AbsInt 工具,針對工程二進制可執行文件進行自動化分析,無需依賴源碼
·支持 PPC、V850、Tricore、ARM 等多種架構芯片的堆棧、時間分析
·分析遍歷工況,結果涵蓋程序的各個入口
·圖形化展示最差工況下的執行路徑和占比用量,指導性能優化
·不依賴測試用例,執行效率高,項目周期短
·AbsInt 工具滿足 ASIL D 等級功能安全標準
基于 AbsInt 的測試流程函數調用關系及用量顯示數據化表格用量展示基于 RVS 的動態性能測試
?客戶收益
·在 PIL、HIL、車載環境下進行時序分析,確保軟件行為安全
·可視化監測任務調度和 CPU 負載,為系統升級提供優化參考
·保證多任務和多核運行的合理性,規避優先級反轉、死鎖等時序問題
·開展符合功能安全和 ASPICE 流程要求的測試
?測試內容
·WCET:分析任務 / 中斷的最差工況執行時間,測試周期穩定性和響應實時性
·任務調度:評估 WCRT,監測任務時序特征,圖形化顯示多核、多任務調度關系
·負載率:基于實際工況對 CPU 負載率進行實時統計和分析,評估極限負載下的 CPU 負載率占用情況
?方案特點
·借助 RVS 分析套件進行實時數據采集和分析,還原實際環境下的執行工況
·支持全量數據采集和長時間監測運行,追蹤定位軟硬件交互情況
·自定義程度高,項目復用性強,可針對任意函數、模塊或代碼段進行時序分析
·支持集成多種處理器 + 編譯器環境,實現 PIL/HIL/ 車載環境下分析
·RVS 工具可以支持產品功能安全認證等級 ASIL D
基于 RVS 的測試流程時序調度分析基于自動化測試框架的壓力測試
?客戶收益
·保證通信、診斷、操作系統、IO 驅動、網絡管理等模塊在壓力場景下不存在致命風險
·作為功能驗證的補充,發現軟件質量潛在問題,確保軟件魯棒性、穩定性
·構建標準化的壓力測試用例模板,有助于形成符合功能安全要求的測試流程
·測試用例搭載自動化測試框架進行測試執行、用例管理、問題追溯
?測試內容
·針對 NVM、IO 驅動、CAN、LIN、ETH、COM 等模塊進行壓力場景構建
·分析系統不同組件間的時延特性,驗證模塊運行時間穩定性
·驗證在異常注入、高頻觸發、總線故障等因素影響下的功能穩定性
·驗證極限工況下的核心功能有效性及軟件后續響應的合理性
?方案特點
·借助自動化測試框架執行測試用例,測試周期短、測試效率高、測試復用性強
·支持軟硬件交互,可監測底層函數、上層報文、外部信號等
·支持在 PIL/HIL 環境下開展測試,可同步注入多種激勵進行測試驗證
測試流程示意測試框架示意-
軟件開發
+關注
關注
0文章
614瀏覽量
27360 -
AUTOSAR
+關注
關注
10文章
362瀏覽量
21583 -
ecu
+關注
關注
14文章
886瀏覽量
54504
發布評論請先 登錄
相關推薦
評論