kaiyun官方注册
您所在的位置: 首页> 嵌入式技术> 设计应用> CANopen协议在现场总线网络中的应用
CANopen协议在现场总线网络中的应用
EEworld
EEworld
摘要:基于现场总线的网络技术研究是自动控制领域发展的一个热点。在各种各样的工业现场...
Abstract:
Key words :

关键字:CANopen协议" title="CANopen协议">CANopen协议,现场总线,网络

  1 引 言   
  基于现场总线的网络技术研究是自动控制领域发展的一个热点。在各种各样的工业现场总线中, CAN 总线以其成本低、速度快、实时性和可靠性较高等特点被快速应用于汽车电子、医疗、军事等领域。但是, CAN 总线只定义了物理层和数据链路层,本身并不完整,针对这一问题, CiA(CAN in Automation) 协会经过不断的发展于 1995 年发布了完整的 CANopen 协议,它不仅定义了应用层和通讯子协议,也为可编程系统、不同器件、接口、应用子协议定义了帧状态,为基于现场总线的全数字分布式控制系统的广泛应用和系统的一体化管理提供了解决之道。

本文以改善现场总线网络" title="现场总线网络">现场总线网络通讯系统的运行效率,提高实时性和信息处理能力为前提,针对并条机自调匀整控制系统中各功能模块的作用,浅析 CAN 总线高层通讯协议 CANopen ,实现各功能模块间的数据通信。通过实验测试,证明系统工作稳定、可靠,保证了全数字分布式网络系统工作的快速性、准确性和实时性。

2 CANopen 协议概述   

2.1 设备模型   

CANopen 协议是由 CiA 协会针对 CAN 协议的不完整性而定义出来的一个更高层次的协议——应用层协议。一个 CANopen 设备模块可以被分为 3 部分,如图 1 所示。通信接口和协议软件提供在总线上收发通信对象的服务。不同 CANopen 设备间的通信都是通过交换通信对象完成的。这一部分直接面向 CAN 控制器进行操作。对象字典描述了设备使用的所有的数据类型,通信对象和应用对象。对象字典位于通信程序和应用程序之间,向应用程序提供接口,应用程序对对象字典进行操作就可以实现 CANopen 通信。应用程序包括功能部分和通信部分,通信部分通过对对象字典进行操作实现 CANopen 通信,而功能部分则根据应用要求实现。

2.2 对象字典   

对象字典 (Object Dictionary , OD) 是一个有序的对象组,每个对象采用一个 16 位的索引值来寻址,为了允许访问数据结构中的单个元素,同时定义了一个 8 位的子索引,对象字典的结构参照表 1 ,对象字典的描述参照表 2 。

在 CANopen 网络系统中每个节点都有一个惟一的对象字典,每个节点的对象字典都具有相同的结构,但具体的内容要根据不同的设备而定,包含了描述这个设备和它的网络行为的所有参数。

2.3 通讯对象   

通过 CAN 网络传输的 CANopen 通讯对象可以通过服务和协议来描述。分类如下:   

(1) 实时数据通过过程数据对象 (PDO) 协议传输。

用 8 个字节的数据字段把过程数据对象 PDO 映象到一个单一的 CAN 帧从而传输应用对象。每个 PDO 有一个惟一的标识符且仅可以通过一个节点发送,但其接收者不止一个。每个 PDO 在对象字典中用 2 个对象描述: PDO 通讯参数,规定了 PDO 的通讯行为,包含哪个 COB ID 将被 PDO 使用,传输类型,禁止时间和定时器周期; PDO 映射参数,规定了哪个对象被映射到一个 PDO 里,生产者和消费者必须知道这个映射,以解释 PDO 内容。

(2) 服务数据对象 (SDO) 协议用来对对象字典进行读写操作。

通过服务数据对象 SDO 可以访问一个设备的对象字典。为了使通讯得到确认,一个 SDO 需要两个带有不同标识符的 CAN 数据帧,通过 SDO ,在两个设备问可以建立点对点的通信,被访问对象字典的设备是 SDO 通讯的服务器,一个设备可以支持多个 SDO 对象,但是,至少有一个 SDO 在一个设备中被支持。

(3) 特殊功能对象协议提供了特定应用,网络同步,时间戳和紧急报文传输。

(4) 网络管理 (NMT) 协议提供了网络初始化,错误控制和设备状态控制服务。

