国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

CAN總線系統(tǒng)中的一種安全隱患

發(fā)布時(shí)間:2010-4-24 21:57    發(fā)布者:李寬
關(guān)鍵詞: CAN , 安全隱患 , 系統(tǒng) , 總線
CAN是最成功的現(xiàn)場(chǎng)總線,特別是在汽車工業(yè)的應(yīng)用方面。僅2006年一年,CAN有關(guān)的控制器出貨量超過5億個(gè)。在過去16年里,有許多關(guān)于CAN在安全攸關(guān)的系統(tǒng)中應(yīng)用時(shí)的安全問題的研究。其中大部分是針對(duì)因CAN事件觸發(fā)通信的性質(zhì)引起的時(shí)間延遲問題,以及數(shù)據(jù)幀幀結(jié)束域倒數(shù)第2位出錯(cuò)時(shí)造成的節(jié)點(diǎn)間消息不一致的問題。有些研究著力于解決CAN系統(tǒng)中的Babb—ling Idiot問題,尚未見到有關(guān)源于標(biāo)準(zhǔn)協(xié)議設(shè)計(jì)本身的嚴(yán)重問題的相關(guān)文獻(xiàn)。

1 出錯(cuò)的情況

在CAN協(xié)議2.OA版3.1.3款中提到:為了使報(bào)錯(cuò)幀正確結(jié)束,消極報(bào)錯(cuò)節(jié)點(diǎn)可能需要處于空閑狀態(tài)至少3位的時(shí)間(如果消極報(bào)錯(cuò)接收節(jié)點(diǎn)發(fā)生本地錯(cuò)),因此總線不應(yīng)滿負(fù)荷運(yùn)行。這是引發(fā)應(yīng)用故障的原因。節(jié)點(diǎn)間并無時(shí)間同步,因而即便總線有空閑時(shí)間,也不能保證像上述要求那樣的分布。在總線的利用率較低時(shí),掛起待發(fā)的消息將在服務(wù)間隔(intermission,縮寫為I.M.)后立即發(fā)送。這在標(biāo)準(zhǔn)中也有規(guī)定:在另一條消息發(fā)送過程中掛起待發(fā)的消息在服務(wù)間隔后的第一位啟動(dòng)(發(fā)送)。

