當前位置:首頁銀河百科 │ CAN總線技術

CAN總線技術

  • 瀏覽次數:8586次
  • 發(fā)布時間:2014/2/18 10:04:00
  • 作者:量值溯源

一、概述

  CAN(Controller Area Network)即控制器局域網,可以歸屬于工業(yè)現場總線的范疇,通常稱為CAN bus,即CAN總線,是目前國際上應用最廣泛的開放式現場總線之一。
  CAN 最初出現在汽車工業(yè)中,80年代由德國Bosch公司最先提出。最初動機是為了解決現代汽車中龐大的電子控制裝置之間的通訊,減少不斷增加的信號線。
  與一般的通信總線相比,CAN總線的數據通信具有突出的可靠性、實時性和靈活性,它在汽車領域上的應用最為廣泛,世界上一些著名的汽車制造廠商,如BENZ(奔馳)、BMW(寶馬)、volkswagen (大眾)等都采用了CAN總線來實現汽車內部控制系統(tǒng)與各檢測和執(zhí)行機構間的數據通信。

二、工作原理

  CAN總線標準包括物理層、數據鏈路層,其中鏈路層定義了不同的信息類型、總線訪問的仲裁規(guī)則及故障檢測與故障處理的方式。
  當CAN 總線上的一個節(jié)點(站)發(fā)送數據時,它以報文形式廣播給網絡中所有節(jié)點。
  每組報文開頭的11位字符為標識符(CAN2.0A),定義了報文的優(yōu)先級,這種報文格式稱為面向內容的編址方案。
  當一個節(jié)點要向其它節(jié)點發(fā)送數據時,該節(jié)點的CPU 將要發(fā)送的數據和自己的標識符傳送給本節(jié)點的CAN芯片,并處于準備狀態(tài);當它收到總線分配時,轉為發(fā)送報文狀態(tài)。

三、特點

  CAN總線是一種串行數據通信協(xié)議,其通信接口中集成了CAN協(xié)議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等項工作。
  CAN總線特點如下:
  (1)多主機方式工作,網絡上任意一個節(jié)點均可以在任意時刻主動地向網絡上的其他節(jié)點發(fā)送信息,而不分主從,通信方式靈活。
 ?。?)網絡上的節(jié)點(信息)可分成不同的優(yōu)先級,可以滿足不同的實時要求。  
 ?。?)采用非破壞性位仲裁總線結構機制,當兩個節(jié)點同時向網絡上傳送信息時,優(yōu)先級低的節(jié)點主動停止數據發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳輸數據。
  (4) 可以點對點、一點對多點(成組)及全局廣播幾種傳送方式接收數據。
 ?。?)直接通信距離最遠可達6km(速率10Kbps以下)。
 ?。?)通信速率最高可達1MB/s(此時距離最長30m)。
 ?。?)節(jié)點數實際可達110個。
 ?。?)采用短幀結構,每一幀的有效字節(jié)數為8個。
  (9)每幀信息都有CRC校驗及其它檢錯措施,數據出錯率極低。
  (10)通信介質可采用雙絞線,同軸電纜和光導纖維,一般采用廉價的雙絞線即可,無特殊要求。
  (11)節(jié)點在錯誤嚴重的情況下,具有自動關閉總線的功能,切斷它與總線的聯系,以使總線上的其他操作不受影響。

四、CAN總線報文及結構

  標準幀  11位標識符
  擴展幀  29位標識符
  幀類型  數據幀、遠程幀、錯誤幀和過載幀
  數據幀:數據幀攜帶數據從發(fā)送器至接收器??偩€上傳輸的大多是這個幀。
  遠程幀:由總線單元發(fā)出,請求發(fā)送具有同一識別符的數據幀。數據幀(或遠程幀)通過幀間空間與其他各幀分開。
  錯誤幀:任何單元一但檢測到總線錯誤就發(fā)出錯誤幀。
  過載幀:過載幀用以在先行的和后續(xù)的數據幀(或遠程幀)之間提供一附加的延時。 

五、數據幀格式

  幀起始(SOF)僅由一顯位構成。所有站都必須同步于首先發(fā)送的那個幀起始前沿;
  仲裁場(標準格式)由11位標識符ID28~ ID18、遠程發(fā)送請求位    RTR(Remote Transmission Request BIT)組成,其中ID高七位不可全為1(隱性);
  仲裁場(擴展格式)由29位標識符ID28~ ID0、SRR位、識別符擴展位IDE(Identifier Extension Bit)位、RTR位組成;
  SRR是隱性位,它用于替代標準格式的RTR位。
  IDE=1(隱性)代表擴展格式。IDE位在擴展格式中位于仲裁場而在標準格式中位于控制場。

六、位仲裁技術

  只要總線空閑,任何單元都可以開始發(fā)送報文。
  要對數據進行實時處理,就必須將數據快速傳送,這就要求數據的物理傳輸通路有較高的速度。在幾個站同時需要發(fā)送數據時,要求快速地進行總線分配。 
  如果2 個或2 個以上的單元同時開始傳送報文,那么就會有總線訪問沖突。通過使用識別符的位形式仲裁可以解決這個沖突。
  CAN總線以報文為單位進行數據傳送,報文的優(yōu)先級結合在11位標識符中,具有最低二進制數的標識符有最高的優(yōu)先級。這種優(yōu)先級一旦在系統(tǒng)設計時被確立后就不能再被更改??偩€讀取中的沖突可通過位仲裁解決。 
仲裁的機制確保信息和時間均不會損失。當具有相同識別符的數據幀和遠程幀同時初始化時,數據幀優(yōu)先于遠程幀。
  CAN總線采用非歸零(NRZ)編碼,所有節(jié)點以“線與”方式連接至總線。如果存在一個節(jié)點向總線傳輸邏輯0,則總線呈現邏輯0狀態(tài),而不管有多少個節(jié)點在發(fā)送邏輯1。CAN網絡的所有節(jié)點可能試圖同時發(fā)送,但其簡單的仲裁規(guī)則確保僅有一個節(jié)點控制總線、并發(fā)送信息。低有效輸出狀態(tài)(0)起決定性作用。 

  仲裁期間,每一個發(fā)送器都對發(fā)送位的電平與被監(jiān)控的總線電平進行比較。如果電平相同,則這個單元可以繼續(xù)發(fā)送。如果發(fā)送的是一“隱性”電平(邏輯1)而監(jiān)測到一“顯性”電平(邏輯0),那么該單元就失去了仲裁,必須退出發(fā)送狀態(tài)。

 


Copyright 2010-2017 gold-diggers-game.com, All Rights Reserved 湖南銀河電氣有限公司 版權所有 湘ICP備09002592號-5