近期小编开发了【跟我学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】