現(xiàn)在考慮一種情況:由于電磁干擾,某消極報(bào)錯(cuò)節(jié)點(diǎn)發(fā)生一個(gè)本地錯(cuò)(其他節(jié)點(diǎn)未發(fā)現(xiàn)有錯(cuò)),它就發(fā)一個(gè)消極報(bào)錯(cuò)標(biāo)志(P.E.Flag)。因?yàn)槭请[位,其他節(jié)點(diǎn)對(duì)這個(gè)消極報(bào)錯(cuò)標(biāo)志也無響應(yīng)。這一消極報(bào)錯(cuò)幀的報(bào)錯(cuò)標(biāo)志在數(shù)據(jù)幀ACK分界符后的EOF部分得到確認(rèn)(如圖1所示),但是它的消極報(bào)錯(cuò)幀分界符 (P.E.Del)延續(xù)到EOF域最后一位以及服務(wù)間隔之后。如果此時(shí)有3位的總線空閑時(shí)間,那么新幀的開始位(SOF)將是該消極報(bào)錯(cuò)節(jié)點(diǎn)服務(wù)間隔的第一位。按ISO16845標(biāo)準(zhǔn),此顯位被解讀為對(duì)超載幀的請(qǐng)求,由消極報(bào)錯(cuò)節(jié)點(diǎn)發(fā)送的超載幀將引起其他節(jié)點(diǎn)的位填充錯(cuò),使它們發(fā)送主動(dòng)報(bào)錯(cuò)幀。主動(dòng)報(bào)錯(cuò)幀與超載幀將在總線上疊合,雖然比特流的解釋對(duì)該消極報(bào)錯(cuò)節(jié)點(diǎn)和其他節(jié)點(diǎn)而言是不同的,但兩種幀分界符的結(jié)束時(shí)刻是一樣的。所有節(jié)點(diǎn)都會(huì)在此刻復(fù)位CAN協(xié)議狀態(tài)機(jī)的狀態(tài),使它回到開始服務(wù)間隔的狀態(tài)。這解釋了。BoschCAN協(xié)議的說明。但如果對(duì)3位總線空閑時(shí)間沒有保證,那又該如何呢?



對(duì)報(bào)錯(cuò)幀分界符格式錯(cuò)的檢查在國際標(biāo)準(zhǔn)化組織(ISO)的標(biāo)準(zhǔn)ISO16845中有明確的規(guī)定:在消極報(bào)錯(cuò)幀分界符中的任何顯位是一種格式錯(cuò)。第 7.5.6款和8.5.13款是對(duì)應(yīng)消極報(bào)錯(cuò)接收節(jié)點(diǎn)和消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)消極報(bào)錯(cuò)幀分界符格式錯(cuò)的測(cè)試方法,第7.6.12款和8.6.9款是消極報(bào)錯(cuò)節(jié)點(diǎn)消極報(bào)錯(cuò)幀分界符查到格式錯(cuò)時(shí),接收錯(cuò)計(jì)數(shù)器與發(fā)送錯(cuò)計(jì)數(shù)器增加機(jī)制的檢查方法。因此,消極報(bào)錯(cuò)節(jié)點(diǎn)與其他節(jié)點(diǎn)不同步時(shí),另一個(gè)節(jié)點(diǎn)開始發(fā)送新消息,其 SOF將被該消極報(bào)錯(cuò)節(jié)點(diǎn)視為消極報(bào)錯(cuò)幀分界符內(nèi)的格式錯(cuò)。它將在其他節(jié)點(diǎn)新幀傳送過程中開始一個(gè)新的消極報(bào)錯(cuò)幀,新的消極報(bào)錯(cuò)標(biāo)志將在其他節(jié)點(diǎn)新幀的 EOF部分得到確認(rèn),新消極報(bào)錯(cuò)幀分界符再一次延續(xù)到超過其他節(jié)點(diǎn)服務(wù)間隔之后。只要掛起的消息未發(fā)完,這一過程將不斷重復(fù)。在此時(shí)間段里,消極報(bào)錯(cuò)節(jié)點(diǎn)不能接收或發(fā)送任何消息,因?yàn)樗傇诓粩喟l(fā)送消極報(bào)錯(cuò)幀。這延遲了該節(jié)點(diǎn)應(yīng)發(fā)送的消息,而不管消息的優(yōu)先級(jí)有多高,也就引起了優(yōu)先級(jí)逆轉(zhuǎn)。由于電磁干擾的隨機(jī)性,無法對(duì)系統(tǒng)進(jìn)行調(diào)度分析。這個(gè)消極報(bào)錯(cuò)節(jié)點(diǎn)有2種可能的方式退出循環(huán)。如果在后面不斷發(fā)送的新幀的某處出現(xiàn)了主動(dòng)報(bào)錯(cuò)幀,該消極報(bào)錯(cuò)節(jié)點(diǎn)的消極報(bào)錯(cuò)幀將與主動(dòng)報(bào)錯(cuò)幀重疊,重復(fù)過程結(jié)束。但在正常應(yīng)用場(chǎng)合中,錯(cuò)誤是很少發(fā)生的,因此后續(xù)的傳送越正常,該消極報(bào)錯(cuò)節(jié)點(diǎn)等效離線狀態(tài)時(shí)間越長(zhǎng)。另一個(gè)可能是經(jīng)過一些傳送后不再有掛起待發(fā)的幀,總線空閑時(shí)間足夠長(zhǎng),正如協(xié)議設(shè)想的那樣,能使消極報(bào)錯(cuò)幀的分界符正常結(jié)束,消極報(bào)錯(cuò)幀分界符格式錯(cuò)的重復(fù)也就此結(jié)束。


2 可能的情景

