當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要 處于消極報錯狀態(tài)的CAN節(jié)點在一次本地錯之后,由于標(biāo)準(zhǔn)考慮不周,會產(chǎn)生該節(jié)點與其他節(jié)點在幀啟停上的不同步,造成錯誤的不斷延續(xù),在接收節(jié)點中產(chǎn)生等同離線狀態(tài)。本文討論了在發(fā)送節(jié)點中產(chǎn)生真正離線的原因,

摘要 處于消極報錯狀態(tài)的CAN節(jié)點在一次本地錯之后,由于標(biāo)準(zhǔn)考慮不周,會產(chǎn)生該節(jié)點與其他節(jié)點在幀啟停上的不同步,造成錯誤的不斷延續(xù),在接收節(jié)點中產(chǎn)生等同離線狀態(tài)。本文討論了在發(fā)送節(jié)點中產(chǎn)生真正離線的原因,并提出了解決方案。
關(guān)鍵詞 CAN報錯幀分界符 優(yōu)先級逆轉(zhuǎn) 離線


    CAN是應(yīng)用非常廣泛的現(xiàn)場總線。它已經(jīng)被大部分汽車廠商用作車內(nèi)控制器交換信息的通信干線,是分布式嵌入式系統(tǒng)的關(guān)鍵部分。但是它有一種以前未討論過的與安全有關(guān)的故障,當(dāng)某一處于消極報錯狀態(tài)的節(jié)點由于干擾而產(chǎn)生一個本地錯后,因標(biāo)準(zhǔn)考慮欠周,該節(jié)點會與其他節(jié)點幀啟停失去同步,在其他掛起待發(fā)的消息發(fā)送時不斷出錯,形成等同于離線的狀態(tài),無法提供服務(wù),從而危及安全。本文討論處于消極報錯狀態(tài)的發(fā)送節(jié)點,由于同樣的原因失去同步后的演變過程。這里不同的是,因為標(biāo)準(zhǔn)中的另一個規(guī)定,它可能經(jīng)歷一個真正的離線狀態(tài)。


1 CAN標(biāo)準(zhǔn)的安全漏洞
    在討論該問題時假定讀者對CAN的標(biāo)準(zhǔn)已有充分的了解,由于中文譯法的差別,本文采用的術(shù)語可能有所不同,相信不會影響讀者的理解。在Bosch CAN2.O規(guī)范3.1.3款中說:“為了使報錯幀正確結(jié)束,消極報錯節(jié)點可能需要處于空閑狀態(tài)至少有3bit時間(如果消極報錯接收節(jié)點發(fā)生本地錯),因此總線不應(yīng)滿負(fù)荷運行。”——這是引起應(yīng)用出故障的原因。因為節(jié)點問并無時間同步,即便總線有空閑時間,也不能保證像上述要求那樣的分布。掛起待發(fā)的消息將在服務(wù)間隔(intermission,圖中縮寫為I.M.)后立即發(fā)送。這在規(guī)范中也有規(guī)定:“在另一條消息發(fā)送過程中掛起待發(fā)的消息在服務(wù)間隔后的第一位啟動(發(fā)送)”。ISO11898標(biāo)準(zhǔn)沒有提到3位空閑問題,但是CAN一致性測試標(biāo)準(zhǔn)ISO16845的具體條文會有這種要求(雖然該空閑要求還是不充分的)。CAN規(guī)定處于消極報錯狀態(tài)的節(jié)點在發(fā)現(xiàn)錯之后發(fā)出6位隱位的消極報錯標(biāo)志(Passive error flag),如讀回6個連續(xù)的相同位時,就確認(rèn)報錯標(biāo)志發(fā)完,如沒發(fā)現(xiàn)6個連續(xù)的相同位,就繼續(xù)發(fā)隱位,直到得到確認(rèn),然后開始消極報錯幀分界符的發(fā)送。分界符從發(fā)出隱位讀回也是隱位時開始計算,總共為8個連續(xù)的隱位。在CAN一致性測試標(biāo)準(zhǔn)ISO16845的7.5.6款與8.5.13款中,規(guī)定了接收節(jié)點與發(fā)送節(jié)點在發(fā)消極報錯幀分界符時的格式錯檢查辦法。它規(guī)定,在消極報錯幀分界符開始后的8位中不得有顯位;如有顯位,就視為出錯,開始新的報錯幀。
    如果一個處于消極報錯狀態(tài)的節(jié)點發(fā)現(xiàn)一個本地錯(即有一種誤判或漏判),由于其他節(jié)點不發(fā)主動報錯幀,那么它發(fā)的消極報錯幀標(biāo)志就不會及時得到確認(rèn),往往要到圖1所示的數(shù)據(jù)幀或遠(yuǎn)程幀的EOF第5位才會得到確認(rèn);而它的消極報錯幀分界符將延續(xù)到幀的服務(wù)間隔之后,它就和其他節(jié)點的幀啟停失去了同步。其他節(jié)點開始新幀的SOF將被它視為格式錯,而開始發(fā)新的消極報錯幀。當(dāng)其他節(jié)點有掛起待發(fā)的幀不斷發(fā)送時,這個處于消極報錯狀態(tài)的節(jié)點一直處于不斷出錯的狀態(tài),不能發(fā)送也不能接收,即等同于離線狀態(tài)。
    這種源自標(biāo)準(zhǔn)考慮不周的故障會使CAN的優(yōu)先級逆轉(zhuǎn)(在處于消極報錯狀態(tài)的節(jié)點中的高優(yōu)先級消息無法發(fā)送);同時,基于優(yōu)先級進行的調(diào)度分析失靈。以此為算法設(shè)計得到的消息最壞送達時間將是不可靠的,車的安全會受影響。在參考文獻[1]中,討論了修改消極報錯幀分界符長度來解決該故障的方法。

                             
