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