CAN總線技術(shù)特點(diǎn)及DeviceNet
CAN總線簡(jiǎn)稱(chēng)為控制器局部網(wǎng) (CAN) ,最早由德國(guó)BOSCH公司提出 ,主要應(yīng)用于汽車(chē)內(nèi)部強(qiáng)干擾環(huán)境下的電器之間的數(shù)據(jù)可靠通信。但由于其優(yōu)異的性能 ,現(xiàn)已被許多領(lǐng)域廣泛采用和推廣。 1 991年 9月PhilipsSemiconductors制訂并發(fā)布了CAN技術(shù)規(guī)范 (Version 2 . 0?。梁停? ,1 993年 1 1月ISO正式頒布了道路交通運(yùn)載工具―――數(shù)字信息交換 高速通信控制器局部網(wǎng) (CAN)國(guó)家標(biāo)準(zhǔn) (ISO 1 1 898) ,為控制器局部網(wǎng)標(biāo)準(zhǔn)化、規(guī)范化推廣鋪平道路?,F(xiàn)場(chǎng)總線技術(shù)發(fā)展很快 ,底層采用CAN總線協(xié)議的DeviceNet現(xiàn)場(chǎng)總線技術(shù)是其中比較重要的一種 ,因?yàn)樗且粋€(gè)低端網(wǎng)絡(luò)系統(tǒng) ,所起的作用是在簡(jiǎn)單的工業(yè)設(shè)備 (如傳感器、操動(dòng)器等 )與高端設(shè)備 (控制器 )之間提供連接 ,所以在低壓電器等領(lǐng)域取得了飛速的發(fā)展。
2 CAN總線
CAN總線是一種串行數(shù)據(jù)通信協(xié)議。它是一種多主總線 ,通信介質(zhì)可采用雙絞線、同軸電纜或光纖。通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能 ,可完成對(duì)通信數(shù)據(jù)的組幀處理。CAN總線的最高通信速率可達(dá) 1Mb/s ,在DeviceNet總線中只用了 1 2 5Kb/s、2 50Kb/s、50 0Kb/s三檔。下面就CAN總線的主要技術(shù)特點(diǎn)簡(jiǎn)要加以說(shuō)明。圖 1描述了在DeviceNet總線技術(shù)中使用CAN總線協(xié)議作為媒體訪問(wèn)控制 (MAC)和物理層信號(hào) (PLS)的協(xié)議規(guī)范。請(qǐng)注意 ,DeviceNet總線只使用了CAN 2 .0A中的有關(guān)定義 ,并不支持CAN 2 . 0B中的擴(kuò)展報(bào)文格式。下面結(jié)合DeviceNet總線具體介紹CAN 2 .0A中的一些重要技術(shù)特點(diǎn)。
3?。茫粒捂溌穼訉ぶ?BR> ?。茫粒问且环N基于廣播方式的協(xié)議。各種在網(wǎng)上傳輸?shù)?a class="contentlabel" href="http://cafeforensic.com/news/listbylabel/label/數(shù)據(jù)幀">數(shù)據(jù)幀都被分配一個(gè)標(biāo)識(shí)符 ,每個(gè)節(jié)點(diǎn)根據(jù)這些標(biāo)識(shí)符 ,確定是否接收這些幀。這個(gè)標(biāo)識(shí)符是在CAN幀的標(biāo)識(shí)區(qū)中指定的。同以往的主 從結(jié)構(gòu)相區(qū)別的是 :CAN支持多主形式。這意味著網(wǎng)絡(luò)上的任意一個(gè)節(jié)點(diǎn)在合適的時(shí)機(jī) ,都可以主動(dòng)向網(wǎng)上發(fā)送信息 ,這樣一來(lái)大大提高了網(wǎng)絡(luò)對(duì)意外事件的反應(yīng)能力。該多主形式的實(shí)現(xiàn) ,主要依賴(lài)于CAN先進(jìn)的無(wú)損逐位仲裁機(jī)制。
4?。茫粒螏?lèi)型和幀結(jié)構(gòu)
?。茫粒味x下列幀的類(lèi)型 :①數(shù)據(jù)幀。將數(shù)據(jù)從發(fā)送器發(fā)送到接收器。②遠(yuǎn)程幀。請(qǐng)求傳送指定標(biāo)識(shí)符的數(shù)據(jù)幀 (DeviceNet并不使用CAN的遠(yuǎn)程幀 ) ;③錯(cuò)誤幀。標(biāo)明一個(gè)節(jié)點(diǎn)檢測(cè)到了總線/網(wǎng)絡(luò)故障 ;④超載幀。在幀的發(fā)送之間提供一個(gè)延時(shí)來(lái)控制數(shù)據(jù)的流動(dòng)。一個(gè)數(shù)據(jù)幀由七個(gè)不同區(qū)域組成 ,如圖 2所示。
其中 :仲裁區(qū)主要用于標(biāo)識(shí)信息內(nèi)容以及決定信息優(yōu)先級(jí)的高低。控制區(qū)包含數(shù)據(jù)區(qū)的長(zhǎng)度信息 ,數(shù)據(jù)區(qū)的長(zhǎng)度為 0~ 8byte。由于CAN的數(shù)據(jù)包傳送采用CRC循環(huán)冗余碼檢驗(yàn) ,所以數(shù)據(jù)通信誤碼率極低。CRC區(qū)中包含的就是用于CRC檢驗(yàn)的序列 ,由發(fā)送器初始化產(chǎn)生。當(dāng)接收器計(jì)算的CRC值不符合發(fā)送器發(fā)送的CRC值 ,則檢測(cè)到CRC錯(cuò)誤 ,要求發(fā)送器重新發(fā)送。所有接收到匹配CRC序列的節(jié)點(diǎn) ,通過(guò)ACK區(qū)給發(fā)送節(jié)點(diǎn)返回一個(gè)應(yīng)答。
5?。茫粒蚊襟w訪問(wèn)控制
CAN節(jié)點(diǎn)的發(fā)送可以被網(wǎng)絡(luò)上其他所有節(jié)點(diǎn)監(jiān)聽(tīng)并應(yīng)答。只要總線處于發(fā)送空閑狀態(tài) ,任一節(jié)點(diǎn)都可以開(kāi)始發(fā)送。如果一個(gè)節(jié)點(diǎn)正在發(fā)送 ,其他一個(gè)節(jié)點(diǎn)必須要等這一節(jié)點(diǎn)發(fā)送完成后才能開(kāi)始發(fā)送信號(hào)。如果兩個(gè)或多個(gè)節(jié)點(diǎn)在同一時(shí)間開(kāi)始發(fā)送 ,通過(guò)使用仲裁區(qū)的無(wú)損逐位仲裁算法來(lái)解決。仲裁區(qū)包含在所有CAN數(shù)據(jù)幀中。仲裁區(qū)包括 1 1位CAN標(biāo)識(shí)符區(qū)和一個(gè)RTR位。RTR位表示這個(gè)幀是一個(gè)實(shí)際的數(shù)據(jù)幀還是一個(gè)遠(yuǎn)程幀 ,由于DeviceNet不使用CAN提供的遠(yuǎn)程幀 ,所以RTR位始終是顯性的。1 1位標(biāo)識(shí)符場(chǎng)從最高位到最低位順序發(fā)送??偩€上的一位可以是顯性的 (值 0 ) ,也可以是隱性的 (值 1 )。一個(gè)顯性位和一個(gè)隱性位同時(shí)發(fā)送的結(jié)果是呈現(xiàn)顯性位。在仲裁區(qū)傳送期間 ,每一個(gè)發(fā)送器都監(jiān)視總線上的當(dāng)前電平 ,并與它已經(jīng)發(fā)送的位電平進(jìn)行比較。如果值相等 ,那么這個(gè)節(jié)點(diǎn)可以繼續(xù)發(fā)送 ;如果發(fā)送了一個(gè)隱性位 (值1 ) ,同時(shí)在總線上監(jiān)視到一個(gè)顯性位 (值 0 ) ,那么此發(fā)送節(jié)點(diǎn)將失去仲裁權(quán) ,同時(shí)必須停止發(fā)送數(shù)據(jù)。失去仲裁權(quán)的節(jié)點(diǎn)可以在當(dāng)前發(fā)送完成的時(shí)候再次嘗試發(fā)送數(shù)據(jù)。具有最低數(shù)字值的標(biāo)識(shí)符獲得仲裁優(yōu)先權(quán)。
評(píng)論