Automotive

MATLAB & Simulink於電子產業

MATLAB® & Simulink® 於車輛產業標準合規 ISO 26262 / AUTOSAR / MISRA C

隨著軟體定義車輛(SDV)、自動駕駛 與車輛電動化發展趨勢,車輛產業供應鏈除了致力於加速產品開發,還須確保產品符合 ISO 26262、AUTOSAR、MISRA C/C++ 等產業標準的嚴格要求。面對日益複雜的系統架構、跨團隊協作及嚴格的驗證流程,如何兼顧開發效率、產品品質與合規性已成為重要挑戰。

MathWorks® 提供涵蓋系統設計、模型化開發、自動程式碼生成與驗證測試的完整工具鏈,協助團隊將合規要求整合至研發流程中,提升開發效率與可追溯性,降低驗證成本與專案風險,加速車用系統與元件的開發、認證與量產導入。

開發符合ISO 26262 ASIL A-D專案

車輛產業中的高完整性系統(high-Integrity Systems)開發,通常需要證明其符合國際道路車輛功能安全標準ISO 26262的要求。ISO 26262依據功能安全需求,將汽車系統由低到高規格劃分為A到D不同等級的車輛安全完整性等級(ASIL)。為了符合 ISO 26262 規範,車廠(OEM)與一級供應商(Tier 1)正開始調整ECU開發流程,導入以模型為基礎的設計(Model-Based Design,MBD)方法。

MathWorks的MATLAB、Simulink、Stateflow、Embedded Coder、MATLAB與Simulink 驗證工具,以及Polyspace程式碼驗證工具,皆為TÜV SÜD認可,符合 ISO 26262 對ASIL A-D等級要求的開發工具 。這些認證是基於自動化、特定應用的驗證工作流程。該工作流程支援模型與程式碼之間的持續測試,並可透過 Simulink的處理器迴圈 (Processor-in-the-Loop,PIL)模擬模式進行驗證,這也是ISO 26262-6對於ASIL C與D等級高度建議採用的方法。因此,工程師能夠充分運用這些程式碼生成工具與編譯器的最佳化能力,以開發兼具高速效能與記憶體效率、適合量產ECU所使用的軟體,其中包含由Embedded Coder產生的處理器專屬程式碼。除了C程式碼產生之外,Embedded Coder在ISO 26262工具資格認證的應用案例中,也包括AUTOSAR與 C++ 程式碼生成的能力。

HDL Coder同樣受TÜV SÜD 認可為適用於所有ASIL等級之安全相關產品開發。HDL Coder 能夠產生具備可讀性與可追溯性的VHDL與Verilog程式碼,並支援各類FPGA、ASIC與SoC目標裝置開發。它也可與HDL Verifier密切整合,自動產生測試平台,搭配HDL模擬器與FPGA開發板持續進行測試。

相關的工作流程文件、TÜV SÜD認證證書與報告、測試套件,以及其他認證所需文件,皆提供於IEC Certification Kit之中(適用於ISO 26262與IEC 61508)。此套件提供完整的流程與文件,協助符合ISO 26262規範,並能有效證明開發流程的合規性。此外,TÜV SÜD每年也會針對IEC Certification Kit涵蓋工具所支援的軟體開發流程與品質工程流程進行稽核。

基於V模型開發符合功能安全(Functional Safety)的軟體模組
簡報下載

MATLAB與Simulink對於AUTOSAR的支援

AUTOSAR (AUTomotive Open System Architecture)是一套開放且標準化的車輛軟體架構,由車廠、供應商與工具開發商共同制定。MathWorks為AUTOSAR Premium Member,並積極參與標準制定工作,特別著重於如何將以模型為基礎的設計(Model-Based Design,MBD) 導入AUTOSAR開發流程。

AUTOSAR標準提供兩大平台,以支援現今與下一世代的車輛ECU開發需求。第一個是Classic Platform,主要用於傳統車用應用,例如動力系統(Powertrain)、底盤系統(Chassis)以及車身與座艙電子系統。第二個則是Adaptive Platform,主要針對高運算需求的應用,例如高度自動駕駛、Car-to-X通訊、over-the-air軟體更新,以及將車輛作為物聯網(IoT)一部分的應用情境。此外,Foundation AUTOSAR標準則負責確保各AUTOSAR平台之間的互通性與一致性。

Simulink本身即支援AUTOSAR。透過AUTOSAR Blockset,工程師可將 Simulink模型對應至AUTOSAR Classic或Adaptive規範。此外,也能利用Embedded Coder產生符合量產需求的C與C++ AUTOSAR程式碼。Simulink、AUTOSAR Blockset 與 Embedded Coder 亦支援與AUTOSAR架構之間來回整合流程,如圖所示。

MATLAB與Simulink對於AUTOSAR的支援

MATLAB與Simulink對於MISRA C的支援

為了協助評估電子控制單元(ECU)所使用軟體程式碼的品質,汽車產業軟體可靠性協會 (Motor Industry Software Reliability Association,MISRA) 制定了汽車與航太系統軟體中C程式語言的使用規範。1998年,MIRA Ltd. 發布了MISRA C (MISRA C:1998),目的是提供一套標準化、架構明確的語言的受限子集,以滿足 Safety Integrity Level (SIL) 2 以上等級的安全需求。

此後,MISRA 標準還有幾個新的版本,包括 MISRA C:2004、針對自動程式碼產生情境所制定的MISRA AC AGC標準、適用於C++的MISRA C++:2008,以及MISRA C:2012標準。

如需進一步了解MISRA C,可參考misra.org.uk

Simulink、Stateflow與Embedded Coder已經廣泛運用在符合MISRA C®規範的嵌入式軟體程式碼生成。Polyspace程式碼驗證產品則可用於分析人工編寫或自動產生的程式碼,協助檢查程式碼是否符合MISRA C規範。其中,Polyspace Bug Finder支援偵測MISRA-C:2004、MISRA-C++:2008、MISRA C:2012,以及MISRA AC AGC等程式碼規範。

你可以透過Code Generation Advisor設定模型或子系統,讓程式碼生成工具更妥善地產生符合MISRA C:2012規範的程式碼。產生出的程式碼可進一步使用 Polyspace進行MISRA規範檢查,並可將分析結果回溯對應至原始模型。此外,你也可以直接在模型層級加入註解,針對任何規範的偏離(deviation)提供說明。