除了上述消極報(bào)錯(cuò)接收節(jié)點(diǎn)的本地故障會(huì)引起等效離線的失效以外,其他情景下消極報(bào)錯(cuò)節(jié)點(diǎn)也有可能與簇內(nèi)其他節(jié)點(diǎn)丟失狀態(tài)同步。這些情景在三方面超出了Bosch CAN協(xié)議設(shè)計(jì)時(shí)的設(shè)想:第一,不僅消極報(bào)錯(cuò)接收節(jié)點(diǎn)會(huì)丟失同步,而且消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)也會(huì)丟失同步;第二,在有些場(chǎng)合,為了實(shí)現(xiàn)同步,所需的總線空閑時(shí)間要更多(至少為10位);第三,不僅消極報(bào)錯(cuò)節(jié)點(diǎn)的本地錯(cuò)會(huì)引起問題,在少數(shù)場(chǎng)合,主動(dòng)報(bào)錯(cuò)節(jié)點(diǎn)的本地故障也會(huì)引起問題。下面舉一些例子,實(shí)際上有問題的情景遠(yuǎn)不止這些。

在圖2中,消極報(bào)錯(cuò)接收節(jié)點(diǎn)由于電磁干擾而未能查出總線上的一個(gè)全局錯(cuò)(即漏判性質(zhì)的本地錯(cuò)),但是過后它發(fā)現(xiàn)了因其他節(jié)點(diǎn)所發(fā)送主動(dòng)報(bào)錯(cuò)幀引起的位填充錯(cuò),它發(fā)送的消極報(bào)錯(cuò)幀將遲于其他節(jié)點(diǎn)的主動(dòng)報(bào)錯(cuò)幀結(jié)束,因此丟失了同步。



在圖3中,消極報(bào)錯(cuò)接收節(jié)點(diǎn)在EOF域中發(fā)生誤判性質(zhì)的本地錯(cuò)。



它的消極報(bào)錯(cuò)幀不會(huì)被其他節(jié)點(diǎn)看到,因而它們以正常方式結(jié)束收發(fā)。消極報(bào)錯(cuò)節(jié)點(diǎn)的消極報(bào)錯(cuò)幀要遠(yuǎn)遲于其他節(jié)點(diǎn)的結(jié)束時(shí)刻結(jié)束,在此情況下,為使消極報(bào)錯(cuò)節(jié)點(diǎn)能同步,最少要有10位的總線空閑時(shí)間。當(dāng)總線有10位空閑時(shí)間時(shí),新幀的SOF會(huì)被消極報(bào)錯(cuò)節(jié)點(diǎn)看作超載幀的請(qǐng)求,盡管在超載幀結(jié)束后節(jié)點(diǎn)間實(shí)現(xiàn)了狀態(tài)同步,但卻因超載幀造成不必要的開銷。這里理想的總線空閑時(shí)間為13位。

在圖4中,由于電磁干擾消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)未能正確讀取ACK位,它發(fā)出的消極報(bào)錯(cuò)幀將被其他節(jié)點(diǎn)看作ACK分界符和EOF域,就像消極報(bào)錯(cuò)接收節(jié)點(diǎn)一樣,它失去了與其他節(jié)點(diǎn)的狀態(tài)同步。



在圖5中,消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)的本地錯(cuò)發(fā)生在CRC分界符處,它的消極報(bào)錯(cuò)標(biāo)志的第一位被其他節(jié)點(diǎn)的ACK位改寫,消極報(bào)錯(cuò)幀的剩余部分被其他節(jié)點(diǎn)看作 ACK分界符和EOF域,狀態(tài)不同步再次發(fā)生。



在圖6中,消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)的本地故障造成ACK分界符的誤讀,它開始一個(gè)消極報(bào)錯(cuò)幀,而其他節(jié)點(diǎn)把它誤讀為數(shù)據(jù)幀的EOF域,此時(shí)消極報(bào)錯(cuò)發(fā)送節(jié)點(diǎn)狀態(tài)與其他節(jié)點(diǎn)不同步。



