《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > CANopen協(xié)議簡介

CANopen協(xié)議簡介

2009-09-03
作者:致遠電子

1 引言
  在上期文章中介紹了CAN總線,,本期文章中將介紹CANopen協(xié)議相關(guān)概念及其組網(wǎng)方式。
  CANopen協(xié)議是在20世紀(jì)90年代末,,由CIA(CAN in Automation)組織在CAL(CAN Application Layer)的基礎(chǔ)上發(fā)展而來,,一經(jīng)推出便在歐洲得到了廣泛的認(rèn)可與應(yīng)用,。經(jīng)過對CANopen協(xié)議規(guī)范文本的多次修改,使得CANopen協(xié)議的穩(wěn)定性,、實時性,、抗干擾性都得到了進一步的提高。并且CIA在各個行業(yè)不斷推出設(shè)備子協(xié)議,,使CANopen協(xié)議在各個行業(yè)得到更快的發(fā)展與推廣,。目前CANopen協(xié)議已經(jīng)在運動控制、車輛工業(yè),、電機驅(qū)動,、工程機械、船舶海運等行業(yè)得到廣泛的應(yīng)用,。
2 CANopen協(xié)議簡介
  圖1所示為CANopen設(shè)備結(jié)構(gòu),,CANopen協(xié)議通常分為用戶應(yīng)用層、對象字典以及通信三個部分,。其中最為核心的是對象字典,,這部分將在本文以下章節(jié)中介紹。CANopen通信是CANopen關(guān)鍵部分,,其定義了CANopen協(xié)議通信規(guī)則以及與CAN控制器驅(qū)動之間對應(yīng)關(guān)系,,熟悉這部分對全面掌握CANopen協(xié)議至關(guān)重要,這部分將在以下章節(jié)中進行介紹,。用戶應(yīng)用層是用戶根據(jù)實際需求編寫的應(yīng)用對象,,本文對此將不作介紹。

?


3 CANopen對象字典
  CANopen對象字典OD(Object Dictionary)是CANopen協(xié)議最為核心的概念,。所謂的對象字典就是一個有序的對象組,,每個對象采用一個16位的索引值來尋址,這個索引值通常被稱為索引,,其范圍在0x1000~0x9FFF之間,。為了允許訪問數(shù)據(jù)結(jié)構(gòu)中的單個元素,同時也定義了一個8位的索引值,,這個索引值通常被稱為子索引,。
  每個CANopen設(shè)備都有一個對象字典,對象字典包含了描述這個設(shè)備和它的網(wǎng)絡(luò)行為的所有參數(shù),對象字典通常用電子數(shù)據(jù)文檔EDS(Electronic Data Sheet)來記錄這些參數(shù),,而不需要把這些參數(shù)記錄在紙上,。對于CANopen網(wǎng)絡(luò)中的主節(jié)點來說,不需要對CANopen從節(jié)點的每個對象字典項都訪問,。
  CANopen對象字典中的項由一系列子協(xié)議來描述,。子協(xié)議為對象字典中的每個對象都描述了它的功能、名字,、索引,、子索引、數(shù)據(jù)類型,,以及這個對象是否必需,、讀寫屬性等等,這樣可保證不同廠商的同類型設(shè)備兼容,。
  CANopen協(xié)議的核心描述子協(xié)議是DS301,,其包括了CANopen協(xié)議應(yīng)用層及通信結(jié)構(gòu)描述,其他的協(xié)議子協(xié)議都是對DS301協(xié)議描述文本的補充與擴展,。在不同的應(yīng)用行業(yè)都會起草一份CANopen設(shè)備子協(xié)議,,子協(xié)議編號一般是DS4xx。
  CANopen協(xié)議包含了許多的子協(xié)議,,其主要劃分為以下三類:
  (1)通信子協(xié)議(Communication Profile)
  通信子協(xié)議,,描述對象字典的主要形式和對象字典中的通信對象以及參數(shù),。這個子協(xié)議適用所有的CANopen設(shè)備,,其索引值范圍從0x1000~0x1FFF。
  (2)制造商自定義子協(xié)議(Manufacturer-specific Profile)
  制造商自定義子協(xié)議,,對于在設(shè)備子協(xié)議中未定義的特殊功能,,制造商可以在此區(qū)域根據(jù)需求定義對象字典對象。因此這個區(qū)域?qū)τ诓煌膹S商來說,,相同的對象字典項其定義不一定相同,,其索引值范圍為0x2000~0x5FFF。
  (3)設(shè)備子協(xié)議(Device Profile)
  設(shè)備子協(xié)議,,為各種不同類型的設(shè)備定義對象字典中的對象,。目前已有十幾種為不同類型的設(shè)備定義的子協(xié)議,例如DS401,、DS402,、DS406等,其索引值范圍為0x6000~0x9FFF,。
