CAN及CANOPEN协议解析
- 格式:pdf
- 大小:826.61 KB
- 文档页数:47


CANopen协议CAN总线的通信协议
CANopen协议是一种广泛应用于现代工业自动化领域的通信协议,它基于CAN总线技术,为设备之间的通信提供了一套规范和标准化的方式。本文将介绍CANopen协议的基本原理、通信对象和通信过程。
一、CANopen协议的基本原理
CANopen协议是建立在CAN总线之上的,因此首先需要了解CAN总线的基本原理。CAN总线是一种多主机、多从机的串行通信系统。它采用差分信号传输的方式,具有低成本、抗干扰能力强、可靠性高等特点。
CANopen协议基于CAN总线,定义了一系列的对象字典和通信服务,用于设备之间的数据交换和控制。设备可以根据对象字典的内容来读取和写入数据,也可以通过通信服务来实现不同设备之间的通信。
二、CANopen协议的通信对象
CANopen协议定义了丰富的通信对象,包括节点、对象字典和数据类型等。其中,节点是CANopen网络中的实体,可以是主控节点或从节点。主控节点负责整个网络的管理和控制,而从节点则负责执行具体的任务。
对象字典是CANopen协议的核心,它存储了设备的参数、状态和控制信息等。对象字典中的每个对象都有一个唯一的标识符,用于标识该对象的类型和属性。通过读取和写入对象字典中的数据,设备之间可以进行数据交换和共享。 CANopen协议还定义了一系列的数据类型,如布尔型、整型、实型和字符串型等。这些数据类型可以用于描述设备的各种参数和状态,同时也可以作为通信对象的数据格式。
三、CANopen协议的通信过程
CANopen协议的通信过程可以分为以下几个步骤:
1. 初始化:CANopen网络在启动时需要进行初始化,包括网络配置、节点配置和通信参数的设置。
2. 启动:主控节点向从节点发送启动命令,从节点根据接收到的命令进行初始化和配置,并报告自身的状态。
3. 数据传输:设备之间通过读取和写入对象字典来进行数据的传输。主控节点可以向从节点发送读取或写入对象的命令,从节点则根据命令进行相应的操作并回复结果。
CANopen协议
一、引言
CANopen是一种基于CAN总线的通信协议,用于在工业自动化和控制领域中实现设备之间的通信和数据交换。本协议旨在确保不同厂家的设备能够互相兼容和交互操作,提供一种统一的通信标准。
二、范围
本协议适用于使用CANopen协议的设备和系统,包括但不限于工业自动化、机械控制、医疗设备等领域。
三、术语和定义
1. CAN总线:控制器局域网(Controller Area Network),一种广泛应用于工业领域的串行通信总线标准。
2. 节点:连接到CAN总线上的设备或系统。
3. PDO(Process Data Object):过程数据对象,用于在CANopen网络中传输实时数据。
4. SDO(Service Data Object):服务数据对象,用于在CANopen网络中传输配置和管理数据。
5. NMT(Network Management):网络管理,用于控制和管理CANopen网络中的节点。
四、协议规范
1. 物理层
a. CAN总线采用2线制,包括CAN_H和CAN_L两根线。 b. CAN总线的通信速率应符合ISO 11898标准。
c. CAN总线的电气特性应符合ISO 11898-2标准。
2. 数据链路层
a. 数据链路层使用CAN帧进行数据传输。
b. CAN帧分为标准帧和扩展帧,标准帧的标识符为11位,扩展帧的标识符为29位。
c. 数据链路层使用基于优先级的帧发送机制,具有抢占性。
3. 网络管理
a. NMT功能应支持节点的启动、停止、重置和状态监测等操作。
b. NMT功能应支持节点之间的心跳监测和通信质量检测。
c. NMT功能应支持节点的配置和参数设置。
4. PDO传输
a. PDO传输应支持实时数据的传输,具有低延迟和高可靠性。
b. PDO传输应支持双向数据交换,可以进行数据的读取和写入操作。
伺服电机的CANopen协议例程
一、什么是CANopen协议
1.1 CAN总线介绍
CAN(Controller Area Network)总线是一种串行通信协议,最初由德国Bosch公司开发,用于汽车电子系统之间的通信。CAN总线具有高可靠性、实时性和抗干扰能力强的特点,因此在工业控制、航空航天、机器人等领域得到了广泛应用。
1.2 CANopen协议概述
CANopen是基于CAN总线的一种高层通信协议,它定义了在CAN总线上进行设备之间通信的规范。CANopen协议提供了一套标准的通信对象和服务,使得不同厂家的设备能够方便地进行通信和集成。CANopen协议广泛应用于工业自动化领域,特别是伺服电机控制系统中。
二、伺服电机的CANopen协议应用
2.1 伺服电机控制系统简介
伺服电机是一种能够精确控制位置、速度和力矩的电机。伺服电机控制系统通常由伺服电机、驱动器和控制器组成。控制器通过发送控制指令给驱动器,驱动器再将指令转换为电机的运动控制信号,从而实现对电机的精确控制。
2.2 CANopen在伺服电机控制系统中的应用
CANopen协议在伺服电机控制系统中扮演着重要的角色。它定义了伺服电机控制系统中各个设备之间的通信方式和数据格式,使得不同厂家的伺服电机、驱动器和控制器能够进行互联互通。通过CANopen协议,控制器可以向驱动器发送位置、速度、力矩等控制指令,驱动器则将实际的运动状态反馈给控制器,实现闭环控制。
三、CANopen协议的基本原理
3.1 CANopen通信对象
CANopen协议定义了一系列通信对象,用于描述设备之间的数据交换。这些通信对象包括字典对象、PDO(Process Data Object)和SDO(Service Data Object)等。字典对象用于存储设备的配置参数和状态信息,而PDO和SDO则用于实时数据的传输。
3.2 字典对象
字典对象是CANopen协议中最基本的通信对象,它用于存储设备的配置参数和状态信息。字典对象包括对象字典和字典条目两个层次。对象字典是一个逻辑上的容器,用于存储字典条目。字典条目则是实际存储数据的单元,每个字典条目都有一个唯一的索引和一个数据类型。
PART1——CAN
1 CAN基础知识
CAN总线是一种通用的串行通信协议,包含OSI网络模型中的物理层和数据链路层,全
部通过硬件来实现。
CAN总线不分主从,每个节点只要需要,都可作为主站,向网络上其他节点发送信息。
物理层主要是通过CAN收发器来实现。
1.1 CAN收发器
CAN收发器安装在CAN控制器内部,负责逻辑信号和电信号的转换,也即信息的收发。
将逻辑信号转为电信号,并将其送入传输线;或者,将传输线的电信号转为逻辑信号。
传输线跟电线一样,分一高一低,即CANH和CANL。
TIPS:电信号,指随着时间而变化的电压或电流
CAN收发器如图1.1所示。由一个电路进行控制,也意味着控制单元的某个时间段只能
进行一个操作,收或者发。
图1.1 收发器原理图
VDD
开关闭合输出低电平,用逻辑“0”来表示,即显性电平;
开关断开输出高电平,用逻辑“1”来表示,即隐性电平。
当总线上连接有多个节点时,只要其中1个节点输出低电平,则总线激活,总线电平为低
电平;总线上所有节点都输出高电平时,总线电平才为高电平,此时总线未激活。原理如图1.2
所示。
图1.2 多节点收发器原理图
1.2 CAN总线终端电阻
CAN网络中,网络的源端(起始节点)和末端需各安装一个终端电阻。注:上图所示电阻
并非终端电阻。有两种接法,一般采用左图接法,如图1.3所示,左边高速,右边低速。
主要作用是:
提高总线抗干扰能力
提高信号质量。
通过终端电阻来消除在通信电缆中的信号反射,在通信过程中,有两种原因导致信号反射:
阻抗不连续和阻抗不匹配。阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,
信号在这个地方就会引起反射。数据收发器与传输电缆之间的阻抗不匹配,这种原因引起的反
射,主要表现在通讯线路处在空闲方式时,整个网络数据混乱,为了提高网络节点的拓扑能力,
CAN总线两端需要接有120Ω的抑制反射的终端电阻。
VDD VDD VDD