當前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]在CAN消極報錯幀分界符中發(fā)生的格式錯會引起該消極報錯節(jié)點處于等效離線狀態(tài),以及由該節(jié)點發(fā)送的消息優(yōu)先級逆轉(zhuǎn)。本文討論了發(fā)生此問題的情景、后果以及解決方案。

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

1 出錯的情況
    在CAN協(xié)議2.OA版3.1.3款中提到:為了使報錯幀正確結(jié)束,消極報錯節(jié)點可能需要處于空閑狀態(tài)至少3位的時間(如果消極報錯接收節(jié)點發(fā)生本地錯),因此總線不應(yīng)滿負荷運行。這是引發(fā)應(yīng)用故障的原因。節(jié)點間并無時間同步,因而即便總線有空閑時間,也不能保證像上述要求那樣的分布。在總線的利用率較低時,掛起待發(fā)的消息將在服務(wù)間隔(intermission,縮寫為I.M.)后立即發(fā)送。這在標準中也有規(guī)定:在另一條消息發(fā)送過程中掛起待發(fā)的消息在服務(wù)間隔后的第一位啟動(發(fā)送)。
    現(xiàn)在考慮一種情況:由于電磁干擾,某消極報錯節(jié)點發(fā)生一個本地錯(其他節(jié)點未發(fā)現(xiàn)有錯),它就發(fā)一個消極報錯標志(P.E.Flag)。因為是隱位,其他節(jié)點對這個消極報錯標志也無響應(yīng)。這一消極報錯幀的報錯標志在數(shù)據(jù)幀ACK分界符后的EOF部分得到確認(如圖1所示),但是它的消極報錯幀分界符(P.E.Del)延續(xù)到EOF域最后一位以及服務(wù)間隔之后。如果此時有3位的總線空閑時間,那么新幀的開始位(SOF)將是該消極報錯節(jié)點服務(wù)間隔的第一位。按ISO16845標準,此顯位被解讀為對超載幀的請求,由消極報錯節(jié)點發(fā)送的超載幀將引起其他節(jié)點的位填充錯,使它們發(fā)送主動報錯幀。主動報錯幀與超載幀將在總線上疊合,雖然比特流的解釋對該消極報錯節(jié)點和其他節(jié)點而言是不同的,但兩種幀分界符的結(jié)束時刻是一樣的。所有節(jié)點都會在此刻復(fù)位CAN協(xié)議狀態(tài)機的狀態(tài),使它回到開始服務(wù)間隔的狀態(tài)。這解釋了。BoschCAN協(xié)議的說明。但如果對3位總線空閑時間沒有保證,那又該如何呢?
    對報錯幀分界符格式錯的檢查在國際標準化組織(ISO)的標準ISO16845中有明確的規(guī)定:在消極報錯幀分界符中的任何顯位是一種格式錯。第7.5.6款和8.5.13款是對應(yīng)消極報錯接收節(jié)點和消極報錯發(fā)送節(jié)點消極報錯幀分界符格式錯的測試方法,第7.6.12款和8.6.9款是消極報錯節(jié)點消極報錯幀分界符查到格式錯時,接收錯計數(shù)器與發(fā)送錯計數(shù)器增加機制的檢查方法。因此,消極報錯節(jié)點與其他節(jié)點不同步時,另一個節(jié)點開始發(fā)送新消息,其SOF將被該消極報錯節(jié)點視為消極報錯幀分界符內(nèi)的格式錯。它將在其他節(jié)點新幀傳送過程中開始一個新的消極報錯幀,新的消極報錯標志將在其他節(jié)點新幀的EOF部分得到確認,新消極報錯幀分界符再一次延續(xù)到超過其他節(jié)點服務(wù)間隔之后。只要掛起的消息未發(fā)完,這一過程將不斷重復(fù)。在此時間段里,消極報錯節(jié)點不能接收或發(fā)送任何消息,因為它總在不斷發(fā)送消極報錯幀。這延遲了該節(jié)點應(yīng)發(fā)送的消息,而不管消息的優(yōu)先級有多高,也就引起了優(yōu)先級逆轉(zhuǎn)。由于電磁干擾的隨機性,無法對系統(tǒng)進行調(diào)度分析。這個消極報錯節(jié)點有2種可能的方式退出循環(huán)。如果在后面不斷發(fā)送的新幀的某處出現(xiàn)了主動報錯幀,該消極報錯節(jié)點的消極報錯幀將與主動報錯幀重疊,重復(fù)過程結(jié)束。但在正常應(yīng)用場合中,錯誤是很少發(fā)生的,因此后續(xù)的傳送越正常,該消極報錯節(jié)點等效離線狀態(tài)時間越長。另一個可能是經(jīng)過一些傳送后不再有掛起待發(fā)的幀,總線空閑時間足夠長,正如協(xié)議設(shè)想的那樣,能使消極報錯幀的分界符正常結(jié)束,消極報錯幀分界符格式錯的重復(fù)也就此結(jié)束。


