新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > CAN總線的仲裁

        CAN總線的仲裁

        作者: 時間:2011-07-12 來源:網絡 收藏
          采用的是一種叫做“載波監測,多主掌控/沖突避免”(CSMA/CA)的通信模式。這種總線方式允許總線上的任何一個設各都有機會取得總線的控制權并向外發送數據。如果在同一時刻有2個或2個以上的設各要求發送數據,就會產生總線沖突,能夠實時地檢測這些沖突并對其進行,從而使具有高優先級的數據不受任何損壞地傳輸。

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

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

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

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

          圖2 CAN總線節點訪問總線過程   

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

          圖3 CAN總線上節點的電平邏輯



        關鍵詞: CAN總線 仲裁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阿勒泰市| 屏山县| 黎城县| 玉环县| 衡水市| 南宁市| 桐庐县| 荣昌县| 墨江| 通辽市| 上饶市| 红安县| 旬邑县| 和林格尔县| 且末县| 报价| 乌苏市| 宽城| 雷波县| 淮滨县| 连城县| 扎兰屯市| 抚州市| 望城县| 偏关县| 三原县| 新化县| 涞源县| 越西县| 胶南市| 车险| 六安市| 博湖县| 淮南市| 武宣县| 加查县| 北辰区| 娄烦县| 顺昌县| 分宜县| 宜章县|