4 CANopen通信
  在CANopen協(xié)議中主要定義了管理報文對象NMT(Network Management),、服務(wù)數(shù)據(jù)對象SDO(Service Data Object)、過程數(shù)據(jù)對象PDO(Process Data Object)、預(yù)定義報文或特殊功能對象等四種對象,。
  (1)管理報文NMT
  管理報文負(fù)責(zé)層管理,、網(wǎng)絡(luò)管理和ID分配服務(wù),例如,,初始化,、配置和網(wǎng)絡(luò)管理(其中包括節(jié)點保護)。網(wǎng)絡(luò)管理中,,同一個網(wǎng)絡(luò)中只允許有一個主節(jié)點及一個或多個從節(jié)點,,并遵循主從模式。
  (2)服務(wù)數(shù)據(jù)對象SDO
  SDO主要用于主節(jié)點對從節(jié)點的參數(shù)配置,。服務(wù)確認(rèn)是SDO的最大特點,,為每個消息都生成一個應(yīng)答,確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,。在一個CANopen系統(tǒng)中,,通常CANopen從節(jié)點作為SDO服務(wù)器,CANopen主節(jié)點作為客戶端,??蛻舳送ㄟ^索引和子索引,能夠訪問數(shù)據(jù)服務(wù)器上的對象字典,。這樣CANopen主節(jié)點可以訪問從節(jié)點的任意對象字典項的參數(shù),,并且SDO也可以傳輸任何長度的數(shù)據(jù)(當(dāng)數(shù)據(jù)長度超過4 B時就拆分成多個報文來傳輸)。
  (3)過程數(shù)據(jù)對象PDO
  PDO用來傳輸實時數(shù)據(jù),,其傳輸模型為生產(chǎn)者消費者模型,,如圖2所示。數(shù)據(jù)長度被限制為1~8 B,。PDO通信對象具有如下的特點:


 ?、貾DO通信沒有協(xié)議規(guī)定,PDO數(shù)據(jù)內(nèi)容由它的CAN-ID(也可稱為COB-ID)定義,。
 ?、诿總€PDO在對象字典中用2個對象描述:
  · PDO通信參數(shù),該通信參數(shù)定義了該設(shè)備所使用的COB-ID,、傳輸類型,、定時周期;
  · PDO映射參數(shù),,映射參數(shù)包含了一個對象字典中的對象列表,,這些對象映射到相應(yīng)的PDO,其中包括數(shù)據(jù)的長度(單位為bit),,對于生產(chǎn)者和消費者都必須要知道這個映射參數(shù),,才能夠正確地解釋PDO內(nèi)容,。