2 可能的情景
   
除了上述消極報錯接收節(jié)點的本地故障會引起等效離線的失效以外,其他情景下消極報錯節(jié)點也有可能與簇內(nèi)其他節(jié)點丟失狀態(tài)同步。這些情景在三方面超出了Bosch CAN協(xié)議設(shè)計時的設(shè)想:第一,不僅消極報錯接收節(jié)點會丟失同步,而且消極報錯發(fā)送節(jié)點也會丟失同步;第二,在有些場合,為了實現(xiàn)同步,所需的總線空閑時間要更多(至少為10位);第三,不僅消極報錯節(jié)點的本地錯會引起問題,在少數(shù)場合,主動報錯節(jié)點的本地故障也會引起問題。下面舉一些例子,實際上有問題的情景遠不止這些。
    在圖2中,消極報錯接收節(jié)點由于電磁干擾而未能查出總線上的一個全局錯(即漏判性質(zhì)的本地錯),但是過后它發(fā)現(xiàn)了因其他節(jié)點所發(fā)送主動報錯幀引起的位填充錯,它發(fā)送的消極報錯幀將遲于其他節(jié)點的主動報錯幀結(jié)束,因此丟失了同步。

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

    它的消極報錯幀不會被其他節(jié)點看到,因而它們以正常方式結(jié)束收發(fā)。消極報錯節(jié)點的消極報錯幀要遠遲于其他節(jié)點的結(jié)束時刻結(jié)束,在此情況下,為使消極報錯節(jié)點能同步,最少要有10位的總線空閑時間。當總線有10位空閑時間時,新幀的SOF會被消極報錯節(jié)點看作超載幀的請求,盡管在超載幀結(jié)束后節(jié)點間實現(xiàn)了狀態(tài)同步,但卻因超載幀造成不必要的開銷。這里理想的總線空閑時間為13位。
    在圖4中,由于電磁干擾消極報錯發(fā)送節(jié)點未能正確讀取ACK位,它發(fā)出的消極報錯幀將被其他節(jié)點看作ACK分界符和EOF域,就像消極報錯接收節(jié)點一樣,它失去了與其他節(jié)點的狀態(tài)同步。

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

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

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

