基于DSP的CANopen通讯协议的实现
件设计。
TMS320LF2407A的CAN控制器的邮箱2配置为接收方式,邮箱3配置为发送方式。都采用标准信息帧格式(11Bit ID)。其中发送信息采用查询方式,接收信息采用中断方式,邮箱2用低中断优先级。信息传输波特率设置为500Kbps。
采用CANopen协议对设备进行控制的过程可以理解为用SDO对数据字典的读写过程。检测设备对象的状态或查询设备当前信息时,可用SDO读取数据字典中的对象;要对设备发布控制命令可利用SDO向相应的数据字典对象写入数据。接收到信息帧时首先要将其命令字节(byte0)读出,以确定下一步的读写命令处理。
信息帧的接收和发送均采用缓冲区的方式。读操作时,发送信息帧长度为4字节,应答信息帧约定为8字节;写操作时,发送信息帧长度约定为8字节,应答信息帧为4字节。
采用不同的发送邮箱发送数据长度不同的信息帧。本程序设计中,采用邮箱4发送4字节长度的信息帧,采用邮箱5发送8字节长度的信息帧。这种方式可以提高信息传输的效率。软件设计流程图如图3所示。
4 测试结果
为了测试CAN总线DSP系统与PC机CAN卡之间的通讯情况,采用VC++编写了友好的人机界面(见图4)。进行通讯测试时,首先要选择通讯端口,设置通讯波特率,ID屏蔽位,信息帧格式及传输数据的格式(十进制或十六进制)。特别需要注意PC端设置的通讯波特率要和DSP端的通讯波特率保持一致。然后打开CAN总线端口,选定发送SDO的功能段及地址段,填写信息帧长度(以字节为单位)及内容,即可进行通讯测试。
例如,要将1号地址的电机轮速期望值设为0x3E8,电机轮速期望值在OD中的索引为0x606B,使用启动域下载协议,加速传输。则设置地址段为1,信息帧长度为8,信息帧内容为2B 6B 60 00 E8 03 00 00。发送成功后返回应答信息帧内容为:ID=581,LENTH=4,DATA=60 6B 60 0 0 0 0 0,说明写入操作正确(见图4)。
要将1号地址的电机轮速期望值读出,即读出OD中的对象0x606B,使用启动域上传协议,服务器使用加速传输方式应答。则设置地址段为1,信息帧长度为4,信息帧内容为40 6B 60 00 00 00 00 00,发送成功后返回应答信息帧内容为:ID=581,LENTH=8,DATA=4B 6B 60 0 E8 03 0 0,说明读取操作正确(见图4)。
5 结束语
本文用CANoen协议实现了CAN总线DSP系统与上位机CAN的通讯,实现了控制系统的数字化、模块化,并保持了系统的可扩展性,为提高伺服驱动系统的智能化水平奠定了坚实的基础。
CANopen 全数字电机伺服驱动系统 CAN总线 相关文章:
- CANopen总线系统在250t门座式起重机上的应用(12-20)
- 基于CANopen总线与PLC的液压试验平台控制系统设计(12-20)
- CANopen对象字典生成办法(12-16)
- 基于CANopen总线的瓦楞纸码垛机解决方案(12-16)
- 基于台达CANopen总线在针刺机的应用(12-16)
- 台达CANopen总线在多线切割设备中的应用(12-16)