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

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卡之间的通讯进行了软件设计。
TMS320LF2407A的CAN控制器的邮箱2配置为接收方式,邮箱3配置为发送方式。都采用标准信息帧格式(11Bit ID)。其中发送信息采用查询方式,接收信息采用中断方式,邮箱2用低中断优先级。信息传输波特率设置为500Kbps。
采用CANopen协议对设备进行控制的过程可以理解为用SDO对数据字典的读写过程。检测设备对象的状态或查询设备当前信息时,可用SDO读取数据字典中的对象;要对设备发布控制命令可利用SDO向相应的数据字典对象写入数据。接收到信息帧时首先要将其命令字节(byte0)读出,以确定下一步的读写命令处理。
信息帧的接收和发送均采用缓冲区的方式。读操作时,发送信息帧长度为4字节,应答信息帧约定为8字节;写操作时,发送信息帧长度约定为8字节,应答信息帧为4字节。
采用不同的发送邮箱发送数据长度不同的信息帧。本程序设计中,采用邮箱4发送4字节长度的信息帧,采用邮箱5发送8字节长度的信息帧。这种方式可以提高信息传输的效率。软件设计流程图如图3所示。
评论