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