全面講解何謂CAN總線協議
現在的汽車已經不再僅僅是一種死氣沉沉的交通工具了。計算機的發明,也讓汽車有了一個職能的心。跟中嵌入式的計算機核心應用到汽車當中。那么如何規范這個核心的工作呢?這就需要CAN總線協議來幫忙了。現在讓我們來了解一下這方面的知識吧。
1,CAN總線協議基本概念:
(1),報文:總線上的信息以不同格式的報文發送,但長度有限。當總線開放時,任何連接的單元均可開始發送一個新報文。
(2),信息路由:在CAN系統中,一個CAN節點不使用有關系統結構的任何信息,這里包含一些重要的概念:系統靈活性——節點可以在不要求所有節點及其應用層改變任何軟件或硬件的情況下,被接于CAN網絡。報文通信——一個報文的內容由其標示符ID命名,ID并不指出報文的目的,但描述數據的含義,以便網絡中的所有節點有可能借助報文濾波決定該數據是否使它們激活。成組——由于采用了報文濾波,所有節點均可接受報文,并同時被相同的報文激活。數據相容性——在CAN網絡中,可以確保報文同時被所有的節點或者沒有節點接受,因此,系統的數據相容性是借助于成組和出錯處理達到的。
(3),位速率:CAN的數據傳輸率在不同的系統中是不同的,而在一個系統中是固定的速率。
(4),優先權:在總線訪問期間,標示符定義了一個報文靜態的優先權。
(5),遠程數據請求:通過發送一個遠程幀,需要數據的節點可以請求另一個節點發送相應的數據幀,該數據幀與對應的遠程幀以相同的標示符ID命名。
(6),多主站:當總線開放時,任何單元均可以開始發送報文,發送具有最高優先權報文的單元會贏得總線的訪問權。
(7),仲裁:當總線開放時,任何單元均可以開始發送報文,若同時有兩個或者更多的單元開始發送,總線訪問沖突運用逐位仲裁規則,借助標示符ID解決,這種仲裁規則可以使信息和時間均無損失,若具有相同標示符的一個數據幀和一個遠程幀同時發送,數據幀優先于遠程幀,仲裁期間,每個發送器都對發送位電平與總線上檢測到的電平進行比較,若相同則該單元可以繼續發送,當發送一個隱性電平,而在總線上檢測為顯性電平時,該單元退出仲裁,并不再傳送后繼位了。
(8),安全性:CAN總線協議為了獲得盡可能高的數據傳輸安全性,在每個CAN節點中均設有錯誤檢測,標定和自檢的強有力措施。檢測措施包括:發送自檢,循環冗余校驗,位填充,和報文格式檢查。
(9),出錯標注和恢復時間:已損壞的報文由檢驗出錯的節點進行標注。這樣的報文將失效,并自動進行重發送。如果不存在新的錯誤,從檢出錯誤到下一個報文開始發送的恢復實踐最多為29個位時間。
(10),故障界定:CAN節點又能力識別永久性的故障和暫時擾動,可自動關閉故障節點。
(11),連接:CAN串行通信鏈路是一條眾多單元均可被連接的總線,理論上單元數目是無限的,實際上,單元總數受限于延遲時間和總線的電器負載。
(12),應答:所有接收器均對接收報文的相容性進行檢查,回答一個相容的報文,并標注一個不相容的報文。#p#
2,CAN的特點:屬于串行通信網絡
(1),通信方式靈活。多主從方式工作,網絡上任何節點均可以在任何時刻主動的向其他節點發送信息,不分主從。無需站地址等節點信息。可以構成多機備份系統。
(2),CAN網絡上的節點信息分成不同的優先級,可以滿足不同的實時要求。
(3),CAN采取非破壞性的總線仲裁技術,多個節點同時發送信息時,優先級低的節點會主動退出發送。
(4),CAN只需通過報文濾波就可以實現點對點,1點對多點及全局廣播等幾種方式傳送接收,無需調度。
(5),CAN的直接通信距離最遠可達10KM(5Kb/s),通信速率最高可達1Mb/s(40M)。
(6),CAN上的節點數目前可達110個;報文標示符可達2032種(CAN2.0A ),而CAN2.0B報文標示符幾乎不受限制。
(7),CAN通信采用短幀格式,傳輸時間短,抗干擾強,極好的驗錯效果,每幀最多8B足以滿足控制要求,不會占用過長總線時間,實時性強。
(8),CAN每幀都有CRC校驗及其他驗錯措施。
(9),接口中集成了CAN總線協議的物理層和數據鏈路層。
(10),CAN的通信介質可為雙絞線或同軸電纜,光纖。
(11),CAN節點在錯誤嚴重情況下具有自動關閉輸出功能。#p#
3,CAN總線協議基本規則:
(1),總線訪問:采用載波監聽多路訪問,CAN控制器之恩能夠在總線空閑時,就是節點偵聽到網絡上至少存在3個空閑位(隱性位)時開始發送,采用硬同步,所有的控制器同步都為與幀的起始的前沿。過了一定時間,并在一定條件后,重同步。
(2),仲裁:各節點向總線發電平時,也對總線上電平進行讀取,并于自身發送的電平進行比較,相同則發下一位,直至全部發完。不同則說明網絡上有更高優先級的信息幀正在發送,即停止發送,退出競爭。
(3),編碼/解碼:幀起始域,仲裁域,控制域,數據域和CRC序列均使用位填充技術進行編碼,就是5個連續的同狀態電平插入一位與它相補的電平,還原時每5個同狀態的電平后的相補電平被刪除。
(4),出錯標注:當檢測到位錯誤,填充錯誤,形式錯誤或應答錯誤時,檢測出錯條件的CAN控制器將發送一個出錯標志。
(5),超載標注,一些控制器會發送一個或多個超載幀以延遲下一個數據幀或遠程幀的發送。