介紹
汽車軟件開發(fā)過程的一個(gè)重要部分是確保軟件符合關(guān)鍵的行業(yè)標(biāo)準(zhǔn)和指導(dǎo)方針。對(duì)于電動(dòng)汽車來說,很真實(shí)的一點(diǎn)是許多硬件組件已經(jīng)被電子元件所取代。對(duì)于電動(dòng)汽車軟件來說,存在安全和安保方面的擔(dān)憂。然而,這些問題可以通過功能安全和安全性編碼標(biāo)準(zhǔn)和指導(dǎo)方針得到有效解決。在這里,我們概述了關(guān)鍵的汽車標(biāo)準(zhǔn)和指導(dǎo)方針,以及特別適用于電動(dòng)汽車的合規(guī)性最佳實(shí)踐。
電動(dòng)汽車軟件
所有電動(dòng)汽車部件都有一定的安全和保障要求,但覆蓋水平因部件的功能而異。顯然,電動(dòng)汽車對(duì)于制動(dòng)系統(tǒng)有重要的安全要求,外部通信的車載信息娛樂(IVI)必須考慮網(wǎng)絡(luò)安全問題。

在電動(dòng)汽車中,電池管理系統(tǒng)需要考慮車輛內(nèi)部的安全性,以及與外界通信的安全性。未來,車輛內(nèi)的領(lǐng)域和區(qū)域控制器將會(huì)增加,許多獨(dú)立的、不同的組件將整合到整個(gè)車輛的分布式平臺(tái)上。這會(huì)導(dǎo)致安全、調(diào)度和網(wǎng)絡(luò)安全問題。
這些問題中的許多都可以通過實(shí)施編碼標(biāo)準(zhǔn)來解決,編碼標(biāo)準(zhǔn)是編碼規(guī)則、指導(dǎo)方針和最佳實(shí)踐的集合。汽車的主要標(biāo)準(zhǔn)是ISO26262。所有組件都需要滿足ISO 26262,未來還將需要滿足ISO/SAE 21434。
這些功能標(biāo)準(zhǔn)都建議使用編碼指南來檢測(cè)編程語言中未定義的和關(guān)鍵的未指定行為。
主要汽車編碼指南
MISRA
MISRA(汽車工業(yè)軟件可靠性協(xié)會(huì))最初是為汽車工業(yè)開發(fā)的,為開發(fā)安全關(guān)鍵系統(tǒng)提供編碼標(biāo)準(zhǔn),并已擴(kuò)展到安全領(lǐng)域。它現(xiàn)在被用于所有要求安全關(guān)鍵系統(tǒng)的行業(yè)。
MISRA C最初發(fā)布于1998年,最新版本是MISRA C:2023涵蓋C90, C99和C11。它現(xiàn)在是世界上使用最廣泛的C編程指南。
2008年,MISRA C++發(fā)布,現(xiàn)在被安全關(guān)鍵開發(fā)人員廣泛使用。2023年有一個(gè)更新,涵蓋C++的后續(xù)版本。
AUTOSAR C++14
AUTOSAR(汽車開放系統(tǒng)架構(gòu))編碼指南適用于在關(guān)鍵和安全相關(guān)系統(tǒng)中使用C++14語言。它們是為AUTOSAR自適應(yīng)平臺(tái)開發(fā)的,但適用于任何用C++編寫的安全關(guān)鍵應(yīng)用程序。
AUTOSAR C++ 14基于MISRA C++:2008編碼指南,但增加了其他C++編碼標(biāo)準(zhǔn)的最佳特性,如JSF和CERT C++。它允許使用其他C++編碼標(biāo)準(zhǔn)所不允許的一些特性,包括:
—?Dynamic?Memory? ?動(dòng)態(tài)內(nèi)存
—?Exceptions? ? ? ? ? ? ? 免責(zé)條款
—?Templates? ? ? ? ? ? ? ?模板
—?Inheritance? ? ? ? ? ? ? 繼承
—?Virtual?Functions? ? ?虛擬函數(shù)
—?AUTOSAR C++?14
CERT
CERT(計(jì)算機(jī)應(yīng)急準(zhǔn)備小組)是一種安全編碼標(biāo)準(zhǔn),支持常用的編程語言,如C、C++和Java。它由針對(duì)不安全編碼實(shí)踐和導(dǎo)致安全風(fēng)險(xiǎn)的未定義行為的規(guī)則和建議組成。
軟件安全和網(wǎng)絡(luò)安全編碼指南最佳實(shí)踐
在選擇和實(shí)現(xiàn)編碼準(zhǔn)則時(shí),需要考慮應(yīng)用程序。顯然,編程語言是第一步,但通常這已經(jīng)由項(xiàng)目決定了。這將決定可用的編碼指南。接下來,應(yīng)用程序的范圍——它是需要做到安全至上的還是需要關(guān)注網(wǎng)絡(luò)安全的?
SAFETY-CRITICAL安全至上
MISRA和AUTOSAR C++ 14都用于安全關(guān)鍵型應(yīng)用程序,因?yàn)樗鼈兛梢宰R(shí)別未指定和關(guān)鍵的未定義的語言行為。
CYBERSECURITY網(wǎng)絡(luò)安全
所有的防御實(shí)現(xiàn)技術(shù)都應(yīng)該從使用公認(rèn)的編碼標(biāo)準(zhǔn)開始。MISRA(特別是C:2012 Revision 1)和CERT C都通過識(shí)別關(guān)鍵的和未指定的語言行為來實(shí)現(xiàn)這一目標(biāo),從而使生成的代碼更可靠,更不容易出錯(cuò),更容易維護(hù)。
所需的覆蓋級(jí)別可能根據(jù)組件的功能而有所不同,因此可能僅應(yīng)用檢測(cè)高風(fēng)險(xiǎn)違規(guī)的規(guī)則就足夠了。CERT定義每個(gè)規(guī)則的風(fēng)險(xiǎn),MISRA C應(yīng)用一個(gè)類別。兩者都允許涵蓋規(guī)則的子集。
對(duì)于任何使用C語言的項(xiàng)目,汽車網(wǎng)絡(luò)安全編碼標(biāo)準(zhǔn)ISO/SAE 21434建議使用MISRA C:2012 Revision 1和CERT C指南。
然而,任何禁用編碼指南中規(guī)則的決定都必須要仔細(xì)考慮,因?yàn)橥ǔP枰M(jìn)行解釋說明。
電動(dòng)汽車功能安全
對(duì)傳統(tǒng)內(nèi)燃機(jī)汽車至關(guān)重要的功能安全標(biāo)準(zhǔn)對(duì)電動(dòng)汽車同樣重要。
ISO 26262:汽車功能安全
ISO 26262 -“道路車輛-功能安全”,是汽車行業(yè)使用的主要功能安全標(biāo)準(zhǔn)。這是一項(xiàng)基于風(fēng)險(xiǎn)的安全標(biāo)準(zhǔn),適用于生產(chǎn)車輛的電氣和/或電子系統(tǒng)。這包括駕駛輔助、推進(jìn)和車輛動(dòng)力學(xué)控制系統(tǒng)。
ISO 26262涵蓋了整個(gè)開發(fā)過程的功能安全方面,從需求規(guī)范到設(shè)計(jì)和實(shí)施,再到驗(yàn)證和確認(rèn)。
為什么ISO 26262對(duì)電動(dòng)汽車軟件很重要
汽車安全完整性等級(jí)(ASIL)是ISO 26262的關(guān)鍵要素,用于衡量特定系統(tǒng)組件的風(fēng)險(xiǎn)。
系統(tǒng)越復(fù)雜,系統(tǒng)故障和隨機(jī)硬件故障的風(fēng)險(xiǎn)越大。
ASIL分為四個(gè)等級(jí),從A到D。ASIL A是最低風(fēng)險(xiǎn)水平,ASIL D是最高風(fēng)險(xiǎn)水平。遵從性要求在從A到D的過程中變得更加嚴(yán)格。QM(質(zhì)量管理)是一個(gè)額外的選項(xiàng),用于沒有安全需求的特定組件。
決定ASIL的三個(gè)關(guān)鍵因素
ASIL由三個(gè)因素決定:嚴(yán)重程度、暴露度和可控性。
嚴(yán)重程度:
嚴(yán)重性衡量的是系統(tǒng)故障造成的人員和財(cái)產(chǎn)損失的嚴(yán)重程度。嚴(yán)重程度分為四類:
1. S0沒有傷害。
2. S1: 輕度至中度傷害。
3. S2:嚴(yán)重到危及生命(可能生存)的傷害。
4. S3:危及生命(生存不確定)到致命傷害。
暴露度:
暴露度描述了在什么條件下某個(gè)特定的故障可能會(huì)引發(fā)安全隱患。每個(gè)條件按照發(fā)生的概率,分為了以下五個(gè)等級(jí):
1. E0:完全不可能。
2. E1: 概率極低(僅在極少數(shù)操作條件下才會(huì)發(fā)生傷害)。
3. E2:低概率。
4. E3:中等概率。
5. E4:高概率(在大多數(shù)操作條件下都可能發(fā)生傷害)。
可控制性:
可控性是對(duì)危險(xiǎn)情況發(fā)生時(shí)避免傷害的可能性的度量。這種情況可能是由于駕駛員的行為或外部措施造成的。危險(xiǎn)情況的可控性分為四個(gè)等級(jí):
1. ?C0:總體可控。
2. ?C1: 容易控制。
3. ?C2: 一般可控(大多數(shù)司機(jī)可以采取行動(dòng)防止受傷)。
4. C3:難以控制或無法控制。
如何確定ASILS
一旦確定了嚴(yán)重性、暴露度和可控性,就可以確定ASIL。下表提供了如何完成此任務(wù)的指導(dǎo)。

