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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CANOpen網(wǎng)絡(luò)管理與特殊協(xié)議解刨

          CANOpen網(wǎng)絡(luò)管理與特殊協(xié)議解刨

          作者: 時(shí)間:2016-12-13 來源:網(wǎng)絡(luò) 收藏
          在CANopen創(chuàng)立之初,即使在CAN總線應(yīng)用最廣泛的汽車電子行業(yè),網(wǎng)絡(luò)中的CAN節(jié)點(diǎn)數(shù)量和需要通訊的信息都是比較少的。人們使用CAN取代RS485,主要是看重其可以突發(fā)發(fā)送的實(shí)時(shí)性優(yōu)勢(shì),而在多節(jié)點(diǎn)、長(zhǎng)距離應(yīng)用中,CAN總線和RS485比起來并無優(yōu)勢(shì),比如同樣的波特率下,CAN的通信距離只能達(dá)到RS485的0.6-0.8倍,而多節(jié)點(diǎn)通信CAN無法進(jìn)行任意的突發(fā)發(fā)送,不得不遵循RS485那樣的輪詢通信機(jī)制,否則會(huì)導(dǎo)致?lián)矶拢鐖D1所示。就像這個(gè)十字路口的汽車,如果車只有10輛,即使沒有交通燈,根本不會(huì)擁堵。而如果有100輛,如果任意行駛,就會(huì)發(fā)生嚴(yán)重?fù)矶隆?p>

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

          圖1 CAN的突發(fā)優(yōu)勢(shì)和多節(jié)點(diǎn)擁堵

          CANopen的創(chuàng)始人是非常了解CAN總線這個(gè)特征,所以在設(shè)計(jì)CANopen時(shí),對(duì)其定義為小網(wǎng)絡(luò)、控制信號(hào)的實(shí)時(shí)通訊:

          • 報(bào)文傳輸采用CAN標(biāo)準(zhǔn)幀格式。即11bit的ID域,以盡量減小傳輸時(shí)間;

          • 網(wǎng)絡(luò)控制報(bào)文均采用數(shù)據(jù)最小字節(jié)數(shù)。比如心跳報(bào)文,只有1個(gè)字節(jié)數(shù)據(jù);

          • 實(shí)時(shí)更新的過程數(shù)據(jù)無需接收方報(bào)文應(yīng)答。即采用生產(chǎn)消費(fèi)模型,降低總線負(fù)載;

          • 需要接收方確認(rèn)的配置參數(shù)一般都是采用快速單字傳輸。即1個(gè)報(bào)文最多傳送1個(gè)32字節(jié)的參數(shù)變量,避免了分幀引起的實(shí)時(shí)性降低。

          以上這些定義都是為了節(jié)約時(shí)間開銷,最大限度保證實(shí)時(shí)性。同時(shí)為了減小簡(jiǎn)單網(wǎng)絡(luò)的組態(tài)工作量,CANopen定義了強(qiáng)制性的缺省標(biāo)識(shí)符(CAN幀ID)分配表,以減少使用者與維護(hù)者的學(xué)習(xí)時(shí)間,快速上手。

          網(wǎng)絡(luò)管理(NMT)與特殊協(xié)議(Special protocols)報(bào)文ID分類

          雖然CANopen的通訊發(fā)揮了CAN的特色,所有節(jié)點(diǎn)通信地位平等,運(yùn)行時(shí)允許自行發(fā)送報(bào)文,但CANopen網(wǎng)絡(luò)為了穩(wěn)定可靠可控,都需要設(shè)置一個(gè)網(wǎng)絡(luò)管理主機(jī)NMT-Master(Network Management-Master),就像一個(gè)交響樂團(tuán)的指揮家,所有節(jié)點(diǎn)的啟動(dòng)、停止都是有他進(jìn)行指揮,如圖2所示。


          圖2 NMT-Master就像交響樂指揮家

          NMT主機(jī)一般是CANopen網(wǎng)絡(luò)中具備監(jiān)控的PLC或者PC(當(dāng)然也可以是一般的功能節(jié)點(diǎn)),所以也成為CANopen主站。相對(duì)應(yīng)的其他CANopen節(jié)點(diǎn)就是NMT從機(jī)(NMT-slaves)。

          NMT主機(jī)和NMT從機(jī)之間通訊的報(bào)文就稱為NMT網(wǎng)絡(luò)管理報(bào)文。管理報(bào)文負(fù)責(zé)層管理、網(wǎng)絡(luò)管理和ID分配服務(wù)。例如,初始化、配置和網(wǎng)絡(luò)管理(其中包括節(jié)點(diǎn)保護(hù))。網(wǎng)絡(luò)管理中,同一個(gè)網(wǎng)絡(luò)中只允許有一個(gè)主節(jié)點(diǎn)、一個(gè)或多個(gè)從節(jié)點(diǎn),并遵循主從模式。

          另外,為了協(xié)調(diào)各個(gè)節(jié)點(diǎn)的同步、心跳、時(shí)間、錯(cuò)誤提示等通訊控制,CANopen還定義了一系列特殊協(xié)議(Special protocols)報(bào)文。如表 1所示,為CANopen預(yù)定義報(bào)文(Pre-defined CAN-IDs)的NMT報(bào)文和特殊協(xié)議報(bào)文。

          表1 NMT與特殊協(xié)議的CAN-ID定義

          Object對(duì)象

          Specification規(guī)范

          CAN-ID

          NMT網(wǎng)絡(luò)管理命令

          CiA301

          000h

          Global failsafe command全局故障安全命令

          CiA304

          001h

          Flying master動(dòng)態(tài)主站

          CiA302-2

          071h to 076h

          Indicate active interface標(biāo)示活動(dòng)接口

          CiA302-6

          07Fh

          Sync同步報(bào)文

          CiA301

          080h

          Emergency緊急報(bào)文

          CiA301

          081h to 0FFh(080h +node-ID)

          Time stamp時(shí)間戳報(bào)文

          CiA301

          100h

          Safety-relevant data objects安全相關(guān)數(shù)據(jù)對(duì)象

          CiA301

          101h to 180h

          CAN-ID就是這類報(bào)文的COB-ID,其中讀者必須需要記住的是綠色底紋的這些常用的CAN-ID含義,在研發(fā)和應(yīng)用CANopen中,這三類是最為常用的NMT與特殊協(xié)議報(bào)文。

          USBCAN-E-P與PCI-5010-P主站卡可為PC機(jī)拓展出CANOpen通訊接口,實(shí)現(xiàn)CANOpen協(xié)議的數(shù)據(jù)通信。作為CANOpen網(wǎng)絡(luò)的管理者,實(shí)現(xiàn)全部的CANOpen網(wǎng)絡(luò)管理(NMT)功能。

          CANopen主站卡系列



          評(píng)論


          技術(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); })();