<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > CAN消極報錯發(fā)送節點(diǎn)變?yōu)殡x線(xiàn)狀態(tài)的故障

CAN消極報錯發(fā)送節點(diǎn)變?yōu)殡x線(xiàn)狀態(tài)的故障

作者: 時(shí)間:2009-06-30 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要 處于報錯在一次本地錯之后,由于標準考慮不周,會(huì )產(chǎn)生該與其他在幀啟停上的不同步,造成錯誤的不斷延續,在接收節點(diǎn)中產(chǎn)生等同離線(xiàn)。本文討論了在節點(diǎn)中產(chǎn)生真正離線(xiàn)的原因,并提出了解決方案。
關(guān)鍵詞 報錯幀分界符 優(yōu)先級逆轉 離線(xiàn)

本文引用地址:http://dyxdggzs.com/article/158024.htm


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


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


2 處于消極報錯狀態(tài)發(fā)送節點(diǎn)本地錯的后果
處于消極報錯狀態(tài)的發(fā)送節點(diǎn)在有本地錯時(shí),其行為傾向更差。標準ISO16845的8.6.9款對發(fā)送節點(diǎn)在消極報錯幀分界符內的格式錯規定了發(fā)送錯計數器TEC+8,第7.6.12款對處于消極報錯狀態(tài)的接收節點(diǎn)在消極報錯幀分界符內的格式錯規定了接收錯計數器REC+1。而且標準規定REC是有上限的,它不會(huì )導致節點(diǎn)成為離線(xiàn)狀態(tài);但TEC會(huì )一直加上去,當TEC=256時(shí)節點(diǎn)就成為離線(xiàn)狀態(tài),直到在總線(xiàn)上讀到128個(gè)連續的11個(gè)隱位,然后它


關(guān)鍵詞: 狀態(tài) 故障 變?yōu)?/a> 節點(diǎn) 消極 發(fā)送 CAN

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>