CAN總線(Controller Area Network)是一種用于車輛、工業自動化和其他領域的高可靠性、實時性強的串行通信協議。它允許多個微控制器和設備在沒有主機計算機的情況下相互通信。
CAN總線最初由德國BOSCH公司在1980年代初期為汽車內部通信而開發。1993年,ISO發布了CAN總線標準(ISO 11898),包括數據鏈路層協議和物理層協議。
ISO 11898-1:定義數據鏈路層協議。
ISO 11898-2:定義高速CAN總線物理層協議,最高數據傳輸速率為1Mbps。推薦使用線形拓撲,適用于實時性要求高的場合。
ISO 11898-3:定義低速CAN總線物理層協議,數據傳輸速率在40Kbps到125Kbps之間。也稱為容錯CAN,能夠在一根信號線失效時繼續通信,適用于實時性要求較低的場合。
CAN總線特點:
多主控制:CAN總線支持多個主設備同時存在于網絡上,沒有主從之分,設備根據消息的優先級進行通信。
差分信號:使用兩根線(CAN_H和CAN_L)傳輸差分信號,提高了抗電磁干擾的能力。
非破壞性仲裁:在消息傳輸過程中,如果發生沖突,優先級高的消息將被傳輸,低優先級的消息將等待重傳。
錯誤檢測與處理:具有強大的錯誤檢測和處理能力,包括CRC校驗、位錯誤檢查等。
靈活的拓撲結構:支持多種網絡拓撲結構,如線形、星形、樹形和環形。
在CAN總線上,邏輯“0”和“1”之間顯著的電壓差是總線可靠通信的保證。參照上面的描述,CAN總線上兩種電平狀態分別為:
顯性(Dominant ): 0
隱性(Recessive ): 1
CAN總線的信號電平具有線與特性,線與特性是CAN總線仲裁的電路基礎,即顯性電平(0)總是會掩蓋隱性電平(1),如果不同節點同時發送顯性和隱性電平,總線上表現出顯性電平(0),只有在總線上所有節點發送的都是隱性電平(1)時,總線才表現為隱性。
顯性電平:邏輯0,高速CAN中CAN_H端向5V,CAN_L端向0V。
隱性電平:邏輯1,不驅動任何一端。
高速CAN和低速CAN總線在物理層信號電平上定義有所不同:
高速CAN,定義 CANH 和 CANL 電壓相同(CANH = CANL = 2.5V)時為邏輯“1”,CANH和CANL 電壓相差 2V(CANH = 3.5V, CANL = 1.5V)時為邏輯“0”。
高速CAN收發器在共模電壓范圍內(-12V ~ 12V),將CANH和CANL電壓相差大于0.9V 解釋為顯性狀態(Dominant),而將CANH和CANL電壓相差小于0.5V 解釋為為隱性狀態(Recessive)。收發器內部有遲滯電路可以降低干擾。
低速CAN,定義CANH和CANL電壓相差 5V (CANH =0V, CANL = 5V)時為邏輯“1”,相差 2.2V (CANH = 3.6V, CANL = 1.4V)時為邏輯“0”。
高速CAN信號電平( ISO 11898-2)
低速CAN信號電平( ISO 11898-3)
CAN的錯誤處理機制:
CRC錯誤:通過計算和校驗數據的CRC值來檢測錯誤。
位錯誤:在傳輸過程中實時檢測比特錯誤。
錯誤幀:當檢測到錯誤時,發送錯誤幀以請求重傳。
總結
CAN總線以其高可靠性、實時性和靈活性,在多個領域得到了廣泛應用。隨著技術的發展,CAN總線也在不斷演進,例如BOSCH發布的CAN FD(Flexible Data-Rate)標準,進一步提高了數據傳輸速率,滿足了更高帶寬需求的應用場景。
審核編輯:劉清
-
微控制器
+關注
關注
48文章
7570瀏覽量
151628 -
CAN總線
+關注
關注
145文章
1952瀏覽量
130867 -
SoC芯片
+關注
關注
1文章
614瀏覽量
34948 -
串行通信
+關注
關注
4文章
576瀏覽量
35458 -
數字信號電平
+關注
關注
0文章
9瀏覽量
7179
原文標題:SoC芯片的CAN總線詳解(一)
文章出處:【微信號:全棧芯片工程師,微信公眾號:全棧芯片工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論