微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

轻松掌握CANOpen最难理解的对象字典

2016-01-06 16:23 来源:周立功致远电子 编辑:Bamboo

摘要:CANopen是一种架构在控制局域网路(Controller Area Network,CAN)上的高层通讯协议,其中对象字典是协议中最为核心的概念,透彻掌握其相关内容,运用CANOpen将会如鱼得水,游刃有余。

CANopen对象字典(OD:Object Dictionary)是CANopen协议最为核心的概念。所谓的对象字典就是一个有序的对象组,描述了对应CANopen节点的所有参数,包括通讯数据的存放位置也列入其索引,这个表变成可以传递形式就叫做EDS文件(电子数据文档Electronic Data Sheet)。对象字典,就像体检表,具备这个人每个功能的参数,便于用人单位(主站)进行合理分配工作。如图1所示。

对象字典与体检表
图1 对象字典与体检表


每个对象采用一个16位的索引值来寻址,这个索引值通常被称为索引,其范围在0x0000到0xFFFF之间。为了避免数据大量时无索引可分配,所以在某些索引下也定义了一个8位的索引值,这个索引值通常被称为子索引,其范围是0x00到0xFF之间。

每个索引内具体的参数,最大用32位的变量来表示,即Unsigned32,四个字节。

每个CANopen设备都有一个对象字典,使用电子数据文档(EDS文件)来记录这些参数,而不需要把这些参数记录在纸上。对于CANopen网络中的主节点来说,不需要对CANopen从节点的每个对象字典项都访问。

CANopen对象字典中的项由一系列子协议来描述。子协议为对象字典中的每个对象都描述了它的功能、名字、索引、子索引、数据类型,以及这个对象是否必需、读写属性等等,这样可保证不同厂商的同类型设备兼容。

CANopen协议的核心描述子协议是DS301,其包括了CANopen协议应用层及通信结构描述,其它的协议子协议都是对DS301协议描述文本的补充与扩展。在不同的应用行业都会起草一份CANopen设备子协议,子协议编号一般是DS4xx 。

对象字典概述

如表1所示,为对象字典索引区域定义,其中标绿色底纹的通讯对象子协议区和制造商特定子协议区是用户需要关注的区域。

 对象字典概述
表1 对象字典概述


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

通讯对象子协议区(Communication profile area)定义了所有和通信有关的对象参数,如表2所示,标绿色底纹的索引范围1000h to 1029h为通用通讯对象,所有CANopen节点都必须具备这些索引,否则将无法加入CANopen网络。其他索引根据实际情况进行分配与定义。

通讯对象子协议区
表2 通讯对象子协议区

通用通讯对象(General communication objects)

由于通用通讯对象十分重要,NMT主站(CANopen主站)在启动时,通常都全部或者部分读取所有从站中通用通讯对象中的索引,所以所有的通用通讯对象都必须在CANopen从站中实现,使用者也必须熟知这些索引地址与其含义。如表3所示。

通用通讯对象
表3 通用通讯对象

制造商特定子协议(Manufacturer-specific Profile)

对象字典索引2000h to 5FFFh为制造商特定子协议,通常是存放所应用子协议的应用数据。而上文所描述的通讯对象子协议区(Communication profile area)是存放这些应用数据的通信参数。比如广州致远电子的XGate-COP10从站模块规定了:

RPDO的通讯参数存放在1400h to 15FFh映射参数存放在1600h to 17FFh数据存放为2000h之后厂商自定义区;

TPDO的通讯参数存放在1800h to 19FFh映射参数存放在1A00h to 1BFFh数据存放为2000h之后厂商自定义区。

对于在设备子协议中未定义的特殊功能,制造商也可以在此区域根据需求定义对象字典对象。因此这个区域对于不同的厂商来说,相同的对象字典项其定义不一定相同。

标签: CANOpen

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006