符合功能安全CAN網路設計及AUTOSAR軟體實現(一)

關鍵字:標準要求詳解 AUTOSAR標準對應說明 軟體設計

CAN-BUS在目前的汽車設計領域中的作用就不必多說了。因其重要性,CAN網路本身在其硬體層面上就有一定的安全強度,其中在數據鏈路層中就進行了CRC校驗,保證數據傳輸在電磁干擾等情況下改變數據的情況下可被檢測到。具體就不再這多說,具體可查CAN的基本原理。重點說說功能安全對CAN通訊的設計要求與實現,準確的說功能安全是對控制器中的外部通訊提出了安全要求,包括FlexRay,SPI等。,

ISO26262中對CAN通訊的要求

在ISO26262_PART5硬體這一章,在Table D.1的Specific semiconductor elements中有如下的描述:

其中對低覆蓋率,中覆蓋率,高覆蓋率所要達到的失效模式檢測提出了要求,包括:通信節點失效,消息損壞,消息延遲,消息丟失,非預期消息重複,順序錯誤,消息插入,消息偽裝(這裡的失效模式並非對所有的通訊模式都適用,例如SPI單對單的傳輸不存在消息偽裝這種說法)

標準實現

這裡討論如何做才能達到最高等級的CAN通訊,標準中給出了實現參考建議,如下圖:

這個表格中對不同的覆蓋率提到了不同的設計方法,硬體冗餘,發送消息回讀,使用測試模式等。但行業內普遍使用的是紅框中的方式,即幀計數器,超時監控,信息冗餘三種中等覆蓋率的檢測方式的組合來實現最高等級的安全設計。

【1】Information redundancy

其中Information redundancy中的介紹:

這裡軟體設計中要做到的重要的幾點:

1,用checksum或CRC

2,checksum或CRC要包含message ID

3,漢明距不小於3.

關於CRC的漢明距的計算我找了不少資料仍然沒找著具體的說明,如果哪位了解的,還請不吝賜教。通常CRC我們會使用美國汽車工程師協會制定的ASE-J1850推薦的CRC,很多晶元廠商及零部件供應商都已依據此標準開發了相關的CRC標準庫。AUTOSAR標準對E2E的PROFILE1格式中推薦使用如下的CRC:

【2】 Frame counter

下圖是對Frame counter的解釋:

【3】Timeout monitoring

幀計數器較好理解,即每次收到或發出報文是進行計數器增加或翻轉,顯而易見,通過收發兩端計數器的更新判斷可判斷報文是否更新,順序是否正確等問題。

除了CRC與Frame counter,還需要進行超時監控:

這較好理解,需要檢測到此channel連續丟失報文或者特定ID信息連續丟失。

如上是功能安全標準中對最高等級CAN網路安全設計提出的要求,那麼在CAN協議 應用設計的時候便可根據這一要求,在CAN報文中加入CAN ID信息及frame counter,再通過一些軟體設計對這些信息進行邏輯判斷得到各類失效模式的檢測。後一篇會重點解釋AUTOSAR中如何實現這一軟體設計。(不太懂知乎的文章排版,排版醜陋,有空再排版吧,汗)如轉載請註明出處,謝謝!


推薦閱讀:

TAG:功能安全 | CAN总线 | ISO26262 |