<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > CANopen對象字典生成辦法

          CANopen對象字典生成辦法

          作者: 時間:2016-12-16 來源:網(wǎng)絡 收藏

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

          通常來說,在CANopen工程中將所有的CANopen通信描述條目放在一個表格中,然后用索引來訪問所有的對象。這不失是一個解決方法,不過這種方法只適用于系統(tǒng)簡單、通信參數(shù)少、非CANopen通信標準化的產品中,而且對象字典的修改與管理工作都較為繁瑣。由此本文介紹一種動態(tài)輸入掩碼顯示各個參考的對象類型,編輯過程不斷檢查其正確性并修正的對象字典生成器ODBuilder。ODBuilder工具生成的對象字典,通信描述完全符合CANopen標準規(guī)范CiADS301以及設備描述符合EDS標準文件CiADSP306規(guī)范,具有CANopen標準化設備的通用性。

          三、對象字典生成器ODBuilder

          3.1對象字典生成原理

          對象字典生成器ODBuilder生成對象字典的原理是根據(jù)CANopen通信協(xié)議的訪問對象字典的機制,通過固定的索引、子索引來創(chuàng)建每一個CANopen對象字典條目。訪問對象字典示意圖如圖3.1所示。

          圖3.1CANopen訪問對象字典

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

          對象字典列表分為幾個不同的塊,目的為了方便對象的查找。通常分為用戶可通過索引查找相應的列表(如通信CommunicationProfileArea),再通過偏移量訪問該列表中所需的單元。因此在生成對象字典時為了描述索引里的單元,就先創(chuàng)建該單元的訪問類型、數(shù)據(jù)類型和指針變量等的結構體。然后利用創(chuàng)建好的結構體與應用變量建立相關聯(lián)的索引條目。此外,還會編輯一個包含指向子索引字段的指針列表,方便查找相關條目。

          3.2對象字典生成過程

          對象字典生成器ODBuilder創(chuàng)建一個簡明樹形結構的對象字典工程,方便修改與訪問對象字典條目;在編輯對象字典條目過程中,無需手工輸入不同條目的數(shù)據(jù)類型,直接通過下拉選項選擇對應類型;在編輯過程中,ODBuilder不斷檢查對象字典的輸入條目的正確性并提供修正參考,最后完成后可生成標準EDS文件。ODBuilder對象字典生成過程原理框圖如圖3.2所示。

          圖3.2對象字典生成過程原理框圖

          3.3創(chuàng)建簡明樹型條目

          根據(jù)對象字典條目的分布特性,ODBuilder將創(chuàng)建的對象字典以簡明的樹型結構,索引值由小到大排列。用戶需要訪問或者修改某一條索引,可直接點擊該條目就可以進行訪問或修改。如圖3.3所示。

          圖3.3樹型結構索引結構

          3.4編輯對象字典索引屬性

          1.根據(jù)CANopen協(xié)議CiADSP306規(guī)范,輸入不同的索引值,可靈活設定其“可選”、“制造商”、“強制”屬性。以編輯0x1000h索引為例,如圖3.3.1所示,通常用于DeviceType,如果作為從站的產品,該索引通常為“強制”屬性,ODBuilder將其自動設置為“強制”屬性。

          圖3.4.1編輯對象字典索引屬性

          2.根據(jù)不同的CANopen設備的存儲需要,可選擇索引是否存儲在非易失存儲器以及ROM或者RAM中。

          3.索引的對象參數(shù)、數(shù)據(jù)類型、訪問類型等直接通過下拉條選擇,如圖3.3.2所示,另外可選該索引條目是否有PDO映射功能。



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();