CANopen协议在现场总线网络中的应用
扫描二维码
随时随地手机看文章
1 引 言
基于现场总线的网络技术研究是自动控制领域发展的一个热点。在各种各样的工业现场总线中, CAN 总线以其成本低、速度快、实时性和可靠性较高等特点被快速应用于汽车电子、医疗、军事等领域。但是, CAN 总线只定义了物理层和数据链路层,本身并不完整,针对这一问题, CiA(CAN in Automation) 协会经过不断的发展于 1995 年发布了完整的 CANopen 协议,它不仅定义了应用层和通讯子协议,也为可编程系统、不同器件、接口、应用子协议定义了帧状态,为基于现场总线的全数字分布式控制系统的广泛应用和系统的一体化管理提供了解决之道。
本文以改善现场总线网络通讯系统的运行效率,提高实时性和信息处理能力为前提,针对并条机自调匀整控制系统中各功能模块的作用,浅析 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 。
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 测试结果 [!--empirenews.page--]
为了保证系统中每个模块都能够正常工作,需要设计一个能够与 PC 机进行实时通讯的通用板,满足对系统各部分在实验室环境下进行测试,确保系统正常运行。采用 LabVIEW 软件设计 PC 机监控面板,内置信号采集、测量分析与数据显示功能,摒弃了传统开发工具的复杂性,在提供强大功能的同时还保证了系统灵活性。
在监控面板上可以设置节点号 (Node ID) ,主/从节点,设置要发送报文的类型 ( 如 TPDOn , SDO) , NMT , Heartbeat , LSS) 及内容 ( 数据长度,内容 ) ,选择通讯端口,还可以观察到接收的 CAN 报文类型、数据长度、节点号和报文内容。图 5 显示的数据是在初始化状态时进行的设置,可以在数据接收窗口看到进行 LSS 节点号设置和存储设置参数的返回报文,以及节点根据 CANopen 协议的规定发送 Boot-up 报文,和进入预操作状态后的 Heartbeat 报文。
5 结语
本文将 CANopen 协议应用于自调匀整系统,实现了现场总线分布式网络控制系统的数字化、模块化,增强了设备的可扩展性,提高了数据传输的可靠性。这种基于现场总线应用层标准协议的开发和使用,对提高系统的工作效率,特别是对复杂系统的研制具有一定的指导意义。