<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN應(yīng)用層協(xié)議詳解之DeviceNet協(xié)議

          CAN應(yīng)用層協(xié)議詳解之DeviceNet協(xié)議

          作者:ZLG致遠(yuǎn)電子 時(shí)間:2017-04-13 來(lái)源:電子產(chǎn)品世界 收藏

            是基于總線技術(shù)并符合全球工業(yè)標(biāo)準(zhǔn)的開放型通信網(wǎng)絡(luò)。定位于工業(yè)控制的設(shè)備級(jí)網(wǎng)絡(luò),不僅降低了系統(tǒng)的復(fù)雜性,還減少了設(shè)備通信的電纜硬件接線,提高系統(tǒng)可靠性,降低安裝、維護(hù)成本,是分布式控制系統(tǒng)的理想解決方案。

          本文引用地址:http://www.ex-cimer.com/article/201704/346569.htm

            規(guī)范定義了一個(gè)網(wǎng)絡(luò)通信標(biāo)準(zhǔn),以便組成工業(yè)控制系統(tǒng)的各個(gè)設(shè)備之間可以進(jìn)行數(shù)據(jù)通信。規(guī)范除了提供ISO模型的應(yīng)用層定義之外,還定義了部分物理層和數(shù)據(jù)鏈路層。規(guī)范中不僅對(duì)DeviceNet節(jié)點(diǎn)的物理連接也作了規(guī)定,連接器、電纜類型、長(zhǎng)度以及與通信相關(guān)的指示器、開關(guān)、相關(guān)的室內(nèi)銘牌都作了詳細(xì)規(guī)定。

            1.DeviceNet基本概念

            DeviceNet是建立在協(xié)議基礎(chǔ)之上,沿用了協(xié)議所規(guī)定的物理層和數(shù)據(jù)鏈路層,并補(bǔ)充了不同的報(bào)文格式、總線訪問仲裁規(guī)則及故障檢測(cè)和隔離方法。DeviceNet的功能和特點(diǎn)如表1所示。

            表1 DeviceNet特點(diǎn)

            DeviceNet的應(yīng)用層協(xié)議則采用的是通用工業(yè)協(xié)議(CIP)。CIP是一個(gè)在高層面上嚴(yán)格面向?qū)ο蟮膮f(xié)議。每個(gè)CIP對(duì)象具有屬性(數(shù)據(jù)),服務(wù)(命令),連接和行為(屬性值與服務(wù)間的關(guān)系),其主要功能有兩個(gè):一是面向連接的通信;二是定義了標(biāo)準(zhǔn)的工業(yè)應(yīng)用對(duì)象。下文詳細(xì)介紹通信部分。

            CIP通信最重要的特點(diǎn)是它用不同的方式傳輸不同類型的報(bào)文,根據(jù)報(bào)文質(zhì)量要求將需要發(fā)送的報(bào)文分為:顯式報(bào)文和隱式報(bào)文。

            CIP另一個(gè)重要特點(diǎn)是通信基于連接的。因此DeviceNet網(wǎng)絡(luò)上任意兩個(gè)節(jié)點(diǎn)通信之前必須建立起連接,且連接是可以動(dòng)態(tài)建立和撤銷。請(qǐng)注意這里的“連接”是邏輯上的關(guān)系,而非物理層的連接。

            DeviceNet支持兩種類型的連接:顯式信息連接和I/O連接。

            顯式信息連接是點(diǎn)對(duì)點(diǎn)的連接方式,報(bào)文接收方必須對(duì)接到的報(bào)文做出相應(yīng)的響應(yīng),通常這類報(bào)文對(duì)時(shí)間要求不高,主要用于上傳/下載程序、修改設(shè)備參數(shù)、趨勢(shì)分析和診斷等。

            I/O連接則用于傳送實(shí)時(shí)性要求較高的I/O報(bào)文,可以一對(duì)一、一對(duì)多的數(shù)據(jù)傳送。DeviceNet支持多種I/O數(shù)據(jù)觸發(fā)方式,如位選通(Bit strobe)、輪詢(Poll)、狀態(tài)改變(COS:Change Of State)/循環(huán)(Cyclic)等。

            位選通:利用8字節(jié)的廣播報(bào)文,每一位分別對(duì)應(yīng)著網(wǎng)絡(luò)上64個(gè)節(jié)點(diǎn),指定要求響應(yīng)的從節(jié)點(diǎn),響應(yīng)報(bào)文最大為8個(gè)字節(jié)。

            輪詢:這種觸發(fā)方式適用于絕大多數(shù)設(shè)備,相比位選通的少量I/O數(shù)據(jù),輪詢命令可傳送任意數(shù)量的數(shù)據(jù)。輪詢命令依次發(fā)送到各從站設(shè)備,從站接收到命令后做出應(yīng)答。

            狀態(tài)改變:此方式多用于離散的設(shè)備,當(dāng)設(shè)備狀態(tài)發(fā)生改變時(shí),使用事件觸發(fā)方式,發(fā)生通信,而不是依靠主設(shè)備不斷查詢。為了防止設(shè)備掉線,增加了心跳報(bào)文,定時(shí)獲取設(shè)備運(yùn)行狀態(tài)。

            循環(huán):適用于一些模擬設(shè)備,可以根據(jù)設(shè)備信號(hào)發(fā)生快慢,靈活的設(shè)定循環(huán)通信的時(shí)間間隔,可以降低不必要的網(wǎng)絡(luò)流量,循環(huán)時(shí)間設(shè)定值應(yīng)小于模擬量輸入發(fā)生變化的時(shí)間值。每臺(tái)設(shè)備中,循環(huán)和狀態(tài)改變是互斥的,同一時(shí)刻只能使用一種連接方式。

            下面通過圖1介紹DeviceNet網(wǎng)絡(luò)中兩臺(tái)設(shè)備建立通信的一般流程。

            圖1 DeviceNet通信基本流程

            DeviceNet網(wǎng)絡(luò)上最多可有64個(gè)節(jié)點(diǎn),節(jié)點(diǎn)地址(MAC ID)可為0~63,每一個(gè)節(jié)點(diǎn)都具有唯一的MAC ID。因此每個(gè)節(jié)點(diǎn)在上電之后、上線之前必須進(jìn)行重復(fù)MAC ID檢測(cè),以確認(rèn)其MAC ID是否已被網(wǎng)絡(luò)上其它節(jié)點(diǎn)使用。節(jié)點(diǎn)在上電之后,將發(fā)送重復(fù)MAC ID檢測(cè)報(bào)文,間隔一秒,如果連續(xù)兩次發(fā)送都沒有接收到來(lái)自其它節(jié)點(diǎn)的重復(fù)MAC ID響應(yīng)報(bào)文,那么該節(jié)點(diǎn)可以使用此MAC ID并轉(zhuǎn)為在線狀態(tài),否則表示該MAC ID已被其它節(jié)點(diǎn)占用,該節(jié)點(diǎn)為離線狀態(tài)。然后,通過未連接顯式信息建立顯式信息連接,主從站通過顯式信息進(jìn)行各種配置和信息交換,主站通過顯式信息讀取從站的標(biāo)識(shí)信息,并與預(yù)先保存的配置信息進(jìn)行對(duì)比,只有完全一致時(shí)主站才會(huì)對(duì)從站進(jìn)行下一步操作,否則主站將會(huì)主動(dòng)釋放顯式信息連接。最后,建立I/O連接,并通過I/O連接進(jìn)行實(shí)時(shí)數(shù)據(jù)收發(fā)。

            注:不同的主站模塊建立I/O連接的流程有所差別,上文強(qiáng)調(diào)的是DeviceNet網(wǎng)絡(luò)是基于連接的一種通信網(wǎng)絡(luò)。

            DeviceNet 是一個(gè)基于連接的網(wǎng)絡(luò)系統(tǒng)一個(gè)DeviceNet 的連接提供了多個(gè)應(yīng)用之間的路徑當(dāng)建立連接時(shí)與連接相關(guān)的傳送被分配一個(gè)連接ID CID 如果連接包含雙向交換那么應(yīng)當(dāng)分配兩個(gè)連接ID 值見圖2。

             

            圖2 連接及連接ID

            2.DeviceNet 關(guān)于CAN 標(biāo)識(shí)區(qū)的使用

            在DeviceNet 上有效的11 位CAN 標(biāo)識(shí)位被分成4 個(gè)單獨(dú)的信息組組1 組2和組3 和組4。

             

            圖3 DeviceNet的CAN報(bào)文定義

            信 息 ID (Message ID) :在一特定端點(diǎn)內(nèi)的信息組中識(shí)別一個(gè)信息信息ID 使得在一特定的端點(diǎn)內(nèi)單個(gè)信息組中可以建立多重連接連接建立時(shí)該端點(diǎn)利用信息ID與MAC ID 的結(jié)合生成一個(gè)連接ID 該連接ID 在與相應(yīng)傳輸有關(guān)的CAN 標(biāo)識(shí)區(qū)內(nèi)指定具體細(xì)節(jié)在本規(guī)范的后續(xù)部分中將被描述注意組2 和組3 預(yù)定義了確定信息ID 的使用;

            源 MAC ID (Source MAC ID) :此 MAC ID 分配給發(fā)送節(jié)點(diǎn)組1 和3 需要在CAN標(biāo)識(shí)區(qū)內(nèi)指定源MAC ID;

            目 的 MAC ID (Destination MAC ID): 此 MAC ID 分配給接收設(shè)備信息組2 允許在CAN 標(biāo)識(shí)區(qū)的MAC ID 部分指定源或目的MAC ID。

            3.信息組1

            DeviceNet 并不預(yù)定義組1 信息ID 的使用組1 信息ID 描述了通過一個(gè)特別端點(diǎn)交換的各種組1 信息。

            圖4 DeviceNet的信息組1定義

            在組1 的傳輸中總線訪問優(yōu)先權(quán)被均勻地分配到網(wǎng)絡(luò)的所有設(shè)備上當(dāng)兩個(gè)或多個(gè)組1 信息進(jìn)行CAN 總線訪問仲裁時(shí)小數(shù)字的組1 信息ID 值的信息將贏得仲裁并獲得總線訪問權(quán)。例如device #20 message_ID = 2將先于 device #5 message_ID = 6 贏得仲裁。

            如果兩個(gè)或多個(gè)信息ID 值相等的組1 信息進(jìn)行總線仲裁那么來(lái)自MAC ID 值較低的設(shè)備的發(fā)送將贏得仲裁,例如device #2 message_ID=5 將先于 device #3 message_ID=5 贏得仲裁。這樣在組1 中就提供了16 個(gè)級(jí)的優(yōu)先權(quán)均勻分配方案

            4.信息組2

            組2 信息ID 描述了在一個(gè)特定端點(diǎn)上交換各種組2 ,信息組2 中的信息ID 值為6 和7 的用法例外

            DeviceNet 預(yù)定義了一組用于主/從應(yīng)用通訊的連接見第7 章這個(gè)定義保留組2 信息ID 值6。組 2 信息ID 值7 被保留用作被賦予相同MAC ID 節(jié)點(diǎn)的檢測(cè)見第6 章網(wǎng)絡(luò)訪問狀態(tài)機(jī)制。

            在組2 內(nèi)MAC ID 可以是發(fā)送節(jié)點(diǎn)的MAC ID 源MAC ID 也可以是接收節(jié)點(diǎn)的MAC ID 目的MAC ID 當(dāng)通過組2 建立連接時(shí)端點(diǎn)將確定是源MAC ID還是目的MAC ID在組2 傳輸中總線訪問優(yōu)先權(quán)是根據(jù)標(biāo)識(shí)符的MAC ID 部分的MAC ID 值來(lái)決定的當(dāng)兩個(gè)或多個(gè)組2 傳輸進(jìn)行CAN 總線仲裁時(shí)其 MAC ID 數(shù)值較小的信息將獲得總線訪問權(quán)。

            目前,致遠(yuǎn)電子的CANScope總線綜合分析儀已免費(fèi)標(biāo)配CANPRO軟件,可以解析主流的DeviceNet協(xié)議。

            圖5 協(xié)議解析



          關(guān)鍵詞: CAN DeviceNet

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();