當(dāng)前位置:首頁(yè)銀河百科 │ CAN總線技術(shù)

CAN總線技術(shù)

  • 瀏覽次數(shù):7941次
  • 發(fā)布時(shí)間:2014/2/18 10:04:00
  • 作者:量值溯源

一、概述

  CAN(Controller Area Network)即控制器局域網(wǎng),可以歸屬于工業(yè)現(xiàn)場(chǎng)總線的范疇,通常稱為CAN bus,即CAN總線,是目前國(guó)際上應(yīng)用最廣泛的開(kāi)放式現(xiàn)場(chǎng)總線之一。
  CAN 最初出現(xiàn)在汽車工業(yè)中,80年代由德國(guó)Bosch公司最先提出。最初動(dòng)機(jī)是為了解決現(xiàn)代汽車中龐大的電子控制裝置之間的通訊,減少不斷增加的信號(hào)線。
  與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,它在汽車領(lǐng)域上的應(yīng)用最為廣泛,世界上一些著名的汽車制造廠商,如BENZ(奔馳)、BMW(寶馬)、volkswagen (大眾)等都采用了CAN總線來(lái)實(shí)現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測(cè)和執(zhí)行機(jī)構(gòu)間的數(shù)據(jù)通信。

二、工作原理

  CAN總線標(biāo)準(zhǔn)包括物理層、數(shù)據(jù)鏈路層,其中鏈路層定義了不同的信息類型、總線訪問(wèn)的仲裁規(guī)則及故障檢測(cè)與故障處理的方式。
  當(dāng)CAN 總線上的一個(gè)節(jié)點(diǎn)(站)發(fā)送數(shù)據(jù)時(shí),它以報(bào)文形式廣播給網(wǎng)絡(luò)中所有節(jié)點(diǎn)。
  每組報(bào)文開(kāi)頭的11位字符為標(biāo)識(shí)符(CAN2.0A),定義了報(bào)文的優(yōu)先級(jí),這種報(bào)文格式稱為面向內(nèi)容的編址方案。
  當(dāng)一個(gè)節(jié)點(diǎn)要向其它節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),該節(jié)點(diǎn)的CPU 將要發(fā)送的數(shù)據(jù)和自己的標(biāo)識(shí)符傳送給本節(jié)點(diǎn)的CAN芯片,并處于準(zhǔn)備狀態(tài);當(dāng)它收到總線分配時(shí),轉(zhuǎn)為發(fā)送報(bào)文狀態(tài)。

三、特點(diǎn)

  CAN總線是一種串行數(shù)據(jù)通信協(xié)議,其通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級(jí)判別等項(xiàng)工作。
  CAN總線特點(diǎn)如下:
  (1)多主機(jī)方式工作,網(wǎng)絡(luò)上任意一個(gè)節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,而不分主從,通信方式靈活。
  (2)網(wǎng)絡(luò)上的節(jié)點(diǎn)(信息)可分成不同的優(yōu)先級(jí),可以滿足不同的實(shí)時(shí)要求。  
 ?。?)采用非破壞性位仲裁總線結(jié)構(gòu)機(jī)制,當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)上傳送信息時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)主動(dòng)停止數(shù)據(jù)發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù)。
  (4) 可以點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)(成組)及全局廣播幾種傳送方式接收數(shù)據(jù)。
  (5)直接通信距離最遠(yuǎn)可達(dá)6km(速率10Kbps以下)。
 ?。?)通信速率最高可達(dá)1MB/s(此時(shí)距離最長(zhǎng)30m)。
 ?。?)節(jié)點(diǎn)數(shù)實(shí)際可達(dá)110個(gè)。
 ?。?)采用短幀結(jié)構(gòu),每一幀的有效字節(jié)數(shù)為8個(gè)。
 ?。?)每幀信息都有CRC校驗(yàn)及其它檢錯(cuò)措施,數(shù)據(jù)出錯(cuò)率極低。
 ?。?0)通信介質(zhì)可采用雙絞線,同軸電纜和光導(dǎo)纖維,一般采用廉價(jià)的雙絞線即可,無(wú)特殊要求。
 ?。?1)節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下,具有自動(dòng)關(guān)閉總線的功能,切斷它與總線的聯(lián)系,以使總線上的其他操作不受影響。

