《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > CAN總線的仲裁

CAN總線的仲裁

2015-05-08
關(guān)鍵詞: CAN總線

       CAN總線采用的是一種叫做“載波監(jiān)測,多主掌控/沖突避免”(CSMA/CA)的通信模式。這種總線仲裁方式允許總線上的任何一個設(shè)各都有機(jī)會取得總線的控制權(quán)并向外發(fā)送數(shù)據(jù)。如果在同一時刻有2個或2個以上的設(shè)各要求發(fā)送數(shù)據(jù),就會產(chǎn)生總線沖突,CAN總線能夠?qū)崟r地檢測這些沖突并對其進(jìn)行仲裁,從而使具有高優(yōu)先級的數(shù)據(jù)不受任何損壞地傳輸。

       當(dāng)總線處于空閑狀態(tài)時呈隱性電平,此時任何節(jié)點(diǎn)都可以向總線發(fā)送顯性電平作為幀的開始。如果2個或 2個以上同時發(fā)送就會產(chǎn)生競爭。CAN總線解決競爭的方法同以太網(wǎng)的CSMA/CD(Carrier Sense Multiple Access with Collislon Detection) 方法基本相似,如圖1所示。此外,CAN總線做了改進(jìn)并采用CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)訪問總線,按位對標(biāo)識符進(jìn)行仲裁。各節(jié)點(diǎn)在向總線發(fā)送電平的同時,也對總線上的電平讀取,并與自身發(fā)送的電平進(jìn)行比較,如果電平相同 繼續(xù)發(fā)送下一位,不同則停止發(fā)送退出總線競爭。剩余的節(jié)點(diǎn)繼續(xù)上述過程,直到總線上只剩下1個節(jié)點(diǎn)發(fā)送的電平,總線競爭結(jié)束,優(yōu)先級高的節(jié)點(diǎn)獲得總線的控 制權(quán)。

200911214411778.jpg

圖1 Ethernet采用的CSMA/ CD總線訪問過程

  CAN總線以報文為單位進(jìn)行數(shù)據(jù)傳輸,報文的優(yōu)先級結(jié)合在44位標(biāo)識符中(擴(kuò)展幀的標(biāo)識符29 位),具有最小二進(jìn)制數(shù)的標(biāo)識符的節(jié)點(diǎn)具有最高的優(yōu)先級。這種優(yōu)先級一旦在系統(tǒng)設(shè)計時確定就不能隨意地更改,總線讀取產(chǎn)生的沖突主要靠這些位仲裁解決。之 所以CAN總線不采用以太網(wǎng)使用的延時避免沖突,主要是為了保證具有更高優(yōu)先級的節(jié)點(diǎn)能夠完整地實時傳輸,而且CSMA/CA可以有效地避免沖突。

  如圖2所示,節(jié)點(diǎn)A和節(jié)點(diǎn)B的標(biāo)識符的第lO、9、8位電平相同,因此兩個節(jié)點(diǎn)偵聽到的信息和它們 發(fā)出的信息相同。第7位節(jié)點(diǎn)B發(fā)出一個“1”,但從節(jié)點(diǎn)上接收到的消息卻是“0”,說明有更高優(yōu)先級的節(jié)點(diǎn)占用總線發(fā)送消息。節(jié)點(diǎn)B會退出發(fā)送處于單純監(jiān) 聽方式而不發(fā)送數(shù)據(jù);節(jié)點(diǎn)A成功發(fā)送仲裁位從而獲得總線的控制權(quán),繼而發(fā)送全部消息??偩€中的信號持續(xù)跟蹤最后獲得總線控制權(quán)發(fā)出的報文,本例中節(jié)點(diǎn)A的 報文將被跟蹤。這種非破壞性位仲裁方法的優(yōu)點(diǎn)在于,在網(wǎng)絡(luò)最終確定哪個節(jié)點(diǎn)被傳送前,報文的起始部分已經(jīng)在網(wǎng)絡(luò)中傳輸了,因此具有高優(yōu)先級的節(jié)點(diǎn)的數(shù)據(jù)傳 輸沒有任何延時。在獲得總線控制權(quán)的節(jié)點(diǎn)發(fā)送數(shù)據(jù)過程中,其他節(jié)點(diǎn)成為報文的接收節(jié)點(diǎn),并且不會在總線再次空閑之前發(fā)送報文。

200911214411815.jpg

圖2  CAN總線節(jié)點(diǎn)訪問總線過程

  圖3為CAN總線上節(jié)點(diǎn)的電平邏輯,總線上的節(jié)點(diǎn)電平對于總線電平而言是相與的關(guān)系,只有當(dāng)3個節(jié) 點(diǎn)的電壓都等于1(隱性電平),總線才會保持在ycc(隱性電平)狀態(tài)。只要有1個節(jié)點(diǎn)切換到0狀態(tài)(顯性電平),總線就會被強(qiáng)制在顯性狀態(tài)(0)。這種 避免總線沖突的仲裁方式能夠使具有高優(yōu)先級的消息沒有延時地占用總線傳輸。

200911214411729.jpg

圖3 CAN總線上節(jié)點(diǎn)的電平邏輯

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。