微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DSP的CANopen通讯协议的实现

基于DSP的CANopen通讯协议的实现

时间:01-18 来源:维库开发网 点击:

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.2 CANopen 标识符

CANopen定义了强制性的缺省标识符(COB-ID)分配表。它是基于11位的CAN-ID,包括4位功能段(Function Code)和7位地址段(Node-ID),如图1所示。文献[1]中给出了CANopen预定义主/从连接集CAN标识符分配情况。

2.2.3 CANopen通讯机制

CANopen通讯模型定义了四种报文(通讯对象)[1]:

1) 管理报文NMT(Network Management)

用于网络中主节点对从节点监控和管理。此消息不需要应答。NMT消息格式如表1所示。

2)服务数据对象SDO(Service Data Object)

SDO通过使用索引和子索引来访问一个设备的OD。协议属于确认服务类型。根据传送数据的长度不同,有两种传送机制:加速传送(最多4字节)和分段传送(大于4字节)。发送和应答报文总是包含8字节信息,基本结构如表2所示:

3) 过程数据对象PDO(Process Data Object)

用于传输正常网络操作中的实时数据。每个PDO在OD中用2个对象描述:PDO通讯参数和PDO映射参数。在此举例说明PDO的使用方法。假设第二个发送PDO映射如表3所示,如果这个报文被发送,则由3字节组成,报文结构如表4所示。

4) 预定义报文或特殊功能报文

定义了三个用于同步,应急指示和时间标记的特定对象。用于配合以上三种通讯机制。

3系统通讯的软、硬件设计

3.1 CAN总线硬件设计

由于TMS320LF2407A芯片内自带了CAN总线控制器模块,使得CAN总线的电路设计变得非常简单。将TMS320LF2407A的CANTX、CANRX引脚和CAN收发器PCA82C250的TXD、RXD引脚相连即可。CAN总线之间需要使用一个合适的终端电阻连接。为了进一步提高系统的抗干扰能力,可以在控制器和传输介质之间加接光电隔离器件6N137。电路原理图如图2所示。

3.2 CANopen协议对象字典OD的建立

本伺服驱动器通讯支持CANopen通讯子协议(DS301)和驱动设备子协议及运动控制命令(DSP-402)。在开发的过程中,根据应用的具体要求,将数字输入/输入模块、电机及驱动设备、控制器、编码器等设备类型及其相应的功能在设备描述的协议中进行了描述。建立的OD分为三个部分:

1) 通讯协议对象(Index 0x1000-0x1AFF)

定义设备类型,错误寄存器,厂商指定状态寄存器,COB-ID同步信息,通讯循环周期,同步CAN信息窗口,以及设备名,软硬件版本号等。另外SDO的通讯参数以及PDO的通讯和映射参数也在该部分定义。本设计中采用固定PDO映射,不允许动态映射。

2) 标准设备子协议对象(Index 0x6000-0x65FF)

定义三类信息:第一类是电机及驱动器的相关设备参数,如类型,厂商信息,分类号等;第二类是命令字和状态字;第三类是位置、速度的相关参数。

3) 厂商指定协议对象(0x2000-0x20FF)

根据厂商需求,灵活定义所使用的变量。 此部分的使用使CANopen协议既保证了设备的通用性,又保证了系统良好的扩展性。

3.3 通讯程序的设计及实现

针对带CAN控制器的TMS320LF2407A和PC机CAN卡之间的通讯进行了软

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top