精品乱码一区内射人妻无码-亚洲中文AⅤ中文字幕在线-免费不卡国产福利在线观看-国产综合无码一区二区色蜜蜜

          上海锝秉工控設(shè)備有限公司
          免費會員
          德國倍加福P+F
          基恩士光纖放大器
          基恩士傳感器
          倍加福P+F傳感器
          SICK施克編碼器
          倍加福P+F編碼器
          倍加福P+F安全柵
          SICK西克
          MTL安全柵
          圖爾克TURCK
          BANNER邦納
          MTS傳感器
          BALLUFF巴魯夫
          IFM易福門
          PHOENIX CONTACT菲尼克斯
          歐姆龍OMRON
          HYDAC賀德克
          HEIDENHAIN海德漢
          SMC
          FESTO費斯托
          CKD喜開理
          Rexroth力士樂
          美國ASCO
          BURKERT寶德
          KOYO光洋編碼器
          變頻器
          瑞士通RESATRON編碼器
          萊卡LIKA編碼器
          HLE渡邊編碼器
          梅爾MEYLE編碼器
          海德HEDSS編碼器
          帝爾TR編碼器
          帝爾TR
          ELTRA意爾創(chuàng)編碼器
          海德漢HEIDENHAIN
          其它進(jìn)口產(chǎn)品
          德國VEGA物位計
          庫伯勒

          DeviceNet總線應(yīng)用層協(xié)議的實現(xiàn)

          時間:2013-10-31閱讀:640
          分享:

          一、DeviceNet簡介

          DeviceNet(設(shè)備網(wǎng))是20世紀(jì)90年代中期發(fā)展起來的一種基于CAN技術(shù)的開放型,低成本、高性能的通信網(wǎng)絡(luò),目前已成為底層現(xiàn)場總線標(biāo)準(zhǔn)之一。在DeviceNet現(xiàn)場總線體系中屬于設(shè)備級的總線協(xié)議,在協(xié)議的分層結(jié)構(gòu)中,它只包括ISO開放系統(tǒng)七層模型結(jié)構(gòu)中三層,即物理層、數(shù)據(jù)鏈路層和應(yīng)用層。

          DeviceNet是基于CAN總線實現(xiàn)的現(xiàn)場總線協(xié)議,因此它的許多特性*沿襲于CAN,是一種無沖突的載波偵聽總線協(xié)議。這樣的協(xié)議在載波偵聽方面與以太網(wǎng)是一樣的,它的特別之處是:當(dāng)總線上的多個節(jié)點在偵聽到總線空閑時,同時向總線發(fā)送數(shù)據(jù)。

          在CAN總線中,被傳送的每一幀數(shù)據(jù)的優(yōu)先級是由位于幀頭的標(biāo)識來決定,因此它們首先發(fā)送的是各自的標(biāo)識數(shù)據(jù)。此時,只要有一個節(jié)點發(fā)送了位數(shù)據(jù)“0”,那么總線上的所有節(jié)點監(jiān)聽到的總線狀態(tài)就是“0”;相反,只有當(dāng)同時發(fā)送數(shù)據(jù)的節(jié)點所發(fā)送的位數(shù)據(jù)為“1”時,總線的狀態(tài)才為“1”。因此,當(dāng)某個節(jié)點偵聽到網(wǎng)絡(luò)空閑,開始發(fā)送標(biāo)識數(shù)據(jù)以后,如果此節(jié)點在發(fā)送標(biāo)識數(shù)據(jù)段的過程中,偵聽到的總線狀態(tài)與它自身所發(fā)送的數(shù)據(jù)位不一致,則此節(jié)點會認(rèn)為有其他節(jié)點也在發(fā)送數(shù)據(jù),總線處于競爭狀態(tài),而且其他節(jié)點的發(fā)送數(shù)據(jù)具有更高的優(yōu)先級,zui終此節(jié)點停止發(fā)送數(shù)據(jù),節(jié)點返回至總線監(jiān)聽狀態(tài)。

          在目前的CAN2.0版本中,標(biāo)識數(shù)據(jù)可以是11位或29位,DeviceNet只支持11位的標(biāo)識,能夠產(chǎn)生2032種不同的標(biāo)識。在總線中,為了保證在并發(fā)情況下數(shù)據(jù)傳輸?shù)囊恢滦?,不同的?jié)點所發(fā)送數(shù)據(jù)的標(biāo)識是不同的,這樣才不會發(fā)生同時有多個節(jié)點傳輸各自的整個數(shù)據(jù)幀而產(chǎn)生沖突的情況。DeviceNet協(xié)議制定規(guī)范來確定每個DeviceNet節(jié)點數(shù)據(jù)幀標(biāo)識的分配,其中對于應(yīng)用極為普遍的M/S網(wǎng)絡(luò),DeviceNet協(xié)議制定了一套預(yù)先定義好的CAN數(shù)據(jù)幀的標(biāo)識分配方案。

          二、DeviceNet應(yīng)用層協(xié)議

          DeviceNet的應(yīng)用層協(xié)議是用面向?qū)ο蟮姆椒▉磉M(jìn)行描述。它對協(xié)議本身所應(yīng)完成功能進(jìn)行了抽象和定義,把協(xié)議功能劃分為多個模塊,每個模塊抽象出它所具有的屬性、完成的任務(wù)和與其他模塊的接口,然后把這個模塊對象化。DeviceNet應(yīng)用層協(xié)議的對象模型如圖1所示:整個協(xié)議的結(jié)構(gòu)是由對象為基本組成單元;對象之間通過數(shù)據(jù)交換相互。圖中用對象之間的連線來表示這些,下面對這些對象的功能作簡要介紹。非連接通訊對象是用于處理以本設(shè)備為目的地址的非連接數(shù)據(jù)包,它是這個設(shè)備與外部設(shè)備建立連接通訊的起始點。連接通訊對象的功能與非連接通訊對象的功能相對應(yīng),是完成對連接數(shù)據(jù)包的處理。路由對象對從上述2個通訊對象傳來的數(shù)據(jù)包,根據(jù)數(shù)據(jù)包所指示的目的對象地址或此數(shù)據(jù)包所完成的功能,把收到的數(shù)據(jù)分發(fā)到相應(yīng)的對象。數(shù)據(jù)匯集對象把本設(shè)備所需傳輸?shù)臄?shù)據(jù)集合在一起,組成本設(shè)備預(yù)先定義的數(shù)據(jù)格式以便傳輸;而對于收到的數(shù)據(jù),按照一定的格式,抽取相應(yīng)的數(shù)據(jù)發(fā)送給的對象。參數(shù)對象、設(shè)備身份對象和DeviceNet對象是對設(shè)備中的諸多參數(shù)的歸類、封裝,完成的功能比較簡單。應(yīng)用對象是針對具體設(shè)備完成復(fù)雜功能的對象,例如在DeviceNet的協(xié)議規(guī)范中,除了定義了基本的模擬量和數(shù)字量應(yīng)用對象外,對于軟啟動器有軟啟動應(yīng)用對象,對于位置控制器有位置控制器應(yīng)用對象等,而且像這樣定義的特定應(yīng)用設(shè)備的對象還會隨著DeviceNet設(shè)備的發(fā)展而不斷增多。

          三、DeviceNet應(yīng)用層協(xié)議實現(xiàn)

          在實際的DeviceNet產(chǎn)品應(yīng)用中,目前都是M/S結(jié)構(gòu)的協(xié)議實現(xiàn),而且應(yīng)用中zui為普遍的是運用對CAN的標(biāo)識進(jìn)行預(yù)先定義分配的方式來實現(xiàn)DeviceNet網(wǎng)絡(luò)。以下介紹DeviceNet協(xié)議的實現(xiàn)。Redstation是DeviceNet的從設(shè)備,是一種智能開關(guān)設(shè)備,功能較為簡單,整個設(shè)備的應(yīng)用層對象由4個數(shù)字量輸入和2個數(shù)字量輸出組成,通過預(yù)定義CAN標(biāo)識來完成數(shù)據(jù)幀的傳送。

          1、硬件部分

          此設(shè)備的硬件部分主要由MCS51單片機8031,CAN控制器SJA1000,8 kb動態(tài)存儲器6264,64kb EPROM27512,CAN總線驅(qū)動器82c51以及相應(yīng)的外圍電路組成,其原理圖如圖2所示。實際電路中還必須有相應(yīng)的鎖存器、電源保護(hù)電路、看門狗電路和設(shè)置節(jié)點地址及波特率的撥碼開關(guān)等電路單元。

          2、應(yīng)用層協(xié)議部分

          DeviceNet協(xié)議中,應(yīng)用層協(xié)議的實現(xiàn)是通過編制程序來完成。此設(shè)備是基于單片機系統(tǒng)的,在實現(xiàn)過程中采用單片機的C語言。

          DeviceNet應(yīng)用層協(xié)議是通過面向?qū)ο蟮姆绞郊右悦枋龅?,其中對于協(xié)議中的各個對象都詳細(xì)定義了它們的屬性、數(shù)據(jù)類型等基本信息;而且通過事件觸發(fā)方式來具體定義了各個對象的行為:因此在實現(xiàn)過程中,*可以按照面向?qū)ο蟮木幊谭椒▉砭幹茀f(xié)議原代碼。

          在面向?qū)ο缶幊讨校硕x對象的屬性及行為以外,還要構(gòu)造事件驅(qū)動的機制。這里指的事件驅(qū)動的機制包括事件的產(chǎn)生,事件隊列的實現(xiàn),事件處理優(yōu)先級的規(guī)定,以及事件的處理等。在一般的面向?qū)ο蟮木幊讨?,主要是完成事件的處理,其它的與事件相關(guān)的事情都是由操作系統(tǒng)來完成,對編程者來說是透明的,而在此相關(guān)事情則必須編程實現(xiàn)。面向?qū)ο蟮某绦驅(qū)崿F(xiàn)框架使各個對象之間的體現(xiàn)的十分明確,對象之間的關(guān)聯(lián)都是與事件的觸發(fā)緊密相關(guān),整個程序結(jié)構(gòu)非常清晰。

          協(xié)議實現(xiàn)的軟件主體結(jié)構(gòu)如圖3所示,整個軟件的編制工作都是圍繞著“事件”而展開的。“事件”是由外部中斷或程序內(nèi)部產(chǎn)生,在實際程序中用事件變量來實現(xiàn)事件隊列,它是一個無符號的整型變量,每個特定位代表某個具體的事件,如圖4所示。

           

          協(xié)議主程序的結(jié)構(gòu)如圖5所示,在程序的開始是對DeviceNet協(xié)議中的對象的定義,C51編譯器不支持“類”,因此用“結(jié)構(gòu)”類型來定義對象。在完成對CAN控制器和單片機芯片的初始化工作以后,主程序進(jìn)入事件處理的無限循環(huán)。為了能夠及時響應(yīng)高優(yōu)先級事件,在每完成一次事件的處理以后,都要執(zhí)行“e=global_event”語句,刷新事件中間變量e。事件的優(yōu)先級在定義事件的時候就已經(jīng)確定了,低數(shù)據(jù)位事件具有高的優(yōu)先級,如*個數(shù)據(jù)位表示IO輪訊請求事件,它就具有zui高的優(yōu)先級,其他事件的優(yōu)先級隨著在global_event中所被代表的數(shù)據(jù)位的上升而降低。高優(yōu)先級的事件的響應(yīng)較低優(yōu)先級的事件為先,程序中“(e&IO_POLL_REQUEST)&&!(e&(IO_POLL_REQUEST-1))”語句是判定待執(zhí)行的事件是否是事件隊列中具有zui高優(yōu)先級的事件。在進(jìn)入事件處理程序部分以后,首先清除事件隊列中的此事件,以表明此事件已得到響應(yīng),然后再進(jìn)行相應(yīng)的程序執(zhí)行。

          四、結(jié)束語

          DeviceNet的面向?qū)ο蟮膮f(xié)議描述能夠清晰地闡明協(xié)議各模塊之間的數(shù)據(jù)處理關(guān)系,此特點在實現(xiàn)中充分地體現(xiàn)出來;而且對象化的程序?qū)崿F(xiàn)使得程序代碼可以很方便的重復(fù)使用,在開發(fā)不同的設(shè)備時,原先的設(shè)備原代碼大部分可以得到再利用,這樣可以縮短產(chǎn)品開發(fā)的時間,同時也利于在實際應(yīng)用中的推廣。

          會員登錄

          ×

          請輸入賬號

          請輸入密碼

          =

          請輸驗證碼

          收藏該商鋪

          X
          該信息已收藏!
          標(biāo)簽:
          保存成功

          (空格分隔,最多3個,單個標(biāo)簽最多10個字符)

          常用:

          提示

          X
          您的留言已提交成功!我們將在第一時間回復(fù)您~
          在線留言