很久以前,汽車工程師從機(jī)械化控制轉(zhuǎn)向軟件組件和編碼,并發(fā)展到C語(yǔ)言。C編程語(yǔ)言本身非常流行,以至于整個(gè)Linux都是用C編寫的。然而,C語(yǔ)言的標(biāo)準(zhǔn)是不完整的,并且有很多未定義/未指定的行為,其中標(biāo)準(zhǔn)導(dǎo)致高度的不確定性。使用 C 語(yǔ)言的關(guān)鍵問(wèn)題是,開發(fā)人員需要編寫代碼的地方?jīng)]有運(yùn)行時(shí)錯(cuò)誤檢查。
MISRA C作為嵌入式系統(tǒng)可靠指南的演變
C編程語(yǔ)言的靈活性伴隨著未定義和不確定行為的權(quán)衡,如果軟件失敗,這些行為可能無(wú)法以可預(yù)測(cè)的方式運(yùn)行。為了確保關(guān)鍵嵌入式系統(tǒng)中的軟件安全性和可靠性,汽車行業(yè)軟件可靠性協(xié)會(huì)(MISRA)創(chuàng)建了一套正式的軟件開發(fā)指南,用于C語(yǔ)言的可預(yù)測(cè)子集,并開發(fā)安全可靠的嵌入式應(yīng)用程序。下面描述了MISRA C從1998年到2020年的演變。
如今,MISRA C 在許多嵌入式行業(yè)中被廣泛接受并被稱為事實(shí)上的標(biāo)準(zhǔn),例如航空航天、電信、汽車、醫(yī)療設(shè)備、國(guó)防、鐵路、互聯(lián)消費(fèi)電子產(chǎn)品、過(guò)程控制、核電等等。
大型汽車公司采用MISRA C
汽車行業(yè)的一些傳奇人物,如日產(chǎn)汽車有限公司、菲亞特汽車有限公司、豐田汽車公司、通用汽車公司、福特汽車公司等,在不同的基于車輛軟件的系統(tǒng)中都面臨著軟件故障問(wèn)題。事實(shí)上,大多數(shù)車輛系統(tǒng),如自動(dòng)緊急制動(dòng)系統(tǒng)、加速系統(tǒng)、發(fā)動(dòng)機(jī)開/關(guān)等,都由軟件解決方案監(jiān)控和控制。因此,當(dāng)軟件未能按照設(shè)計(jì)進(jìn)行監(jiān)視或控制時(shí),關(guān)鍵車輛系統(tǒng)將立即停止工作,這可能導(dǎo)致錯(cuò)誤事故。
NHTSA(美國(guó)國(guó)家公路交通安全管理局)針對(duì)汽車故障事件的關(guān)鍵措施
在這種情況下,NHTSA可能會(huì)要求汽車公司召回他們的車輛,并解決與召回相關(guān)的巨額成本和汽車公司聲譽(yù)堆棧可能帶來(lái)的問(wèn)題。
然而,在過(guò)去,由于由一家著名汽車公司設(shè)計(jì)的某些汽車中的自動(dòng)緊急制動(dòng) (AEB) 系統(tǒng)的軟件故障,NHTSA 被報(bào)告了大約 14 起撞車事故和 5 起受傷事故。AEB系統(tǒng)使用攝像頭或雷達(dá)掃描前方道路,如果檢測(cè)到與其他物體發(fā)生碰撞,則自動(dòng)制動(dòng)。AEB系統(tǒng)中的軟件故障可能會(huì)將情況讀取為緊急情況,并觸發(fā)AEB系統(tǒng)自動(dòng)制動(dòng),從而導(dǎo)致車輛突然停止并防止意外車禍。
根據(jù)規(guī)章制度,汽車制造商對(duì)機(jī)動(dòng)車輛的安全負(fù)責(zé)。他們還對(duì)由于汽車車輛中的軟件故障而導(dǎo)致的乘員車輛的任何碰撞或傷害負(fù)責(zé)。汽車行業(yè)軟件可靠性協(xié)會(huì)(MISRA)積極致力于解決由于使用C語(yǔ)言設(shè)計(jì)的軟件故障而發(fā)生的碰撞或傷害的挑戰(zhàn)。MISRA致力于處理C語(yǔ)言的未定義和未指定行為,并為開發(fā)人員提出了MISRA C指南,以設(shè)計(jì)和開發(fā)最安全可靠的汽車行業(yè)軟件。
由于在汽車軟件開發(fā)
中疏忽MISRA C指南,可能會(huì)出現(xiàn)挑戰(zhàn)
汽車網(wǎng)絡(luò)安全問(wèn)題:NHTSA報(bào)告了其中一個(gè)事實(shí),即兩名黑客能夠入侵由大型汽車制造商之一設(shè)計(jì)的汽車系統(tǒng)。這些黑客能夠禁用汽車的制動(dòng)器并控制方向盤。這是發(fā)生在汽車行業(yè)的一個(gè)令人大開眼界的事件,汽車制造商需要積極主動(dòng)地設(shè)計(jì)最安全的嵌入式軟件,并為買家提供更多的安全性和信心。
電子油門控制系統(tǒng)的意外加速:電子油門控制系統(tǒng)(ETCS)具有巡航控制功能,該功能旨在學(xué)習(xí)駕駛員在用戶駕駛車輛時(shí)使用油門踏板的行為,并通過(guò)使用執(zhí)行器產(chǎn)生相同的加速度來(lái)復(fù)制相同的行為,這有助于保持車輛的速度,并確保舒適性和放松感,即使是長(zhǎng)時(shí)間的放松駕駛。NHTSA報(bào)告了ETCS軟件故障,該故障會(huì)產(chǎn)生意外加速,只有當(dāng)駕駛員將腳完全從制動(dòng)踏板上移開時(shí)才能避免該軟件
被發(fā)現(xiàn)出現(xiàn)故障,因?yàn)檫`反了MISRA C規(guī)則之一,導(dǎo)致其中一個(gè)遞歸例程中的堆棧溢出并最終導(dǎo)致數(shù)據(jù)損壞, 因此,該軟件根據(jù)自動(dòng)加速做出決定
碰撞期間安全氣囊展開故障:安全氣囊展開系統(tǒng)是汽車行業(yè)最重要的乘員安全系統(tǒng)之一。NHTSA報(bào)告了其中一家汽車巨頭制造的車輛的此類案例,其中安全氣囊系統(tǒng)的軟件無(wú)法在特定駕駛條件下檢測(cè)到碰撞狀況,并且未能展開安全氣囊并導(dǎo)致乘員的生命在堆棧上
點(diǎn)火開/關(guān)系統(tǒng)中的軟件故障:這種情況過(guò)去也發(fā)生過(guò),汽車軟件出現(xiàn)故障,即使他們?nèi)∠妈€匙,也不允許汽車的乘員關(guān)閉發(fā)動(dòng)機(jī)。
汽車行業(yè)需求的增加給制造商和開發(fā)人員帶來(lái)了確保軟件質(zhì)量(包括用戶安全)的挑戰(zhàn)。這可以實(shí)現(xiàn),或者可以使用MISRA C的定義準(zhǔn)則在更大程度上最小化概率。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5052文章
18909瀏覽量
300725 -
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1919瀏覽量
34502
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論