【CANopen】周立功轻松入门CANopen笔记

前言

想学习些新东西了,原本想直接学学Ethercat,但是简单看了看对象字典啥的概念一头雾水的,决定先从CANopen开始,Ethercat看着头疼。Etehrcat和CANopen有挺多类似的地方。感谢ZLG的这个入门笔记,我似乎是看懂了些,想写写笔记。

CANopen的ID定义

作为一个CAN的应用层协议

  • 采用11位的标准帧的格式
  • 数据能少发就少发,能单向就单向,能不分包就不分包,提高实时性。

网络管理,特殊协议报文的ID定义

CANopen中需要定义一个主机,也就是网络管理主机,它负责管理网络中的其他从机。
主机和从机之间会进行一系列的通讯,例如初始化,同步,配置等等网络管理报文和特殊报文。
在这里插入图片描述

过程对象数据PDO和服务数据对象SDO

PDOSDO
单向传输需要应答
生产者-消费者模型服务器-客户端模型

对于PDO和SDO,协议强制规定了其CAN ID的划分方法。
高4位是功能码,低7位的节点号。CAN ID叫做COB-ID,节点号叫做Node-ID,一个网络最多128个节点。
在这里插入图片描述

协议又更进一步的将PDO细分

分成发送PDO和接收PDO,以从站为参考点。TPDO和RPDO各有4个对象,每个对象一条CAN数据

一般来说,只有主机能发起SDO,用来配置和关键参数的传递,另外从机也可以对其他从机发送SDO通讯。
在这里插入图片描述

PDO

在这里插入图片描述

PDO的传输形式

PDO可以同步传输,也可以异步传输
在这里插入图片描述
异步传输一般由特定的事件来触发。
同步传输一般是主站通过同步报文让所有的从站在同一时刻传输数据。
有细分为周期传输(循环)和非周期传输(无循环)
周期传输通过接收SYNC(同步对象),可以设置1-240个同步对象
非周期传输由远程帧触发或者特定事件对象触发。

PDO的通信参数

PDO通信参数定义了设备的CAN -ID,传输类型,定时周期。
RPDO位于1400H-15FFH
TPDO位于1800H-19FFH
在这里插入图片描述
在这里插入图片描述
试了试编辑器
在这里插入图片描述

PDO的映射参数

它包含了一个对象字典中的对象列表,这些对象映射到相应的 PDO,其中包括数据的长度(单位,位),对于生产者和
消费者都必须要知道这个映射参数,才能够正确的解释 PDO 内容
。就是将通信参数、应用数据和具体 CAN 报文中数据联系起来。
RPDO通讯参数的1400H-15FFH,映射参数范围为1600H–17FFH,数据存放为2000H之后的厂商自定义区域
TPDO通讯参数的1800H-19FFH,映射参数范围为1A00H–1BFFH,数据存放为2000H之后的厂商自定义区域
在这里插入图片描述
在这里插入图片描述
我再试了试ZLG他们自己家的工具打开它教程中说的那个ESD文件,看了看TPDO的映射,不得不说,它这个工具确实是好用一些。
在这里插入图片描述
在这里插入图片描述

SDO

在这里插入图片描述
SDO则规定

发起一方的CAN ID固定就是600H+Node-ID(值为被询问的节点地址),回复一方的ID就是580H+Node-ID

在这里插入图片描述

快速SDO协议

就是一次最多传输4字节的SDO通信,一次来回就完成的。
在这里插入图片描述

普通SDO协议

就是需要传输超过4字节的数据,就需要弄分包了

下载协议

在这里插入图片描述

上传协议

在这里插入图片描述

对象字典

它描述了CANopen节点中的所有参数,它可以以EDS文件的形式进行传递。
其中的每一个对象都采用16位的索引来寻址,范围0-0xFFFF
某些索引下又定义了8位的子索引,范围0-0xFF
每一个索引内具体的参数,最大支持用4字节表示。
每一个具体的参数,都包含名字,索引,子索引,数据类型,是否必须,读写属性。
用的最多的就是DS301子协议,其他的子协议都是对301的补充和扩展。
对象字典区域的定义如下:
在这里插入图片描述
我这里打开一个CANopen的对象字典编辑器给看了看,加深印象
在这里插入图片描述

通讯对象子协议区

其中1000H-1029H是所有CANopen设备都要用到的。
在这里插入图片描述

通用通讯对象

主站在启动时,通常都全部或者部分读取所有从站中通用通讯对象中的索引,所以所有的通用通讯对象都必须在
CANopen 从站中实现。
在这里插入图片描述
这里我也在字典对象编辑器里看到了他们的身影~
在这里插入图片描述

制造商特定子协议

对象字典索引 2000H to 5FFFH为制造商特定子协议,通常是存放所应用子协议的应用数据,这里就可以允许用户自定定义需要的参数。
在这里插入图片描述

标准化设备子协议

这些就是为不同行业的设备定义的对象字典了,范围从0x6000H-0x9FFF

在这里插入图片描述

CANopen的主站

节点状态

任何一个CANopen节点都包含这6种运行状态

  • 初始化
  • 应用层复位
  • 通讯复位
  • 预操作状态
  • 操作状态
  • 停止状态
    在这里插入图片描述
    主机是可以通过主站命令让从站进行状态切换的
    在这里插入图片描述

节点上线报文

从站用来提示主站,自己已加入网络或者避免与其他从站ID冲突,必须发,ID为700H+Node-ID,数据就是1个字节0
在这里插入图片描述

节点状态与心跳报文