當(dāng)一個(gè)規(guī)模較小的系統(tǒng)僅剩一個(gè)主動(dòng)報(bào)錯(cuò)節(jié)點(diǎn)時(shí),它的本地錯(cuò)將引起一個(gè)主動(dòng)報(bào)錯(cuò)幀。其主動(dòng)報(bào)錯(cuò)標(biāo)志會(huì)被其他消極報(bào)錯(cuò)節(jié)點(diǎn)視為位填充錯(cuò)或格式錯(cuò),從而開始它們的消極報(bào)錯(cuò)幀(見圖7)。結(jié)果是主動(dòng)報(bào)錯(cuò)幀較早結(jié)束,狀態(tài)的不同步再次出現(xiàn)。



3 后果

當(dāng)消極報(bào)錯(cuò)節(jié)點(diǎn)出現(xiàn)上述分析的情景時(shí),就沒有機(jī)會(huì)收發(fā)消息。直到總線空閑或者有一個(gè)主動(dòng)報(bào)錯(cuò)節(jié)點(diǎn)發(fā)主動(dòng)報(bào)錯(cuò)幀時(shí),才可能恢復(fù)正常。由于錯(cuò)誤的發(fā)生是隨機(jī)事件,在正常應(yīng)用環(huán)境中其間隔會(huì)相當(dāng)長(zhǎng)。消極報(bào)錯(cuò)節(jié)點(diǎn)逸出這種等效離線狀態(tài)的最壞情況是,它要等到總線成為空閑。此段時(shí)間為系統(tǒng)中所有消息的最壞響應(yīng)時(shí)間中最大的那個(gè)。以Tindell改造過的SAE典型試驗(yàn)數(shù)據(jù)集為例,最大最壞響應(yīng)時(shí)間在總線速率為125 kbps時(shí)為49.192ms,250kbps時(shí)為14.404ms。總線的利用率相應(yīng)為94.2%和47.1%。如果故障發(fā)生在收發(fā)制動(dòng)壓力的消息(其周期為5 ms)的節(jié)點(diǎn),則汽車可能在125 kbps時(shí)丟失10次數(shù)據(jù),250 kbps時(shí)丟失3次數(shù)據(jù)。在此期間作用在輪子上的制動(dòng)力不是所期望的,汽車將有難以預(yù)計(jì)的風(fēng)險(xiǎn)。以每小時(shí)100 km行駛的汽車將在1.4 m或O.4 m的距離上失去控制。

消極報(bào)錯(cuò)節(jié)點(diǎn)狀態(tài)同步的丟失可能比上述最壞情況早些結(jié)束,但這完全取決于錯(cuò)誤的統(tǒng)計(jì)學(xué)特性,超出了CAN調(diào)度分析的假設(shè),使CAN設(shè)計(jì)工具不精確。當(dāng)消極報(bào)錯(cuò)節(jié)點(diǎn)丟失同步后,即使有一些未確知的總線空閑時(shí)間,它們可能引入超載幀,這也是調(diào)度分析時(shí)未加考慮的。因此設(shè)計(jì)工具難以給出有足夠精度的真實(shí)結(jié)果。這會(huì)危害到所設(shè)計(jì)系統(tǒng)的安全性。另外,超載幀也降低了總線的吞吐率。

4 解決方案

經(jīng)仔細(xì)分析所有可能的全局錯(cuò)和本地錯(cuò)以后,各種情景和合適的消極報(bào)錯(cuò)幀分界符長(zhǎng)度間的關(guān)系就建立起來了。所謂“合適”是指消極報(bào)錯(cuò)節(jié)點(diǎn)能在出錯(cuò)后依然與其他節(jié)點(diǎn)的狀態(tài)保持同步。在有些場(chǎng)合中消極報(bào)錯(cuò)幀分界符應(yīng)為原來的8位長(zhǎng),在有些場(chǎng)合中它應(yīng)是2位長(zhǎng),在另外一些場(chǎng)合中它應(yīng)是1位長(zhǎng)。若本地錯(cuò)發(fā)生在數(shù)據(jù)幀或遠(yuǎn)程幀的EOF域,那么為了實(shí)現(xiàn)正確的同步,最好的選擇是在EOF的最后一位處對(duì)CAN協(xié)議狀態(tài)自動(dòng)機(jī)進(jìn)行復(fù)位。需要根據(jù)總線上的數(shù)據(jù)流以及錯(cuò)誤發(fā)生的位置加以判斷,該消極報(bào)錯(cuò)節(jié)點(diǎn)是發(fā)生了全局錯(cuò)還是本地錯(cuò),從而確定應(yīng)有的消極報(bào)錯(cuò)幀分界符長(zhǎng)度,或者啟動(dòng)協(xié)議狀態(tài)機(jī)的復(fù)位信號(hào),完整的解決方案已申請(qǐng)了專利。