2 處于消極報錯狀態(tài)發(fā)送節(jié)點本地錯的后果
    處于消極報錯狀態(tài)的發(fā)送節(jié)點在有本地錯時,其行為傾向更差。標(biāo)準(zhǔn)ISO16845的8.6.9款對發(fā)送節(jié)點在消極報錯幀分界符內(nèi)的格式錯規(guī)定了發(fā)送錯計數(shù)器TEC+8,第7.6.12款對處于消極報錯狀態(tài)的接收節(jié)點在消極報錯幀分界符內(nèi)的格式錯規(guī)定了接收錯計數(shù)器REC+1。而且標(biāo)準(zhǔn)規(guī)定REC是有上限的,它不會導(dǎo)致節(jié)點成為離線狀態(tài);但TEC會一直加上去,當(dāng)TEC=256時節(jié)點就成為離線狀態(tài),直到在總線上讀到128個連續(xù)的11個隱位,然后它變?yōu)橹鲃訄箦e狀態(tài)。因此弄清楚節(jié)點是接收還是發(fā)送的地位非常重要。
    Bosch CAN 2.O規(guī)范3.2款對節(jié)點的定義是這樣的:“開始一個消息的單元被稱為該消息的發(fā)送節(jié)點。在總線空閑之前,或該單元在仲裁中失敗之前,該單元一直是發(fā)送節(jié)點。”“一個節(jié)點被稱為一條消息的接收節(jié)點的條件是:它不是該消息的發(fā)送節(jié)點且總線不空閑”。國際標(biāo)準(zhǔn)ISO11898-1:2003第4.18款有類似的定義:“發(fā)送節(jié)點是指開始一個數(shù)據(jù)幀或遠(yuǎn)程幀的節(jié)點,在總線再次空閑之前或在仲裁失敗之前,它仍是發(fā)送節(jié)點”。第4.16款:“不是發(fā)送節(jié)點且總線不空閑時節(jié)點是接收節(jié)點”。標(biāo)準(zhǔn)考慮了如下幾種情況:
    ①一個節(jié)點開始發(fā)送ID,仲裁失敗,在此段時間里它是發(fā)送節(jié)點,而后它是接收節(jié)點。
    ②一個節(jié)點開始發(fā)送ID,仲裁勝出,發(fā)送完數(shù)據(jù)幀或遠(yuǎn)程幀,在整個發(fā)送時段及其后的服務(wù)間隔內(nèi),它是發(fā)送節(jié)點。
    ③一個節(jié)點開始發(fā)送ID,其中發(fā)生錯誤,或者在仲裁勝出后繼續(xù)發(fā)送中出錯,那么從開始到報錯幀結(jié)束及其后的服務(wù)間隔內(nèi),它是發(fā)送節(jié)點。因為總線空閑最早在服務(wù)間隔之后。
    ④一個節(jié)點開始發(fā)送ID,仲裁勝出,發(fā)完數(shù)據(jù)幀或遠(yuǎn)程幀,但由于某種原因(EOF的最后一位為顯位,或其后的服務(wù)間隔內(nèi)第一、二位為顯位),接了一個超載幀。那么在整個上述時段及其后的服務(wù)間隔內(nèi),它是發(fā)送節(jié)點。
    CAN協(xié)議沒有考慮重復(fù)出錯的情況:第一次是處于消極報錯狀態(tài)的節(jié)點發(fā)現(xiàn)一個本地錯,其后是因為消極報錯幀結(jié)束時與其他節(jié)點幀啟停失去同步而造成新錯。在圖2中,處于消極報錯狀態(tài)的發(fā)送節(jié)點在ACK位發(fā)現(xiàn)一個本地錯,它發(fā)的消極報錯幀被其他節(jié)點視為EOF和服務(wù)間隔。其他節(jié)點發(fā)的新幀SOF被它視為格式錯。該處于消極報錯狀態(tài)的發(fā)送節(jié)點無法見到它預(yù)期的服務(wù)間隔的結(jié)束,它就以發(fā)送節(jié)點的地位一直錯下去。圖3中,處于消極報錯狀態(tài)的發(fā)送節(jié)點在EOF部分發(fā)現(xiàn)一個本地錯,其后續(xù)演化與圖2相似。

                             

    只要有掛起待發(fā)的消息,此錯就重復(fù)發(fā)生。由于發(fā)送節(jié)點的地位未變,它的TEC就一直加上去,直到TEC≥256,節(jié)點成為真正的離線狀態(tài)。這不是本文第1節(jié)所說的等同離線狀態(tài)。在離線狀態(tài)下,如果能從總線上讀到128次連續(xù)的11位隱位,它就可以恢復(fù)為主動報錯狀態(tài)??偩€上不足11位的隱位將不被計入。因此,這種離線狀態(tài)一般要長于參考文獻[1]所說的等同離線狀態(tài)。為了作比較,假定幀長均為含2字節(jié)數(shù)據(jù)的幀(66位),在掛起的消息傳送16次后,該處于消極報錯狀態(tài)的發(fā)送節(jié)點成為離線,即16×(66+3)=1 104位后離線;又假設(shè)最壞情況下有分散的10位空閑,那么節(jié)點處于離線的時間為128×(66+3+10)=10112位。該處于消極報錯狀態(tài)的發(fā)送節(jié)點發(fā)現(xiàn)一個本地錯后,將有11 216位的時間不能正常收發(fā)。同樣情況下,一個處于消極報錯狀態(tài)的接收節(jié)點發(fā)現(xiàn)一個本地錯后在第一次遇到足夠空閑時間時,其等同離線狀態(tài)就會結(jié)束。
    這種處于消極報錯狀態(tài)的發(fā)送節(jié)點變?yōu)檎嬲x線的過程是無法從高層加以干預(yù)的,因為發(fā)送節(jié)點/接收節(jié)點的地位不是一個軟件可控制的參數(shù)。