心跳报文的CAN ID为700H+Node-ID,数据就是1个字节,反映节点的状态,04h为停止状态,05h为操作状态,7Fh为预操作状态。
在这里插入图片描述
我也去编辑器里试了试这个心跳生产者时间1017H和检查时间1016H的设置
在这里插入图片描述
在这里插入图片描述

节点守护

早期的CANopen通过轮询从站的方式监测从站。
通过远程帧来实现。
后期由于CAN总线种远程帧逐渐淡出使用,现在都是用心跳报文来做的了
在这里插入图片描述
在这里插入图片描述

主站节点状态切换命令

CAN-ID是最高优先级的0,数据两个字节,第一个字节是命令类型,第二个字节是被控制的Node-ID,如果需要控制所有节点就写0.
在这里插入图片描述

特殊协议

同步协议

就是每个从节点都以该同步报文作为PDO的触发参数。
一般同步报文由 NMT 主机发出,CAN 报文的数据为 0 字节。
一个网络内有 2个同步机制,就需要设置不同的同步节拍,比如某些节点按 1 个同步帧发送 1 次 PDO,其
他的节点收到2个同步帧才发送1此PDO,所以这里PDO参数中的同步起始值就起了作用。
在这里插入图片描述
在同步协议中,有 2 个约束条件
同步窗口时间: 索引 1007h约束了同步帧发送后,从节点发送 PDO 的时效,即在这个时间内发送的 PDO 才有效,超过时间的 PDO 将被丢弃。
通讯循环周期: 索引 1006h规定了同步帧的循环周期。

时间戳协议

CAN-ID 为100H,长度为6,数据为当1984年1月1日0时起。
在这里插入图片描述

紧急报文协议

CAN-ID 为80H+Node-ID,数据包含8个字节。
在这里插入图片描述
在这里插入图片描述

与 PDO 的生产禁止时间类似,紧急报文也有生产禁止时间,存储在对象字典的 1015h
中,为了限制节点不断发送紧急报文,导致总线负载过大。

### 回答1: “CanOpen轻松入门立功PDF详细介绍了基于CAN总线的工业通信协议CanOpen,内容涵盖了CanOpen的概述、通信对象、数据类型、设备配置、网络连接、数据传输以及调试等方面。 CanOpen协议是一种优秀的应用层协议,可以应用于许多工业现场的自动化控制中,本文以通俗易懂的方法,对CanOpen的各个部分进行了剖析。 作者在介绍CanOpen的对象字典时,详细列举了几种具有代表性的对象,并对其进行了描述和应用实例的讲解。在介绍数据传输时,作者详细的讲解了PDO和SDO的区别以及如何进行数据传输。 此外,本文在调试方面也讲解的比较详细,包括如何使用CanOpen诊断工具进行调试以及如何设置调试信息等。 总之,“CanOpen轻松入门立功PDF是一份高质量的文献资料,对CanOpen协议的入门研究有一定参考价值,是初学者入门学习CanOpen协议的必备材料。 ### 回答2: CANopen是一种用于工业控制系统中的通信协议,该协议的灵活性和可靠性使其成为工业界广泛使用的标准。立功先生编写的“CANopen轻松入门”是一本针对初学者的PDF教材,旨在帮助读者了解CANopen通信协议并掌握相关的编程和调试技巧。 首先,本书的结构十分清晰,内容涵盖了CANopen协议的各个方面,包括CANopen的基本概念,帧结构和协议规则。这些内容可以帮助读者更好地理解CANopen协议的工作原理,从而能够编写自己的CANopen应用程序并进行调试。 此外,本书除了基础介绍外,还介绍了CANopen的高级应用,包括CANopen网络管理和配置文件等内容。这些高级方面内容能够帮助读者深入了解CANopen协议的工作细节,并根据实际需求优化应用程序。 同时,“CANopen轻松入门”的教学风格也非常亲和和易懂。立功先生采用生动、有趣的例子和实验来解释各种CANopen协议的基本原理和工作机制,使读者可以轻松掌握CANopen的相关知识和技能。 总之,“CANopen轻松入门”是一本非常有用的教材,对于想要了解CANopen通信协议或者进行相关应用开发的初学者来说是十分有帮助的。无论是想要了解CANopen的工程师,还是从事CANopen应用开发的技术人员,都可以从中获取到很多有价值的信息和知识。 ### 回答3: CANopen是一种现在非常流行的CAN总线应用层协议,它具有强大的扩展性和可定制性。CANopen协议已经成为许多行业的标准,例如工业自动化、汽车电子等。因此,在学习CANopen协议方面,掌握基本原理和实际应用是非常重要的。 “CANopen轻松入门”是由立功所编写的一本入门级别的教程,旨在帮助读者快速理解和学习CANopen协议。本书主要包括4个部分,即CAN总线概述、CANopen协议概述、CANopen对象字典和CANopen应用示例。 首先,CAN总线概述部分通过简单介绍CAN总线的基础知识放置了CANopen协议的学习基础。其次,CANopen协议概述部分介绍了CANopen协议的基本结构、消息传输、数据帧格式等内容,这些都是学习CANopen协议的重要内容。接着,CANopen对象字典部分主要介绍了CANopen对象字典的定义、结构和使用方法。应用示例部分则是通过具体的案例演示了CANopen协议的应用。 总的来说,“CANopen轻松入门”虽然是一本入门级别的教程,但它为读者提供了学习CANopen协议的重要理论和实际应用指南。读者通过本书的学习,可以从基础原理到具体应用进行全方位的学习和掌握,既深入浅出,又具有实际操作性。因此,针对初学者,这本书是一本非常有价值的教程,如果你想要深入学习CANopen协议,本书是一个不错的选择。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值