新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 現(xiàn)場總線CANopen學(xué)習(xí)總結(jié)筆記四---對象字典

現(xiàn)場總線CANopen學(xué)習(xí)總結(jié)筆記四---對象字典

作者: 時間:2016-12-14 來源:網(wǎng)絡(luò) 收藏
4.3對象字典

對象字典是所有數(shù)據(jù)結(jié)構(gòu)的集合,這些數(shù)據(jù)涉及設(shè)備的應(yīng)用程序、通信以及狀態(tài)機,對象字典利用對象來描述CANopen設(shè)備的全部功能,并且它也是通信接口與應(yīng)用程度之間的接口。

本文引用地址:http://m.butianyuan.cn/article/201612/329853.htm

CANopen協(xié)議已經(jīng)將對象字典進行分配,用戶可以通過同一個索引和子索引獲得所有設(shè)備中的通信對象,以及用于某種設(shè)備類別的對象。

4.3.1對象字典的分配

在索引6000h~9FFFh中,可以找到用于標(biāo)準(zhǔn)化設(shè)備子協(xié)議的對象描述。一個復(fù)雜的現(xiàn)場設(shè)備包括多個CANopen設(shè)備,CANopen設(shè)備里又包含一個通信專用的設(shè)備狀態(tài)機和多個邏輯設(shè)備,而每個邏輯設(shè)備又包含多個虛擬設(shè)備。

一個現(xiàn)場設(shè)備可以包含一個或多個CANopen設(shè)備,當(dāng)然可以包含連接到其他總線系統(tǒng)和網(wǎng)絡(luò)的接口,從而形成一個網(wǎng)關(guān)。

4.3.2通信參數(shù)的描述

對象字典中的索引1000h~1FFFh描述設(shè)備在CANopen網(wǎng)絡(luò)中通信及交換數(shù)據(jù)所必須具備的基本功能:

1.用于設(shè)備描述的對象

2.用于錯誤顯示的對象

3.制造商狀態(tài)寄存器

4.同步參數(shù)

5.設(shè)備監(jiān)控

6.保存以及恢復(fù)默認參數(shù)

7.用于時間報文和緊急報文的參數(shù)

8.用于SDO服務(wù)器和SDO客戶端的參數(shù)

9.PDO參數(shù)

10.保留參數(shù)

1.設(shè)備類型參數(shù)的結(jié)構(gòu)(設(shè)備類型索引1000h)可用來描述所使用的設(shè)備子協(xié)議或應(yīng)用規(guī)范。結(jié)構(gòu)由設(shè)備子協(xié)議編號和附加信息組成。由以下對象也可用來描述設(shè)備屬性:

>索引1008h:制造商設(shè)備名稱

>索引1009h:制造商硬件版本

>索引100Ah:制造商軟件版本,

此外,還有一個可以詳細描述設(shè)備的對象-------相同對象,它屬于一種結(jié)構(gòu),包含最多4個數(shù)據(jù)類型為Unsigned32的條目。制造商ID為必選項。

2.用于錯誤顯示的對象(索引1001h和1003h)

錯誤寄存器是一個8位寄存器,其中所包含的錯誤信息可以通過緊急報文來發(fā)送。

錯誤存儲器是一個包含多達254個基本單元的數(shù)據(jù)場,這些基本單元提供近期引發(fā)緊急報文的錯誤列表。子索引00h表示錯誤存儲器中錯誤的個數(shù)。

3.同步參數(shù)(索引1005h,1006h,1007h,1019h)

同步報文COB標(biāo)識符參數(shù)(1005h)是一個32位對象。包含有CAN標(biāo)識符、3個控制位:

第31位預(yù)留位,第30位確定設(shè)備為發(fā)送還是接收同步報文,第29位用來區(qū)分11和29位標(biāo)識符。

通信循環(huán)周期(索引1006h)是針對同步報文發(fā)送方面而言,該參數(shù)設(shè)置同步周期。

同步窗口長度(1007h),在同步窗口時間范圍內(nèi),PDO傳輸必須在同步報文發(fā)送之后才能進行。

同步計數(shù)器溢出參數(shù)(1019h)包含一個8位值,該值可以用來同步報文中的計數(shù)器。

5.設(shè)備監(jiān)控(索引100Ch、100Dh、1016h、1017h)

有兩個參數(shù)可以用于配置心跳功能。

索引1017h:生產(chǎn)者心跳報文時間間隔,表示的是發(fā)送心跳報文的周期。網(wǎng)絡(luò)中的所有設(shè)備會對心跳報文進行分析,確定設(shè)備故障。

索引1016h:消費者心跳時間間隔,它最多可以包含127個條目,條目記錄了被監(jiān)控設(shè)備節(jié)點ID以及時間。

用來監(jiān)控設(shè)備,我們引入2個新的參數(shù)“保護時間”(索引100Ch)和“壽命因子”(索引100Dh)。