3 后 果
    當消極報錯節(jié)點出現(xiàn)上述分析的情景時,就沒有機會收發(fā)消息。直到總線空閑或者有一個主動報錯節(jié)點發(fā)主動報錯幀時,才可能恢復(fù)正常。由于錯誤的發(fā)生是隨機事件,在正常應(yīng)用環(huán)境中其間隔會相當長。消極報錯節(jié)點逸出這種等效離線狀態(tài)的最壞情況是,它要等到總線成為空閑。此段時間為系統(tǒng)中所有消息的最壞響應(yīng)時間中最大的那個。以Tindell改造過的SAE典型試驗數(shù)據(jù)集為例,最大最壞響應(yīng)時間在總線速率為125 kbps時為49.192ms,250kbps時為14.404ms。總線的利用率相應(yīng)為94.2%和47.1%。如果故障發(fā)生在收發(fā)制動壓力的消息(其周期為5 ms)的節(jié)點,則汽車可能在125 kbps時丟失10次數(shù)據(jù),250 kbps時丟失3次數(shù)據(jù)。在此期間作用在輪子上的制動力不是所期望的,汽車將有難以預(yù)計的風(fēng)險。以每小時100 km行駛的汽車將在1.4 m或O.4 m的距離上失去控制。
    消極報錯節(jié)點狀態(tài)同步的丟失可能比上述最壞情況早些結(jié)束,但這完全取決于錯誤的統(tǒng)計學(xué)特性,超出了CAN調(diào)度分析的假設(shè),使CAN設(shè)計工具不精確。當消極報錯節(jié)點丟失同步后,即使有一些未確知的總線空閑時間,它們可能引入超載幀,這也是調(diào)度分析時未加考慮的。因此設(shè)計工具難以給出有足夠精度的真實結(jié)果。這會危害到所設(shè)計系統(tǒng)的安全性。另外,超載幀也降低了總線的吞吐率。

4 解決方案
    經(jīng)仔細分析所有可能的全局錯和本地錯以后,各種情景和合適的消極報錯幀分界符長度間的關(guān)系就建立起來了。所謂“合適”是指消極報錯節(jié)點能在出錯后依然與其他節(jié)點的狀態(tài)保持同步。在有些場合中消極報錯幀分界符應(yīng)為原來的8位長,在有些場合中它應(yīng)是2位長,在另外一些場合中它應(yīng)是1位長。若本地錯發(fā)生在數(shù)據(jù)幀或遠程幀的EOF域,那么為了實現(xiàn)正確的同步,最好的選擇是在EOF的最后一位處對CAN協(xié)議狀態(tài)自動機進行復(fù)位。需要根據(jù)總線上的數(shù)據(jù)流以及錯誤發(fā)生的位置加以判斷,該消極報錯節(jié)點是發(fā)生了全局錯還是本地錯,從而確定應(yīng)有的消極報錯幀分界符長度,或者啟動協(xié)議狀態(tài)機的復(fù)位信號,完整的解決方案已申請了專利。
    將消極報錯幀分界符長度簡單地改為另一個固定的長度,可能簡化實現(xiàn)的復(fù)雜性,在某些場合它可以避免在消極報錯節(jié)點有本地錯時產(chǎn)生長時間的等效離線狀態(tài)的失效,但是這一解決方案無法應(yīng)對所有可能丟失同步的情景。同時它還殘留有其他的一些缺點:例如增加了消極報錯節(jié)點不能接收的機會;因重復(fù)出錯或超載幀造成調(diào)度結(jié)果確定性的下降;本節(jié)點或其他節(jié)點所發(fā)消息優(yōu)先級的逆轉(zhuǎn);因超載幀造成帶寬的無效占用。所以這種簡化造成的性能下降是得不償失的。
    按修改后實現(xiàn)的消極報錯幀不能通過現(xiàn)有標準ISO16845第7.5.6款和8.5.13款的全部測試設(shè)置,因為消極報錯幀分界符的長度不再是固定的8位。CAN標準ISO11898及ISO16845應(yīng)依據(jù)應(yīng)用中對安全的要求作相應(yīng)的修改。


5 小 結(jié)
    在消極報錯幀分界符內(nèi)格式錯的后果長期以來被忽視了。即使在一般應(yīng)用中等效離線狀態(tài)和優(yōu)先級逆轉(zhuǎn)也是不能容忍的,因為一次電磁干擾造成的1位錯所要承受的懲罰太大了。為了將CAN用于更為嚴格的安全攸關(guān)的應(yīng)用中,這個問題是非解決不可的。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