引言
在可能因故障導致嚴重後果的行業中,如醫療、汽車、軌道交通、航空航太和工業自動化領域,功能安全是至關重要的。ISO 26262作為汽車領域功能安全的國際標準,為道路車輛的安全相關系統提供了全面的指導。本文將重點闡述ISO 26262標準中對工具鏈的要求,以及如何使用經過認證的工具鏈來加速汽車功能安全產品開發和認證。
功能安全標準
功能安全標準的歷史可以追溯到IEC 61508(國際電子電機委員會標準),這是第一個針對電氣/電子/可程式設計電子安全相關系統的功能安全國際標準,它提供了一個通用的框架,用於評估和認證安全相關系統的整體性能。IEC 61508標準由於其通用性,被用作許多特定行業功能安全標準的基準。這些行業特定的標準在IEC 61508的基礎上增加了特定領域的要求和指導,以滿足不同行業的特定需求,其中ISO 26262是專門針對道路車輛的功能安全標準。

工具在功能安全中的重要作用
ISO 26262是一個全面的安全標準,涵蓋了汽車安全的整個生命週期,包括管理、開發、生產、運營、服務和退役。它提供了一個框架,通過可行的要求和流程,降低由於系統性故障和隨機硬體故障造成的風險到可以接受的水準。遵守ISO 26262對於製造商來說至關重要,以確保他們的產品滿足對應的安全標準,降低事故風險並增強公眾信任。

在安全關鍵型系統開發中,工具扮演著重要角色。這些工具包括編譯器、程式碼分析工具等,如果這些工具沒有得到適當的評估和鑒定,可能會引入或傳播錯誤。因此,功能安全標準對開發過程中使用的工具有特定要求。ISO 262628. Supporting process 當中8-11 Confidence in the use of software tools裡面明確了工具評估和鑒定的要求。
工具評估和鑒定
工具評估(Evaluation)和鑒定(Qualification)是功能安全開發過程中的關鍵組成部分,尤其是在遵循ISO 26262標準時。這一過程確保了在開發安全關鍵型系統中使用的工具是可靠、一致的,並且不會引入可能危及安全的錯誤或風險。
工具評估和鑒定涉及一系列活動,以確保開發過程中使用的工具的安全完整性。這包括編譯器、程式碼分析工具和其他軟體和硬體工具。整個過程旨在確保這些工具滿足必要的安全要求,並且不會引入可能導致危險情況的錯誤。
工具的評估和鑒定的基本流程如下圖所示:

工具評估
首先需要對使用的工具進行工具置信度等級TCL(Tool Confidence Level)進行評估。這涉及到兩個因素:工具影響(Tool Impact,TI)和工具錯誤檢測(Tool Error Detection,TD)。
工具影響(TI):工具在開發過程中功能異常,可能對安全產生的影響。ISO 26262-8定義了兩個工具影響級別:
- TI1:對安全無影響。
- TI2:直接影響安全。
工具錯誤檢測(TD):這涉及到預防或檢測工具故障的措施。ISO 26262-8定義了三個工具錯誤檢測級別:
- TD1:高度信任可以防止或檢測工具故障。
- TD2:中等信任。
- TD3:低信任。
結合TI和TD評估就可以確定對應軟體工具的TCL:

工具鑒定
如前所述,工具置信度TCL是衡量工具在開發過程中引入錯誤可能性的重要指標。TCL的結果將直接影響到工具鑒定的方法和程度。
- TCL1:對於TCL1級別的工具,其風險被認為是可以忽略不計的,這意味著這些工具在實際開發中的安全影響極低,因此不需要額外的鑒定工作。
- TCL2:對於TCL2級別的工具,需要進行額外的鑒定活動。這可能包括記錄工具的開發過程、測試和驗證其規範。這些活動旨在確保工具在開發過程中的安全性和可靠性。
- TCL3:對於TCL3級別的工具,需要進行廣泛的鑒定。這涉及到嚴格的測試、檔記錄,可能還需要協力廠商認證,以確保工具滿足所需的安全完整性水準。
ISO 26262-8中提供了針對TCL2和TCL3的推薦鑒定方法,這些方法包括但不限於:
- 使用中增加信心(1a):這種方法依賴於工具在類似項目中的成功使用經驗,以此增加對工具的信心。
- 評估工具開發過程(1b):這種方法要求評估工具的開發流程是否符合適當的標準。工具的開發過程應基於國家或國際標準進行評估,並證明所評估的開發過程得到了正確應用。
- 軟體工具的確認(1c):這種方法要求證明軟體工具符合其規定的要求,例如通過確認測試或設計複審來評估工具的功能和非功能品質方面。如果在確認過程中出現故障,則需要對這些故障進行分析,並提供可能的後果和避免或檢測這些故障的措施的資訊。
- 遵循安全標準開發(1d):這種方法強調在開發過程中遵循嚴格的開發標準,如ISO 26262本身,以確保工具的安全性和可靠性。
適當工具鑒定方法的選擇取決於TCL和待開發的電子電氣系統的車輛安全完整性等級(ASIL)。對於TCL3級別的工具,比如編譯工具鏈,在較高的ASIL級別中,強烈推薦遵循安全標準開發的方法,因為它們產生高置信度,能極大的減少證明工具本身符合規定要求的時間和人力成本。
這些鑒定方法不僅確保了工具的安全性,也為整個開發流程提供了額外的安全保障。

