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

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

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

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

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

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

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






CAN總線是什么 CAN總線的作用
CAN總線應(yīng)用—汽車領(lǐng)域
CAN總線概述及應(yīng)用_CAN總線的應(yīng)用案例(汽車CAN總線應(yīng)用)

CAN總線教程之CAN總線快速入門資料免費下載
高速CAN總線和低速CAN總線區(qū)別分析
認識CAN總線錯誤 CAN總線錯誤分析與解決

評論