新聞中心

CAN總線協(xié)議

作者: 時間:2016-12-16 來源:網(wǎng)絡(luò) 收藏
CAN總線協(xié)議概念特征
(1)報文(Message)總線上的數(shù)據(jù)以不同報文格式發(fā)送,但長度受到限制。當總線空閑時,任何一個網(wǎng)絡(luò)上的節(jié)點都可以發(fā)送報文。
(2)信息路由(Information Routing)在CAN中,節(jié)點不使用任何關(guān)于系統(tǒng)配置的報文,比如站地址,由接收節(jié)點根據(jù)報文本身特征判斷是否接收這幀信息。因此系統(tǒng)擴展時,不用對應(yīng)用層以及任何節(jié)點的軟件和硬件作改變,可以直接在CAN中增加節(jié)點。
(3)標識符(Identifier) 要傳送的報文有特征標識符(是數(shù)據(jù)幀和遠程幀的一個域),它給出的不是目標節(jié)點地址,而是這個報文本身的特征。信息以廣播方式在網(wǎng)絡(luò)上發(fā)送,所有節(jié)點都可以接收到。節(jié)點通過標識符判定是否接收這幀信息。
(4)數(shù)據(jù)一致性應(yīng)確保報文在CAN里同時被所有節(jié)點接收或同時不接收,這是配合錯誤處理和再同步功能實現(xiàn)的。
(5)位傳輸速率不同的CAN系統(tǒng)速度不同,但在一個給定的系統(tǒng)里,位傳輸速率是唯一的,并且是固定的。
(6)優(yōu)先權(quán) 由發(fā)送數(shù)據(jù)的報文中的標識符決定報文占用總線的優(yōu)先權(quán)。標識符越小,優(yōu)先權(quán)越高。
(7)遠程數(shù)據(jù)請求(Remote Data Request) 通過發(fā)送遠程幀,需要數(shù)據(jù)的節(jié)點請求另一節(jié)點發(fā)送相應(yīng)的數(shù)據(jù)?;貞?yīng)節(jié)點傳送的數(shù)據(jù)幀與請求數(shù)據(jù)的遠程幀由相同的標識符命名。
(8)仲裁(Arbitration) 只要總線空閑,任何節(jié)點都可以向總線發(fā)送報文。如果有兩個或兩個以上的節(jié)點同時發(fā)送報文,就會引起總線訪問碰撞。通過使用標識符的逐位仲裁可以解決這個碰撞。仲裁的機制確保了報文和時間均不損失。當具有相同標識符的數(shù)據(jù)幀和遠程幀同時發(fā)送時,數(shù)據(jù)幀優(yōu)先于遠程幀。在仲裁期間,每一個發(fā)送器都對發(fā)送位的電平與被監(jiān)控的總線電平進行比較。如果電平相同,則這個單元可以繼續(xù)發(fā)送,如果發(fā)送的是“隱性”電平而監(jiān)視到的是“顯性”電平,那么這個單元就失去了仲裁,必須退出發(fā)送狀態(tài)。
(9)總線狀態(tài) 總線有“顯性”和“隱性”兩個狀態(tài),“顯性”對應(yīng)邏輯“0”,“隱性”對應(yīng)邏輯“1”。“顯性”狀態(tài)和“隱性”狀態(tài)與為“顯性”狀態(tài),所以兩個節(jié)點同時分別發(fā)送“0”和“1”時,總線上呈現(xiàn)“0”。CAN總線采用二進制不歸零(NRZ)編碼方式,所以總線上不是“0”,就是“1”。但是CAN協(xié)議并沒有具體定義這兩種狀態(tài)的具體實現(xiàn)方式。
(10)故障界定(Confinement) CAN節(jié)點能區(qū)分瞬時擾動引起的故障和永久性故障。故障節(jié)點會被關(guān)閉。
(11)應(yīng)答接收節(jié)點對正確接收的報文給出應(yīng)答,對不一致報文進行標記。
(12)CAN通訊距離最大是10公里(設(shè)速率為5Kbps),或最大通信速率為1Mbps(設(shè)通信距離為40米)。
(13)CAN總線上的節(jié)點數(shù)可達110個。通信介質(zhì)可在雙絞線,同軸電纜,光纖中選擇。
(14)報文是短幀結(jié)構(gòu),短的傳送時間使其受干擾概率低,CAN有很好的校驗機制,這些都保證了CAN通信的可靠性。
CAN總線協(xié)議內(nèi)容
CAN總線的物理層是將ECU連接至總線的驅(qū)動電路。ECU的總數(shù)將受限于總線上的電氣負荷。物理層定義了物理數(shù)據(jù)在總線上各節(jié)點間的傳輸過程,主要是連接介質(zhì)、線路電氣特性、數(shù)據(jù)的編碼/解碼、位定時和同步的實施標準。
總線競爭的原則
BOSCH CAN基本上沒有對物理層進行定義,但基于CAN的ISO標準對物理層進行了定義。設(shè)計一個CAN系統(tǒng)時,物理層具有很大的選擇余地,但必須保證CAN協(xié)議中媒體訪問層非破壞性位仲裁的要求,即出現(xiàn)總線競爭時,具有較高優(yōu)先權(quán)的報文獲取總線競爭的原則,所以要求物理層必須支持CAN總線中隱性位和顯性位的狀態(tài)特征。在沒有發(fā)送顯性位時,總線處于隱性狀態(tài),空閑時,總線處于隱性狀態(tài);當有一個或多個節(jié)點發(fā)送顯性位,顯性位覆蓋隱性位,使總線處于顯性狀態(tài)。
在此基礎(chǔ)上,物理層主要取決于傳輸速度的要求。從物理結(jié)構(gòu)上看,CAN節(jié)點的構(gòu)成如圖7-8所示。在CAN中,物理層從結(jié)構(gòu)上可分為三層:分別是物理信號層(Physical Layer Signaling,PLS)、物理介質(zhì)附件(Physical MediaAttachment,PMA)層和介質(zhì)從屬接口(Media Dependent:Inter-face,MDI)層。其中PLS連同數(shù)據(jù)鏈路層功能由CAN控制器完成,PMA層功能由CAN收發(fā)器完成,MDI層定義了電纜和連接器的特性。目前也有支持CAN的微處理器內(nèi)部集成了CAN控制器和收發(fā)器電路,如MC68HC908GZl6。PMA和MDI兩層有很多不同的國際或國家或行業(yè)標準,也可自行定義,比較流行的是ISOll898定義的高速CAN發(fā)送/接收器標準。
節(jié)點數(shù)量
理論上,CAN總線上的節(jié)點數(shù)幾乎不受限制,可達到2000個,實際上受電氣特性的限制,最多只能接100多個節(jié)點。
CAN的數(shù)據(jù)鏈路層
CAN的數(shù)據(jù)鏈路層是其核心內(nèi)容,其中邏輯鏈路控制(Logical Link control,LLC)完成過濾、過載通知和管理恢復(fù)等功能,媒體訪問控制(Medium Access control,MAC)子層完成數(shù)據(jù)打包/解包、幀編碼、媒體訪問管理、錯誤檢測、錯誤信令、應(yīng)答、串并轉(zhuǎn)換等功能。這些功能都是圍繞信息幀傳送過程展開的。
報文傳輸
報文類型
在CAN2.0B的版本協(xié)議中有兩種不同的幀格式,不同之處為標識符域的長度不同,含有l(wèi)l位標識符的幀稱之為標準幀,而含有29位標識符的幀稱為擴展幀。如CAN1.2版本協(xié)議所描述,兩個版本的標準數(shù)據(jù)幀格式和遠程幀格式分別是等效的,而擴展格式是CAN2.0B協(xié)議新增加的特性。為使控制器設(shè)計相對簡單,并不要求執(zhí)行完全的擴展格式,對于新型控制器而言,必須不加任何限制的支持標準格式。但無論是哪種幀格式,在報文傳輸時都有以下四種不同類型的幀:
幀類型
(1)數(shù)據(jù)幀(Data ) 數(shù)據(jù)幀將數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌鳌?/div>
(2)遠程幀(Remote ) 總線單元發(fā)出遠程幀,請求發(fā)送具有同一標識符的數(shù)據(jù)幀。
(3)錯誤幀(Error ) 任何單元檢測到總線錯誤就發(fā)出錯誤幀。
(4)過載幀(Overload ) 過載幀用在相鄰數(shù)據(jù)幀或遠程幀之間提供附加的延時。
數(shù)據(jù)幀或遠程幀與前一個幀之間都會有一個隔離域,即幀間間隔。數(shù)據(jù)幀和遠程幀可以使用標準幀及擴展幀兩種格式。
CAN總線應(yīng)用領(lǐng)域
CAN總線最初是德國BOSCH為汽車行業(yè)的監(jiān)測,控制而設(shè)計的?,F(xiàn)已應(yīng)用到鐵路、交通、國防、工程、工業(yè)機械、紡織、農(nóng)用機械、數(shù)控、醫(yī)療器械機器人、樓宇、安防等方面。目前大多數(shù)CAN控制器只做到鏈路層,然而隨著CAN的發(fā)展和應(yīng)用,應(yīng)用層的硬件設(shè)計也成為硬件廠商的考慮范疇。


關(guān)鍵詞: CAN總線協(xié)議報文格

評論


技術(shù)專區(qū)

關(guān)閉