當前位置:編程學習大全網 - 編程語言 - CAN總線協議的概述

CAN總線協議的概述

控制器局域網CAN( Controller Area Network)屬於現場總線的範疇,是壹種有效支持分布式控制系統的串行通信網絡。是由德國博世公司在20世紀80年代專門為汽車行業開發的壹種串行通信總線。由於其高性能、高可靠性以及獨特的設計而越來越受到人們的重視,被廣泛應用於諸多領域。而且能夠檢測出產生的任何錯誤。當信號傳輸距離達到10km時,CAN仍可提供高達50kbit/s的數據傳輸速率。由於CAN總線具有很高的實時性能和應用範圍,從位速率最高可達1Mbps的高速網絡到低成本多線路的50Kbps網絡都可以任意搭配。因此,CAN己經在汽車業、航空業、工業控制、安全防護等領域中得到了廣泛應用。

隨著CAN總線在各個行業和領域的廣泛應用,對其的通信格式標準化也提出了更嚴格的要求。1991年CAN總線技術規範(Version2.0)制定並發布。該技術規範***包括A和B兩個部分。其中2.0A給出了CAN報文標準格式,而2.0B給出了標準的和擴展的兩種格式。美國的汽車工程學會SAE在2000年提出了J1939協議,此後該協議成為了貨車和客車中控制器局域網的通用標準。CAN總線技術也在不斷發展。傳統的CAN是基於事件觸發的,信息傳輸時間的不確定性和優先級反轉是它固有的缺陷。當總線上傳輸消息密度較小時,這些缺陷對系統的實時性影響較小;但隨著在總線上傳輸消息密度的增加,系統實時性能會急劇下降。為了滿足汽車控制對實時性和傳輸消息密度不斷增長的需要,改善CAN總線的實時性能非常必要。於是,傳統CAN與時間觸發機制相結合產生了TTCAN(Time-Triggered CAN),ISO11898-4己包含了TTCAN。 TTCAN總線和傳統CAN總線系統的區別是:總線上不同的消息定義了不同的時間槽(Timer Slot)。 CAN總線的工作原理

CAN總線使用串行數據傳輸方式,可以1Mb/s的速率在40m的雙絞線上運行,也可以使用光纜連接,而且在這種總線上總線協議支持多主控制器。 CAN與I2C總線的許多細節很類似,但也有壹些明顯的區別。當CAN總線上的壹個節點(站)發送數據時,它以報文形式廣播給網絡中所有節點。對每個節點來說,無論數據是否是發給自己的,都對其進行接收。每組報文開頭的11位字符為標識符,定義了報文的優先級,這種報文格式稱為面向內容的編址方案。在同壹系統中標識符是唯壹的,不可能有兩個站發送具有相同標識符的報文。當幾個站同時競爭總線讀取時,這種配置十分重要。  當壹個站要向其它站發送數據時,該站的CPU將要發送的數據和自己的標識符傳送給本站的CAN芯片,並處於準備狀態;當它收到總線分配時,轉為發送報文狀態。CAN芯片將數據根據協議組織成壹定的報文格式發出,這時網上的其它站處於接收狀態。每個處於接收狀態的站對接收到的報文進行檢測,判斷這些報文是否是發給自己的,以確定是否接收它。由於CAN總線是壹種面向內容的編址方案,因此很容易建立高水準的控制系統並靈活地進行配置。我們可以很容易地在CAN總線中加進壹些新站而無需在硬件或軟件上進行修改。當所提供的新站是純數據接收設備時,數據傳輸協議不要求獨立的部分有物理目的地址。它允許分布過程同步化,即總線上控制器需要測量數據時,可由網上獲得,而無須每個控制器都有自己獨立的傳感器。

CAN總線特征

(1)報文(Message)總線上的數據以不同報文格式發送,但長度受到限制。當總線空閑時,任何壹個網絡上的節點都可以發送報文。