使用經過認證的工具鏈加快功能安全產品開發和認證
使用經過認證的工具鏈可以顯著加快功能安全產品的開發和認證。原因如下:
- 減少開發工作量
經過認證的工具鏈讓工具符合嚴格的功能安全標準,減少了為安全關鍵型應用鑒定這些工具所需的工作量,因為工具供應商已經完成了對應工具的認證工作。
- 一致性和可靠性
經過認證的工具鏈確保開發過程的一致性和可靠性。例如,經過認證的編譯器將在不同的開發環境中產生一致的結果,確保軟體的行為可預測且安全。
- 符合標準
使用符合ISO 26262標準的認證工具簡化了合規過程。工具供應商提供文檔和證據,證明工具符合標準,這些可以用於支援整體的安全案例。
- 風險緩解
經過認證的工具鏈有助於緩解因為工具而引入的故障相關的風險。通過確保工具鏈符合適當的TCL,開發人員可以確信潛在的工具鏈相關錯誤要麼被預防,要麼被檢測到。
- 簡化認證過程
當使用經過認證的工具鏈時,最終產品的認證過程將被簡化。由於工具鏈已經過認證,重點可以放在系統和軟體方面,減少了整體認證的時間和成本。
使用經過認證的工具鏈的實際案例
為了進一步說明使用經過認證的工具鏈的實際應用,考慮開發一個車身控制器(BCM)ECU。
開發團隊的角色與責任
在開發車身控制器(BCM)的ECU時,開發團隊承擔著將原始程式碼編譯成可執行二進位檔案的關鍵任務。若使用的編譯器未經認證,團隊需投入大量資源進行鑒定活動,以確保編譯過程中不會產生安全關鍵性錯誤。如果採用經過認證的編譯器,如IAR Systems提供的IAR Embedded Workbench系列產品,團隊便可依賴供應商的認證,確保其開發流程符合ISO 26262標準。這不僅減輕了團隊的負擔,還能讓團隊更專注於安全產品開發。
持續集成和自動化
將經過認證的工具鏈融入開發流程還包括持續集成和自動化工具的使用。IAR提供的IAR Build Tools能夠實現自動化調用,與常見的持續集成和持續交付工具無縫配合。這種集成方式有助於維護開發活動的一致性,符合ISO 26262對工作產品一致性的要求。
軟體編碼標準和靜態程式碼分析
ISO 26262-6強烈推薦在軟體設計和實現階段遵循行業特定的編碼標準規則,以確保程式碼遵循ISO 26262的設計原則。對於C語言,推薦採用MISRA C標準。IAR提供的C-STAT靜態程式碼分析工具,基於MISRA C/C++、CWE、CERT等規則進行分析,旨在提升程式碼品質,並確保其符合ISO 26262的安全相關軟體發展要求。
通過這些措施,開發團隊能夠確保車身控制器(BCM)ECU的開發過程既高效又符合功能安全標準。。
挑戰和考慮因素
儘管使用經過認證的工具鏈的好處是顯而易見的,但開發團隊必須解決一些挑戰和考慮因素:
成本
經過認證的工具鏈可能相對昂貴,初始投資可能是一些組織的障礙。然而,這種成本通常被減少的開發時間和降低與工具引入的故障相關的風險所抵消。
集成
將經過認證的工具鏈集成到現有的開發流程中可能是複雜的,特別是對於擁有遺留系統的組織。需要仔細規劃和管理,以確保平穩過渡。
培訓
開發人員和工程師可能需要培訓才能有效使用經過認證的工具。這種培訓投資可以提高開發過程的整體效率,並確保工具被充分利用。
結論
工具評估和鑒定是開發安全關鍵型系統的基本活動。它們確保開發過程中使用的工具滿足對應的安全要求,並且不會引入可能導致危險情況的錯誤。通過遵循ISO 26262-8中提供的指導方針,組織可以確保其工具得到對應的鑒定,減少工具引入的故障風險,並確保其產品的安全性和可靠性。
隨著安全關鍵型系統的複雜性增加,經過認證的工具鏈在確保功能安全方面的作用變得更加關鍵。通過使用經過認證的工具鏈,可以滿足功能安全標準的嚴格要求,同時降低開發成本和縮減市場上市時間,加速功能安全產品開發認證。
本文由 iar 提供