CAN總線(xiàn)協(xié)議學(xué)習筆記
(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),安全性:為了獲得盡可能高的數據傳輸安全性,在每個(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é)議的物理層和數據鏈路層。
(10),CAN的通信介質(zhì)可為雙絞線(xiàn)或同軸電纜,光纖。
(11),CAN節點(diǎn)在錯誤嚴重情況下具有自動(dòng)關(guān)閉輸出功能。
3,CAN總線(xiàn)基本規則:
(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ā)送
評論