6.保存以及恢復(fù)默認參數(shù)。

設(shè)備啟動或通過NMT主機復(fù)位后,設(shè)備對象字典中的參數(shù)就會進行初始化。之后可以利用SDO把字典中的默認參數(shù)設(shè)備成新的參數(shù),通常這就代表了PDO參數(shù)的設(shè)置以及設(shè)備監(jiān)控和同步機制的建立。

下面有兩種配置設(shè)備參數(shù)的方法

第一種是由配置管理器進行分配,好處是可以集中保存所有網(wǎng)絡(luò)信息,并且用一個結(jié)構(gòu)相同的設(shè)備替換另一個設(shè)備后,不再需要進行專門的設(shè)備配置。

第二種是配置信息分布在網(wǎng)絡(luò)中。如果在網(wǎng)絡(luò)調(diào)試過程中只對設(shè)備進行一次配置,將配置信息保存在非易失性存儲器,則無需中央配置管理器集中保存信息,又可以縮短網(wǎng)絡(luò)啟動時間。

“保存參數(shù)”對象(索引1010h)中包含四個選項:

子索引01h保存整個對象字典的參數(shù)

子索引02h保存通信參數(shù)

子索引03h保存子協(xié)議參數(shù)

子索引04h~7Fh保存制造商相關(guān)的參數(shù)組

“恢復(fù)默認參數(shù)”(索引1010h)是用來恢復(fù)設(shè)備默認的配置參數(shù),即出廠設(shè)置。

為了防止意外恢復(fù)默認參數(shù),便定義了一個恢復(fù)默認參數(shù)命令。默認值只有在設(shè)備復(fù)位之后才生效。

7.用于時間報文和緊急報文的參數(shù)

要想通過時間報文發(fā)送網(wǎng)絡(luò)時間,就必須給時間報文分配一個CAN標(biāo)識符。該CAN標(biāo)識符記錄在COB標(biāo)識符參數(shù)1012h中。

與時間報文相似,在對象字典1014h同樣也給緊急報文設(shè)定一個CAN標(biāo)識符。但COB-ID緊急報文參數(shù)中的第30位是不可用的,固定為0。

為了避免總線因持續(xù)發(fā)送高優(yōu)先級的緊急報文而無法進行通信,可以在對象字典1015h(禁止時間緊急報文)中設(shè)定一個禁止發(fā)送緊急報文的時間。僅當(dāng)禁止時間結(jié)束之后,才允許重新發(fā)送緊急報文。

8.用于SDO服務(wù)器和SDO客戶端的參數(shù)

SDO服務(wù)器和SDO客戶端的參數(shù)的對象類型均為復(fù)雜數(shù)據(jù)類型,子索引01h包含客戶端發(fā)往服務(wù)器報文的COB標(biāo)識符,子索引02h包含服務(wù)器發(fā)往客戶端報文的COB標(biāo)識符。

注意用于SDO報文的COB標(biāo)識符參數(shù)的結(jié)構(gòu)

9.PDO參數(shù)

一個CANopen設(shè)備最多可以有512個TPDO和512個TPDO,對PDO參數(shù)用兩個參數(shù)來配置。

(1)PDO通信參數(shù),PDO通信參數(shù)的數(shù)據(jù)類型索引為0020h

(2)PDO映射參數(shù),PDO映射參數(shù)的數(shù)據(jù)類型索引為0021h

用于PDO消息的COB標(biāo)識符參數(shù)的結(jié)構(gòu)中,子索引01h除了包含所使用的CAN標(biāo)識符之外,還包含有效位,遠程幀,和11/29位標(biāo)識符。

02h定義了PDO的傳輸類型,03h定義PDO禁止時間。禁止時間為100μs,作用是禁止PDO連續(xù)發(fā)送從而占用大量的總線資源,只有當(dāng)PDO發(fā)送完成之后間隔一個禁止時間才能發(fā)送下一個PDO。

PDO映射參數(shù)最多有64個數(shù)據(jù)類型為Unsigned32的子索引。這些32位值包含索引和子索引以及待傳輸過程數(shù)據(jù)的長度。

注意PDO映射參數(shù)的結(jié)構(gòu)。

如果支持可變映射,用戶可以改寫子索引。這意味著可以利用SDO訪問來改變映射。有如下規(guī)定:

10,保留參數(shù)

4.3.3對象字典的實現(xiàn)

一般來說用戶希望能夠快速地訪問索引,所以需要通過一種查找算法來找到合適的條目。有一種CANopen結(jié)構(gòu),可以訪問大多數(shù)的對象字典。

CANopen軟件通過固定的索引/子索引來訪問對象列表中的條目,對象列表提供一個指向存儲器中某個變量的指針,應(yīng)用程序可直接通過變量名稱來訪問所需的條目。對象字典列表就構(gòu)成了索引/子索引與對應(yīng)變量名稱之間的接口。




評論


技術(shù)專區(qū)

關(guān)閉