四、CAN總線報(bào)文及結(jié)構(gòu)

  標(biāo)準(zhǔn)幀  11位標(biāo)識(shí)符
  擴(kuò)展幀  29位標(biāo)識(shí)符
  幀類型  數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀和過(guò)載幀
  數(shù)據(jù)幀:數(shù)據(jù)幀攜帶數(shù)據(jù)從發(fā)送器至接收器??偩€上傳輸?shù)拇蠖嗍沁@個(gè)幀。
  遠(yuǎn)程幀:由總線單元發(fā)出,請(qǐng)求發(fā)送具有同一識(shí)別符的數(shù)據(jù)幀。數(shù)據(jù)幀(或遠(yuǎn)程幀)通過(guò)幀間空間與其他各幀分開(kāi)。
  錯(cuò)誤幀:任何單元一但檢測(cè)到總線錯(cuò)誤就發(fā)出錯(cuò)誤幀。
  過(guò)載幀:過(guò)載幀用以在先行的和后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí)。 

五、數(shù)據(jù)幀格式

  幀起始(SOF)僅由一顯位構(gòu)成。所有站都必須同步于首先發(fā)送的那個(gè)幀起始前沿;
  仲裁場(chǎng)(標(biāo)準(zhǔn)格式)由11位標(biāo)識(shí)符ID28~ ID18、遠(yuǎn)程發(fā)送請(qǐng)求位    RTR(Remote Transmission Request BIT)組成,其中ID高七位不可全為1(隱性);
  仲裁場(chǎng)(擴(kuò)展格式)由29位標(biāo)識(shí)符ID28~ ID0、SRR位、識(shí)別符擴(kuò)展位IDE(Identifier Extension Bit)位、RTR位組成;
  SRR是隱性位,它用于替代標(biāo)準(zhǔn)格式的RTR位。
  IDE=1(隱性)代表擴(kuò)展格式。IDE位在擴(kuò)展格式中位于仲裁場(chǎng)而在標(biāo)準(zhǔn)格式中位于控制場(chǎng)。

六、位仲裁技術(shù)

  只要總線空閑,任何單元都可以開(kāi)始發(fā)送報(bào)文。
  要對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,就必須將數(shù)據(jù)快速傳送,這就要求數(shù)據(jù)的物理傳輸通路有較高的速度。在幾個(gè)站同時(shí)需要發(fā)送數(shù)據(jù)時(shí),要求快速地進(jìn)行總線分配。 
  如果2 個(gè)或2 個(gè)以上的單元同時(shí)開(kāi)始傳送報(bào)文,那么就會(huì)有總線訪問(wèn)沖突。通過(guò)使用識(shí)別符的位形式仲裁可以解決這個(gè)沖突。
  CAN總線以報(bào)文為單位進(jìn)行數(shù)據(jù)傳送,報(bào)文的優(yōu)先級(jí)結(jié)合在11位標(biāo)識(shí)符中,具有最低二進(jìn)制數(shù)的標(biāo)識(shí)符有最高的優(yōu)先級(jí)。這種優(yōu)先級(jí)一旦在系統(tǒng)設(shè)計(jì)時(shí)被確立后就不能再被更改??偩€讀取中的沖突可通過(guò)位仲裁解決。 
仲裁的機(jī)制確保信息和時(shí)間均不會(huì)損失。當(dāng)具有相同識(shí)別符的數(shù)據(jù)幀和遠(yuǎn)程幀同時(shí)初始化時(shí),數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀。
  CAN總線采用非歸零(NRZ)編碼,所有節(jié)點(diǎn)以“線與”方式連接至總線。如果存在一個(gè)節(jié)點(diǎn)向總線傳輸邏輯0,則總線呈現(xiàn)邏輯0狀態(tài),而不管有多少個(gè)節(jié)點(diǎn)在發(fā)送邏輯1。CAN網(wǎng)絡(luò)的所有節(jié)點(diǎn)可能試圖同時(shí)發(fā)送,但其簡(jiǎn)單的仲裁規(guī)則確保僅有一個(gè)節(jié)點(diǎn)控制總線、并發(fā)送信息。低有效輸出狀態(tài)(0)起決定性作用。 

  仲裁期間,每一個(gè)發(fā)送器都對(duì)發(fā)送位的電平與被監(jiān)控的總線電平進(jìn)行比較。如果電平相同,則這個(gè)單元可以繼續(xù)發(fā)送。如果發(fā)送的是一“隱性”電平(邏輯1)而監(jiān)測(cè)到一“顯性”電平(邏輯0),那么該單元就失去了仲裁,必須退出發(fā)送狀態(tài)。

 


Copyright 2010-2017 www.zjjiangshan.cn, All Rights Reserved 湖南銀河電氣有限公司 版權(quán)所有 湘ICP備09002592號(hào)-5