• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      CAN 總線的功能安全問題

      2013-08-27 08:33:04楊福宇
      關(guān)鍵詞:分界離線消極

      楊福宇

      (重慶工業(yè)自動化儀表研究所,重慶401123)

      引 言

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

      筆者在本刊就CAN 總線的隱患發(fā)表過若干文章,簡單地講,主要有2個(gè)致命的隱患:非常大的錯(cuò)幀漏檢率[3],比Bosch公司聲稱的大幾個(gè)數(shù)量級;由于協(xié)議規(guī)則間的不匹配,連續(xù)出錯(cuò)造成的等效離線[46],可能的持續(xù)時(shí)間很長。這2種錯(cuò)誤單獨(dú)發(fā)生就會影響安全性,如果連著發(fā)生風(fēng)險(xiǎn)就更大:發(fā)生第1個(gè)故障時(shí)應(yīng)用會收下錯(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)[3]。它們都滿足差錯(cuò)Ec=U·G,其中G 是CAN 總線的CRC 生成多項(xiàng)式G=(1100,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值也會比Tx變化很多倍。

      圖1 錯(cuò)幀漏檢U=x8+x7+x6+x5+x4+1

      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ò)幀。

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

      在ACK 及分界符后到EOF第3位間有局部錯(cuò)時(shí),消極報(bào)錯(cuò)標(biāo)志(P.E.Flag)的6個(gè)隱位會被接收節(jié)點(diǎn)認(rèn)為是正常的發(fā)送幀結(jié)尾部分和2位服務(wù)間隔(I.M.)。別的節(jié)點(diǎn)所發(fā)新幀開始位(SOF),將落入發(fā)送節(jié)點(diǎn)消極報(bào)錯(cuò)幀分界符(P.E.Del)內(nèi),形成新錯(cuò),如圖2所示。發(fā)送節(jié)點(diǎn)新的消極報(bào)錯(cuò)幀將在新幀的ACK 分界符處開始。然后,只要有掛起待發(fā)幀,這種出錯(cuò)狀態(tài)就重復(fù)下去。而EOF 第4~7位發(fā)送節(jié)點(diǎn)發(fā)的消極報(bào)錯(cuò)幀由于未見到連續(xù)的6個(gè)相同位,發(fā)送節(jié)點(diǎn)要等待別的節(jié)點(diǎn)所發(fā)新幀的ACK 分界符處開始才有機(jī)會見到,等同于在ACK 分界符處開始的消極報(bào)錯(cuò)幀。由此可知,產(chǎn)生等效離線錯(cuò)誤的位置數(shù)為9位,其概率為9·BER。

      圖2 消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)在ACK及其后有本地錯(cuò)

      在消極報(bào)錯(cuò)狀態(tài)的發(fā)送節(jié)點(diǎn)遇到16次重復(fù)錯(cuò)后,會進(jìn)入真正離線狀態(tài),所以要求取有16幀掛起待發(fā)的機(jī)會。這與ECU 的設(shè)計(jì)有關(guān),較難分析。我們以仿真來求取,底盤CAN 總線系統(tǒng)內(nèi)一般有6個(gè)節(jié)點(diǎn),約有60個(gè)左右的消息要傳送,則每個(gè)節(jié)點(diǎn)平均有10 條消息,假定周期為10ms、20ms、50ms、100ms、1 000ms等各有2條,每條幀長為97位,在500kbps下6個(gè)節(jié)點(diǎn)的總線負(fù)載率總計(jì)43.4%。當(dāng)一個(gè)節(jié)點(diǎn)等效離線后,還有約50條消息要發(fā)。在時(shí)鐘差的影響下,可以構(gòu)成一個(gè)峰值,節(jié)點(diǎn)在相對頻差-0.2、0.4、0.6、0.8×100ppm 下的仿真結(jié)果如圖3所示。其中隊(duì)長度每0.2ms統(tǒng)計(jì)一次,累計(jì)出該隊(duì)長在整個(gè)仿真時(shí)間內(nèi)的出現(xiàn)次數(shù)。

      圖3 仿真得到的掛起隊(duì)長度與出現(xiàn)概率關(guān)系

      為了便于ECU 編程,采樣與寫CAN 總線控制器在一個(gè)任務(wù)中完成,所以假定10條消息在4ms內(nèi)就緒。仿真開始時(shí)是最壞情況:所有節(jié)點(diǎn)同時(shí)開始寫CAN 總線控制器任務(wù)。在上述頻差下,節(jié)點(diǎn)1、2經(jīng)500s差10ms,也就是說2個(gè)節(jié)點(diǎn)的10ms周期的消息就緒時(shí)間又重合了,其他節(jié)點(diǎn)與節(jié)點(diǎn)1的組合各為250s、166s、125s。由于較長周期消息對掛起隊(duì)長的影響較小,所以仿真的時(shí)段取得較短。以600s的結(jié)果計(jì)算,掛起長度為16以上的情況有3 590次,占600s內(nèi)傳送的1.2×10-3。需要特別注意的是,掛起隊(duì)長的分布不是均勻的,因此處于等效離線而轉(zhuǎn)為真正離線的機(jī)會也不是均勻分布的。由上述仿真60s、600s的結(jié)果看,掛起長度為16 以上的情況都是3 590次,如果在最壞情況60s內(nèi)遇上了的機(jī)會便是1.2×10-2。如果在最壞情況6s內(nèi)遇上掛起長度為16以上的情況有1 005次,機(jī)會便是3.3×10-2。

      圖中隊(duì)長度18的出現(xiàn)數(shù)比隊(duì)長度17次的多,解釋如下:雖然每個(gè)18隊(duì)都要經(jīng)過17隊(duì)而下降,但是處于18隊(duì)時(shí)仍可能增長到19隊(duì)或更長,它們退下時(shí)又要經(jīng)過18隊(duì)狀態(tài)。而在某時(shí),由于同時(shí)就緒的消息多于2個(gè),所以使隊(duì)長度直接由小于17而跳到18,從而使18隊(duì)的出現(xiàn)次數(shù)多于17隊(duì)。

      于是,消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)發(fā)生等效離線而進(jìn)入真正離線的概率是P=BER×9×1.2×10-3,其中BER 為誤碼率。這是一個(gè)樂觀的估計(jì)。

      對消極報(bào)錯(cuò)接收節(jié)點(diǎn),發(fā)生在幀內(nèi)任一位的局部錯(cuò)均可能產(chǎn)生類似的情形,即消極報(bào)錯(cuò)幀分界符內(nèi)遇到其他節(jié)點(diǎn)掛起待發(fā)幀的發(fā)送,造成再出錯(cuò)的情形。假定幀長為135位,那么其等效離線的概率是P=BER×135×1.2×10-3。

      3 離線的時(shí)間

      發(fā)生等效離線的節(jié)點(diǎn)不再能發(fā)送,所以應(yīng)扣除消息源是該節(jié)點(diǎn)的那些幀。此時(shí)的分析方法可以參考CAN 總線的傳統(tǒng)調(diào)度分析方法,最壞的情況是最低優(yōu)先級消息的送達(dá)時(shí)間。這樣分析的結(jié)果與應(yīng)用的具體配置有關(guān),對每一個(gè)節(jié)點(diǎn)是不同的。

      假定掛起待發(fā)的消息有4字節(jié)數(shù)據(jù),采用11位ID,平均填充位取8位,再加3位服務(wù)間隔,那么16幀導(dǎo)致的等效離線為16×(84+3)=1 392位,真正離線的時(shí)間為128幀,最壞情況為幀間有10位的空閑。所以真正離線將有128×(84+3+10)=12 416位。二者相加,消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)出錯(cuò)后會有總計(jì)13 808 位的不能服務(wù)的時(shí)間,在500kbps速率下,這相當(dāng)于27.6ms。如果采用29位ID,填充位也增加,幀長變?yōu)?05位,此時(shí)消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)出錯(cuò)后不能服務(wù)的時(shí)間將達(dá)34.5 ms。有的車采用250kbps速率,那將有69ms不能服務(wù)的時(shí)間。

      4 2個(gè)隱患在應(yīng)用上的影響

      隱患實(shí)際發(fā)作時(shí)就表現(xiàn)為系統(tǒng)內(nèi)的故障。

      4.1 錯(cuò)幀漏檢的影響

      在單一接收節(jié)點(diǎn)的情況下,錯(cuò)幀傳遞的信息值域的變化很大,有些應(yīng)用算法加有絕對值的限幅器,或者變化速度的限幅器,可以減少這一故障的危害性。但是這些措施有時(shí)是不可行的,或者以降低系統(tǒng)的動態(tài)性能為代價(jià),顯然是應(yīng)用設(shè)計(jì)部門不希望的。

      在有多個(gè)接收節(jié)點(diǎn)的情況下,這一故障就造成數(shù)據(jù)完整性問題,例如在油門、離合器和剎車系統(tǒng)中油門的開度有不同的解釋,系統(tǒng)就難以協(xié)調(diào)工作。

      在冗余系統(tǒng)中,如果沒有表決機(jī)制,就可能收下錯(cuò)誤的數(shù)據(jù),就必須增加軟件及時(shí)間資源來解決問題。

      4.2 離線的影響

      如上所述,消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)出錯(cuò)后不能服務(wù)的時(shí)間將達(dá)34.5ms,這在一些應(yīng)用中是不能接受的,例如電子穩(wěn)定控制系統(tǒng)(ESP)中,Bosch ESP8要求信號更新周期最小20ms。消極報(bào)錯(cuò)接收節(jié)點(diǎn)出錯(cuò)后不能服務(wù)的時(shí)間較短,但是其發(fā)生的概率遠(yuǎn)大于消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)出錯(cuò)后不能服務(wù)的概率(15倍),其影響尚未充分研究。

      車輛以100km/h速度運(yùn)行時(shí),延遲34.5ms開始剎車意味著已運(yùn)動0.94 m,對駕駛員來說是不能接受的。2010年豐田公司Prius的剎車能量回收軟件有0.06s延遲,造成剎車距離長了0.6m,進(jìn)行了召回。

      4.3 2個(gè)故障先后發(fā)生

      應(yīng)用收下了一個(gè)錯(cuò)誤的數(shù)據(jù),然后又發(fā)生了第二個(gè)故障,無法改正第一個(gè)錯(cuò)誤,就非常危險(xiǎn)。例如向內(nèi)道運(yùn)動時(shí)轉(zhuǎn)向角是5°,但是由電動助力轉(zhuǎn)向ECU 發(fā)往ESP ECU 的幀被讀錯(cuò)為30°,則ESP幫助實(shí)現(xiàn)30°轉(zhuǎn)向,如ESP--ECU 或電動助力轉(zhuǎn)向ECU 發(fā)生離線故障,34.5ms內(nèi)仍保留這30°的錯(cuò)誤命令,就會沖向隔離帶或?qū)Ψ杰嚨馈?/p>

      下面分析其概率:假定總線工作于500kbps,總線負(fù)載率為40%,平均幀長為100位,那么每小時(shí)送7.2×106幀。筆者對參考文獻(xiàn)[3]作了新的修正,得到錯(cuò)幀漏檢概率為Pud=1.67×10-7,仍比Bosch的(Pud=4.7×10-11)高幾個(gè)數(shù)量級,與Tran的結(jié)果[7]相近(Pud=1.3×10-7)。如考慮通道錯(cuò)概率=0.001(它考慮了誤碼率的不均勻分布,例如每1000幀錯(cuò)1幀),那么可算出殘差率為Pres=1.67×10-10??伤愕玫? 個(gè)故障造成的失效率Pfailure1=1.2×10-3/h。當(dāng)ber=0.001時(shí)第2個(gè)故障出現(xiàn)的概率P2nd=1×10-5,造成的失效率為Pfailure2=72/h。由此推斷2個(gè)故障先后出現(xiàn)時(shí)的失效率Pfailure1+2=1.1×10-3/h。

      CAN 總線已經(jīng)使用于安全攸關(guān)的系統(tǒng)中,例如電子穩(wěn)定控制系統(tǒng)(ESP)。按照道路車輛的功能安全國際標(biāo)準(zhǔn)ASIL-C 的要求,系統(tǒng)的故障率應(yīng)小于10-7/h。這包括許多可能失效的因素,例如傳感器失效、CPU 失效、接插件失效、電源失效等,甚至鏍釘未擰緊。通信系統(tǒng)分配的份額一般為1%,即要求達(dá)到小于10-9/h。由表1 可知,錯(cuò)幀漏檢與離線的故障都達(dá)不到。即使在ESP中,因連續(xù)發(fā)生2種故障而產(chǎn)生失效的概率也相當(dāng)大,只有在誤碼率小于10-4的情況下才能達(dá)到安全要求。實(shí)際的車內(nèi)環(huán)境很差,有的車廠為了節(jié)省費(fèi)用,對電磁干擾源頭處理就不足,干擾可能引起較大的誤碼率。還有車外環(huán)境的影響,高壓線、大功率電臺、雷達(dá)站等附近的干擾就大。這都可能造成誤碼率大于10-4,使系統(tǒng)失效。

      5 軟件補(bǔ)丁方案實(shí)現(xiàn)難點(diǎn)

      [3]中提出過添加額外的CRC 檢驗(yàn)來改善錯(cuò)幀漏檢,對已有的應(yīng)用難以執(zhí)行。它要占用數(shù)據(jù)域,由應(yīng)用軟件生成和檢驗(yàn),這要耗費(fèi)一定的時(shí)間,檢驗(yàn)出錯(cuò)誤后要另外發(fā)幀通知別的節(jié)點(diǎn),以及要求重發(fā)。所有節(jié)點(diǎn)為取得一致性都得有計(jì)時(shí)器,大大延遲整個(gè)接收過程。出錯(cuò)重發(fā)的時(shí)間也大于原CAN 總線的時(shí)間,破壞了原調(diào)度分析的結(jié)果,因此需要重新進(jìn)行認(rèn)證。

      已有的應(yīng)用已經(jīng)采用8字節(jié)數(shù)據(jù)的,就需要拆分成2幀。需要增加標(biāo)識符,這要在接收節(jié)點(diǎn)增加或修改濾波的設(shè)置,還要增加合并機(jī)制。這都增加了軟件工作及其正確性的驗(yàn)證工作,特別是涉及不同廠家的ECU 時(shí)就更復(fù)雜了。

      對等效離線問題,除了修改消極報(bào)錯(cuò)幀分界符長度[4]外,還可以用完全取消消極報(bào)錯(cuò)狀態(tài)的方法:例如用市售CAN 總線芯片出錯(cuò)計(jì)數(shù)器達(dá)到96時(shí)的中斷,由應(yīng)用決定如何修改工作模式。新的模式可以是認(rèn)為通信已失效,便進(jìn)入降額使用狀態(tài),同時(shí)復(fù)位通信,等一段時(shí)間再投入正常運(yùn)行。這種方案是將離線的時(shí)間變?yōu)槌A?,并讓?yīng)用知道。它并沒有減少離線的概率,只是可能減少一次離線的時(shí)間。

      這種方案的問題是,從開始降額到實(shí)現(xiàn)降額的過程并不安全(沒有剎車,車并不立即降速)。另外,頻繁地在正常/降額模式間切換會引起消費(fèi)者的不安,失去對車可靠性的信任感,對車廠是極為不利的。

      由此可見,軟件補(bǔ)丁的方案對現(xiàn)有車的改進(jìn)極為有限。

      以上分析的CAN 總線隱患完全是協(xié)議設(shè)計(jì)不周造成的,因此協(xié)議要改。把CAN 總線的優(yōu)點(diǎn)繼承下來,物理層仍可沿用,線纜也不用改,甚至印刷版都不用改,用到安全攸關(guān)的場合仍可能是合適的。

      參考文獻(xiàn)

      [1]Qi Van Eikema Hommes.Why we need something new in automotive industry[EB/OL].[2012-06-29].http://csrl.scripts.mit.edu/home/get_pdf.php?name=3-1e-Qi-Something-New-Panel.pdf.

      [2]Qi Van Eikema Hommes.Assessment of the ISO26262 standard"Road Vehicles-Function Safety"[OL].[2012-06-24].http://www.sae.org/events/gim/presentations/2012/qi_volpe.pdf.

      [3]楊福宇.CAN 協(xié)議的錯(cuò)幀漏檢率改進(jìn)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(9):8-11.

      [4]楊福宇.CAN 總線中的一種安全隱患[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(1):20- 22.

      [5]楊福宇.CAN 消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)變?yōu)殡x線狀態(tài)的故障[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(5):18-20.

      [6]楊福宇.關(guān)于CAN 隱患的爭辨[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(6):5-7.

      [7]Eushiuan Tran.Multi- Bit flip Vulnerabilities in the Controller Area Network Protocol[EB/OL].[2012-10].http://www.cs.cmu.edu/~koopman/thesis/etran.ps.qz.

      猜你喜歡
      分界離線消極
      避免消極溝通
      異步電機(jī)離線參數(shù)辨識方法
      呼吸閥離線檢驗(yàn)工藝與評定探討
      淺談ATC離線基礎(chǔ)數(shù)據(jù)的準(zhǔn)備
      肖碧源
      離線富集-HPLC法同時(shí)測定氨咖黃敏膠囊中5種合成色素
      中成藥(2018年2期)2018-05-09 07:20:09
      10kV用戶分界開關(guān)在定陶電網(wǎng)的應(yīng)用分析
      電子制作(2018年1期)2018-04-04 01:48:46
      南北分界話秦嶺(下)
      家庭教育:你種的是積極樹還是消極樹?
      海峽姐妹(2015年3期)2015-02-27 15:10:14
      “消極保護(hù)”不如“積極改變”
      荔波县| 天峻县| 开原市| 泰和县| 宜都市| 罗甸县| 武山县| 灵丘县| 岢岚县| 临猗县| 鲜城| 苍南县| 都昌县| 南和县| 龙井市| 阿图什市| 犍为县| 三亚市| 红原县| 南丹县| 高碑店市| 特克斯县| 东光县| 三都| 仁化县| 江陵县| 商河县| 拉萨市| 宣武区| 康乐县| 尼勒克县| 城口县| 长宁县| 肇东市| 铜鼓县| 团风县| 石河子市| 井研县| 格尔木市| 茂名市| 嘉兴市|