ISO 26262由11個(gè)部分組成,其中第6部分:軟件產(chǎn)品開發(fā)和第8部分:支持過程特別適用于電動(dòng)汽車軟件開發(fā)。
第6部分包含一系列表,其中包括定義軟件過程的方法。(完整的表格可參閱我們的白皮書《如何遵從ISO 26262標(biāo)準(zhǔn)》。)
對(duì)于每種方法,推薦使用相應(yīng)方法的程度取決于ASIL,分類如下:
—“++”表示高度推薦該方法用于已識(shí)別的ASIL。
—“+”表示推薦該方法用于已識(shí)別的ASIL。
-“o”表示不推薦也不反對(duì)該方法用于已識(shí)別的ASIL。
例如,在下面的表6中(第7頁),子程序和函數(shù)中的一個(gè)入口點(diǎn)和一個(gè)出口點(diǎn)被強(qiáng)烈推薦給所有的ASIL等級(jí),而沒有遞歸只被推薦給較低的級(jí)別。
重要的是要注意,用于協(xié)助遵守ISO 26262的任何工具都必須經(jīng)過認(rèn)證,以確保結(jié)果是有效的。因此,使用已經(jīng)通過認(rèn)證的工具更容易,例如Perforce靜態(tài)分析工具- Helix QAC和Klocwork -已通過TüV-SüD的ASIL D級(jí)認(rèn)證。
ISO 26262要求應(yīng)用編碼標(biāo)準(zhǔn)來實(shí)現(xiàn)特定的編碼和設(shè)計(jì)指南。通過使用靜態(tài)分析工具,可以更容易地應(yīng)用諸如MISRA或AUTOSAR C++ 14之類的編碼標(biāo)準(zhǔn)。

