CANopen-对象字典

概述

CANopen的对象字典(Object Dictionary,简称OD)是CANopen协议的核心概念之一。可以看多一个有序的对象组,每个对象采用了一个16位的索引值来寻址,同时也定义了8位的子索引,为了允许访问数据结构中的单个元素,类似于结构体。
对象字典可以看做一些数据的类型定义,如果把对象字典看做一本书的话,CANopen的行为准则就要参考着本书,不管是做什么,只要它的行为要参考对象字典,就必须先查阅字典,在决定是否去做。
关于对象字典的结构,可以看下图,给出了索引值的范围及其对应的对象。
在这里插入图片描述
重点关注,颜色标注的三项:描述子协议

CANopen 网络中每个节点都有一个对象字典。对象字典包含了描述这个设备和它的网络行为的所有参数。CANopen对象字典中的项由一系列的子协议来描述,子协议描述对象字典中每个对象的功能、名字、索引、子索引、数据类型、读/写属性,以及这个对象是否必需等,从而保证不同厂商的同类型设备兼容。CANopen 协议的核心描述子协议是DS301,包括CANopen协议应用层及通信结构描述,其他子协议都是对DS301协议描述文本的补充与扩展。其子协议主要分为以下3类:

  • 通讯对象子协议区(Communication profile area)

通信子协议(Communication Profile)描述对象字典的主要形式,以及对象字典中的通信对象和参数。这个子协议适用于所有的CANopen设备,其索引值范围为0x1000~0x1FFF。

  • 通用通讯对象(General communication objects)

对于设备子协议中未定义的特殊功能,制造商可以在制造商自定义子协议(Manufacturer-specific profile)中根据需求定义对象字典项。因此,这个区域对于不同厂商来说,相同的对象字典项定义不一定相同,其索引值范围为0x2000~0x9FFF。

  • 标准化设备子协议(Standardized profile area)

标准化设备子协议,为各种行业不同类型的标准设备定义对象字典中的对象。目前已有十几种为不同类型的设备定义的子协议,例如 DS401、 DS402、 DS406 等,其索引值范围为 0x6000~0x9FFF。 同样,这个区域对于不同的标准化设备子协议来说,相同的对象字典
项其定义不一定相同。

对于对象字典,可以利用python环境生成.c,.h文件,为后续开发准备
需要的开发环境:

安装好后,可以看到对象字典的定义范围,便可以用来配置参数。

在这里插入图片描述

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值