ISO26262道路車輛的功能安全國際標(biāo)準(zhǔn)已經(jīng)通過。車企實(shí)施這項(xiàng)標(biāo)準(zhǔn)是自利的事,因?yàn)榭梢詼p少出事故后的賠償損失,同時(shí)也是爭取客戶的競爭手段之一。所以,回顧已有的實(shí)踐是非常必要的。參考文獻(xiàn)指出,ISO26262強(qiáng)調(diào)了安全的管理與安全的文化理念。安全不再僅是一種事后的風(fēng)險(xiǎn)評(píng)估,他還建議用參考文獻(xiàn)系統(tǒng)原理性過程的風(fēng)險(xiǎn)分析方法(system theoretic processhazard analysis method)實(shí)施ISO262 62。在這種方法中人、組織、機(jī)器等相互之間信息傳遞出錯(cuò)的過程及其風(fēng)險(xiǎn)都要加以評(píng)估。作為車輛控制設(shè)備間的信息傳遞,當(dāng)前的車輛中主要是CAN總線,CAN總線幀的丟失、錯(cuò)幀漏檢、送達(dá)次序的錯(cuò)誤、超過時(shí)限等帶來的風(fēng)險(xiǎn)均應(yīng)定量地分析。
筆者在本刊就CAN總線的隱患發(fā)表過若干文章,簡單地講,主要有2個(gè)致命的隱患:非常大的錯(cuò)幀漏檢率,比Bosch公司聲稱的大幾個(gè)數(shù)量級(jí);由于協(xié)議規(guī)則間的不匹配,連續(xù)出錯(cuò)造成的等效離線,可能的持續(xù)時(shí)間很長。這2種錯(cuò)誤單獨(dú)發(fā)生就會(huì)影響安全性,如果連著發(fā)生風(fēng)險(xiǎn)就更大:發(fā)生第1個(gè)故障時(shí)應(yīng)用會(huì)收下錯(cuò)誤的原始數(shù)據(jù),接著發(fā)生的第2個(gè)故障將阻斷數(shù)據(jù)刷新,從而使應(yīng)用的錯(cuò)誤持續(xù)一段時(shí)間,造成系統(tǒng)的安全事故。
1 錯(cuò)幀漏檢造成的值域失誤
圖1是發(fā)生位錯(cuò)(bit flip)而產(chǎn)生錯(cuò)幀漏檢的2個(gè)例子,具體構(gòu)造方法可見參考文獻(xiàn)。它們都滿足差錯(cuò)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)不出錯(cuò)。
構(gòu)造錯(cuò)幀漏檢的例子時(shí),第1個(gè)1的作用是確保填充規(guī)則在第6位后發(fā)生,這個(gè)1既可以是發(fā)生在DLC中的代碼,也可以視為數(shù)據(jù)域中填充進(jìn)來的1。所以它的值可以不考慮作Tx與Rx的值。在此種情況下,如果第1個(gè)位錯(cuò)發(fā)生在Tx的第2位,收到的Rx值將是Tx的33倍,或者1/33。如果將第1次位錯(cuò)發(fā)生在1后面幾位,Rx值也會(huì)比Tx變化很多倍。
2 等效離線發(fā)生的概率
等效離線的發(fā)生有3個(gè)條件:①節(jié)點(diǎn)已經(jīng)在消極報(bào)錯(cuò)狀態(tài)(error passive status);②該節(jié)點(diǎn)發(fā)生了局部錯(cuò);③由于在消極報(bào)錯(cuò)幀分界符內(nèi)遇到其他節(jié)點(diǎn)掛起待發(fā)幀的發(fā)送而造成連續(xù)出錯(cuò)。要考慮的是由于誤碼而報(bào)錯(cuò)的概率與處于總線峰值負(fù)載的概率。
消極報(bào)錯(cuò)幀規(guī)定:在發(fā)送連續(xù)隱位時(shí)讀回6個(gè)連續(xù)的相同位時(shí)視為報(bào)錯(cuò)標(biāo)志發(fā)完,然后開始發(fā)隱位,讀回隱位時(shí)作為消極報(bào)錯(cuò)幀分界符開始,開始后必須有連續(xù)7個(gè)隱位,如內(nèi)又有顯位,就作為新錯(cuò),節(jié)點(diǎn)要重發(fā)消極報(bào)錯(cuò)幀。
對(duì)于消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn),發(fā)生局部錯(cuò)的位置有2種。在ACK分界符前時(shí),消極報(bào)錯(cuò)標(biāo)志的連續(xù)隱位會(huì)被接收節(jié)點(diǎn)以填充規(guī)則檢驗(yàn)、CRC檢驗(yàn)發(fā)現(xiàn)有錯(cuò),引起接收節(jié)點(diǎn)報(bào)錯(cuò)。它們的主動(dòng)報(bào)錯(cuò)幀的連續(xù)6個(gè)顯位決定了發(fā)送節(jié)點(diǎn)消極報(bào)錯(cuò)幀報(bào)錯(cuò)標(biāo)志結(jié)束時(shí)間的同步,不會(huì)發(fā)生分界符內(nèi)出錯(cuò)的情況。