現(xiàn)場(chǎng)總線CANopen學(xué)習(xí)總結(jié)筆記四---對(duì)象字典
對(duì)象字典是所有數(shù)據(jù)結(jié)構(gòu)的集合,這些數(shù)據(jù)涉及設(shè)備的應(yīng)用程序、通信以及狀態(tài)機(jī),對(duì)象字典利用對(duì)象來(lái)描述CANopen
CANopen協(xié)議已經(jīng)將對(duì)象字典進(jìn)行分配,用戶可以通過(guò)同一個(gè)索引和子索引獲得所有設(shè)備中的通信對(duì)象,以及用于某種設(shè)備類別的對(duì)象。
4.3.1
在索引6000h~9FFFh中,可以找到用于標(biāo)準(zhǔn)化設(shè)備子協(xié)議的對(duì)象描述。一個(gè)復(fù)雜的現(xiàn)場(chǎng)設(shè)備包括多個(gè)CANopen設(shè)備,CANopen設(shè)備里又包含一個(gè)通信專用的設(shè)備狀態(tài)機(jī)和多個(gè)邏輯設(shè)備,而每個(gè)邏輯設(shè)備又包含多個(gè)虛擬設(shè)備。
一個(gè)現(xiàn)場(chǎng)設(shè)備可以包含一個(gè)或多個(gè)CANopen設(shè)備,當(dāng)然可以包含連接到其他總線系統(tǒng)和網(wǎng)絡(luò)的接口,從而形成一個(gè)網(wǎng)關(guān)。
4.3.2
對(duì)象字典中的索引1000h~1FFFh描述設(shè)備在CANopen網(wǎng)絡(luò)中通信及交換數(shù)據(jù)所必須具備的基本功能:
1.用于設(shè)備描述的對(duì)象
2.用于錯(cuò)誤顯示的對(duì)象
3.制造商狀態(tài)寄存器
4.同步參數(shù)
5.設(shè)備監(jiān)控
6.保存以及恢復(fù)默認(rèn)參數(shù)
7.用于時(shí)間報(bào)文和緊急報(bào)文的參數(shù)
8.用于SDO服務(wù)器和SDO客戶端的參數(shù)
9.PDO參數(shù)
10.保留參數(shù)
1.設(shè)備類型參數(shù)的結(jié)構(gòu)(設(shè)備類型索引1000h)可用來(lái)描述所使用的設(shè)備子協(xié)議或應(yīng)用規(guī)范。結(jié)構(gòu)由設(shè)備子協(xié)議編號(hào)和附加信息組成。由以下對(duì)象也可用來(lái)描述設(shè)備屬性:
此外,還有一個(gè)可以詳細(xì)描述設(shè)備的對(duì)象-------相同對(duì)象,它屬于一種結(jié)構(gòu),包含最多4個(gè)數(shù)據(jù)類型為Unsigned32
2.用于錯(cuò)誤顯示的對(duì)象(索引1001h和1003h)
錯(cuò)誤寄存器是一個(gè)8位寄存器,其中所包含的錯(cuò)誤信息可以通過(guò)緊急報(bào)文來(lái)發(fā)送。
錯(cuò)誤存儲(chǔ)器是一個(gè)包含多達(dá)254個(gè)基本單元的數(shù)據(jù)場(chǎng),這些基本單元提供近期引發(fā)緊急報(bào)文的錯(cuò)誤列表。子索引00h表示錯(cuò)誤存儲(chǔ)器中錯(cuò)誤的個(gè)數(shù)。
3.同步參數(shù)(索引1005h,1006h,1007h,1019h)
同步報(bào)文COB標(biāo)識(shí)符參數(shù)(1005h)是一個(gè)32位對(duì)象。包含有CAN標(biāo)識(shí)符、3個(gè)控制位:
第31位預(yù)留位,第30位確定設(shè)備為發(fā)送還是接收同步報(bào)文,第29位用來(lái)區(qū)分11和29位標(biāo)識(shí)符。
通信循環(huán)周期(索引1006h)是針對(duì)同步報(bào)文發(fā)送方面而言,該參數(shù)設(shè)置同步周期。
同步窗口長(zhǎng)度(1007h),在同步窗口時(shí)間范圍內(nèi),PDO傳輸必須在同步報(bào)文發(fā)送之后才能進(jìn)行。
同步計(jì)數(shù)器溢出參數(shù)(1019h)包含一個(gè)8位值,該值可以用來(lái)同步報(bào)文中的計(jì)數(shù)器。
5.設(shè)備監(jiān)控(索引100Ch、100Dh、1016h、1017h)
有兩個(gè)參數(shù)可以用于配置心跳功能。
索引1017h:
索引1016h:消費(fèi)者心跳時(shí)間間隔,它最多可以包含127個(gè)條目,條目記錄了被監(jiān)控設(shè)備節(jié)點(diǎn)ID以及時(shí)間。
用來(lái)監(jiān)控設(shè)備,我們引入2個(gè)新的參數(shù)“保護(hù)時(shí)間”(索引100Ch)和“壽命因子”(索引100Dh)。
6.保存以及恢復(fù)默認(rèn)參數(shù)。
設(shè)備啟動(dòng)或通過(guò)NMT主機(jī)復(fù)位后,設(shè)備對(duì)象字典中的參數(shù)就會(huì)進(jìn)行初始化。之后可以利用SDO把字典中的默認(rèn)參數(shù)設(shè)備成新的參數(shù),通常這就代表了PDO參數(shù)的設(shè)置以及設(shè)備監(jiān)控和同步機(jī)制的建立。
下面有兩種配置設(shè)備參數(shù)的方法
第一種是由配置管理器進(jìn)行分配,好處是可以集中保存所有網(wǎng)絡(luò)信息,并且用一個(gè)結(jié)構(gòu)相同的設(shè)備替換另一個(gè)設(shè)備后,不再需要進(jìn)行專門(mén)的設(shè)備配置。
第二種是配置信息分布在網(wǎng)絡(luò)中。如果在網(wǎng)絡(luò)調(diào)試過(guò)程中只對(duì)設(shè)備進(jìn)行一次配置,將配置信息保存在非易失性存儲(chǔ)器,則無(wú)需中央配置管理器集中保存信息,又可以縮短網(wǎng)絡(luò)啟動(dòng)時(shí)間。
“保存參數(shù)”對(duì)象(索引1010h)中包含四個(gè)選項(xiàng):
“恢復(fù)默認(rèn)參數(shù)”(索引1010h)是用來(lái)恢復(fù)設(shè)備默認(rèn)的配置參數(shù),即出廠設(shè)置。
為了防止意外恢復(fù)默認(rèn)參數(shù),便定義了一個(gè)恢復(fù)默認(rèn)參數(shù)命令。默認(rèn)值只有在設(shè)備復(fù)位之后才生效。
7.用于時(shí)間報(bào)文和緊急報(bào)文的參數(shù)
要想通過(guò)時(shí)間報(bào)文發(fā)送網(wǎng)絡(luò)時(shí)間,就必須給時(shí)間報(bào)文分配一個(gè)CAN標(biāo)識(shí)符。該CAN標(biāo)識(shí)符記錄在COB標(biāo)識(shí)符參數(shù)1012h中。
與時(shí)間報(bào)文相似,在對(duì)象字典1014h
為了避免總線因持續(xù)發(fā)送高優(yōu)先級(jí)的緊急報(bào)文而無(wú)法進(jìn)行通信,可以在對(duì)象字典1015h(禁止時(shí)間緊急報(bào)文)中設(shè)定一個(gè)禁止發(fā)送緊急報(bào)文的時(shí)間。僅當(dāng)禁止時(shí)間結(jié)束之后,才允許重新發(fā)送緊急報(bào)文。
8.用于SDO服務(wù)器和SDO客戶端的參數(shù)
SDO服務(wù)器和SDO客戶端的參數(shù)的對(duì)象類型均為復(fù)雜數(shù)據(jù)類型,子索引01h包含客戶端發(fā)往服務(wù)器報(bào)文的COB標(biāo)識(shí)符,子索引02h包含服務(wù)器發(fā)往客戶端報(bào)文的COB標(biāo)識(shí)符。
9.PDO參數(shù)
一個(gè)CAN
(1)PDO通信參數(shù)
(2)PDO映射參數(shù)
用于PDO消息的COB標(biāo)識(shí)符參數(shù)的結(jié)構(gòu)中,子索引01h除了包含所使用的CAN標(biāo)識(shí)符之外,還包含有效位,遠(yuǎn)程幀,和11/29位標(biāo)識(shí)符。
02h
PDO映射參數(shù)最多有64個(gè)數(shù)據(jù)類型為Unsigned32
注意PDO映射參數(shù)的結(jié)構(gòu)。
如果支持可變映射,用戶可以改寫(xiě)子索引。這意味著可以利用SDO訪問(wèn)來(lái)改變映射。有如下規(guī)定:
10,保留參數(shù)
4.3.3對(duì)象字典的實(shí)現(xiàn)
一般來(lái)說(shuō)用戶希望能夠快速地訪問(wèn)索引,所以需要通過(guò)一種查找算法來(lái)找到合適的條目。有一種CANopen
CANopen軟件通過(guò)固定的索引/子索引來(lái)訪問(wèn)對(duì)象列表中的條目,對(duì)象列表提供一個(gè)指向存儲(chǔ)器中某個(gè)變量的指針,應(yīng)用程序可直接通過(guò)變量名稱來(lái)訪問(wèn)所需的條目。對(duì)象字典列表就構(gòu)成了索引/子索引與對(duì)應(yīng)變量名稱之間的接口。
評(píng)論