3 為什么需要消極報錯狀態(tài)
    理論上,解決這一故障有三種可能的方案:第一種方案是,將消極報錯幀分界符長度按一定的規(guī)則改變,使處于消極報錯狀態(tài)的節(jié)點發(fā)現(xiàn)一個錯后總能與其他節(jié)點幀啟停保持同步。在本文討論的處于消極報錯狀態(tài)的發(fā)送節(jié)點變?yōu)殡x線狀態(tài)的例子中,僅僅改變判斷發(fā)送節(jié)點/接收節(jié)點的規(guī)則也是不夠的,因為它僅能把可能的真正離線變?yōu)榈韧x線。所以隨情況改變,消極報錯幀分界符長度仍然是需要的。這一方案對應(yīng)用的改動最小,僅CAN通信控制器芯片要修改。第二種方案是采用某種形式的CAN時間觸發(fā)CAN協(xié)議,預(yù)留出一些總線空閑時間,使處于消極報錯狀態(tài)的節(jié)點發(fā)現(xiàn)一個本地錯后仍能與其他節(jié)點幀啟停同步;但是迄今為止討論的CAN時間觸發(fā)協(xié)議都缺少足夠的糾錯能力,它們都禁止CAN的出錯自動重發(fā)機制,在出錯后會導(dǎo)致數(shù)據(jù)的丟失。第三種可能的解決方案是,放棄消極報錯狀態(tài),沒了消極報錯狀態(tài)就沒了消極報錯幀,就不會有不同步的情況出現(xiàn),也就不會有離線和等同離線的情況出現(xiàn)。
    消極報錯狀態(tài)使通信控制器在正常工作與停工之間有一個中間狀態(tài),在此種狀態(tài)下,它仍可發(fā)送和接收。唯一的差別是它的報錯能力被限制到很?。褐挥邪l(fā)送節(jié)點在ACK以前的本地錯會被其他節(jié)點知道。在其他情況下,消極報錯幀不會影響其他節(jié)點的收發(fā),不管這種錯是本地錯還是全局錯。這樣,如果這個處于消極報錯狀態(tài)的節(jié)點不正常,那么它對系統(tǒng)性能下降的影響就很小;如果它工作正常,則系統(tǒng)的性能沒有損失。
    對汽車類的應(yīng)用來說,環(huán)境很惡劣,出錯是不可避免的,然而在現(xiàn)場進行排障或修理是有難度或不可能的(例如上天或人海的應(yīng)用)。在那里,能“跛”著回家是最好的策略。這種策略不僅適用于機械部分,也適用于工作失常的電子通信系統(tǒng)。消極報錯狀態(tài)符合這種策略。當(dāng)車子在這種“跛”著回家方式下工作時,某些暫時性的故障有可能消失。例如,環(huán)境溫度、電磁場、振動都可能因工況的不同或路段的不同而改變。隨著通信恢復(fù)正常,節(jié)點的狀態(tài)也可由消極報錯狀態(tài)回到主動報錯狀態(tài)。如果節(jié)點只有主動報錯和離線二種狀態(tài),那么離線時節(jié)點就要不斷測試通信是否恢復(fù),或者等一段時間測試一下。顯然,這些方法效率要低,不像消極報錯狀態(tài)時仍能提供服務(wù),意味著提供服務(wù)的時間的減少。延長處于主動報錯狀態(tài)的時間,而去掉消極報錯狀態(tài),會使有本地故障的節(jié)點對系統(tǒng)的干擾時間也延長。因此廢棄消極報錯狀態(tài)不是一個好的選擇。從Bosch CAN2.0規(guī)范里也可以體會到這一點:它規(guī)定一個處于消極報錯狀態(tài)的節(jié)點一定不得發(fā)主動報錯標(biāo)志。消極報錯狀態(tài)的想法也為FlexRay所采用,在它的協(xié)議運行控制部分規(guī)定有三種狀態(tài),分別是POC:NormalActive、POC:Normeal Passive和POC:Halt。


4 小 結(jié)
    上述分析表明:處于消極報錯狀態(tài)的CAN發(fā)送節(jié)點在某些條件下會因一次誤判而進入離線狀態(tài)。其離線的時間一般比處于消極報錯狀態(tài)的接收節(jié)點因一次誤判而進入的等同離線狀態(tài)要長。為了避免這種類型的失效,最好的解決方案是采用可變長消極報錯幀分界符,使消極報錯狀態(tài)的節(jié)點總能與系統(tǒng)內(nèi)的其他節(jié)點保持幀啟停的同步。在同步的情況下,假設(shè)現(xiàn)有CAN調(diào)度分析的理論沒有大的缺失,例如沒有此類故障,沒有引起超載幀的條件,可以提供較為可信的結(jié)果。

本站聲明: 本文章由作者或相關(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)意到認(rèn)證的所有需求的工具,可用于創(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)閉