?  ③PDO消息內(nèi)容是預(yù)定義的,,如果PDO支持可變PDO映射,,那么該PDO可以通過SDO進行配置。
 ?、躊DO可以有多種傳輸方式:
  · 同步傳輸(通過接收同步對象實現(xiàn)同步),,同步傳輸又可分為非周期和周期傳輸。非周期傳輸是由遠程幀預(yù)觸發(fā)或者由設(shè)備子協(xié)議中規(guī)定的對象特定事件預(yù)觸發(fā)傳送,。周期傳輸則是通過接收同步對象(SYNC)來實現(xiàn),,可以設(shè)置1~240個同步對象觸發(fā)。
  · 異步傳輸(由特定事件觸發(fā)),,其觸發(fā)方式可有兩種,,第一種是通過發(fā)送與PDO的COB-ID相同的遠程幀來觸發(fā)PDO的發(fā)送,第二種是由設(shè)備子協(xié)議中規(guī)定的對象特定事件來觸發(fā)(例如定時傳輸,、數(shù)據(jù)變化傳輸?shù)龋?BR>  (4)預(yù)定義報文或特殊功能對象
  預(yù)定義報文或特殊功能對象為CANopen設(shè)備提供特定的功能,,方便CANopen主站對從站管理。在CANopen協(xié)議中,,已經(jīng)為特殊的功能預(yù)定義了COB-ID,,其主要有以下幾種特殊報文:
  ①同步(SYNC),,該報文對象主要實現(xiàn)整個網(wǎng)絡(luò)的同步傳輸,,每個節(jié)點都以該同步報文作為PDO觸發(fā)參數(shù),因此該同步報文的COB-ID具有比較高的優(yōu)先級以及最短的傳輸時間,;
 ?、跁r間標(biāo)記對象(Time Stamp),為各個節(jié)點提供公共的時間參考,;
 ?、劬o急事件對象(Emergency),當(dāng)設(shè)備內(nèi)部發(fā)生錯誤觸發(fā)該對象,,即發(fā)送設(shè)備內(nèi)部錯誤代碼;
 ?、芄?jié)點/壽命保護(Node/Life Guarding),,主節(jié)點可通過節(jié)點保護方式獲取從節(jié)點的狀態(tài),從節(jié)點可通過壽命保護方式獲取主節(jié)點的狀態(tài),;
 ?、輪訄笪膶ο螅˙oot-up),從節(jié)點初始化完成后向網(wǎng)絡(luò)中發(fā)送該對象,,并進入到預(yù)操作狀態(tài),。
5 CANopen預(yù)定義連接集
  CANopen預(yù)定義連接是為了減少網(wǎng)絡(luò)的組態(tài)工作量,,定義了強制性的缺省標(biāo)識符(CAN-ID)分配表,該分配表是基于11位CAN-ID的標(biāo)準(zhǔn)幀格式,。將其劃分為4位的功能碼和7位的節(jié)點號(Node-ID),。如圖3所示,在CANopen中也通常把CAN-ID稱為COB-ID(通信對象編號),。


  其中節(jié)點號由系統(tǒng)集成商給定,,每個CANopen設(shè)備都需要分配一個節(jié)點號,節(jié)點號的范圍為1~127(0不允許被使用),。預(yù)定義連接集定義了4個接收PDO(Receive-PDO),、4個發(fā)送PDO(Transmit-PDO)、1個SDO(占用2個CAN-ID),、1個緊急對象和1個節(jié)點錯誤控制(Node-Error-Control)ID,。也支持不需確認(rèn)的NMT模塊控制服務(wù)、同步(SYNC)和時間標(biāo)志(Time Stamp)對象報文,。
6 CANopen網(wǎng)絡(luò)結(jié)構(gòu)
  圖4所示為CANopen典型的網(wǎng)絡(luò)結(jié)構(gòu),,該網(wǎng)絡(luò)中有一個主節(jié)點,三個從節(jié)點以及一個CANopen網(wǎng)關(guān)掛接的其他設(shè)備,。由于CANopen是基于CAN總線,,因此其也屬于總線型網(wǎng)絡(luò),在布線和維護等方面非常方便,,可最大限度地節(jié)約組網(wǎng)成本,。


  CAN總線作為新型成熟的現(xiàn)場總線已經(jīng)應(yīng)用到生活生產(chǎn)的各個領(lǐng)域。其中基于CAN總線的CANopen協(xié)議,,以其獨特的優(yōu)勢已經(jīng)成為行業(yè)標(biāo)準(zhǔn),,CANopen也必將成為現(xiàn)場總線的發(fā)展趨勢。
  廣州致遠電子有限公司提供各種接口的CANopen接口卡,、CANopen終端設(shè)備(包括數(shù)據(jù)采集,,電機控制等)、CANopen分析儀,、網(wǎng)關(guān)及網(wǎng)橋,、OPC服務(wù)器以及基于CANopen協(xié)議的整套組網(wǎng)方案及應(yīng)用開發(fā)。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。