電車功能安全
對(duì)傳統(tǒng)內(nèi)燃機(jī)汽車至關(guān)重要的功能安全標(biāo)準(zhǔn)對(duì)電動(dòng)汽車同樣重要。
ISO / SAE 21434:汽車軟件安全
ISO/SAE 21434“道路車輛-網(wǎng)絡(luò)安全工程”是一項(xiàng)汽車標(biāo)準(zhǔn),重點(diǎn)關(guān)注道路車輛電子系統(tǒng)的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)。該標(biāo)準(zhǔn)涵蓋了車輛生命周期的所有階段,通過應(yīng)用網(wǎng)絡(luò)安全工程從設(shè)計(jì)到退役。這適用于車輛中的所有電子系統(tǒng)、組件和軟件,以及任何外部連接。此外,ISO/SAE 21434提供了一種全面的方法來實(shí)現(xiàn)跨越整個(gè)供應(yīng)鏈的安全保障。
為什么ISO/SAE21434對(duì)電動(dòng)汽車軟件很重要
ISO/SAE 21434對(duì)于電動(dòng)汽車軟件非常重要,因?yàn)槟壳暗陌踩P(guān)鍵標(biāo)準(zhǔn)不足以覆蓋網(wǎng)絡(luò)安全風(fēng)險(xiǎn)。該標(biāo)準(zhǔn)提供了一個(gè)結(jié)構(gòu)化的流程,以確保將網(wǎng)絡(luò)安全考慮納入汽車產(chǎn)品的整個(gè)生命周期。
該標(biāo)準(zhǔn)要求汽車制造商和供應(yīng)商在實(shí)施網(wǎng)絡(luò)安全工程時(shí)表現(xiàn)出盡職盡責(zé),并在整個(gè)供應(yīng)鏈中應(yīng)用網(wǎng)絡(luò)安全管理來支持它。
如何滿足ISO/SAE21434合規(guī)要求
ISO/SAE 21434對(duì)軟件開發(fā)有特定的要求,其中包括檢查固有弱點(diǎn)的分析,以及與網(wǎng)絡(luò)安全需求相關(guān)的整體一致性、正確性和完整性。
網(wǎng)絡(luò)安全應(yīng)該處于所有設(shè)計(jì)決策的最前沿,包括選擇用于軟件開發(fā)的編程語言。在選擇編程語言時(shí)需要考慮幾個(gè)標(biāo)準(zhǔn),其中包括:
?安全設(shè)計(jì)和編碼技術(shù)。
?明確的語法和語義定義。
然而,其中一些標(biāo)準(zhǔn)可能沒有在選定的語言中得到充分的處理。因此,建議使用編碼標(biāo)準(zhǔn)(如MISRA和CERT)來解決所選語言的缺陷。
Perforce如何幫助確保安全、可靠和符合標(biāo)準(zhǔn)的電動(dòng)汽車軟件
為了有效地識(shí)別軟件安全漏洞和弱點(diǎn),以及執(zhí)行推薦的編碼標(biāo)準(zhǔn)和指導(dǎo)方針,應(yīng)該使用行業(yè)標(biāo)準(zhǔn)化工具——特別是靜態(tài)分析工具。
通過使用靜態(tài)分析工具,您可以通過以下方式加快標(biāo)準(zhǔn)遵從性:
? 執(zhí)行編碼標(biāo)準(zhǔn)并檢測(cè)違規(guī)行為。
? 在開發(fā)早期發(fā)現(xiàn)合規(guī)性問題。
? 加快代碼審查和手動(dòng)測(cè)試工作。
??報(bào)告不同時(shí)間不同產(chǎn)品版本的合規(guī)性。
此外,Perforce靜態(tài)分析工具完全符合MISRA和CERT指南。它們還通過TüV- SüD認(rèn)證,可用于安全關(guān)鍵系統(tǒng),包括ISO 26262高達(dá)ASIL D級(jí)。請(qǐng)了解Perforce靜態(tài)分析工具如何幫助確保電動(dòng)汽車軟件的功能安全和網(wǎng)絡(luò)安全。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
關(guān)于億道電子
上海億道電子技術(shù)有限公司是國(guó)內(nèi)資深的研發(fā)工具軟件提供商,公司成立于2009年,面向中國(guó)廣大的制造業(yè)客戶提供研發(fā)、設(shè)計(jì)、管理過程中使用的各種軟件開發(fā)工具,致力于幫助客戶提高研發(fā)管理效率、縮短產(chǎn)品設(shè)計(jì)周期,提升產(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)略合作伙伴關(guān)系,并作為他們?cè)谥袊?guó)區(qū)的主要分銷合作伙伴服務(wù)了數(shù)千家中國(guó)本土客戶,為客戶提供從芯片級(jí)開發(fā)工具、EDA設(shè)計(jì)工具、軟件編譯以及測(cè)試工具、結(jié)構(gòu)設(shè)計(jì)工具、仿真工具、電氣設(shè)計(jì)工具、以及嵌入式GUI工具等等。億道電子憑借多年的經(jīng)驗(yàn)積累,真正的幫助客戶實(shí)現(xiàn)了讓研發(fā)更簡(jiǎn)單、更可靠、更高效的目標(biāo)。

歡迎關(guān)注“億道電子”公眾號(hào)
了解更多研發(fā)工具軟件知識(shí)