首发与知乎
1.对象字典
CANopen 对象字典(OD: Object Dictionary)是 CANopen 协议最为核心的概念。所谓的对象字典就是一个有序的对象组,描述了对应 CANopen 节点的所有参数,包括通讯数据的存放位置也列入其索引,这个表变成可以传递形式就叫做 EDS 文件(电子数据文档Electronic Data Sheet)。对象字典,就像体检表,具备这个人每个功能的参数,便于用人单位(主站)进行合理分配工作。
这部分引用自周立功的《CANopen轻松入门》,对于CANopen协议不清楚的地方,可以看看这本书,加强理解。
对象字典中的每个对象都描述了它的功能、名字、索引、子索引、数据类型,以及这个对象是否必需、读写属性等等。下表为通用通讯对象的举例:
每个对象采用一个 16 位的索引值来寻址,这个索引值通常被称为索引,其范围在 0x0000到 0xFFFF 之间。为了避免数据大量时无索引可分配,所以在某些索引下也定义了一个 8 位的索引值,这个索引值通常被称为子索引,其范围是 0x00 到 0xFF 之间。子索引可以进一步描述对象的参数和功能等信息。
总结来说,对象字典即是一张表,表中记录了各种各样的对象,这些对象可以是int32,bool这种通用数据类型,也可以是自定义的结构体数据类型。对象字典内使用Index来对对象进行索引,对象中还可以存在Sub-Index进一步描述对象的参数和功能。
1.1 CoE(CANopen over EtherCAT)
EtherCAT协议在应用层支持CANopen协议,并作了相应的扩充。CoE协议完全遵从CANopen协议,其对对象字典的定义也相同,如表1-3所示。表1-4列出了CoE通讯数据对象。其中针对EtherCAT通讯扩展了相关通讯对象0x1C00~0x1C4F,用于设置存储同步管理器的类型,通讯参数和PDO数据分配。
对于CoE对象字典,这里我们先不做具体的介绍,在后面的章节中会具体根据代码来具体说明。

最低0.47元/天 解锁文章
3158





