CAN簡介
CAN,全稱為“Controller Area Network”,即控制器局域網,是國際上應用最廣泛的現場總線之一。
最初,CAN被設計作為汽車環境中的微控制器通訊,在車載各電子控制裝置ECU之間交換信息,形成汽車電子控制網絡。

比如:發動機管理系統、變速箱控制器、儀表裝備、電子主干系統中,均嵌入CAN控制裝置。
CAN總線特性
1.CAN總線具有高抗干擾性、自診斷和數據偵錯功能,這些特性使得CAN總線在各種工業場合廣泛使用,包括樓宇自動化、醫療和制造業。
2.CAN總線由德國BOSCH公司開發,最高速率可達到1Mbps。CAN的容錯能力特別強,CAN控制器內建了強大的檢錯和處理機制。
3.另外,不同于傳統的網絡(比如USB或者以太網),CAN節點與節點之間不會傳輸大數據塊,一幀CAN消息最多傳輸8字節用戶數據,采用短數據包也可以使得系統獲得更好的穩定性。
4.CAN總線具有總線仲裁機制,可以組建多主系統。
CAN通訊協議ISO-11898
ISO11898體系結構定義七層,OSI模型中的最低兩層作為數據鏈路層和物理層。

實際通訊是在連接設備的物理介質中進行,物理介質的特性由模型中的物理層定義。

注:
LLC用于接收濾波、超載通告、回復管理
MAC用于數據封裝/拆封、幀編碼、媒體訪問管理、錯誤檢測與標定、應答、串轉發/并轉串
PLS用于位編碼/解碼、位定時、同步
PMA為收發器特性
應用程序層建立了上層應用特定協議,如CANopenTM協議的通訊鏈路。
這個協議由全世界的用戶和廠商組織、CiA維護,詳情可訪問CiA網站:can-cia.de。
許多協議是專用的,比如工業自動化、柴油發動機或航空。
標準CAN和擴展CAN
標準CAN
標準CAN只有11位標識符,每幀的數據長度為51+(0~64)=(51~117)位。

標準CAN---11位標識符
·
SOF
- 幀起始。顯性(邏輯0)表示報文的開始,并用于同步總線上的節點。
·標識符- 標準CAN具有11位標識符,用來確定報文的優先級。
此域的數值越小,優先級越高。
·
RTR
- 遠程發送請求位。
當需要從另一個節點請求信息時,此位為顯性(邏輯0)。
所有節點都能接收這個請求,但是幀標識符確定被指定的節點。
響應數據幀同樣被所有節點接收,可以被有興趣的節點使用。
·
IDE
- 標識符擴展位,為顯性時表示這是一個標準CAN格式,為隱形表示這是擴展CAN格式。
·
r0
- 保留位(可能將來標準修訂會使用)。
·
DLC
- 4位數據長度代碼表示傳輸數據的字節數目,一幀CAN最多傳輸8字節用戶數據。
·
數據0~8
– 最多可以傳輸8字節用戶數據。
·
CRC
- 16位(包括1位定界符)CRC校驗碼,用來校驗用戶數據區之前的(包含數據區)傳輸數據段。
· ACK - 2位,包含應答位和應答界定符。
發送節點的報文幀中,ACK兩位是隱性位,當接收器正確地接收到有效的報文,接收器會在應答位期間向發送節點發送一個顯性位,表示應答。
如果接收器發現這幀數據有錯誤,則不向發送節點發送ACK應答,發送節點會稍后重傳這幀數據。
· EOF – 7位幀結束標志位,全部為隱性位。
如果這7位出現顯性位,則會引起填充錯誤。
·
IFS
– 7位幀間隔標志位,CAN控制器將接收到的幀正確的放入消息緩沖區是需要一定時間的,幀間隔可以提供這個時間。
擴展CAN
擴展CAN具有29位標識符,每幀數據長度為71+(0~64)=(71~135)位。
注:不計位填充(位填充將在后面的文章描述)。

