王善杰 ,曾忆山 ,凌 松
(1.合肥工业大学 机械与汽车工程学院,安徽 合肥 230009;2.常州先进制造技术研究所,江苏 常州 213164)
目前,机器人多以直流电机驱动,用伺服控制器实现对直流电机的驱动控制[1]。随着机器人的发展,机器人关节小型化、轻量化要求越来越高,因此伺服控制器的紧凑设计就显得越来越重要[2]。
本文设计的控制器集驱动、控制于一体,使用专用的电机运动控制芯片LM629[3],能方便、快捷地对系统进行设计并控制。采用现场总线CAN技术,具有可靠性高、实时性强、应用灵活和性价比高等特点[4],可以方便地组成多轴控制系统。
由上位机和LM629组成的模块化直流伺服控制系统主要由运动控制模块、驱动模块、CAN总线通信模块和电源模块4部分组成。
系统总体框图如图1所示,上位机通过CAN总线与STM32相互通信,上位机界面如图2所示,主要初始化CAN总线通信的各种参数,并给STM32发送各种电机运行需要的数据以及电机运行方式等命令。STM32与控制芯片LM629通过数据口与控制口相连接,主要给LM629传送由上位机接收的运动参数以及PID数据,并且接收LM629返回的位置速度以及中断等信息。LM629精密运动控制器根据接收的运行参数以及编码器反馈回来的信号完成输出脉宽符号信号PWMS和脉宽量值信号PWMM,然后经过L6203功率放大后驱动直流电机。
图1 系统总体框图
图2 上位机界面
STM32自身带有CAN控制器,上位机通过USB CAN与STM32进行通信,其收发报文格式如图3所示。
图3 收发报文格式
控制系统硬件结构如图4所示。STM32的GPIO口与LM629的端口相连接。其中GPIOE与LM629的D0~D7相连接,传输数据及指令;读取信号RD与GPIOB中PB3相连,用于读取状态数据,低电平有效;写入信号WR与PB6相连,用于写指令和数据,低电平有效;片选信号 CS与 PB4相连,用于选择 LM629,低电平有效;端口选择PS与PB5相连,用于选择指令或者数据端口。低电平选择指令,高电平选择数据。主机中断HI与PA8相连接,LM629有6个中断源,所有中断源都是通过该引脚申请中断,当HI为高电平时,STM32进行中断响应,通过读取状态字来判断具体产生中断的中断源,相应的中断处理程序就对该中断进行处理。输出的PWMM与PWMMS信号再经过L6203全控桥驱动电路放大,输出控制电机。L6203的ENABLE与PB2相连接,开启或者关闭电机。增量编码器提供伺服位置闭环的反馈。LM629中梯形速度轮廓发生器为操作中的位置或速度模式计算必需的轨迹。在操作中,LM629从设定位置减去反馈位置,得到的位置误差由数字滤波器处理来驱动电机到设定位置。
图4 硬件结构图
LM629是为各种可以提供增量型位置反馈信号的直流以及直流无刷伺服电机的伺服机构设计的专用运动控制处理器[5],内部含有梯形速度曲线控制器、可编程16位系数的数字PID滤波器以及32位位置、速度和加速度寄存器等,因此硬件结构较简单,重点是软件设计。
系统总体流程图如图5所示,系统首先初始化,然后对LM629进行复位,若复位成功,则装载PID参数,轨迹运行参数,开始运行;若是复位不成功,则重新复位。注意对LM629写命令和数据时首先要查询是否忙,即先要读取状态字,若查询到忙位为“1”,则继续查询,直到忙位变为“0”后方可写入命令或者数据。
图5 系统总体流程图
复位流程图如图6所示,硬件复位RST输入,低电平有效,上升沿触发,复位脉冲必须逻辑低并且超过8个时钟周期[6]。当LM629的复位脚释放之后,状态端口应该读出“00H”。如果复位成功,状态字会在1.5 ms之内变成“84H”或者“C4H”;如果状态字没有在 1.5 ms内变成“84H”或者“C4H”,执行另一次复位,并重复上述步骤。为确保复位被正常执行,执行一个RSTI指令。如果芯片正确复位,状态字会从 “84H”或者 “C4H”变成“80H”或者“C0H”;如果这个(变化)没有发生,执行另一个复位,并重复上述步骤。
初始化流程图如图7所示,主要是对STM32 GPIO口进行设置。
图6 复位流程图
图7 初始化流程图
按照式(1)进行PID参数调整:
使用LM629芯片对于软件设计方面的主要优势在于:该芯片内部自带速度生产控制器以及PID调节器,不用在软件方面进行大量的算法运算。
由于LM629输出的是PWMS和 PWMM波形,PWMS是表示电机运行方向,PWMM是量值信号[8],此实验中电机运行模式为简单的绝对位置模式,轨迹控制双字为:0x002A。给定的理想速度波形应该是LM629梯形速度发生器产生的梯形波。图8为PWMS波形,表示电机是正向运行,图9和图10分别是PWMM波形。图9波形占空比越来越小,速度越来越大,代表加速段;图10波形占空比越来越大,速度越来越小,PWMS,PWMM参数的值由PID参数以及轨迹参数决定。
图8 给定的PWMS波形 图9 加速PWMM波形 图10 减速PWMM波形
采样时间=2 048/系统时钟频率(4 MHz)
最低采样时间T1=2 048/4 MHz
最高采样时间 T2=2 048×256/4 MHz
LM629提供3个输入:两个积分信号和一个索引脉冲信号。积分信号用于保持电机的轨迹和绝对位置,可提供编码器提供的线数的4倍分辨率。
LM629自带的PID参数调节器、梯形速度发生器、高分辨率以及滤波器可以对接收到的反馈信息实现高频响应并进行实时运算。运算结果及时发送给电机以校正运动误差,确保电机能稳定、高精度的运行。
本文利用高精度运动控制器LM629,能执行高性能数字运动控制所需要的实时计算而且使得主机控制接口由高级指令简化,硬件结构简单、成本低、精度高、系统紧凑、通信方式可靠,便于扩展。
[1]王延忠,邹武,戈红霞,等.基于 AT89S52单片机的直流电动机驱动控制系统[J].新技术新工艺,2012(8):81-82.
[2]李宗帅,董春,陈静.基于 PCI总线和 LM629的移动机器人伺服控制器研究[J].微电机,2008,41(12):36-38.
[3]郑静,渠慎丰.小功率伺服无刷直流电机驱动器设计[J].电子测量技术,2006,29(3):130-132.
[4]王华,王立权,韩金华.电机专用运动控制器LM629的应用研究[J].电子器件,2005,28(2):370-373.
[5]孙玉芝,王挥.单片机与LM629芯片相结合的全数字位置直流伺服系统[J].电气自动化,2003,25(2):23-25.
[6]关洪海.基于CAN总线分布式机械臂控制系统设计[J].煤矿机械,2012,33(8):243-244.
[7]李小光.基于ARM9和LM629的电机伺服控制系统设计[J].沈阳工程学院学报,2010,6(4):351-353.
[8]华平,徐坚,李秀玲.机械手关节运动控制模块设计[J].机械研究与应用,2009(6):95-97.