CANOpen系列教程08_CANOpen通信接口引导学习

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

一、写在前面

  上一篇文章让大家了解了一下CANOpen协议的模型,也就是说CANOpen协议的内容都包含在这个模型里面,而模型里面的内容可以细分出来许许多多的知识。

  但是对于初学者来说,并不是必须要掌握的所有的细节知识才行。只需要掌握其中必备的一些基础知识,就可以编写CANOpen的应用程序代码了。

  那么本文将带你掌握其中部分基础知识,让你大脑中有CANOpen协议的这些概念知识(先有初步认识,以便于后面综合理解)。

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

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

二、通信接口主要内容

我这里按照CANOpen CiA 301协议文档,提取了通信接口的主要内容,我把它用思维导图方式列出来了,如下图:



初学者需要掌握通信接口后面的四项内容:网络管理(NMT)、服务数据对象 (SDO)、过程数据对象(PDO)、特殊协议

这四项内容细分出来的知识点不多(相对来说),但对初学者来说,理解起来的难度较大。难点就在于:有许多抽象概念,且知识点关联性较强

比如:什么是报文? CAN-ID、COB-ID、Node-ID是什么思,各有什么区别? COB-ID和对象字典索引有关联吗?

三、CANopen轻松入门

相信学习CANOpen的朋友都在网上看到过周立功的这么一本电子书:《CANopen 轻松入门》

本来我是打算再造一次轮子,重新结合CANOpen CiA 301标准写一遍。但我之前有做计划,发现太费时了,而且做出来的效果也没有《CANopen轻松入门》这么好。我思前想后,还是觉得没有必要。

所以,本文主要目的在于引导初学者,网上下载《CANopen轻松入门》这本电子书来好好研究一下。关于通信接口主要内容,目录如下图:



《CANopen轻松入门》这本电子书是我站在初学者的角度考虑,觉得比较适合初学者,并不是为周立功打广告。当你把这本电子书里面内容都掌握了,我觉得你就已经入门了。

《CANopen轻松入门》网盘下载地址(百度、谷歌随处可见):
https://pan.baidu.com/s/15Or8ox3LgXKR6Z7ul7Zt1g

提取码:9ja0

四、CiA 301

入门之后若要深入理解,我建议参看官网的《CANOpen CiA 301》标准这本文档。为什么是CiA 301标准呢? 因为这些入门知识大部分都是CiA 301标准里面的内容。

CiA 301标准有多个版本,建议下载已经公开的V4.2.0版本:



CiA技术文档下载地址(需要登录):
https://www.can-cia.org/standardization/specifications

CiA 301网盘下载地址(含中、英文版本):
https://pan.baidu.com/s/1efnJAmB7tkSsMwIf39p8sg

提取码:x1m0

提示:
CiA(CAN in Automation) 301也是大家所说的DS301,为CANopen 基础协议。

我们还常看到类似CiA 401 402这些协议,其实它们是在CiA 301 之上,对各个行业不断推出设备子协议。

所谓的子协议,就是针对不同行业的应用对象,对 CANopen 内部的数据含义进行重新定义,或者添加新的控制逻辑。

五、提取通信接口要点

这里针对通信接口简单罗列一些基础知识,方便初学者理解。

5.1 网络管理(NMT)

1.CANOpen网络一般是一个主站,多个从站的局域网络;

2.NMT节点具有6种状态:初始化、应用层复位、通讯复位、预操作状态、操作状态、停止状态。可以自己切换状态,也可主站切换状态;

3.任何一个 CANopen 从站上线后发出节点上线报文(boot-up);

5.2 过程数据对象 PDO

1.PDO用来传输实时数据,属于“生产消费”模型;

2.COB-ID 定义只是预定义,TPDO5、6、7这些也是可以存在。PDO 的COB-ID 与 Node-ID 无必然规则上的联系,

3.PDO 的两种传输方式:同步传输和异步传输;

4.PDO 的通信参数可通过对象字典工具配置;

5.PDO 的映射参数是一个相对难理解的参数,请结合《CANopen 轻松入门》图文(请关注颜色)理解;

5.3 服务数据对象 SDO

1.SDO为请求应答方式;

2.发送方(客户端)、接收方(服务器) ;

3.通常从节点为 SDO 服务器,主节点为客户端;

4.两种协议:快速、普通 SDO 协议;

5.CS命令符含义需熟记(查表);

5.4 特殊协议

1.常见的就是罗列出来的3种:同步协议、时间戳协议、紧急报文协议;

2.特殊协议CAN-ID定义(查表);

3.紧急报文错误代码分类及含义;

以上许多内容都有一张对应的表格,可以搜索一下“CANopen备忘录”,就有详细列出各自对应的内容。

六、说明

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
关注微信公众号,查看更多精彩内容!
本文对你有帮助吗?