CANOpen輕松入門—對象字典OD
CANopen對象字典(OD: Object Dictionary)是CANopen協(xié)議最為核心的概念。所謂的對象字典就是一個有序的對象組,描述了對應(yīng)CANopen節(jié)點的所有參數(shù),包括通訊數(shù)據(jù)的存放位置也列入其索引,這個表變成可以傳遞形式就叫做EDS文件(電子數(shù)據(jù)文檔Electronic Data Sheet)。對象字典,就像體檢表,具備這個人每個功能的參數(shù),便于用人單位(主站)進(jìn)行合理分配工作。如圖 1所示。
每個索引內(nèi)具體的參數(shù),最大用32位的變量來表示,即Unsigned32,四個字節(jié)。
每個CANopen設(shè)備都有一個對象字典,使用電子數(shù)據(jù)文檔(EDS文件)來記錄這些參數(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é)議描述文本的補(bǔ)充與擴(kuò)展。在不同的應(yīng)用行業(yè)都會起草一份CANopen設(shè)備子協(xié)議,子協(xié)議編號一般是DS4xx 。
如表 1所示,為對象字典索引區(qū)域定義,其中標(biāo)綠色底紋的通訊對象子協(xié)議區(qū)和制造商特定子協(xié)議區(qū)是用戶需要關(guān)注的區(qū)域。
表 1對象字典概述
表2 通訊對象子協(xié)議區(qū)
通用通訊對象(General communication objects)
由于通用通訊對象十分重要,NMT主站(CANopen主站)在啟動時,通常都全部或者部分讀取所有從站中通用通訊對象中的索引, 所以所有的通用通訊對象都必須在CANopen從站中實現(xiàn),使用者也必須熟知這些索引地址與其含義。如表 3所示。
表 3通用通訊對象
制造商特定子協(xié)議(Manufacturer-specific Profile)
對象字典索引2000h to 5FFFh為制造商特定子協(xié)議,通常是存放所應(yīng)用子協(xié)議的應(yīng)用數(shù)據(jù)。而上文所描述的通訊對象子協(xié)議區(qū)(Communication profile area)是存放這些應(yīng)用數(shù)據(jù)的通信參數(shù)。比如廣州致遠(yuǎn)電子的XGate-COP10從站模組規(guī)定了:
- RPDO的通訊參數(shù)存放在1400h to 15FFh 映射參數(shù)存放在1600h to 17FFh 數(shù)據(jù)存放為2000h 之后廠商自定義區(qū);
- TPDO的通訊參數(shù)存放在1800h to 19FFh映射參數(shù)存放在1A00h to 1BFFh 數(shù)據(jù)存放為2000h 之后廠商自定義區(qū)。
對于在設(shè)備子協(xié)議中未定義的特殊功能,制造商也可以在此區(qū)域根據(jù)需求定義對象字典對象。因此這個區(qū)域?qū)τ诓煌膹S商來說,相同的對象字典項其定義不一定相同。
標(biāo)準(zhǔn)化設(shè)備子協(xié)議(Standardized profile area)
標(biāo)準(zhǔn)化設(shè)備子協(xié)議,為各種行業(yè)不同類型的標(biāo)準(zhǔn)設(shè)備定義對象字典中的對象。目前已有十幾種為不同類型的設(shè)備定義的子協(xié)議,例如 DS401、DS402、DS406等,其索引值范圍為0x6000~0x9FFF。同樣,這個區(qū)域?qū)τ诓煌臉?biāo)準(zhǔn)化設(shè)備子協(xié)議來說,相同的對象字典項其定義不一定相同。