CAN總線技術(shù)
- 瀏覽次數(shù):8351次
- 發(fā)布時間:2014/2/18 10:04:00
- 作者:量值溯源
一、概述
CAN(Controller Area Network)即控制器局域網(wǎng),可以歸屬于工業(yè)現(xiàn)場總線的范疇,通常稱為CAN bus,即CAN總線,是目前國際上應用最廣泛的開放式現(xiàn)場總線之一。
CAN 最初出現(xiàn)在汽車工業(yè)中,80年代由德國Bosch公司最先提出。最初動機是為了解決現(xiàn)代汽車中龐大的電子控制裝置之間的通訊,減少不斷增加的信號線。
與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性,它在汽車領(lǐng)域上的應用最為廣泛,世界上一些著名的汽車制造廠商,如BENZ(奔馳)、BMW(寶馬)、volkswagen (大眾)等都采用了CAN總線來實現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測和執(zhí)行機構(gòu)間的數(shù)據(jù)通信。
二、工作原理
CAN總線標準包括物理層、數(shù)據(jù)鏈路層,其中鏈路層定義了不同的信息類型、總線訪問的仲裁規(guī)則及故障檢測與故障處理的方式。
當CAN 總線上的一個節(jié)點(站)發(fā)送數(shù)據(jù)時,它以報文形式廣播給網(wǎng)絡(luò)中所有節(jié)點。
每組報文開頭的11位字符為標識符(CAN2.0A),定義了報文的優(yōu)先級,這種報文格式稱為面向內(nèi)容的編址方案。
當一個節(jié)點要向其它節(jié)點發(fā)送數(shù)據(jù)時,該節(jié)點的CPU 將要發(fā)送的數(shù)據(jù)和自己的標識符傳送給本節(jié)點的CAN芯片,并處于準備狀態(tài);當它收到總線分配時,轉(zhuǎn)為發(fā)送報文狀態(tài)。
三、特點
CAN總線是一種串行數(shù)據(jù)通信協(xié)議,其通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等項工作。
CAN總線特點如下:
?。?)多主機方式工作,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動地向網(wǎng)絡(luò)上的其他節(jié)點發(fā)送信息,而不分主從,通信方式靈活。
(2)網(wǎng)絡(luò)上的節(jié)點(信息)可分成不同的優(yōu)先級,可以滿足不同的實時要求。
(3)采用非破壞性位仲裁總線結(jié)構(gòu)機制,當兩個節(jié)點同時向網(wǎng)絡(luò)上傳送信息時,優(yōu)先級低的節(jié)點主動停止數(shù)據(jù)發(fā)送,而優(yōu)先級高的節(jié)點可不受影響地繼續(xù)傳輸數(shù)據(jù)。
?。?) 可以點對點、一點對多點(成組)及全局廣播幾種傳送方式接收數(shù)據(jù)。
?。?)直接通信距離最遠可達6km(速率10Kbps以下)。
(6)通信速率最高可達1MB/s(此時距離最長30m)。
(7)節(jié)點數(shù)實際可達110個。
?。?)采用短幀結(jié)構(gòu),每一幀的有效字節(jié)數(shù)為8個。
?。?)每幀信息都有CRC校驗及其它檢錯措施,數(shù)據(jù)出錯率極低。
(10)通信介質(zhì)可采用雙絞線,同軸電纜和光導纖維,一般采用廉價的雙絞線即可,無特殊要求。
?。?1)節(jié)點在錯誤嚴重的情況下,具有自動關(guān)閉總線的功能,切斷它與總線的聯(lián)系,以使總線上的其他操作不受影響。
四、CAN總線報文及結(jié)構(gòu)
標準幀 11位標識符
擴展幀 29位標識符
幀類型 數(shù)據(jù)幀、遠程幀、錯誤幀和過載幀
數(shù)據(jù)幀:數(shù)據(jù)幀攜帶數(shù)據(jù)從發(fā)送器至接收器??偩€上傳輸?shù)拇蠖嗍沁@個幀。
遠程幀:由總線單元發(fā)出,請求發(fā)送具有同一識別符的數(shù)據(jù)幀。數(shù)據(jù)幀(或遠程幀)通過幀間空間與其他各幀分開。
錯誤幀:任何單元一但檢測到總線錯誤就發(fā)出錯誤幀。
過載幀:過載幀用以在先行的和后續(xù)的數(shù)據(jù)幀(或遠程幀)之間提供一附加的延時。
五、數(shù)據(jù)幀格式
幀起始(SOF)僅由一顯位構(gòu)成。所有站都必須同步于首先發(fā)送的那個幀起始前沿;
仲裁場(標準格式)由11位標識符ID28~ ID18、遠程發(fā)送請求位 RTR(Remote Transmission Request BIT)組成,其中ID高七位不可全為1(隱性);
仲裁場(擴展格式)由29位標識符ID28~ ID0、SRR位、識別符擴展位IDE(Identifier Extension Bit)位、RTR位組成;
SRR是隱性位,它用于替代標準格式的RTR位。
IDE=1(隱性)代表擴展格式。IDE位在擴展格式中位于仲裁場而在標準格式中位于控制場。
六、位仲裁技術(shù)
只要總線空閑,任何單元都可以開始發(fā)送報文。
要對數(shù)據(jù)進行實時處理,就必須將數(shù)據(jù)快速傳送,這就要求數(shù)據(jù)的物理傳輸通路有較高的速度。在幾個站同時需要發(fā)送數(shù)據(jù)時,要求快速地進行總線分配。
如果2 個或2 個以上的單元同時開始傳送報文,那么就會有總線訪問沖突。通過使用識別符的位形式仲裁可以解決這個沖突。
CAN總線以報文為單位進行數(shù)據(jù)傳送,報文的優(yōu)先級結(jié)合在11位標識符中,具有最低二進制數(shù)的標識符有最高的優(yōu)先級。這種優(yōu)先級一旦在系統(tǒng)設(shè)計時被確立后就不能再被更改??偩€讀取中的沖突可通過位仲裁解決。
仲裁的機制確保信息和時間均不會損失。當具有相同識別符的數(shù)據(jù)幀和遠程幀同時初始化時,數(shù)據(jù)幀優(yōu)先于遠程幀。
CAN總線采用非歸零(NRZ)編碼,所有節(jié)點以“線與”方式連接至總線。如果存在一個節(jié)點向總線傳輸邏輯0,則總線呈現(xiàn)邏輯0狀態(tài),而不管有多少個節(jié)點在發(fā)送邏輯1。CAN網(wǎng)絡(luò)的所有節(jié)點可能試圖同時發(fā)送,但其簡單的仲裁規(guī)則確保僅有一個節(jié)點控制總線、并發(fā)送信息。低有效輸出狀態(tài)(0)起決定性作用。
仲裁期間,每一個發(fā)送器都對發(fā)送位的電平與被監(jiān)控的總線電平進行比較。如果電平相同,則這個單元可以繼續(xù)發(fā)送。如果發(fā)送的是一“隱性”電平(邏輯1)而監(jiān)測到一“顯性”電平(邏輯0),那么該單元就失去了仲裁,必須退出發(fā)送狀態(tài)。