功能安全中的軟體隔離(一)
1,硬體上說,能達到ASIL C要求的晶元要求,要麼沒有,要麼貴(很多廠家都聲稱自己的晶元做到了ASIL C或者ASIL D,但是如果要求完整的認證材料或是按ISO26262標準去摳細節,例如是否有符合要求的FMEDA等,就達不到要求)。系統降級可以降低硬體要求,同時降低成本(也有可能增加,因為冗餘設計)
2,軟體上說,就是為了降低開發難度。功能安全的軟體開發,有個分水嶺,就是ASIL C。當軟體開發從ASIL B跨到ASIL C的要求,就是一個質的跨越了。假設我們只選擇實現ISO26262的「++」號(強烈建議)的內容(知名車廠會要求一個「+」也要實現,不實現需要給出理由),則在ASIL C與ASIL B相比有兩個難度較高的要求
在ISO 26262的PART9中有詳細介紹,下圖是標準中推薦的ASIL分解方法
ASIL分解需要注意的點,在這抄一下從別處引用的內容:
ASIL 分解的一個最重要的要求就是獨立性,如果不能滿足獨立性要求的話,冗餘單元要按照原來的ASIL等級開發。所謂的獨立性就冗餘單元之間不應發生從屬失效(Dependent Failure),從屬失效分為共因失效(Common Cause Failure)和級聯失效(Cascading Failure) 兩種。共因失效是指兩個單元因為共同的原因失效,比如軟體複製冗餘,冗餘單元會因為同一個軟體bug導致兩者都失效,為了避免該共因失效,我們採用多種軟體設計方法。級聯失效是指一個單元失效導致另一個單元的失效,比如一個軟體組件的功能出現故障,寫入另一個軟體組件RAM中,導致另一個軟體組件的功能失效,為了控制該級聯失效,我們採用內存管理單元,可以探測到非法寫入RAM的情況。
ASIL分解是看起來簡單,但真正操作起來會變得很複雜的活,涉及到RAM,FLASH的隔離,TASK的分配,各種獨立性分析,安全分析,不勝繁瑣。
看來本篇只能介紹下背景了,受限於本人碼字水平太差,寫著寫著就跑題,見諒。最近也忙到不行,偶爾插空總結一下,就暫時先這樣吧。
推薦閱讀:
※什麼是ISO 26262的功能安全
※做汽車電控的功能安全,需要對ISO26262理解到什麼程度?幹這一行前景怎麼樣?
※AUTOSAR與功能安全的關係(二)
※ISO26262 與 autosar 的關係?