全部博文(396)
分类: 嵌入式
2017-04-05 15:11:32
CANopen协议的核心部分是对象词典(Object Dictionary),对象词典位于通信层和用户层之间,如CANopen设备模型图所示。它的作用主要是为用户提供服务接口,对象字典是在电子数据文档(EDS:Electronic Data Sheet)中描述或者记录在纸上。不必要也不需要通过CAN-bus“审问”一个节点的对象字典中的所有参数。如果一个节点严格按照在纸上的对象字典进行描述其行为,也是可以的。节点本身只需要能够提供对象字典中必需的对象(而在CANopen规定中必需的项实际上是很少的),以及其它可选择的、构成节点部分可配置功能的对象。
对象字典是一组有序的对象,每个对象通过 16 位的索引来寻址。对于数组和结构类型的对象,可以使用 8 位的子索引来访问其内部成员,对象字典的索引分配如表1-1所示。
表1-1 CANopen对象字典
索引 |
对象 |
0000 |
保留 |
0001~001F |
静态数据类型(标准数据类型,如Boolean,Integer 16) |
0020~003F |
复杂数据类型(预定义的结构,由标准数据类型组合而成,如PDOCommPar,SDOParameter) |
0040~005F |
制造商定义的复杂数据类型 |
0060~007F |
设备规范定义的静态数据类型 |
0080~009F |
设备规范定义的复杂数据类型 |
00A0~0FFF |
保留 |
1000~1FFF |
通讯规范区域(如设备类型,错误寄存器,支持的PDO数目等) |
2000~5FFF |
设备制造商相关区域 |
6000~9FFF |
标准化的设备规范区域(如DSP402等) |
A000~BFFF |
接口规范说明区域 |
C000~FFFF |
保留 |