(2)信息路由(Information Routing)在CAN中,節點不使用任何關於系統配置的報文,比如站地址,由接收節點根據報文本身特征判斷是否接收這幀信息。因此系統擴展時,不用對應用層以及任何節點的軟件和硬件作改變,可以直接在CAN中增加節點。

(3)標識符(Identifier) 要傳送的報文有特征標識符(是數據幀和遠程幀的壹個域),它給出的不是目標節點地址,而是這個報文本身的特征。信息以廣播方式在網絡上發送,所有節點都可以接收到。節點通過標識符判定是否接收這幀信息。

(4)數據壹致性應確保報文在CAN裏同時被所有節點接收或同時不接收,這是配合錯誤處理和再同步功能實現的。

(5)位傳輸速率不同的CAN系統速度不同,但在壹個給定的系統裏,位傳輸速率是唯壹的,並且是固定的。

(6)優先權 由發送數據的報文中的標識符決定報文占用總線的優先權。標識符越小,優先權越高。

(7)遠程數據請求(Remote Data Request) 通過發送遠程幀,需要數據的節點請求另壹節點發送相應的數據。回應節點傳送的數據幀與請求數據的遠程幀由相同的標識符命名。

(8)仲裁(Arbitration) 只要總線空閑,任何節點都可以向總線發送報文。如果有兩個或兩個以上的節點同時發送報文,就會引起總線訪問碰撞。通過使用標識符的逐位仲裁可以解決這個碰撞。仲裁的機制確保了報文和時間均不損失。當具有相同標識符的數據幀和遠程幀同時發送時,數據幀優先於遠程幀。在仲裁期間,每壹個發送器都對發送位的電平與被監控的總線電平進行比較。如果電平相同,則這個單元可以繼續發送,如果發送的是“隱性”電平而監視到的是“顯性”電平,那麽這個單元就失去了仲裁,必須退出發送狀態。

(9)總線狀態 總線有“顯性”和“隱性”兩個狀態,“顯性”對應邏輯“0”,“隱性”對應邏輯“1”。“顯性”狀態和“隱性”狀態與為“顯性”狀態,所以兩個節點同時分別發送“0”和“1”時,總線上呈現“0”。CAN總線采用二進制不歸零(NRZ)編碼方式,所以總線上不是“0”,就是“1”。但是CAN協議並沒有具體定義這兩種狀態的具體實現方式。

(10)故障界定(Confinement) CAN節點能區分瞬時擾動引起的故障和永久性故障。故障節點會被關閉。

(11)應答接收節點對正確接收的報文給出應答,對不壹致報文進行標記。

(12)CAN通訊距離最大是10公裏(設速率為5Kbps),或最大通信速率為1Mbps(設通信距離為40米)。

(13)CAN總線上的節點數可達110個。通信介質可在雙絞線,同軸電纜,光纖中選擇。

(14)報文是短幀結構,短的傳送時間使其受幹擾概率低,CAN有很好的校驗機制,這些都保證了CAN通信的可靠性。

CAN總線的特點

(1)具有實時性強、傳輸距離較遠、抗電磁幹擾能力強、成本低等優點;

(2)采用雙線串行通信方式,檢錯能力強,可在高噪聲幹擾環境中工作;

(3)具有優先權和仲裁功能,多個控制模塊通過CAN 控制器掛到CAN-bus 上,形成多主機局部網絡;

(4)可根據報文的ID決定接收或屏蔽該報文;

(5)可靠的錯誤處理和檢錯機制;

(6)發送的信息遭到破壞後,可自動重發;

(7)節點在錯誤嚴重的情況下具有自動退出總線的功能;

(8)報文不包含源地址或目標地址,僅用標誌符來指示功能信息、優先級信息。

  • 上一篇:介紹壹部書,說明它的作者.主要人物.喜歡的原因.主要內容及收獲
  • 下一篇:描寫春天花香的詩句
  • copyright 2024編程學習大全網