近期小編開發了【跟我學CANopen】系列課程,會陸陸續續連載更新完畢,相關目錄如下(由于內容較多導致文字太小,下圖請放大后查看)。
CANopen對象字典(OD: Object Dictionary)是CANopen協議最為核心的概念。本文對CANopen的對象字典進行簡要介紹。
一、對象字典
對象字典是一個有序的對象組;每個對象采用一個16位的索引值來尋址,為了允許訪問數據結構中的單個元素,同時定義了一個8位的子索引,對象字典的結構如下表所示。
對象字典根據索引地址不同,可分為4類區域,如下圖所示:
CANopen網絡中每個節點都有一個對象字典。對象字典包含了描述這個設備和它的網絡行為的所有參數。
一個節點的對象字典是在電子數據文檔(EDS:Electronic Data Sheet)中描述或者記錄在紙上。不必要也不需要通過CAN-bus“審問”一個節點的對象字典中的所有參數。如果一個節點嚴格按照在紙上的對象字典進行描述其行為,也是可以的。節點本身只需要能夠提供對象字典中必需的對象(而在CANopen規定中必需的項實際上是很少的),以及其它可選擇的、構成節點部分可配置功能的對象。
CANopen由一系列稱為子協議的文檔組成。
二、舉例:對象字典與"漢語字典"
通過“字典”二字可能會想到“漢語字典”等字典類圖書。對象字典與“漢語字典”一樣,內部其實就是許多數據(文字)按照一定的規律進行排序,可以通過一定的方式(索引+子索引)查詢“字典”中的數據。讀取對象字典的數據如同“查字典”一樣。
對象字典與真實的“漢語字典”還有一定區別;“漢語字典”只能查詢不能修改(對用戶來說不能修改),但用戶可以對 對象字典進行寫入。
三、舉例:對象字典與“體檢表”
如下圖所示的體檢表:
上圖體檢表描述了這個人的所有的體檢數據。可以通過對應的索引和子索引查詢到其中某一項參數,如:血液檢查/血糖:4.44。
對象字典用于描述一個設備的所有參數。如上圖所示:索引0x1800/子索引0x00的數據為:入口數,數值為:5。
成功沒有捷徑,只有通過不斷的學習、學習再學習才能離成功更近一點點;想要學習的同學歡迎加入我們的技術交流群,共同學習,共同成長,讓我們離成功更近一步
歡迎轉發
每篇原創內容都是我們用心血換來的知識精華,如果您覺得本文有價值,歡迎轉載分享
歡迎加入
如果您對單片機及嵌入式設計感興趣,歡迎加入我們的辯論探討,加我微信【xyzn3333】