淺談關(guān)于CAN總線的功能安全性問題

2013-08-06 14:54 來源:電子信息網(wǎng) 作者:蒲公英

ISO26262道路車輛的功能安全國際標(biāo)準(zhǔn)已經(jīng)通過。車企實(shí)施這項(xiàng)標(biāo)準(zhǔn)是自利的事,因?yàn)榭梢詼p少出事故后的賠償損失,同時也是爭取客戶的競爭手段之一。所以,回顧已有的實(shí)踐是非常必要的。參考文獻(xiàn)指出,ISO26262強(qiáng)調(diào)了安全的管理與安全的文化理念。安全不再僅是一種事后的風(fēng)險評估,他還建議用參考文獻(xiàn)系統(tǒng)原理性過程的風(fēng)險分析方法(system theoretic processhazard analysis method)實(shí)施ISO262 62。在這種方法中人、組織、機(jī)器等相互之間信息傳遞出錯的過程及其風(fēng)險都要加以評估。作為車輛控制設(shè)備間的信息傳遞,當(dāng)前的車輛中主要是CAN總線,CAN總線幀的丟失、錯幀漏檢、送達(dá)次序的錯誤、超過時限等帶來的風(fēng)險均應(yīng)定量地分析。

筆者在本刊就CAN總線的隱患發(fā)表過若干文章,簡單地講,主要有2個致命的隱患:非常大的錯幀漏檢率,比Bosch公司聲稱的大幾個數(shù)量級;由于協(xié)議規(guī)則間的不匹配,連續(xù)出錯造成的等效離線,可能的持續(xù)時間很長。這2種錯誤單獨(dú)發(fā)生就會影響安全性,如果連著發(fā)生風(fēng)險就更大:發(fā)生第1個故障時應(yīng)用會收下錯誤的原始數(shù)據(jù),接著發(fā)生的第2個故障將阻斷數(shù)據(jù)刷新,從而使應(yīng)用的錯誤持續(xù)一段時間,造成系統(tǒng)的安全事故。

1 錯幀漏檢造成的值域失誤

圖1是發(fā)生位錯(bit flip)而產(chǎn)生錯幀漏檢的2個例子,具體構(gòu)造方法可見參考文獻(xiàn)。它們都滿足差錯Ec=U·G,其中G是CAN總線的CRC生成多項(xiàng)式G=(110o,0101,1001,1001)。圖中,Ec=U·G=(1000,0010,0001,1100,1110,1001)。由于Ec是G的倍數(shù),所以CRC檢驗(yàn)不出錯。

1

構(gòu)造錯幀漏檢的例子時,第1個1的作用是確保填充規(guī)則在第6位后發(fā)生,這個1既可以是發(fā)生在DLC中的代碼,也可以視為數(shù)據(jù)域中填充進(jìn)來的1。所以它的值可以不考慮作Tx與Rx的值。在此種情況下,如果第1個位錯發(fā)生在Tx的第2位,收到的Rx值將是Tx的33倍,或者1/33。如果將第1次位錯發(fā)生在1后面幾位,Rx值也會比Tx變化很多倍。

2 等效離線發(fā)生的概率

等效離線的發(fā)生有3個條件:①節(jié)點(diǎn)已經(jīng)在消極報錯狀態(tài)(error passive status);②該節(jié)點(diǎn)發(fā)生了局部錯;③由于在消極報錯幀分界符內(nèi)遇到其他節(jié)點(diǎn)掛起待發(fā)幀的發(fā)送而造成連續(xù)出錯。要考慮的是由于誤碼而報錯的概率與處于總線峰值負(fù)載的概率。

消極報錯幀規(guī)定:在發(fā)送連續(xù)隱位時讀回6個連續(xù)的相同位時視為報錯標(biāo)志發(fā)完,然后開始發(fā)隱位,讀回隱位時作為消極報錯幀分界符開始,開始后必須有連續(xù)7個隱位,如內(nèi)又有顯位,就作為新錯,節(jié)點(diǎn)要重發(fā)消極報錯幀。

對于消極報錯發(fā)送節(jié)點(diǎn),發(fā)生局部錯的位置有2種。在ACK分界符前時,消極報錯標(biāo)志的連續(xù)隱位會被接收節(jié)點(diǎn)以填充規(guī)則檢驗(yàn)、CRC檢驗(yàn)發(fā)現(xiàn)有錯,引起接收節(jié)點(diǎn)報錯。它們的主動報錯幀的連續(xù)6個顯位決定了發(fā)送節(jié)點(diǎn)消極報錯幀報錯標(biāo)志結(jié)束時間的同步,不會發(fā)生分界符內(nèi)出錯的情況。

1 2 3 > 
安全 CAN總線

相關(guān)閱讀

暫無數(shù)據(jù)

一周熱門