[車聯網] CAN總線詳解 [轉]

0 序

1 CAN總線-概述

1.0 簡介

  • CAN是控制器局域網絡(Controller Area Network, CAN)的簡稱,是一種能夠實現分佈式實時控制的串行通信網絡。

1.1 優點

  • 傳輸速度高。傳輸速度最高到1Mbps,通信距離最遠到10km,無損位仲裁機制,多主結構。近些年來,CAN控制器價格越來越低。
  • 低成本:ECUs通過單個CAN接口進行通信,佈線成本低。
  • 高集成:CAN總線系統允許在所有ECUs上進行集中錯誤診斷和配置。
  • 可靠性:該系統對子系統的故障和電磁干擾具有很強的魯棒性,是汽車控制系統的理想選擇。
  • 高效率:可以通過id對消息進行優先級排序,以便最高優先級的id不被中斷。
  • 靈活性:每個ECU包含一個用於CAN總線收發芯片,隨意添加CAN總線節點。

1.2 CAN總線網絡

  • CAN總線網絡主要掛在CAN_H和CAN_L,各個節點通過這兩條線實現信號的串行差分傳輸.
  • 爲了避免信號的反射和干擾,還需要在CAN_H和CAN_L之間接上120歐姆的終端電阻。爲什麼是120Ω?因爲電纜的特性阻抗爲120Ω,爲了模擬無限遠的傳輸線

1.3 CAN收發器

  • CAN收發器的作用是負責邏輯電平信號電平之間的轉換。

即:從CAN控制芯片輸出邏輯電平CAN收發器;然後,經過CAN收發器【內部轉換】將邏輯電平轉換爲差分信號輸出到CAN總線上,CAN總線上的節點都可以決定自己是否需要總線上的數據。
具體的引腳定義如下:

1.4 CAN信號表示

  • CAN總線採用不歸零碼位填充技術

也就是說,CAN總線上的信號有兩種不同的信號狀態,分別是: 顯性的(Dominant)邏輯0和隱形的(recessive)邏輯1,信號每一次傳輸完後不需要返回到邏輯0(顯性)的電平。

  • 顯性電平隱性電平的解釋:
  • CAN的數據總線有兩條,一條是黃色的CAN_High,一條是綠色的CAN_Low
  • 沒有數據發送時,兩條線的電平一樣都爲2.5V,稱爲靜電平,也就是隱性電平
  • 有信號發送時,CAN_High的電平升高1V,即3.5V,CAN_Low的電平降低1V,即1.5V。
  • 按照定義的:
  • CAN_H-CAN_L < 0.5V 時候爲隱性的,邏輯信號表現爲"邏輯1" - 高電平
  • CAN_H-CAN_L > 0.9V 時候爲顯性的,邏輯信號表現爲"邏輯0" - 低電平

1.5 CAN信號傳輸

  • 發送過程CAN控制器CPU傳來的信號轉換爲邏輯電平(即: 邏輯0-顯性電平 或者 邏輯1-隱性電平)。CAN收發器(發射器)接收邏輯電平之後,再將其轉換爲差分電平輸出到CAN總線上。

  • 接收過程CAN發射器(接收器)CAN_HCAN_L 線上傳來的差分電平轉換爲邏輯電平輸出到CAN控制器CAN控制器再把該邏輯電平轉化爲相應的信號發送到CPU上。

1.6 CAN數據傳輸

  • CAN總線傳輸的是CAN幀CAN的通信幀分成5種,分別爲:數據幀遠程幀錯誤幀過載幀幀間隔
  • 數據幀根據仲裁段長度的不同,而分爲:標準幀(2.0A)和擴展幀(2.0B)。

幀起始

  • 由一個顯性位(低電平)組成,發送節點發送幀起始,其他節點同步於幀起始;

幀結束

  • 由7個隱形位(高電平)組成。

仲裁段

  • 只要總線空閒,總線上任何節點都可以發送報文,如果有兩個或兩個以上的節點開始傳送報文,那麼就會存在總線訪問衝突的可能。但是CAN使用了標識符的逐位仲裁方法可以解決這個問題。

  • CAN總線控制器發送數據的同時監控總線電平

  • 如果電平不同,則:停止發送並做其他處理。
  • 如果該位位於仲裁段,則:退出總線競爭;
  • 如果位於其他段,則:產生錯誤事件。
  • 假設節點A、B和C都發送相同格式、相同類型的幀,如標準格式數據幀,它們競爭總線的過程是:

  • 幀ID越小,優先級越高。

  • 由於數據幀的RTR位爲顯性電平,遠程幀爲隱性電平。所以,幀格式和幀ID相同的情況下,數據幀優先於遠程幀;由於標準幀的IDE位爲顯性電平,擴展幀的IDE位爲隱形電平,對於前11位ID相同的標準幀和擴展幀,標準幀優先級比擴展幀高。

數據段

  • 一個數據幀傳輸的數據量爲0~8個字節,這種短幀結構使得CAN-bus實時性很高,非常適合汽車和工控應用場合下圖所示。

  • 數據量小,發送和接收時間短,實時性高,被幹擾的概率小,抗干擾能力強。

X 參考文獻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章