3 软件程序设计及流程
整个运动控制系统程序主要包括EEPROM引导程序和DSP主程序两部分。其中,Flash引导程序的作用是把系统程序从片外低速EEPROM传送到片外高速RAM中运行,在运动控制卡的硬件调试阶段,程序规模比较小,程序可以存放在片内的。Flash中,这样则不需要引导程序,直接在片内运行程序。系统程序主要由主程序、读写双口RAM程序、脉冲输出程序、插补程序和加减速控制程序组成。主程序调用各子程序,进行与上位机的通信、I/O、QEP、定时器及中间寄存器的初始化、设置中断标志、读取计数器的值、计算各控制量、积分平滑等功能。当发生中断时,调用相应中断程序,并修改或重置标志位。
图2所示为DSP主程序的流程图。主CPU使用硬件复位控制DSP的复位操作,DSP复位后运行片内ROM或加载到RAM中的系统主程序。DSP主程序由初始化程序、时钟循环等待中断程序组成。初始化程序完成所有变量的初始化,复位全部外设和关闭所有输出。之后进入循环和等待中断的过程,检测到主机命令之后,读取命令并根据系统需要调用相应的处理程序。命令处理完后再进入循环等待状态,命令处理程序是实现运动控制器功能的关键程序,包括运动控制的算法,速度控制、位置控制等功能的实现,还包括完成数据写入和读取等功能,同时对外部中断进行处理。当上位机给运动控制卡发送控制命令时,DSP首先读取主机发送来的轴的目标位置,根据速度控制的模式设定指令选择相应的速度控制算法,同时查询外部事件,如有事件发生,执行相应的处理程序。接着就可以送出轴的控制输出,检测各轴是否都完成运动(判断轴状态寄存器完成标志位),完成则推出命令处理程序,否则继续执行。
4 结束语
运动控制器的硬件设计需要注意:如抗干扰、外围电路的速度与DSP的实时性能匹配问题。这些问题相互影响,要确定一个正确的电路结构和合理的PCB布线,需要大量的实际经验,因此在电路结构方面仍有待改进,使之更适应稳定、高速的控制要求。对控制软件的改进主要包括以下两方面:
(1)完成上位机上接口函数、运动控制函数库和上层调试环境的设计、编写NURBS数学处理程序,在运动控制器内部实现不同的插补算法,建立运动控制器的操作平台和完善的人机交互功能,使得运动控制器具有更强大的控制性能和更容易编程;
(2)对伺服电机的控制只提供了硬件上的支持,在软件上需要对光电编码器的反馈信号进行分析,计算出与给定位置的误差,再通过软件PID算法调节器获得位置控制量来控制伺服系统。
|