CANOpen系列教程09_CANOpen对象字典

  • 分享一个朋友的人工智能教程,零基础!通俗易懂!希望你也加入到人工智能的队伍中来! www.captainbed.net

一、写在前面

  上一篇文章主要是引导大家学习CANOpen协议通信接口的相关内容。通信接口的内容有点多,对于初学者来说,如果看不懂,请多看几遍(最好有个印象)。

  CANopen设备最重要的一个部分就是对象字典。对象字典本质上是一种被预先安排的对象序列,可通过网络访问。字典里面的每一对象均可使用一个16-bit主索引和8-bit子索引寻址到

  初学者学习如果难理解通信接口(上一篇)有些内容,如:PDO、SDO及网络管理对象,可以结合对象字典索引来学习和记忆。

  本文章收录于【CANOpen系列教程】,在我的博客分类“CANOpen系列教程”也能查找到。

  为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该系列教程也同步更新于微信公众号【EmbeddedDevelop】,关注微信公众号回复【CANOpen系列教程】即可查看。

二、对象字典重要内容

对象字典OD:Object dictionary。

一组带有 16 位索引和 8 位子索引的数据或对象。对象字典下面主要包含:数据类型、通信对象、应用对象



对象字典主索引



2.1 通信子协议区

通信子协议区,如上图1000h 到 1FFFh这个区域。也就是通信接口(或通信对象)协议区。

对于初学者来说,通信对象子协议区是比较重要的一个区域,牵涉到上一篇文章《通信接口》讲述的大部分内容。同时,这之间的关系也非常紧密。

通讯对象子协议区



如上图,通讯对象子协议区又划分为几个区域,而其中的1000h 到 1029h为通用通讯对象。

通用通讯对象里面的内容已经被约定好,如果我们需要用到,可直接配置使用即可。

通用通讯对象内容:





通信子协议区的内容非常重要,也比较多,需要拆分并一个一个掌握。可结合周立功提供相关教程,以及前面提到的CiA 301手册理解。

我这里就不一一列出来了,简单再列一个通信子协议区中PDO通信参数(对象)与映射参数



写到这里,想必很多朋友都能理解,也能明白这些内容。更多的内容,可以结合这种拆分的思路去理解。

三、对象字典生成工具

上面介绍了对象字典的一些内容,可能还是有很多初学者不明白。同时,也就可能会产生疑问:这个对象字典我们需要字典和我们代码有什么关系呢?

可以简单来说,就是一些16位索引和8位子索引对应的变量数据,来下看下代码(下面两图),加深理解:





3.1 对象字典的代码需要自己写吗?

很多初学者,包括我(之前初学时)也会产生疑问:对象字典的代码需要我们自己写吗?

答案:不用自己写。

当然,对象字典的代码可以自己写,但完全没必要。1.自己写不一定正确;2.有现成工具可以节约大量时间。

3.2 Canfestival对象字典生成工具

我微信公众号分享《CANOpen系列教程》的封面中有一行英文:Canfestival.相信学过CANOpen的朋友都应该知道我接下来会结合这套Canfestival免费开源的CANOpen架构来讲述。

其中,Canfestival里面包含我们需要的CANOpen协议源码和对象字典生成工具

有了对象字典生成工具,对象字典的代码就可以通过它来自动生成。搭建Canfestival对象字典生成工具的环境是一个重点。

对于很多初学者来说搭建环境也是一个难点,不少初学者就卡在这一关,然后,学习CANOpen就没有继续下去了。

简单的说,搭建对象字典生成工具的环境步骤不多,可能会因为诸多因素导致搭建失败。搭建成功,运行之后会出现如下图界面:



在学习对象字典生成工具时,会看见一个词:EDS,即Electronic Data Sheet电子数据单

像周立功的CANOpen从站模块就配有工具生成EDS文件。当然,Canfestival提供的工具也能导出EDS文件。

Canfestival对象字典生成工具搭建过程,及相关内容我将在下一篇文章详细讲述。

四、说明

1.该文档部分内容来自网络,仅供个人学习使用,版权所有,禁止商用。

2.本文由我一个人编辑并整理,难免存在一些错误。

3.为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该教程同步更新于微信公众号【EmbeddedDevelop】,关注微信公众号回复【CANOpen系列教程】即可查看全系列教程。

五、最后

我的博客:http://www.strongerhuang.com
我的GitHub:https://github.com/EmbeddedDevelop

  我的微信公众号(ID:strongerHuang)还在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩内容,如果想查看更多内容,可以关注我的微信公众号。

strongerHuang wechat
关注微信公众号,查看更多精彩内容!
本文对你有帮助吗?