在 CANopen 网络中,需要一个节点履行 Master( 主节点 ) 功能。其他节点作为 NMT的 Slave( 从节点 ) 。 NMT 提供了以下功能:模块控制服务 ( 初始化参加网络通讯的从点 ) ;错误控制服务 ( 管理节点和网络通讯的状态 ) ;配置控制服务 ( 上传和下载网络的配置据 ) 。

(5) 层设置服务 (LSS) 协议用来配置 CAN 总线通讯参数和设备参数。

使用 CANopen 协议定义的 LSS 报文实现对 CAN 总线网络的配置,包括节点 ID ,通讯波特率,仪器的产品号、序列号等。 LSS 报文在 CANopen 协议通讯中是可选的,可以在节点初始化时直接指定节点 ID ,通讯速率等参数,它的使用可以提高系统灵活性。

3 通信网络的 CANopen 协议实现   

3.1 自调匀整系统通信网络结构   

本并条机自调匀整系统由键盘显示控制器、 DSP 控制器、 A 孔伺服电机控制器、 B 孔伺服电机控制器、 PLC 逻辑控制器和 PC 机监控组成,各节点在 CAN 总线的基础上采用 CANopen 协议实现通讯,完成系统预定义的功能。图 2 所示为 A 孔开环式并条机自调匀整原理图。

3.2 硬件部分   

DSP 控制器部分为整个系统的核心,负责对整个通信网络进行信息采集、数据运算、工作控制。下面主要说明 DSP 控制器的 CANopen 协议实现。

采用集成 CAN 模块的 TMS 320F 2810 DSP 实现,它有多达 32 个邮箱,占用 512 B RAM ,都可以配置为发送或接收邮箱,且都有一个可编程的接收屏蔽寄存器。这样就使数据传输更加方便灵活、信息量大大增加。图 3 为 DSP 控制器 CAN 总线部分驱动电路图,分别选用 TMS320F 2810 的 64 引脚 CANTXA 和 65 引脚 CANRXA 作为 CAN 总线的发送和接收引脚。采用 ADuM1100 高速数字隔离器替代传统的光电耦合器。采用MCP2551作为高速 CAN 收发器,具有差分发射和接收能力,可将许多节点与同一网络相连接。

3.3 软件部分   

根据 CANopen 协议软件框架,分别设置了 NMT 报文、 SYNC 报文、 SDO 报文、 PDO 报文和 Heartbeat 报文,并针对 DSP 控制器从节点的性质及其与各节点之间的关系,设置了各报文的 COB - ID ,见表 3 。

在系统中键盘显示控制器为主节点,通过液晶显示监控各从节点信息,主节点通过检测 4 个从节点发送的周期性心跳报文 (Heartbeat) 来判断各个从节点的工作状态。图 4 为 DSP 控制器从节点的 CANopen 协议通讯流程:在系统上电后,首先向主节点发送 Boot-up 报文,通知主节点进入 Pre-operational 状态,等待主节点的 SDO 报文访问对象字典,在完成对象字典的配置后,等待接收主节点的 NMT 报文进入 Operational 状态,开始 PDO 报文的发送及接收,完成信息数据的交换,实现分布式网络控制。

4 测试结果   

为了保证系统中每个模块都能够正常工作,需要设计一个能够与 PC 机进行实时通讯的通用板,满足对系统各部分在实验室环境下进行测试,确保系统正常运行。采用 LabVIEW 软件设计 PC 机监控面板,内置信号采集、测量分析与数据显示功能,摒弃了传统开发工具的复杂性,在提供强大功能的同时还保证了系统灵活性。

在监控面板上可以设置节点号 (Node ID) ,主/从节点,设置要发送报文的类型 ( 如 TPDOn , SDO) , NMT , Heartbeat , LSS) 及内容 ( 数据长度,内容 ) ,选择通讯端口,还可以观察到接收的 CAN 报文类型、数据长度、节点号和报文内容。图 5 显示的数据是在初始化状态时进行的设置,可以在数据接收窗口看到进行 LSS 节点号设置和存储设置参数的返回报文,以及节点根据 CANopen 协议的规定发送 Boot-up 报文,和进入预操作状态后的 Heartbeat 报文。

5 结语   

本文将 CANopen 协议应用于自调匀整系统,实现了现场总线分布式网络控制系统的数字化、模块化,增强了设备的可扩展性,提高了数据传输的可靠性。这种基于现场总线应用层标准协议的开发和使用,对提高系统的工作效率,特别是对复杂系统的研制具有一定的指导意义。

此内容为AET网站原创,未经授权禁止转载。
Baidu
map