在近年智能制造的大環境下,智能汽車、無人駕駛等話題逐漸成為了焦點,隨著汽車軟體的數量增幅加劇,汽車所涉及的代碼量也出現了驚人的增長:現今的每輛車約有1億行代碼——超過了噴氣式飛機的代碼量,且其復雜度遠超Linux系統內核,汽車軟體工程師需要處理的問題范圍變得越來越廣泛,而與之對應的車輛安全也面臨著巨大的挑戰,
本文將從汽車軟體的型別入手,結合當下汽車安全面臨威脅的現狀,通過分析汽車的各項安全標準及等級,探索針對車輛安全問題的解決方案,
01.汽車軟體的型別:
汽車軟體包含許多種類,不同種類的軟體分別對應實作不同的功能,
根據其對車輛的自動控制程度,可以將汽車電子軟體分為以下三類:
- 控制、車載資訊娛樂軟體:*控制軟體:駕駛員可以通過使用此類軟體,達到控制車輛的目的,此類軟體通常位于車輛指揮、控制和資訊系統中,能夠提供引擎管理、制動、外部照明等功能;*車載資訊娛樂軟體:可用于實作汽車的可用性、舒適性,如車窗控制、車內照明,
- 高級駕駛員輔助軟體:Advanced Driving Assistance Software,簡稱ADAS,包括自適應巡航控制、自動泊車、盲點監測和防撞系統等,
- 自動駕駛軟體:分為環境感知、行為決策、路徑規劃和運動控制四大部分,使用廣泛的傳感器陣列來感知環境,以達到完全自動控制車輛的目的,
根據下圖可見,軟體對車輛的自動控制程度越高,安全系數、風險也就越高,

02.安全標準
2.1 ISO 26262《道路車輛功能安全》
ISO 26262國際標準是一項功能安全標準,面向總重不超過3.5噸八座乘用車,根據安全相關電子電氣系統的特點所制定,基于IEC 61508《安全相關電氣/電子/可編程電子系統功能安全》,正式發布于2011年11月15日,
ISO 26262是IEC61508對E/E 系統在道路車輛方面的功能安全要求的具體應用,為汽車安全提供了完整生命周期(管理、開發、生產、經營、服務、報廢)及該周期內必要的改裝活動的理念,提供了決定風險等級的具體風險評估方法(汽車安全完整性等級,ASIL),為避免這些風險提供了可行性的要求和流程,
ISO 26262第6部分專門用于汽車軟體級別的產品開發,包含以下開發要求:
- 初始化產品開發
- 軟體安全要求規范
- 軟體架構設計
- 單元設計與實施
- 單元測驗
- 軟體集成和測驗
- 驗證軟體安全要求
2.2 汽車編碼標準
MISRA C是一套C語言開發標準,最早由MISRA(The Motor Industry Software Reliability Association,汽車工業軟體可靠性協會)提出,其目的是增進嵌入式系統的安全性及可移植性,但良好的編碼風格指南只是整體解決方案的一小部分,并不能取代正式設計系統的需求,除汽車領域外,其他產業也逐漸開始使用MISRA C:航天、電信、國防、醫療設備、鐵路等領域中都已有使用該標準的廠商,
?
03.ASIL——汽車安全完整性等級
ISO 26262定義了汽車安全完整性等級(Automotive Safety Integrity Level,ASIL),通過對潛在危險進行風險分析,確定危害事件,并判斷危害事件的嚴重性、暴露性和可控性,將安全等級由低到高劃分為QM/A/B/C/D,
3.1危害事件(hazard event):
劃分ASIL等級,首先需要確認危害事件,汽車領域的危害事件,通常指功能故障(Malfunction)與駕駛場景的組合,
3.1.1 功能故障
眾所周知,汽車實作其功能通常通過三個步驟來進行:傳感器、ECU、執行器,傳感器將外部資料傳遞給ECU,ECU將決策結果傳遞給執行器,執行器通過執行決策結果來實作駕駛員需要的功能,功能故障,即指該三者中任意硬體或軟體發生失效的情況,
3.1.2 駕駛場景
某些功能故障只有發生在特定的駕駛場景下,才會成為危害事件,
以發生車輛照明系統的“燈非預期熄滅”功能故障為例:在崎嶇的山路行駛時,若為能見度較低、視距較短的夜晚,則可能掉下山崖,造成車毀人亡的后果;若為明麗的白天,則不會產生任何影響,
公路型別(國道、高速等)、路面情況(濕滑、冰雪等)、環境條件(轉向、超車、制動燈)、人員情況(駕駛員、乘客、路人情況)等,都是判斷駕駛場景需要考慮的因素,
3.2 ASIL等級
ASIL將能夠對汽車造成特定危險的風險,按以下三種特定型別進行劃分:
- 嚴重性等級:Severity of failure,簡稱S,按照事件所致傷害或損失的潛在嚴重性劃分為S1/S2/S3,以駕駛員可能受到的傷害為例:S1指輕傷或中等傷害;S2指可以生還的重傷或致命傷;S3指不確定是否能生還的致命傷,
- 暴露性等級:probability of Exposure,簡稱E,按照駕駛員暴露在危害事件中可能受到傷害的可能性,由低到高E1/E2/E3/E4,E1指,E4指駕駛員將不可避免地受到傷害,
- 可控性等級:Controllability, 簡稱C,按照駕駛員自身及事件涉及的其他人員通過及時的反應避免特定傷害或損失的能力,由高到低劃分為C1/C2/C3,C3指人員無法通過即時反應避免特定傷害的情況,

