1、引言
CANopen是一个开放的、标准化的应用层协议,在各种控制系统中得到了广泛的应用。依靠CANopen协议的支持,可以对不同CAN厂商的设备通过总线进行实时通讯。
本文针对自主研发的全数字电机伺服驱动系统,使用CANopen通讯协议实现了CAN总线数字信号处理器(DSP)系统与上位机CAN卡之间的通讯,并通过测试实验验证了信息传递的可靠性,保证了全数字网络化伺服驱动系统中对电机控制的快速性、准确性和实时性。
2 、通讯系统实现的基本原理
2.1 LF240x系列DSP的CAN控制器模块
LF240x系列DSP的CAN控制器模块,是一个完全的CAN控制器。具有以下特性[6]:
(1)完全支持CAN2.0B协议;
(2)对象有6个邮箱,用于接收和发送信息,其数据长度为0~8个字节;
(3)可编程的中断配置,位定时器及CAN总线唤醒功能;
(4)当发送出现错误或仲裁丢失数据时,CAN控制器有自动重发功能;
(5)总线错误自诊断功能;
(6)支持自测试模式。
2.2 CANopen协议
CANopen协议以CAN芯片为硬件基础,有效利用CAN芯片所提供的简单通信功能区实现工业控制网络的复杂应用层协议要求。应用中应该注意以下几个方面的内容:
2.2.1 对象字典OD(Object Dictionary)
OD是CANopen协议的核心概念[1],它是一个有序的对象组,每个对象用一个16位的索引值和一个8位的子索引寻址。CANopen网络中的每个节点都有一个OD,包含了描述这个设备和它的网络行为的所有参数。
2.2.