CAN總線(xiàn)協(xié)議及概念
1,CAN總線(xiàn)協(xié)議基本概念:
(1),報文:總線(xiàn)上的信息以不同格式的報文發(fā)送,但長(cháng)度有限。當總線(xiàn)開(kāi)放時(shí),任何連接的單元均可開(kāi)始發(fā)送一個(gè)新報文。
(2),信息路由:在CAN系統中,一個(gè)CAN節點(diǎn)不使用有關(guān)系統結構的任何信息,這里包含一些重要的概念:系統靈活性——節點(diǎn)可以在不要求所有節點(diǎn)及其應用層改變任何軟件或硬件的情況下,被接于CAN網(wǎng)絡(luò )。報文通信——一個(gè)報文的內容由其標示符ID命名,ID并不指出報文的目的,但描述數據的含義,以便網(wǎng)絡(luò )中的所有節點(diǎn)有可能借助報文濾波決定該數據是否使它們激活。成組——由于采用了報文濾波,所有節點(diǎn)均可接受報文,并同時(shí)被相同的報文激活。數據相容性——在CAN網(wǎng)絡(luò )中,可以確保報文同時(shí)被所有的節點(diǎn)或者沒(méi)有節點(diǎn)接受,因此,系統的數據相容性是借助于成組和出錯處理達到的。
(3),位速率:CAN的數據傳輸率在不同的系統中是不同的,而在一個(gè)系統中是固定的速率。
(4),優(yōu)先權:在總線(xiàn)訪(fǎng)問(wèn)期間,標示符定義了一個(gè)報文靜態(tài)的優(yōu)先權。
(5),遠程數據請求:通過(guò)發(fā)送一個(gè)遠程幀,需要數據的節點(diǎn)可以請求另一個(gè)節點(diǎn)發(fā)送相應的數據幀,該數據幀與對應的遠程幀以相同的標示符ID命名。
(6),多主站:當總線(xiàn)開(kāi)放時(shí),任何單元均可以開(kāi)始發(fā)送報文,發(fā)送具有最高優(yōu)先權報文的單元會(huì )贏(yíng)得總線(xiàn)的訪(fǎng)問(wèn)權。
(7),仲裁:當總線(xiàn)開(kāi)放時(shí),任何單元均可以開(kāi)始發(fā)送報文,若同時(shí)有兩個(gè)或者更多的單元開(kāi)始發(fā)送,總線(xiàn)訪(fǎng)問(wèn)沖突運用逐位仲裁規則,借助標示符ID解決,這種仲裁規則可以使信息和時(shí)間均無(wú)損失,若具有相同標示符的一個(gè)數據幀和一個(gè)遠程幀同時(shí)發(fā)送,數據幀優(yōu)先于遠程幀,仲裁期間,每個(gè)發(fā)送器都對發(fā)送位電平與總線(xiàn)上檢測到的電平進(jìn)行比較,若相同則該單元可以繼續發(fā)送,當發(fā)送一個(gè)隱性電平,而在總線(xiàn)上檢測為顯性電平時(shí),該單元退出仲裁,并不再傳送后繼位了。
(8),安全性:CAN總線(xiàn)協(xié)議為了獲得盡可能高的數據傳輸安全性,在每個(gè)CAN節點(diǎn)中均設有錯誤檢測,標定和自檢的強有力措施。檢測措施包括:發(fā)送自檢,循環(huán)冗余校驗,位填充,和報文格式檢查。
(9),出錯標注和恢復時(shí)間:已損壞的報文由檢驗出錯的節點(diǎn)進(jìn)行標注。這樣的報文將失效,并自動(dòng)進(jìn)行重發(fā)送。如果不存在新的錯誤,從檢出錯誤到下一個(gè)報文開(kāi)始發(fā)送的恢復實(shí)踐最多為29個(gè)位時(shí)間。
(10),故障界定:CAN節點(diǎn)又能力識別永久性的故障和暫時(shí)擾動(dòng),可自動(dòng)關(guān)閉故障節點(diǎn)。
(11),連接:CAN串行通信鏈路是一條眾多單元均可被連接的總線(xiàn),理論上單元數目是無(wú)限的,實(shí)際上,單元總數受限于延遲時(shí)間和總線(xiàn)的電器負載。
(12),應答:所有接收器均對接收報文的相容性進(jìn)行檢查,回答一個(gè)相容的報文,并標注一個(gè)不相容的報文。
2,CAN的特點(diǎn):屬于串行通信網(wǎng)絡(luò )
(1),通信方式靈活。多主從方式工作,網(wǎng)絡(luò )上任何節點(diǎn)均可以在任何時(shí)刻主動(dòng)的向其他節點(diǎn)發(fā)送信息,不分主從。無(wú)需站地址等節點(diǎn)信息??梢詷嫵啥鄼C備份系統。
(2),CAN網(wǎng)絡(luò )上的節點(diǎn)信息分成不同的優(yōu)先級,可以滿(mǎn)足不同的實(shí)時(shí)要求。
(3),CAN采取非破壞性的總線(xiàn)仲裁技術(shù),多個(gè)節點(diǎn)同時(shí)發(fā)送信息時(shí),優(yōu)先級低的節點(diǎn)會(huì )主動(dòng)退出發(fā)送。
(4),CAN只需通過(guò)報文濾波就可以實(shí)現點(diǎn)對點(diǎn),1點(diǎn)對多點(diǎn)及全局廣播等幾種方式傳送接收,無(wú)需調度。
(5),CAN的直接通信距離最遠可達10KM(5Kb/s),通信速率最高可達1Mb/s(40M)。
(6),CAN上的節點(diǎn)數目前可達110個(gè);報文標示符可達2032種(CAN2.0A ),而CAN2.0B報文標示符幾乎不受限制。
(7),CAN通信采用短幀格式,傳輸時(shí)間短,抗干擾強,極好的驗錯效果,每幀最多8B足以滿(mǎn)足控制要求,不會(huì )占用過(guò)長(cháng)總線(xiàn)時(shí)間,實(shí)時(shí)性強。
(8),CAN每幀都有CRC校驗及其他驗錯措施。
(9),接口中集成了CAN總線(xiàn)協(xié)議的物理層和數據鏈路層。
(10),CAN的通信介質(zhì)可為雙絞線(xiàn)或同軸電纜,光纖。
(11),CAN節點(diǎn)在錯誤嚴重情況下具有自動(dòng)關(guān)閉輸出功能。
3,CAN總線(xiàn)協(xié)議基本規則:
(1),總線(xiàn)訪(fǎng)問(wèn):采用載波監聽(tīng)多路訪(fǎng)問(wèn),CAN控制器之恩能夠在總線(xiàn)空閑時(shí),就是節點(diǎn)偵聽(tīng)到網(wǎng)絡(luò )上至少存在3個(gè)空閑位(隱性位)時(shí)開(kāi)始發(fā)送,采用硬同步,所有的控制器同步都為與幀的起始的前沿。過(guò)了一定時(shí)間,并在一定條件后,重同步。
(2),仲裁:各節點(diǎn)向總線(xiàn)發(fā)電平時(shí),也對總線(xiàn)上電平進(jìn)行讀取,并于自身發(fā)送的電平進(jìn)行比較,相同則發(fā)下一位,直至全部發(fā)完。不同則說(shuō)明網(wǎng)絡(luò )上有更高優(yōu)先級的信息幀正在發(fā)送,即停止發(fā)送,退出競爭。
(3),編碼/解碼:幀起始域,仲裁域,控制域,數據域和CRC序列均使用位填充技術(shù)進(jìn)行編碼,就是5個(gè)連續的同狀態(tài)電平插入一位與它相補的電平,還原時(shí)每5個(gè)同狀態(tài)的電平后的相補電平被刪除。
(4),出錯標注:當檢測到位錯誤,填充錯誤,形式錯誤或應答錯誤時(shí),檢測出錯條件的CAN控制器將發(fā)送一個(gè)出錯標志。
(5),超載標注,一些控制器會(huì )發(fā)送一個(gè)或多個(gè)超載幀以延遲下一個(gè)數據幀或遠程幀的發(fā)送。
相關(guān)組織
依據國際標準化組織/開(kāi)放系統互連(International Standardi-zation Organization/Open SystemInterconnection,ISO/OSI)參考模型,CAN的ISO/OSI參考模型的層結構如圖7-6所示。
概念和特征
下面對CAN協(xié)議的媒體訪(fǎng)問(wèn)控制子層的一些概念和特征做如下說(shuō)明:
(1)報文(Message)總線(xiàn)上的報文以不同報文格式發(fā)送,但長(cháng)度受到限制。當總線(xiàn)空閑時(shí),任何一個(gè)網(wǎng)絡(luò )上的節點(diǎn)都可以發(fā)送報文。
(2)信息路由(Information Routing)在CAN中,節點(diǎn)不使用任何關(guān)于系統配置的報文,比如站地址,由接收節點(diǎn)根據報文本身特征判斷是否接收這幀信息。因此系統擴展時(shí),不用對應用層以及任何節點(diǎn)的軟件和硬件作改變,可以直接在CAN中增加節點(diǎn)。
(3)標識符(Identifier)要傳送的報文有特征標識符(是數據幀和遠程幀的一個(gè)域),它給出的不是目標節點(diǎn)地址,而是這個(gè)報文本身的特征。信息以廣播方式在網(wǎng)絡(luò )上發(fā)送,所有節點(diǎn)都可以接收到。節點(diǎn)通過(guò)標識符判定是否接收這幀信息。
(4)數據一致性應確保報文在CAN里同時(shí)被所有節點(diǎn)接收或同時(shí)不接收,這是配合錯誤處理和再同步功能實(shí)現的。
(5)位傳輸速率不同的CAN系統速度不同,但在一個(gè)給定的系統里,位傳輸速率是唯一的,并且是固定的。
(6)優(yōu)先權 由發(fā)送數據的報文中的標識符決定報文占用總線(xiàn)的優(yōu)先權。標識符越小,優(yōu)先權越高。
(7)遠程數據請求(Remote Data Request)通過(guò)發(fā)送遠程幀,需要數據的節點(diǎn)請求另一節點(diǎn)發(fā)送相應的數據?;貞濣c(diǎn)傳送的數據幀與請求數據的遠程幀由相同的標識符命名。
(8)仲裁(Arbitration)只要總線(xiàn)空閑,任何節點(diǎn)都可以向總線(xiàn)發(fā)送報文。如果有兩個(gè)或兩個(gè)以上的節點(diǎn)同時(shí)發(fā)送報文,就會(huì )引起總線(xiàn)訪(fǎng)問(wèn)碰撞。通過(guò)使用標識符的逐位仲裁可以解決這個(gè)碰撞。仲裁的機制確保了報文和時(shí)間均不損失。當具有相同標識符的數據幀和遠程幀同時(shí)發(fā)送時(shí),數據幀優(yōu)先于遠程幀。在仲裁期間,每一個(gè)發(fā)送器都對發(fā)送位的電平與被監控的總線(xiàn)電平進(jìn)行比較。如果電平相同,則這個(gè)單元可以繼續發(fā)送,如果發(fā)送的是“隱性”電平而監視到的是“顯性”電平,那么這個(gè)單元就失去了仲裁,必須退出發(fā)送狀態(tài)。
(9)總線(xiàn)狀態(tài) 總線(xiàn)有“顯性”和“隱性”兩個(gè)狀態(tài),“顯性”對應邏輯“0”,“隱性”對應邏輯“1”。“顯性”狀態(tài)和“隱性”狀態(tài)與為“顯性”狀態(tài),所以?xún)蓚€(gè)節點(diǎn)同時(shí)分別發(fā)送“0”和“1”時(shí),總線(xiàn)上呈現“0”。CAN總線(xiàn)采用二進(jìn)制不歸零(NRZ)編碼方式,所以總線(xiàn)上不是“0”,就是“1”。但是CAN協(xié)議并沒(méi)有具體定義這兩種狀態(tài)的具體實(shí)現方式,如圖7-7所示。 (10)故障界定(Confinement) CAN節點(diǎn)能區分瞬時(shí)擾動(dòng)引起的故障和永久性故障。故障節點(diǎn)會(huì )被關(guān)閉。
(11)應答接收節點(diǎn)對正確接收的報文給出應答,對不一致報文進(jìn)行標記。
(12)CAN通訊距離最大是10公里(設速率為5Kbps),或最大通信速率為1Mbps(設通信距離為40米)。
(13)CAN總線(xiàn)上的節點(diǎn)數可達110個(gè)。通信介質(zhì)可在雙絞線(xiàn),同軸電纜,光纖中選擇。
(14)報文是短幀結構,短的傳送時(shí)間使其受干擾概率低,CAN有很好的效驗機制,這些都保證了CAN通信的可靠性。
2 CAN總線(xiàn)協(xié)議內容
CAN總線(xiàn)的物理層是將ECU連接至總線(xiàn)的驅動(dòng)電路。ECU的總數將受限于總線(xiàn)上的電氣負荷。物理層定義了物理數據在總線(xiàn)上各節點(diǎn)間的傳輸過(guò)程,主要是連接介質(zhì)、線(xiàn)路電氣特性、數據的編碼/解碼、位定時(shí)和同步的實(shí)施標準。
總線(xiàn)競爭的原則
BOSCH CAN基本上沒(méi)有對物理層進(jìn)行定義,但基于CAN的ISO標準對物理層進(jìn)行了定義。設計一個(gè)CAN系統時(shí),物理層具有很大的選擇余地,但必須保證CAN協(xié)議中媒體訪(fǎng)問(wèn)層非破壞性位仲裁的要求,即出現總線(xiàn)競爭時(shí),具有較高優(yōu)先權的報文獲取總線(xiàn)競爭的原則,所以要求物理層必須支持CAN總線(xiàn)中隱性位和顯性位的狀態(tài)特征。在沒(méi)有發(fā)送顯性位時(shí),總線(xiàn)處于隱性狀態(tài),空閑時(shí),總線(xiàn)處于隱性狀態(tài);當有一個(gè)或多個(gè)節點(diǎn)發(fā)送顯性位,顯性位覆蓋隱性位,使總線(xiàn)處于顯性狀態(tài)。
在此基礎上,物理層主要取決于傳輸速度的要求。從物理結構上看,CAN節點(diǎn)的構成如圖7-8所示。在CAN中,物理層從結構上可分為三層:分別是物理層信令(Physical Layer Signaling,PLS)、物理介質(zhì)附件(Physical MediaAttachment,PMA)層和介質(zhì)從屬接口(Media Dependent:Inter-face,MDI)層。其中PLS連同數據鏈路層功能由CAN控制器完成,PMA層功能由CAN收發(fā)器完成,MDI層定義了電纜和連接器的特性。目前也有支持CAN的微處理器內部集成了CAN控制器和收發(fā)器電路,如MC68HC908GZl6。PMA和MDI兩層有很多不同的國際或國家或行業(yè)標準,也可自行定義,比較流行的是ISOll898定義的高速CAN發(fā)送/接收器標準。
節點(diǎn)數量
理論上,CAN總線(xiàn)上的節點(diǎn)數幾乎不受限制,可達到2000個(gè),實(shí)際上受電氣特性的限制,最多只能接100多個(gè)節點(diǎn)。
CAN的數據鏈路層
CAN的數據鏈路層是其核心內容,其中邏輯鏈路控制(Logical Link control,LLC)完成過(guò)濾、過(guò)載通知和管理恢復等功能,媒體訪(fǎng)問(wèn)控制(Medium Aeeess control,MAC)子層完成數據打包/解包、幀編碼、媒體訪(fǎng)問(wèn)管理、錯誤檢測、錯誤信令、應答、串并轉換等功能。這些功能都是圍繞信息幀傳送過(guò)程展開(kāi)的。
3 CAN總線(xiàn)的報文傳輸和結構
報文類(lèi)型
在CAN2.0B的版本協(xié)議中有兩種不同的幀格式,不同之處為標識符域的長(cháng)度不同,含有ll位標識符的幀稱(chēng)之為標準幀,而含有29位標識符的幀稱(chēng)為擴展幀。如CAN1.2版本協(xié)議所描述,兩個(gè)版本的標準數據幀格式和遠程幀格式分別是等效的,而擴展格式是CAN2.0B協(xié)議新增加的特性。為使控制器設計相對簡(jiǎn)單,并不要求執行完全的擴展格式,對于新型控制器而言,必須不加任何限制的支持標準格式。但無(wú)論是哪種幀格式,在報文
幀類(lèi)型
傳輸時(shí)都有以下四種不同類(lèi)型的幀:
(1)數據幀(Data )數據幀將數據從發(fā)送器傳輸到接收器。
(2)遠程幀(Remote )總線(xiàn)單元發(fā)出遠程幀,請求發(fā)送具有同一標識符的數據幀。
(3)錯誤幀(Error )任何單元檢測到總線(xiàn)錯誤就發(fā)出錯誤幀。
(4)過(guò)載幀(Overload )過(guò)載幀用在相鄰數據幀或遠程幀之間提供附加的延時(shí)。
數據幀或遠程幀與前一個(gè)幀之間都會(huì )有一個(gè)隔離域,即幀間間隔。數據幀和遠程幀可以使用標準幀及擴展幀兩種格式。
現在的汽車(chē)已經(jīng)不再僅僅是一種死氣沉沉的交通工具了。計算機的發(fā)明,也讓汽車(chē)有了一個(gè)職能的心。跟中嵌入式的計算機核心應用到汽車(chē)當中。那么如何規范這個(gè)核心的工作呢?這就需要CAN總線(xiàn)協(xié)議來(lái)幫忙了?,F在讓我們來(lái)了解一下這方面的知識吧。
1,CAN總線(xiàn)協(xié)議基本概念:
(1),報文:總線(xiàn)上的信息以不同格式的報文發(fā)送,但長(cháng)度有限。當總線(xiàn)開(kāi)放時(shí),任何連接的單元均可開(kāi)始發(fā)送一個(gè)新報文。
(2),信息路由:在CAN系統中,一個(gè)CAN節點(diǎn)不使用有關(guān)系統結構的任何信息,這里包含一些重要的概念:系統靈活性——節點(diǎn)可以在不要求所有節點(diǎn)及其應用層改變任何軟件或硬件的情況下,被接于CAN網(wǎng)絡(luò )。報文通信——一個(gè)報文的內容由其標示符ID命名,ID并不指出報文的目的,但描述數據的含義,以便網(wǎng)絡(luò )中的所有節點(diǎn)有可能借助報文濾波決定該數據是否使它們激活。成組——由于采用了報文濾波,所有節點(diǎn)均可接受報文,并同時(shí)被相同的報文激活。數據相容性——在CAN網(wǎng)絡(luò )中,可以確保報文同時(shí)被所有的節點(diǎn)或者沒(méi)有節點(diǎn)接受,因此,系統的數據相容性是借助于成組和出錯處理達到的。
(3),位速率:CAN的數據傳輸率在不同的系統中是不同的,而在一個(gè)系統中是固定的速率。
(4),優(yōu)先權:在總線(xiàn)訪(fǎng)問(wèn)期間,標示符定義了一個(gè)報文靜態(tài)的優(yōu)先權。
(5),遠程數據請求:通過(guò)發(fā)送一個(gè)遠程幀,需要數據的節點(diǎn)可以請求另一個(gè)節點(diǎn)發(fā)送相應的數據幀,該數據幀與對應的遠程幀以相同的標示符ID命名。
(6),多主站:當總線(xiàn)開(kāi)放時(shí),任何單元均可以開(kāi)始發(fā)送報文,發(fā)送具有最高優(yōu)先權報文的單元會(huì )贏(yíng)得總線(xiàn)的訪(fǎng)問(wèn)權。
(7),仲裁:當總線(xiàn)開(kāi)放時(shí),任何單元均可以開(kāi)始發(fā)送報文,若同時(shí)有兩個(gè)或者更多的單元開(kāi)始發(fā)送,總線(xiàn)訪(fǎng)問(wèn)沖突運用逐位仲裁規則,借助標示符ID解決,這種仲裁規則可以使信息和時(shí)間均無(wú)損失,若具有相同標示符的一個(gè)數據幀和一個(gè)遠程幀同時(shí)發(fā)送,數據幀優(yōu)先于遠程幀,仲裁期間,每個(gè)發(fā)送器都對發(fā)送位電平與總線(xiàn)上檢測到的電平進(jìn)行比較,若相同則該單元可以繼續發(fā)送,當發(fā)送一個(gè)隱性電平,而在總線(xiàn)上檢測為顯性電平時(shí),該單元退出仲裁,并不再傳送后繼位了。
(8),安全性:CAN總線(xiàn)協(xié)議為了獲得盡可能高的數據傳輸安全性,在每個(gè)CAN節點(diǎn)中均設有錯誤檢測,標定和自檢的強有力措施。檢測措施包括:發(fā)送自檢,循環(huán)冗余校驗,位填充,和報文格式檢查。
(9),出錯標注和恢復時(shí)間:已損壞的報文由檢驗出錯的節點(diǎn)進(jìn)行標注。這樣的報文將失效,并自動(dòng)進(jìn)行重發(fā)送。如果不存在新的錯誤,從檢出錯誤到下一個(gè)報文開(kāi)始發(fā)送的恢復實(shí)踐最多為29個(gè)位時(shí)間。
(10),故障界定:CAN節點(diǎn)又能力識別永久性的故障和暫時(shí)擾動(dòng),可自動(dòng)關(guān)閉故障節點(diǎn)。
(11),連接:CAN串行通信鏈路是一條眾多單元均可被連接的總線(xiàn),理論上單元數目是無(wú)限的,實(shí)際上,單元總數受限于延遲時(shí)間和總線(xiàn)的電器負載。
(12),應答:所有接收器均對接收報文的相容性進(jìn)行檢查,回答一個(gè)相容的報文,并標注一個(gè)不相容的報文。
2,CAN的特點(diǎn):屬于串行通信網(wǎng)絡(luò )
(1),通信方式靈活。多主從方式工作,網(wǎng)絡(luò )上任何節點(diǎn)均可以在任何時(shí)刻主動(dòng)的向其他節點(diǎn)發(fā)送信息,不分主從。無(wú)需站地址等節點(diǎn)信息??梢詷嫵啥鄼C備份系統。
(2),CAN網(wǎng)絡(luò )上的節點(diǎn)信息分成不同的優(yōu)先級,可以滿(mǎn)足不同的實(shí)時(shí)要求。
(3),CAN采取非破壞性的總線(xiàn)仲裁技術(shù),多個(gè)節點(diǎn)同時(shí)發(fā)送信息時(shí),優(yōu)先級低的節點(diǎn)會(huì )主動(dòng)退出發(fā)送。
(4),CAN只需通過(guò)報文濾波就可以實(shí)現點(diǎn)對點(diǎn),1點(diǎn)對多點(diǎn)及全局廣播等幾種方式傳送接收,無(wú)需調度。
(5),CAN的直接通信距離最遠可達10KM(5Kb/s),通信速率最高可達1Mb/s(40M)。
(6),CAN上的節點(diǎn)數目前可達110個(gè);報文標示符可達2032種(CAN2.0A ),而CAN2.0B報文標示符幾乎不受限制。
(7),CAN通信采用短幀格式,傳輸時(shí)間短,抗干擾強,極好的驗錯效果,每幀最多8B足以滿(mǎn)足控制要求,不會(huì )占用過(guò)長(cháng)總線(xiàn)時(shí)間,實(shí)時(shí)性強。
(8),CAN每幀都有CRC校驗及其他驗錯措施。
(9),接口中集成了CAN總線(xiàn)協(xié)議的物理層和數據鏈路層。
(10),CAN的通信介質(zhì)可為雙絞線(xiàn)或同軸電纜,光纖。
(11),CAN節點(diǎn)在錯誤嚴重情況下具有自動(dòng)關(guān)閉輸出功能。
3,CAN總線(xiàn)協(xié)議基本規則:
(1),總線(xiàn)訪(fǎng)問(wèn):采用載波監聽(tīng)多路訪(fǎng)問(wèn),CAN控制器之恩能夠在總線(xiàn)空閑時(shí),就是節點(diǎn)偵聽(tīng)到網(wǎng)絡(luò )上至少存在3個(gè)空閑位(隱性位)時(shí)開(kāi)始發(fā)送,采用硬同步,所有的控制器同步都為與幀的起始的前沿。過(guò)了一定時(shí)間,并在一定條件后,重同步。
(2),仲裁:各節點(diǎn)向總線(xiàn)發(fā)電平時(shí),也對總線(xiàn)上電平進(jìn)行讀取,并于自身發(fā)送的電平進(jìn)行比較,相同則發(fā)下一位,直至全部發(fā)完。不同則說(shuō)明網(wǎng)絡(luò )上有更高優(yōu)先級的信息幀正在發(fā)送,即停止發(fā)送,退出競爭。
(3),編碼/解碼:幀起始域,仲裁域,控制域,數據域和CRC序列均使用位填充技術(shù)進(jìn)行編碼,就是5個(gè)連續的同狀態(tài)電平插入一位與它相補的電平,還原時(shí)每5個(gè)同狀態(tài)的電平后的相補電平被刪除。
(4),出錯標注:當檢測到位錯誤,填充錯誤,形式錯誤或應答錯誤時(shí),檢測出錯條件的CAN控制器將發(fā)送一個(gè)出錯標志。
(5),超載標注,一些控制器會(huì )發(fā)送一個(gè)或多個(gè)超載幀以延遲下一個(gè)數據幀或遠程幀的發(fā)送。
相關(guān)組織
依據國際標準化組織/開(kāi)放系統互連(International Standardi-zation Organization/Open SystemInterconnection,ISO/OSI)參考模型,CAN的ISO/OSI參考模型的層結構如圖7-6所示。
概念和特征
下面對CAN協(xié)議的媒體訪(fǎng)問(wèn)控制子層的一些概念和特征做如下說(shuō)明:
(1)報文(Message)總線(xiàn)上的報文以不同報文格式發(fā)送,但長(cháng)度受到限制。當總線(xiàn)空閑時(shí),任何一個(gè)網(wǎng)絡(luò )上的節點(diǎn)都可以發(fā)送報文。
(2)信息路由(Information Routing)在CAN中,節點(diǎn)不使用任何關(guān)于系統配置的報文,比如站地址,由接收節點(diǎn)根據報文本身特征判斷是否接收這幀信息。因此系統擴展時(shí),不用對應用層以及任何節點(diǎn)的軟件和硬件作改變,可以直接在CAN中增加節點(diǎn)。
(3)標識符(Identifier)要傳送的報文有特征標識符(是數據幀和遠程幀的一個(gè)域),它給出的不是目標節點(diǎn)地址,而是這個(gè)報文本身的特征。信息以廣播方式在網(wǎng)絡(luò )上發(fā)送,所有節點(diǎn)都可以接收到。節點(diǎn)通過(guò)標識符判定是否接收這幀信息。
(4)數據一致性應確保報文在CAN里同時(shí)被所有節點(diǎn)接收或同時(shí)不接收,這是配合錯誤處理和再同步功能實(shí)現的。
(5)位傳輸速率不同的CAN系統速度不同,但在一個(gè)給定的系統里,位傳輸速率是唯一的,并且是固定的。
(6)優(yōu)先權 由發(fā)送數據的報文中的標識符決定報文占用總線(xiàn)的優(yōu)先權。標識符越小,優(yōu)先權越高。
(7)遠程數據請求(Remote Data Request)通過(guò)發(fā)送遠程幀,需要數據的節點(diǎn)請求另一節點(diǎn)發(fā)送相應的數據?;貞濣c(diǎn)傳送的數據幀與請求數據的遠程幀由相同的標識符命名。
(8)仲裁(Arbitration)只要總線(xiàn)空閑,任何節點(diǎn)都可以向總線(xiàn)發(fā)送報文。如果有兩個(gè)或兩個(gè)以上的節點(diǎn)同時(shí)發(fā)送報文,就會(huì )引起總線(xiàn)訪(fǎng)問(wèn)碰撞。通過(guò)使用標識符的逐位仲裁可以解決這個(gè)碰撞。仲裁的機制確保了報文和時(shí)間均不損失。當具有相同標識符的數據幀和遠程幀同時(shí)發(fā)送時(shí),數據幀優(yōu)先于遠程幀。在仲裁期間,每一個(gè)發(fā)送器都對發(fā)送位的電平與被監控的總線(xiàn)電平進(jìn)行比較。如果電平相同,則這個(gè)單元可以繼續發(fā)送,如果發(fā)送的是“隱性”電平而監視到的是“顯性”電平,那么這個(gè)單元就失去了仲裁,必須退出發(fā)送狀態(tài)。
(9)總線(xiàn)狀態(tài) 總線(xiàn)有“顯性”和“隱性”兩個(gè)狀態(tài),“顯性”對應邏輯“0”,“隱性”對應邏輯“1”。“顯性”狀態(tài)和“隱性”狀態(tài)與為“顯性”狀態(tài),所以?xún)蓚€(gè)節點(diǎn)同時(shí)分別發(fā)送“0”和“1”時(shí),總線(xiàn)上呈現“0”。CAN總線(xiàn)采用二進(jìn)制不歸零(NRZ)編碼方式,所以總線(xiàn)上不是“0”,就是“1”。但是CAN協(xié)議并沒(méi)有具體定義這兩種狀態(tài)的具體實(shí)現方式,如圖7-7所示。 (10)故障界定(Confinement) CAN節點(diǎn)能區分瞬時(shí)擾動(dòng)引起的故障和永久性故障。故障節點(diǎn)會(huì )被關(guān)閉。
(11)應答接收節點(diǎn)對正確接收的報文給出應答,對不一致報文進(jìn)行標記。
(12)CAN通訊距離最大是10公里(設速率為5Kbps),或最大通信速率為1Mbps(設通信距離為40米)。
(13)CAN總線(xiàn)上的節點(diǎn)數可達110個(gè)。通信介質(zhì)可在雙絞線(xiàn),同軸電纜,光纖中選擇。
(14)報文是短幀結構,短的傳送時(shí)間使其受干擾概率低,CAN有很好的效驗機制,這些都保證了CAN通信的可靠性。
2 CAN總線(xiàn)協(xié)議內容
CAN總線(xiàn)的物理層是將ECU連接至總線(xiàn)的驅動(dòng)電路。ECU的總數將受限于總線(xiàn)上的電氣負荷。物理層定義了物理數據在總線(xiàn)上各節點(diǎn)間的傳輸過(guò)程,主要是連接介質(zhì)、線(xiàn)路電氣特性、數據的編碼/解碼、位定時(shí)和同步的實(shí)施標準。
總線(xiàn)競爭的原則
BOSCH CAN基本上沒(méi)有對物理層進(jìn)行定義,但基于CAN的ISO標準對物理層進(jìn)行了定義。設計一個(gè)CAN系統時(shí),物理層具有很大的選擇余地,但必須保證CAN協(xié)議中媒體訪(fǎng)問(wèn)層非破壞性位仲裁的要求,即出現總線(xiàn)競爭時(shí),具有較高優(yōu)先權的報文獲取總線(xiàn)競爭的原則,所以要求物理層必須支持CAN總線(xiàn)中隱性位和顯性位的狀態(tài)特征。在沒(méi)有發(fā)送顯性位時(shí),總線(xiàn)處于隱性狀態(tài),空閑時(shí),總線(xiàn)處于隱性狀態(tài);當有一個(gè)或多個(gè)節點(diǎn)發(fā)送顯性位,顯性位覆蓋隱性位,使總線(xiàn)處于顯性狀態(tài)。
在此基礎上,物理層主要取決于傳輸速度的要求。從物理結構上看,CAN節點(diǎn)的構成如圖7-8所示。在CAN中,物理層從結構上可分為三層:分別是物理層信令(Physical Layer Signaling,PLS)、物理介質(zhì)附件(Physical MediaAttachment,PMA)層和介質(zhì)從屬接口(Media Dependent:Inter-face,MDI)層。其中PLS連同數據鏈路層功能由CAN控制器完成,PMA層功能由CAN收發(fā)器完成,MDI層定義了電纜和連接器的特性。目前也有支持CAN的微處理器內部集成了CAN控制器和收發(fā)器電路,如MC68HC908GZl6。PMA和MDI兩層有很多不同的國際或國家或行業(yè)標準,也可自行定義,比較流行的是ISOll898定義的高速CAN發(fā)送/接收器標準。
節點(diǎn)數量
理論上,CAN總線(xiàn)上的節點(diǎn)數幾乎不受限制,可達到2000個(gè),實(shí)際上受電氣特性的限制,最多只能接100多個(gè)節點(diǎn)。
CAN的數據鏈路層
CAN的數據鏈路層是其核心內容,其中邏輯鏈路控制(Logical Link control,LLC)完成過(guò)濾、過(guò)載通知和管理恢復等功能,媒體訪(fǎng)問(wèn)控制(Medium Aeeess control,MAC)子層完成數據打包/解包、幀編碼、媒體訪(fǎng)問(wèn)管理、錯誤檢測、錯誤信令、應答、串并轉換等功能。這些功能都是圍繞信息幀傳送過(guò)程展開(kāi)的。
3 CAN總線(xiàn)的報文傳輸和結構
報文類(lèi)型
在CAN2.0B的版本協(xié)議中有兩種不同的幀格式,不同之處為標識符域的長(cháng)度不同,含有ll位標識符的幀稱(chēng)之為標準幀,而含有29位標識符的幀稱(chēng)為擴展幀。如CAN1.2版本協(xié)議所描述,兩個(gè)版本的標準數據幀格式和遠程幀格式分別是等效的,而擴展格式是CAN2.0B協(xié)議新增加的特性。為使控制器設計相對簡(jiǎn)單,并不要求執行完全的擴展格式,對于新型控制器而言,必須不加任何限制的支持標準格式。但無(wú)論是哪種幀格式,在報文
幀類(lèi)型
傳輸時(shí)都有以下四種不同類(lèi)型的幀:
(1)數據幀(Data )數據幀將數據從發(fā)送器傳輸到接收器。
(2)遠程幀(Remote )總線(xiàn)單元發(fā)出遠程幀,請求發(fā)送具有同一標識符的數據幀。
(3)錯誤幀(Error )任何單元檢測到總線(xiàn)錯誤就發(fā)出錯誤幀。
(4)過(guò)載幀(Overload )過(guò)載幀用在相鄰數據幀或遠程幀之間提供附加的延時(shí)。
數據幀或遠程幀與前一個(gè)幀之間都會(huì )有一個(gè)隔離域,即幀間間隔。數據幀和遠程幀可以使用標準幀及擴展幀兩種格式。
評論