新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 現場總線CANopen學習總結筆記四---對象字典

        現場總線CANopen學習總結筆記四---對象字典

        作者: 時間:2016-12-14 來源:網絡 收藏
        4.3對象字典

        對象字典是所有數據結構的集合,這些數據涉及設備的應用程序、通信以及狀態機,對象字典利用對象來描述CANopen設備的全部功能,并且它也是通信接口與應用程度之間的接口。

        本文引用地址:http://www.104case.com/article/201612/329853.htm

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

        4.3.1對象字典的分配

        在索引6000h~9FFFh中,可以找到用于標準化設備子協議的對象描述。一個復雜的現場設備包括多個CANopen設備,CANopen設備里又包含一個通信專用的設備狀態機和多個邏輯設備,而每個邏輯設備又包含多個虛擬設備。

        一個現場設備可以包含一個或多個CANopen設備,當然可以包含連接到其他總線系統和網絡的接口,從而形成一個網關。

        4.3.2通信參數的描述

        對象字典中的索引1000h~1FFFh描述設備在CANopen網絡中通信及交換數據所必須具備的基本功能:

        1.用于設備描述的對象

        2.用于錯誤顯示的對象

        3.制造商狀態寄存器

        4.同步參數

        5.設備監控

        6.保存以及恢復默認參數

        7.用于時間報文和緊急報文的參數

        8.用于SDO服務器和SDO客戶端的參數

        9.PDO參數

        10.保留參數

        1.設備類型參數的結構(設備類型索引1000h)可用來描述所使用的設備子協議或應用規范。結構由設備子協議編號和附加信息組成。由以下對象也可用來描述設備屬性:

        >索引1008h:制造商設備名稱

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

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

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

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

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

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

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

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

        第31位預留位,第30位確定設備為發送還是接收同步報文,第29位用來區分11和29位標識符。

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

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

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

        5.設備監控(索引100Ch、100Dh、1016h、1017h)

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

        索引1017h:生產者心跳報文時間間隔,表示的是發送心跳報文的周期。網絡中的所有設備會對心跳報文進行分析,確定設備故障。

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

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

        6.保存以及恢復默認參數。

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

        下面有兩種配置設備參數的方法

        第一種是由配置管理器進行分配,好處是可以集中保存所有網絡信息,并且用一個結構相同的設備替換另一個設備后,不再需要進行專門的設備配置。

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

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

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

        子索引02h保存通信參數

        子索引03h保存子協議參數

        子索引04h~7Fh保存制造商相關的參數組

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

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

        7.用于時間報文和緊急報文的參數

        要想通過時間報文發送網絡時間,就必須給時間報文分配一個CAN標識符。該CAN標識符記錄在COB標識符參數1012h中。

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

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

        8.用于SDO服務器和SDO客戶端的參數

        SDO服務器和SDO客戶端的參數的對象類型均為復雜數據類型,子索引01h包含客戶端發往服務器報文的COB標識符,子索引02h包含服務器發往客戶端報文的COB標識符。

        注意用于SDO報文的COB標識符參數的結構

        9.PDO參數

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

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

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

        用于PDO消息的COB標識符參數的結構中,子索引01h除了包含所使用的CAN標識符之外,還包含有效位,遠程幀,和11/29位標識符。

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

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

        注意PDO映射參數的結構。

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

        10,保留參數

        4.3.3對象字典的實現

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

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




        評論


        技術專區

        關閉
        主站蜘蛛池模板: 佛教| 桦甸市| 柳州市| 乌拉特后旗| 株洲市| 阳城县| 新安县| 师宗县| 绥芬河市| 嘉义县| 临泽县| 井陉县| 阜康市| 元朗区| 开原市| 灵武市| 万源市| 绥宁县| 调兵山市| 墨玉县| 大埔县| 乡宁县| 陵水| 浦县| 维西| 宁津县| 应用必备| 衡南县| 凤庆县| 抚州市| 邛崃市| 温宿县| 霍州市| 十堰市| 红河县| 普兰县| 泽库县| 武安市| 兴化市| 鄂州市| 潜江市|