▲ASIL等級劃分表
分析并組合三種性質的風險后,ASIL將與安全無關的功能評定為QM,將能造成最高危害(S3+E4+C3)的功能評定為D,
安全氣囊、防抱死制動系統和動力轉向系統必須達到安全保障的最嚴苛等級,即ASIL D級——其失效帶來的風險最高,

EPS(Electric Power Steering)電動助力轉向系統
電動助力轉向系統,指依靠汽車電子控制單元(Electronic Control Unit,ECU)提供扭矩的動力轉向系統,ECU是現代汽車的核心電子元件之一,被稱為“行車電腦”;扭矩指使物體發生轉動的力矩,EPS使ECU根據轉向傳感裝置和車速傳感裝置傳輸的信號,確定旋轉方向、角度及助力電流的大小,輕松實作車速不同、助力不同的效果,使駕駛兼顧輕便靈活與穩定可靠,降低能耗的同時提高駕控智能水平,且更容易與其它高級安全系統集成,
該系統失效導致的危害有電機產生自主扭矩、死鎖扭矩、突發扭矩及不提供助力等,下面以自主扭矩為例,分析EPS的ASIL等級:

經評估,EPS系統的安全目標為:不產生非預期的轉向,ASIL等級為D,
04.車輛安全解決方案
系統的ASIL等級越高,其安全性方面的要求就越高,而與之對應的設計開發復雜程度、開發周期、開發成本呈指數級增長,意味著汽車安全需要付出更高的代價,包括更高等級的覆寫率測驗要求、更嚴格的開發流程管理及更先進的技術要求,
4.1 虛擬ECU
構建汽車虛擬ECU,實作測驗“左移”,成為了實作汽車安全的必然產物,
迪捷軟體作為汽車等安全關鍵領域產品與解決方案提供商,通過涵蓋基于模型的系統工程(Model Based System Engineering,MBSE)的整個生命周期的全系列產品,為汽車電子開發提供完整的解決方案,支持虛擬ECU和從系統到軟體的車輛虛擬樣機設計,

其中,SkyEye(天目全數字實時仿真軟體),是基于可視化建模的硬體行為級仿真平臺,指通過應用軟體仿真技術,逼真地模擬出被測軟體運行的物理環境,并通過動態執行被測軟體來進行的軟體確認與驗證活動,SkyEye可以作為虛擬ECU開發平臺,將開發程序從臺架轉移到個人計算機(PC)上,實作ECU軟體的快速高效迭代開發,
4.2 持續集成
在代碼量激增的當下,越來越多的汽車研發團隊開始使用持續集成來保證軟體層面的車輛安全,
持續集成(Continuous Integration,CI)以使產品在快速迭代的同時保持高質量為目的,指開發人員定期將代碼變更合并到一個中央存盤庫中,系統自動運行構建和測驗的程序,此前,開發人員通常需要基于最新的代碼進行手動編譯打包測驗,費時費力;且往往要在進行集成測驗時才能發現bug,而定位錯誤又將消耗大量時間,
SkyEye不僅可以作為虛擬ECU的開發平臺,還可以幫助汽車軟體工程師實作測驗目的,有著可靠性、安全性等多重保障,

▲SkyEye界面圖
SkyEye可以模擬整個嵌入式系統,測驗所需代碼,開發人員只需將代碼提交至倉庫,通過WebHook(一種Web介面機制)觸發持續集成的條件,SkyEye就會自動完成編譯測驗并輸出報告,
SkyEye還可以使軟體工程師通過可視化圖形的硬體建模方式,快速搭建汽車硬體模型,在模型上運行和除錯與真實硬體相同的二進制檔案,并支持自動化測驗,同時,SkyEye也可查看和修改處理器暫存器或設備暫存器的資料、查看反匯編、記憶體值、進行故障注入等,
參考文獻
[1]《了解ISO 26262 ASIL》CNKI:SUN:DZSQ.0.2013-12-006
原文鏈接
https://mp.weixin.qq.com/s/rbbviEWRpA02KBgEFtLePg
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/511058.html
標籤:其他
上一篇:UML建模工具:Astah Professional for Mac/Win
下一篇:常見的排序演算法與時間復雜度
