介紹
汽車軟件開發(fā)過程的一個重要部分是確保軟件符合關鍵的行業(yè)標準和指導方針。對于電動汽車來說,很真實的一點是許多硬件組件已經(jīng)被電子元件所取代。對于電動汽車軟件來說,存在安全和安保方面的擔憂。然而,這些問題可以通過功能安全和安全性編碼標準和指導方針得到有效解決。在這里,我們概述了關鍵的汽車標準和指導方針,以及特別適用于電動汽車的合規(guī)性最佳實踐。
電動汽車軟件
所有電動汽車部件都有一定的安全和保障要求,但覆蓋水平因部件的功能而異。顯然,電動汽車對于制動系統(tǒng)有重要的安全要求,外部通信的車載信息娛樂(IVI)必須考慮網(wǎng)絡安全問題。
在電動汽車中,電池管理系統(tǒng)需要考慮車輛內(nèi)部的安全性,以及與外界通信的安全性。未來,車輛內(nèi)的領域和區(qū)域控制器將會增加,許多獨立的、不同的組件將整合到整個車輛的分布式平臺上。這會導致安全、調(diào)度和網(wǎng)絡安全問題。
這些問題中的許多都可以通過實施編碼標準來解決,編碼標準是編碼規(guī)則、指導方針和最佳實踐的集合。汽車的主要標準是ISO26262。所有組件都需要滿足ISO 26262,未來還將需要滿足ISO/SAE 21434。
這些功能標準都建議使用編碼指南來檢測編程語言中未定義的和關鍵的未指定行為。
主要汽車編碼指南
MISRA
MISRA(汽車工業(yè)軟件可靠性協(xié)會)最初是為汽車工業(yè)開發(fā)的,為開發(fā)安全關鍵系統(tǒng)提供編碼標準,并已擴展到安全領域。它現(xiàn)在被用于所有要求安全關鍵系統(tǒng)的行業(yè)。
MISRA C最初發(fā)布于1998年,最新版本是MISRA C:2023涵蓋C90, C99和C11。它現(xiàn)在是世界上使用最廣泛的C編程指南。
2008年,MISRA C++發(fā)布,現(xiàn)在被安全關鍵開發(fā)人員廣泛使用。2023年有一個更新,涵蓋C++的后續(xù)版本。
AUTOSAR C++14
AUTOSAR(汽車開放系統(tǒng)架構)編碼指南適用于在關鍵和安全相關系統(tǒng)中使用C++14語言。它們是為AUTOSAR自適應平臺開發(fā)的,但適用于任何用C++編寫的安全關鍵應用程序。
AUTOSAR C++ 14基于MISRA C++:2008編碼指南,但增加了其他C++編碼標準的最佳特性,如JSF和CERT C++。它允許使用其他C++編碼標準所不允許的一些特性,包括:
—?Dynamic?Memory? ?動態(tài)內(nèi)存
—?Exceptions? ? ? ? ? ? ? 免責條款
—?Templates? ? ? ? ? ? ? ?模板
—?Inheritance? ? ? ? ? ? ? 繼承
—?Virtual?Functions? ? ?虛擬函數(shù)
—?AUTOSAR C++?14
CERT
CERT(計算機應急準備小組)是一種安全編碼標準,支持常用的編程語言,如C、C++和Java。它由針對不安全編碼實踐和導致安全風險的未定義行為的規(guī)則和建議組成。
軟件安全和網(wǎng)絡安全編碼指南最佳實踐
在選擇和實現(xiàn)編碼準則時,需要考慮應用程序。顯然,編程語言是第一步,但通常這已經(jīng)由項目決定了。這將決定可用的編碼指南。接下來,應用程序的范圍——它是需要做到安全至上的還是需要關注網(wǎng)絡安全的?
SAFETY-CRITICAL安全至上
MISRA和AUTOSAR C++ 14都用于安全關鍵型應用程序,因為它們可以識別未指定和關鍵的未定義的語言行為。
CYBERSECURITY網(wǎng)絡安全
所有的防御實現(xiàn)技術都應該從使用公認的編碼標準開始。MISRA(特別是C:2012 Revision 1)和CERT C都通過識別關鍵的和未指定的語言行為來實現(xiàn)這一目標,從而使生成的代碼更可靠,更不容易出錯,更容易維護。
所需的覆蓋級別可能根據(jù)組件的功能而有所不同,因此可能僅應用檢測高風險違規(guī)的規(guī)則就足夠了。CERT定義每個規(guī)則的風險,MISRA C應用一個類別。兩者都允許涵蓋規(guī)則的子集。
對于任何使用C語言的項目,汽車網(wǎng)絡安全編碼標準ISO/SAE 21434建議使用MISRA C:2012 Revision 1和CERT C指南。
然而,任何禁用編碼指南中規(guī)則的決定都必須要仔細考慮,因為通常需要進行解釋說明。
電動汽車功能安全
對傳統(tǒng)內(nèi)燃機汽車至關重要的功能安全標準對電動汽車同樣重要。
ISO 26262:汽車功能安全
ISO 26262 -“道路車輛-功能安全”,是汽車行業(yè)使用的主要功能安全標準。這是一項基于風險的安全標準,適用于生產(chǎn)車輛的電氣和/或電子系統(tǒng)。這包括駕駛輔助、推進和車輛動力學控制系統(tǒng)。
ISO 26262涵蓋了整個開發(fā)過程的功能安全方面,從需求規(guī)范到設計和實施,再到驗證和確認。
為什么ISO 26262對電動汽車軟件很重要
汽車安全完整性等級(ASIL)是ISO 26262的關鍵要素,用于衡量特定系統(tǒng)組件的風險。
系統(tǒng)越復雜,系統(tǒng)故障和隨機硬件故障的風險越大。
ASIL分為四個等級,從A到D。ASIL A是最低風險水平,ASIL D是最高風險水平。遵從性要求在從A到D的過程中變得更加嚴格。QM(質(zhì)量管理)是一個額外的選項,用于沒有安全需求的特定組件。
決定ASIL的三個關鍵因素
ASIL由三個因素決定:嚴重程度、暴露度和可控性。
嚴重程度:
嚴重性衡量的是系統(tǒng)故障造成的人員和財產(chǎn)損失的嚴重程度。嚴重程度分為四類:
1. S0沒有傷害。
2. S1: 輕度至中度傷害。
3. S2:嚴重到危及生命(可能生存)的傷害。
4. S3:危及生命(生存不確定)到致命傷害。
暴露度:
暴露度描述了在什么條件下某個特定的故障可能會引發(fā)安全隱患。每個條件按照發(fā)生的概率,分為了以下五個等級:
1. E0:完全不可能。
2. E1: 概率極低(僅在極少數(shù)操作條件下才會發(fā)生傷害)。
3. E2:低概率。
4. E3:中等概率。
5. E4:高概率(在大多數(shù)操作條件下都可能發(fā)生傷害)。
可控制性:
可控性是對危險情況發(fā)生時避免傷害的可能性的度量。這種情況可能是由于駕駛員的行為或外部措施造成的。危險情況的可控性分為四個等級:
1. ?C0:總體可控。
2. ?C1: 容易控制。
3. ?C2: 一般可控(大多數(shù)司機可以采取行動防止受傷)。
4. C3:難以控制或無法控制。
如何確定ASILS
一旦確定了嚴重性、暴露度和可控性,就可以確定ASIL。下表提供了如何完成此任務的指導。
ISO 26262由11個部分組成,其中第6部分:軟件產(chǎn)品開發(fā)和第8部分:支持過程特別適用于電動汽車軟件開發(fā)。
第6部分包含一系列表,其中包括定義軟件過程的方法。(完整的表格可參閱我們的白皮書《如何遵從ISO 26262標準》。)
對于每種方法,推薦使用相應方法的程度取決于ASIL,分類如下:
—“++”表示高度推薦該方法用于已識別的ASIL。
—“+”表示推薦該方法用于已識別的ASIL。
-“o”表示不推薦也不反對該方法用于已識別的ASIL。
例如,在下面的表6中(第7頁),子程序和函數(shù)中的一個入口點和一個出口點被強烈推薦給所有的ASIL等級,而沒有遞歸只被推薦給較低的級別。
重要的是要注意,用于協(xié)助遵守ISO 26262的任何工具都必須經(jīng)過認證,以確保結果是有效的。因此,使用已經(jīng)通過認證的工具更容易,例如Perforce靜態(tài)分析工具- Helix QAC和Klocwork -已通過TüV-SüD的ASIL D級認證。
ISO 26262要求應用編碼標準來實現(xiàn)特定的編碼和設計指南。通過使用靜態(tài)分析工具,可以更容易地應用諸如MISRA或AUTOSAR C++ 14之類的編碼標準。
電車功能安全
對傳統(tǒng)內(nèi)燃機汽車至關重要的功能安全標準對電動汽車同樣重要。
ISO / SAE 21434:汽車軟件安全
ISO/SAE 21434“道路車輛-網(wǎng)絡安全工程”是一項汽車標準,重點關注道路車輛電子系統(tǒng)的網(wǎng)絡安全風險。該標準涵蓋了車輛生命周期的所有階段,通過應用網(wǎng)絡安全工程從設計到退役。這適用于車輛中的所有電子系統(tǒng)、組件和軟件,以及任何外部連接。此外,ISO/SAE 21434提供了一種全面的方法來實現(xiàn)跨越整個供應鏈的安全保障。
為什么ISO/SAE21434對電動汽車軟件很重要
ISO/SAE 21434對于電動汽車軟件非常重要,因為目前的安全關鍵標準不足以覆蓋網(wǎng)絡安全風險。該標準提供了一個結構化的流程,以確保將網(wǎng)絡安全考慮納入汽車產(chǎn)品的整個生命周期。
該標準要求汽車制造商和供應商在實施網(wǎng)絡安全工程時表現(xiàn)出盡職盡責,并在整個供應鏈中應用網(wǎng)絡安全管理來支持它。
如何滿足ISO/SAE21434合規(guī)要求
ISO/SAE 21434對軟件開發(fā)有特定的要求,其中包括檢查固有弱點的分析,以及與網(wǎng)絡安全需求相關的整體一致性、正確性和完整性。
網(wǎng)絡安全應該處于所有設計決策的最前沿,包括選擇用于軟件開發(fā)的編程語言。在選擇編程語言時需要考慮幾個標準,其中包括:
?安全設計和編碼技術。
?明確的語法和語義定義。
然而,其中一些標準可能沒有在選定的語言中得到充分的處理。因此,建議使用編碼標準(如MISRA和CERT)來解決所選語言的缺陷。
Perforce如何幫助確保安全、可靠和符合標準的電動汽車軟件
為了有效地識別軟件安全漏洞和弱點,以及執(zhí)行推薦的編碼標準和指導方針,應該使用行業(yè)標準化工具——特別是靜態(tài)分析工具。
通過使用靜態(tài)分析工具,您可以通過以下方式加快標準遵從性:
? 執(zhí)行編碼標準并檢測違規(guī)行為。
? 在開發(fā)早期發(fā)現(xiàn)合規(guī)性問題。
? 加快代碼審查和手動測試工作。
??報告不同時間不同產(chǎn)品版本的合規(guī)性。
此外,Perforce靜態(tài)分析工具完全符合MISRA和CERT指南。它們還通過TüV- SüD認證,可用于安全關鍵系統(tǒng),包括ISO 26262高達ASIL D級。請了解Perforce靜態(tài)分析工具如何幫助確保電動汽車軟件的功能安全和網(wǎng)絡安全。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關于億道電子
上海億道電子技術有限公司是國內(nèi)資深的研發(fā)工具軟件提供商,公司成立于2009年,面向中國廣大的制造業(yè)客戶提供研發(fā)、設計、管理過程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設計周期,提升產(chǎn)品可靠性。
十多年來,先后與ARM、Altium、Ansys、QT、Green Hills、Minitab、EPLAN、QA Systems、OpenText、Visu-IT、HighTec、PLS、Ashling、MSC Software、Autodesk、Source Insight、IncrediBuild、Lauterbach、Adobe、Testplant、TeamEDA等多家全球知名公司建立戰(zhàn)略合作伙伴關系,并作為他們在中國區(qū)的主要分銷合作伙伴服務了數(shù)千家中國本土客戶,為客戶提供從芯片級開發(fā)工具、EDA設計工具、軟件編譯以及測試工具、結構設計工具、仿真工具、電氣設計工具、以及嵌入式GUI工具等等。億道電子憑借多年的經(jīng)驗積累,真正的幫助客戶實現(xiàn)了讓研發(fā)更簡單、更可靠、更高效的目標。
歡迎關注“億道電子”公眾號
了解更多研發(fā)工具軟件知識