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 。