將消極報(bào)錯(cuò)幀分界符長(zhǎng)度簡(jiǎn)單地改為另一個(gè)固定的長(zhǎng)度,可能簡(jiǎn)化實(shí)現(xiàn)的復(fù)雜性,在某些場(chǎng)合它可以避免在消極報(bào)錯(cuò)節(jié)點(diǎn)有本地錯(cuò)時(shí)產(chǎn)生長(zhǎng)時(shí)間的等效離線狀態(tài)的失效,但是這一解決方案無法應(yīng)對(duì)所有可能丟失同步的情景。同時(shí)它還殘留有其他的一些缺點(diǎn):例如增加了消極報(bào)錯(cuò)節(jié)點(diǎn)不能接收的機(jī)會(huì);因重復(fù)出錯(cuò)或超載幀造成調(diào)度結(jié)果確定性的下降;本節(jié)點(diǎn)或其他節(jié)點(diǎn)所發(fā)消息優(yōu)先級(jí)的逆轉(zhuǎn);因超載幀造成帶寬的無效占用。所以這種簡(jiǎn)化造成的性能下降是得不償失的。

按修改后實(shí)現(xiàn)的消極報(bào)錯(cuò)幀不能通過現(xiàn)有標(biāo)準(zhǔn)ISO16845第7.5.6款和8.5.13款的全部測(cè)試設(shè)置,因?yàn)橄麡O報(bào)錯(cuò)幀分界符的長(zhǎng)度不再是固定的8 位。CAN標(biāo)準(zhǔn)ISO11898及ISO16845應(yīng)依據(jù)應(yīng)用中對(duì)安全的要求作相應(yīng)的修改。


5 小結(jié)

在消極報(bào)錯(cuò)幀分界符內(nèi)格式錯(cuò)的后果長(zhǎng)期以來被忽視了。即使在一般應(yīng)用中等效離線狀態(tài)和優(yōu)先級(jí)逆轉(zhuǎn)也是不能容忍的,因?yàn)橐淮坞姶鸥蓴_造成的1位錯(cuò)所要承受的懲罰太大了。為了將CAN用于更為嚴(yán)格的安全攸關(guān)的應(yīng)用中,這個(gè)問題是非解決不可的。

參考文獻(xiàn)

   1. CAN in Automation celebrates first 15 years 2007
   2. GmbH Robert Bosch CAN Specification Version 2.0 1991
   3. ISO/TC 22/SC3 ISO16845-2004.Road VehiclesController Area Network (CAN)Conformance Test Plan
   4. Tindell K W.Burns A Guaranteed Message Latencies for Distributed Safety-Critical Hard Real-Time Control Networks.[Technical Report YCS229] 1994

作者:重慶工業(yè)自動(dòng)化儀表研究所 楊福宇
來源:單片機(jī)嵌入式系統(tǒng)應(yīng)用 2009 (1)
本文地址:http://m.4huy16.com/thread-10781-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • Microchip第22屆中國技術(shù)精英年會(huì)上海首站開幕
  • 常見深度學(xué)習(xí)模型介紹及應(yīng)用培訓(xùn)教程
  • 技術(shù)熱潮席卷三城,2025 Microchip中國技術(shù)精英年會(huì)圓滿收官!
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術(shù)精英年會(huì)深圳站回顧
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表