CAN笔记(18) 对象字典
1. 对象字典
CANOpen 对象字典(OD: Object Dictionary) 是 CANopen 协议最为核心的概念
所谓的对象字典就是一个有序的对象组
描述了对应 CANOpen 节点的所有参数,包括通讯数据的存放位置也列入其索引
这个表变成可以传递形式就叫做 EDS 文件(电子数据文档 Electronic Data Sheet)
每个 CANOpen 设备都有一个对象字典
使用电子数据文档(EDS 文件)来记录这些参数,而不需要把这些参数记录在纸上
对象字典,就像体检表,具备这个人每个功能的参数,便于用人单位(主站)进行合理分配工作
每个对象采用一个 16 位的索引值来寻址
这个索引值通常被称为索引,其范围在 0x0000 到 0xFFFF 之间
为了避免数据大量时无索引可分配,所以在某些索引下也定义了一个 8 位的索引值
这个索引值通常被称为子索引,其范围是 0x00 到 0xFF 之间
每个索引内具体的参数,最大用 32 位的变量来表示,即 Unsigned32,四个字节
对于 CANOpen 网络中的主节点来说
不需要对 CANOpen 从节点的每个对象字典项都访问
CANOpen 对象字典中的项由一系列子协议来描述
子协议为对象字典中的每个对象都描述了它的功能、名字、索引、子索引、数据类型
以及这个对象是否必需、读写属性等等
这样可保证不同厂商的同类型设备兼容
CANOpen 协议的核心描述子协议是 DS301,也就是之前提及的CiA 301
其包括了 CANOpen 协议应用层及通信结构描述
其它的协议子协议都是对 DS301 协议描述文本的补充与扩展
在不同的应用行业都会起草一份 CANOpen 设备子协议,子协议编号一般是 DS4xx
2. 对象字典概述
对象字典索引区域定义
其中标绿色底纹的 通讯对象子协议区 和 制造商特定子协议区 是用户需要关注的区域
3. 通讯对象子协议区
通讯对象子协议区(Communication profile area)定义了所有和通信有关的对象参数
标绿色底纹的索引范围 1000h~1029h为 通用通讯对象
所有 CANopen 节点都必须具备这些索引,否则将无法加入 CANopen 网络
而其他索引根据实际情况进行分配与定义
4. 通用通讯对象
由于通用通讯对象十分重要
NMT 主站(CANOpen 主站) 在启动时, 通常都全部或部分读取所有从站中通用通讯对象中的索引
所以,所有的通用通讯对象都必须在CANOpen 从站中实现
必须熟知这些索引地址与其含义
5. 制造商特定子协议区
对象字典索引 2000h~5FFFh为制造商特定子协议(Manufacturer-specific Profile)
通常是存放所应用子协议的应用数据
而上文所描述的通讯对象子协议区存放这些应用数据的通信参数
对于在设备子协议中未定义的特殊功能,制造商也可以在此区域根据需求定义对象字典对象
因此这个区域对于不同的厂商来说,相同的对象字典项其定义不一定相同
6. 标准化设备子协议区
标准化设备子协议,为各种行业不同类型的标准设备定义对象字典中的对象
目前已有十几种为不同类型的设备定义的子协议,例如 DS401、 DS402、 DS406 等
其索引值范围为 0x6000~0x9FFF
同样,这个区域对于不同的标准化设备子协议来说,相同的对象字典项其定义不一定相同
参考:
相关推荐:
CAN笔记(17) 预定义报文ID
CAN笔记(16) CANOpen简介
CAN笔记(15) STM32-M4 CAN通讯
CAN笔记(14) STM32-M4 寄存器
CAN笔记(13) STM32-M4 bxCAN
谢谢!
转载:https://blog.csdn.net/qq_32618327/article/details/100727768