擴展CAN---29位標識符
擴展CAN消息相對于標準CAN消息增加的內容如下:
· SRR – 代替遠程請求位,為隱性。所以當標準幀與擴展幀發送相互沖突并且擴展幀的基本標識符與標準幀的標識符相同時,標準幀優先級高于擴展幀。
· IDE – 為隱性位表示標志位擴展幀,18位擴展標識符緊跟著IDE位。
·r1– 保留
CAN消息
仲裁

反轉的CAN總線邏輯
典型CAN的基本原理如上圖所示,從圖中可以看出,總線邏輯狀態與驅動器輸入和接收器輸出邏輯是相反的。
正常情況下,邏輯高電平為1,邏輯低電平為0,但是CAN總線卻是邏輯高電平為0,稱為顯性,邏輯低電平為1,稱為隱性。
所以很多收發器的驅動器輸入端都會內置上拉電阻,在沒有任何輸入時,CAN總線就會表現為隱性(邏輯低電平)。
在總線空閑時,最先開始發送報文的節點獲得發送權。
如果多個節點同時訪問總線,CAN使用非破壞式、逐位仲裁的方式決定哪個節點使用總線:各發送節點從仲裁域(標識符和RTR域)的第1位開始進行仲裁,連續輸出顯性電平(0)最多的節點可以繼續發送。
因此標識符數值越低的CAN報文,優先級越高。標識符數值為0的CAN報文,具有最高優先級,因為它輸出的顯性電平最多。
消息類型
CAN有四種不同的報文類型:數據幀、遠程幀、錯誤指示幀和超載幀。
1、數據幀
CAN協議有兩種數據幀類型:標準CAN和擴展CAN(見上文)。
一個數據幀中包括7個主要的域:
幀起始域——標志數據幀的開始,由一個顯性位組成。
仲裁域——內容由標示符和遠程傳輸請求位(RTR)組成,RTR用以表明此信息幀是數據幀還是不包含任何數據的遠地請求幀。
當標準CAN和擴展CAN的數據幀必須在同一條總線上傳輸時,首先判斷其優先權,如果ID相同,則非擴展數據幀的優先權高于擴展數據幀。
控制域——r0、r1是保留位,作為擴展位,DLC表示一幀中數據字節的數目。
數據域——包含0~8字節的數據。
校驗域——檢驗位錯用的循環冗余校驗域,共15位。
應答域——包括應答位和應答分隔符。正確接收到有效報文的接收站在應答期間將總線值為顯性電平。
幀結束——由七位隱性電平組成。
2、遠程幀
遠程幀接受數據的節點可通過發遠程幀請求源節點發送數據。
它由6個域組成:幀起始、仲裁域、控制域、校驗域、應答域、幀結束。
3、錯誤指示幀
錯誤指示幀由錯誤標志和錯誤分界兩個域組成。
接收節點發現總線上的報文有誤時,將自動發出“活動錯誤標志”其他節點檢測到活動錯誤標志后發送“錯誤認可標志”。
4、超載幀
超載幀由超載標志和超載分隔符組成。
超載幀只能在一個幀結束后開始。當接收方接收下一幀之前,需要過多的時間處理當前的數據,或在幀間空隙域檢測到顯性電平時,則導致發送超載幀。
幀間空隙位于數據幀和遠地幀與前面的信息幀之間,由幀間空隙和總線空閑狀態組成。幀間空隙是必要的,在此期間, CAN不進行新的幀發送,為的是CAN控制器在下次信息傳遞前有時間進行內部處理操作。當總線空閑時CAN控制器方可發送數據。
-
微控制器
+關注
關注
48文章
7926瀏覽量
153914 -
CAN
+關注
關注
57文章
2901瀏覽量
467095 -
ecu
+關注
關注
14文章
924瀏覽量
55585 -
控制網絡
+關注
關注
0文章
28瀏覽量
10021
發布評論請先 登錄






CAN總線概述及應用_CAN總線的應用案例(汽車CAN總線應用)

高速CAN總線和低速CAN總線區別分析
認識CAN總線錯誤 CAN總線錯誤分析與解決

評論