《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 輕松掌握CANOpen最難理解的對(duì)象字典

輕松掌握CANOpen最難理解的對(duì)象字典

2016-01-09

摘要:CANopen是一種架構(gòu)在控制局域網(wǎng)路(Controller Area Network, CAN)上的高層通訊協(xié)議,其中對(duì)象字典是協(xié)議中最為核心的概念,透徹掌握其相關(guān)內(nèi)容,運(yùn)用CANOpen將會(huì)如魚得水,游刃有余。

CANopen對(duì)象字典(OD: Object Dictionary)是CANopen協(xié)議最為核心的概念。所謂的對(duì)象字典就是一個(gè)有序的對(duì)象組,描述了對(duì)應(yīng)CANopen節(jié)點(diǎn)的所有參數(shù),包括通訊數(shù)據(jù)的存放位置也列入其索引,這個(gè)表變成可以傳遞形式就叫做EDS文件(電子數(shù)據(jù)文檔Electronic Data Sheet)。對(duì)象字典,就像體檢表,具備這個(gè)人每個(gè)功能的參數(shù),便于用人單位(主站)進(jìn)行合理分配工作。如圖 1所示。

圖 1  對(duì)象字典與體檢表

每個(gè)對(duì)象采用一個(gè)16位的索引值來(lái)尋址,這個(gè)索引值通常被稱為索引,其范圍在0x0000到0xFFFF之間。為了避免數(shù)據(jù)大量時(shí)無(wú)索引可分配,所以在某些索引下也定義了一個(gè)8 位的索引值,這個(gè)索引值通常被稱為子索引,其范圍是0x00到0xFF之間。

每個(gè)索引內(nèi)具體的參數(shù),最大用32位的變量來(lái)表示,即Unsigned32,四個(gè)字節(jié)

每個(gè)CANopen設(shè)備都有一個(gè)對(duì)象字典,使用電子數(shù)據(jù)文檔(EDS文件)來(lái)記錄這些參數(shù),而不需要把這些參數(shù)記錄在紙上。對(duì)于CANopen網(wǎng)絡(luò)中的主節(jié)點(diǎn)來(lái)說(shuō),不需要對(duì)CANopen從節(jié)點(diǎn)的每個(gè)對(duì)象字典項(xiàng)都訪問(wèn)。

CANopen對(duì)象字典中的項(xiàng)由一系列子協(xié)議來(lái)描述。子協(xié)議為對(duì)象字典中的每個(gè)對(duì)象都描述了它的功能、名字、索引、子索引、數(shù)據(jù)類型,以及這個(gè)對(duì)象是否必需、讀寫屬性等等,這樣可保證不同廠商的同類型設(shè)備兼容。

CANopen協(xié)議的核心描述子協(xié)議是DS301,其包括了CANopen協(xié)議應(yīng)用層及通信結(jié)構(gòu)描述,其它的協(xié)議子協(xié)議都是對(duì)DS301 協(xié)議描述文本的補(bǔ)充與擴(kuò)展。在不同的應(yīng)用行業(yè)都會(huì)起草一份CANopen設(shè)備子協(xié)議,子協(xié)議編號(hào)一般是DS4xx 。

對(duì)象字典概述

表 1所示,為對(duì)象字典索引區(qū)域定義,其中標(biāo)綠色底紋的通訊對(duì)象子協(xié)議區(qū)制造商特定子協(xié)議區(qū)是用戶需要關(guān)注的區(qū)域。

表 1  對(duì)象字典概述

Index range索引范圍

Description描述

0000h

Reserved保留

0001h to 025Fh

Data types數(shù)據(jù)類型

0260h to 0FFFh

Reserved保留

1000h to 1FFFh

Communication profile area通訊對(duì)象子協(xié)議區(qū)

2000h to 5FFFh

Manufacturer-specific profile area制造商特定子協(xié)議區(qū)

6000h to 9FFFh

Standardized profile area標(biāo)準(zhǔn)化設(shè)備子協(xié)議區(qū)

A000h to AFFFh

Network variables網(wǎng)絡(luò)變量(符合IEC61131-3)

B000h to BFFFh

System variables用于路由網(wǎng)關(guān)的系統(tǒng)變量

C000h to FFFFh

Reserved保留

通訊對(duì)象子協(xié)議區(qū)(Communication profile area)

通訊對(duì)象子協(xié)議區(qū)(Communication profile area)定義了所有和通信有關(guān)的對(duì)象參數(shù),如表 2所示,標(biāo)綠色底紋的索引范圍1000h to 1029h為通用通訊對(duì)象,所有CANopen節(jié)點(diǎn)都必須具備這些索引,否則將無(wú)法加入CANopen網(wǎng)絡(luò)。其他索引根據(jù)實(shí)際情況進(jìn)行分配與定義。

表 2  通訊對(duì)象子協(xié)議區(qū)

Index range索引范圍

Description描述

1000h to 1029h

General communication objects通用通訊對(duì)象

1200h to 12FFh

SDO parameter objects SDO參數(shù)對(duì)象

1300h to 13FFh

CANopen safety objects 安全對(duì)象

1400h to 1BFFh

PDO parameter objects PDO參數(shù)對(duì)象

1F00h to 1F11h

SDO manager objects SDO管理對(duì)象

1F20h to 1F27h

Configuration manager objects配置管理對(duì)象

1F50h to 1F54h

Program control object程序控制對(duì)象

1F80h to 1F89h

