目前,CANopen通讯协议已经在工业领域得到了广泛的使用,由于其面向对象的设计思路,CANopen协议已成为欧洲等国家的自动化公司标配的通讯接口之一。在本系列文章中,我们将介绍CANopen协议的基础内容,包括对象字典、服务、SDO、PDO和主/从站节点等。
1. 什么是CANopen?
CANopen是一种基于CAN的通信协议。这项协议非常有用,因为它可以让设备、节点(如工业机械)之间具有现成的互操作性,并且提供了安装前和安装后配置设备的标准方法。CANopen最初是为面向运动的机器控制系统设计的,如今,它被广泛用于电机控制(步进/伺服电机)领域,并在以下应用中得到广泛使用:
● 机器人技术(包括自动化机器人、传送带和其他工业机械)
● 医疗(包括X射线发生器、注射器、病人床和透析设备)
● 汽车(包括农业、铁路、拖车、重型、船舶等)
CANopen是一个基于CAN总线的"高层协议",这意味着CAN总线(ISO 11898)就像集装箱的卡车一般作为CANopen信息的"运输工具"。在OSI模型中, CAN总线代表两个最低层(物理层和数据链路层)。这意味着,CAN只是实现了带有11位CAN ID、远程传输(RTR)位和64个数据位(与更高层的协议相关)的字段的帧的传输。换言之,CAN总线在CANopen中的作用与在J1939协议相同。而CANopen则实现了OSI模型的第七层,并能够适应除CAN以外的其他数据链路层协议(例如EtherCAT、Modbus、Powerlink)。
值得关注的是,随着CAN FD的推出,CANopen FD作为下一代CANopen标准,可能会发挥着越来越重要的作用。具体细节,欢迎到CiA官网中查看。
相较于CAN总线和J1939协议,CANopen协议新增了6个核心概念:
● 通信模式。设备/节点的通信有3种模式: 主/从站、客户端/服务器和生产者/消费者。
● 通信协议。用于通信的协议,如配置节点(SDO)或传输实时数据(PDO)等。
● 设备状态。一个设备支持不同的状态,一个 "主站 "节点可以改变一个 "从站 "节点,包括重置等操作。
● 对象字典。每个设备都有一个OD,其中有指定设备配置等的条目,它可以通过SDO访问。
● 电子数据表。EDS是OD条目的标准文件格式,它允许使用服务工具来更新设备。
● 设备设置文件。描述了I/O模块(CiA 401)和运动控制(CiA 402)等供应商独立性
2. CANopen通信基础知识
在CANopen网络中,需要多个设备进行通信,例如,在工业自动化设置中,你可能有一个带有多个伺服电机节点和一个控制接口/PC节点的机械臂。CANopen中存在着三种通信模式,每种模式都与我们所讨论的CANopen协议紧密相连。下面将简单介绍这三种模式:
第一, 主/从站。一个节点(例如控制接口)作为应用主站或主控制器。它向从站设备(例如伺服电机)请求数据。这个过程被用于诊断或状态管理。在标准应用中,可以有0到127个从站。但需要注意,请注意:在单个CANopen网络中,可以有不同的主机控制器共享同一个数据链路层。
第二, 客户端/服务器。客户端向服务器发送数据请求,服务器回复请求的数据。例如,当应用程序主站需要从站的OD中获取数据时使用这一模式。从服务器上读取是一种 "上传",而"写入"是一种 "下载"(该术语采用服务器端的角度)。
第三, 消费者/生产者。该模式中生产者节点向网络广播数据,由消费者节点消费。生产者根据请求(拉模型)或没有特定请求(推模型)发送此数据。
显然,这些模型实际上是相同的,但为了术语的一致性,我们对它们进行了区分。
在下一篇文章中,我们将继续讲解CANopen通信基础知识,欢迎关注以便第一时间获取更新的内容。虹科在CAN、CANopen等领域深耕多年,有着深厚的技术实力,目前已面向国内市场推出了CANopen开发源代码、CANopen数据记录仪,和支持CANopen协议的网关、板卡、IO等产品。