NMT master objects網(wǎng)絡(luò)管理主機(jī)對(duì)象

通用通訊對(duì)象(General communication objects)

由于通用通訊對(duì)象十分重要,NMT主站(CANopen主站)在啟動(dòng)時(shí),通常都全部或者部分讀取所有從站中通用通訊對(duì)象中的索引,所以所有的通用通訊對(duì)象都必須在CANopen從站中實(shí)現(xiàn),使用者也必須熟知這些索引地址與其含義。如表 3所示。

表 3  通用通訊對(duì)象

Index索引

Object對(duì)象

Name名字

1000h

VAR變量

Device type設(shè)備類型

1001h

VAR變量

Error register錯(cuò)誤寄存器

1002h

VAR變量

Manufacturer status register制造商狀態(tài)寄存器

1003h

ARRAY數(shù)組

Pre-defined error field預(yù)定義錯(cuò)誤場(chǎng)

1005h

VAR變量

COB-ID Sync message同步報(bào)文COB標(biāo)識(shí)符

1006h

VAR變量

Communication cycle period同步通信循環(huán)周期(單位us)

1007h

VAR變量

Synchronous windows length同步窗口長(zhǎng)度(單位us)

1008h

VAR變量

Manufacturer device name制造商設(shè)備名稱

1009h

VAR變量

Manufacturer hardware version制造商硬件版本

100Ah

VAR變量

Manufacturer software version制造商軟件版本

100Ch

VAR變量

Guard time守護(hù)時(shí)間(單位ms)

100Dh

VAR變量

Life time factor壽命因子(單位ms)

1010h

VAR變量

Store parameters保存參數(shù)

1011h

VAR變量

Restore default parameters恢復(fù)默認(rèn)參數(shù)

1012h

VAR變量

COB-ID time stamp時(shí)間報(bào)文COB標(biāo)識(shí)符(發(fā)送網(wǎng)絡(luò)時(shí)間)

1013h

VAR變量

High resolution time stamp高分辨率時(shí)間標(biāo)識(shí)

1014h

VAR變量

COB-ID emergency緊急報(bào)文COB標(biāo)識(shí)符

1015h

VAR變量

Inhibit time emergency緊急報(bào)文禁止時(shí)間(單位100us)

1016h

ARRAY數(shù)組

Consumer heartbeat time消費(fèi)者心跳時(shí)間間隔(單位ms)

1017h

VAR變量

Producer heartbeat time生產(chǎn)者心跳時(shí)間間隔(單位ms)

1018h

RECORD記錄

Identity object廠商ID標(biāo)識(shí)對(duì)象

1019h

VAR變量

Sync.counter overflow value同步計(jì)數(shù)溢出值

1020h

ARRAY數(shù)組

Verify configuration驗(yàn)證配置

1021h

VAR變量

Store EDS存儲(chǔ)EDS

1022h

VAR變量

Storage format存儲(chǔ)格式

1023h

RECORD記錄

OS command操作系統(tǒng)命令

1024h

VAR變量

OS command mode操作系統(tǒng)命令模式

1025h

RECORD記錄

OS debugger interface操作系統(tǒng)調(diào)試接口

1026h

ARRAY數(shù)組

OS prompt操作系統(tǒng)提示

1027h

ARRAY數(shù)組

Module list模塊列表

1028h

ARRAY數(shù)組

Emergency consumer緊急報(bào)文消費(fèi)者

1029h

ARRAY數(shù)組

Error behavior錯(cuò)誤行為

 

制造商特定子協(xié)議(Manufacturer-specific Profile)

對(duì)象字典索引2000h to 5FFFh為制造商特定子協(xié)議,通常是存放所應(yīng)用子協(xié)議的應(yīng)用數(shù)據(jù)。而上文所描述的通訊對(duì)象子協(xié)議區(qū)(Communication profile area)是存放這些應(yīng)用數(shù)據(jù)的通信參數(shù)。比如廣州致遠(yuǎn)電子的XGate-COP10從站模塊規(guī)定了:

lRPDO的通訊參數(shù)存放在1400h to 15FFh 映射參數(shù)存放在1600h to 17FF數(shù)據(jù)存放為2000h 之后廠商自定義區(qū);

lTPDO的通訊參數(shù)存放在1800h to 19FFh  映射參數(shù)存放在1A00h to 1BFF數(shù)據(jù)存放為2000h 之后廠商自定義區(qū)。

對(duì)于在設(shè)備子協(xié)議中未定義的特殊功能,制造商也可以在此區(qū)域根據(jù)需求定義對(duì)象字典對(duì)象。因此這個(gè)區(qū)域?qū)τ诓煌膹S商來(lái)說(shuō),相同的對(duì)象字典項(xiàng)其定義不一定相同。

標(biāo)準(zhǔn)化設(shè)備子協(xié)議(Standardized profile area)

標(biāo)準(zhǔn)化設(shè)備子協(xié)議,為各種行業(yè)不同類型的標(biāo)準(zhǔn)設(shè)備定義對(duì)象字典中的對(duì)象。目前已有十幾種為不同類型的設(shè)備定義的子協(xié)議,例如 DS401、DS402、DS406等,其索引值范圍為0x6000~0x9FFF。同樣,這個(gè)區(qū)域?qū)τ诓煌臉?biāo)準(zhǔn)化設(shè)備子協(xié)議來(lái)說(shuō),相同的對(duì)象字典項(xiàng)其定義不一定相同。


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