步进电机在各种自动化控制系统中有着广泛的应用,是机电一体化装置中的关键部件。这是一种数字控制的电动机,是将电脉冲转化为角位移的执行机构,它通过控制脉冲个数和脉冲频率来控制电机的角位移量和转动速度,从而达到准确定位和调速的目的。
传统的步进电机所需的数字式电脉冲信号(即方波控制信号)一般都是借助数字逻辑电路来产生。随着嵌入式技术的不断发展,单片机的应用更为广泛,由单片机定时来产生这种脉冲信号的场合越来越多。单片机定时控制脉冲一般有软件定时和定时器定时两种方式。前一种方式占用了CPU的大部分工作时间,所以常用定时器定时中断来产生脉冲信号。由于一般的单片机系统中断响应时间大部分在10Us级以上,因而定时器定时中断来产生脉冲的精确度大致也在10Us级以上,往往不能满足步进电机速度控制的高精度要求。为了提高脉冲控制的精确度,笔者采用瑞萨公司H8/300H系列的H8/3062F单片机中的可编程定时式样控制器进行脉冲控制,使得脉冲信号输出的相应时间达到O.1Us级,从而能够满足步进电机速度控制的高精度要求。
1 可编程定时式样控制器TPC
可编程定时式样控制器TPC是瑞萨公司H8/300H系列单片机所特有的一个功能模块,它用16位定时器作时基提供各种式样的脉冲输出。图1为TPC的结构框图。TPC的脉冲输出分成可同时独立运作的4组,每组4位,分别由定时器的4个通道的比较匹配信号来触发。TPC借用了端口B和端口A的共16条引脚TP15~TP0作为其输出,可按位开放,最多可以控制16个脉冲输出,而输出数据由两端口的数据寄存器PBDR和PADR以及后续数据寄存器NDRB和NDRA提供。端口数据方向寄存器PADDR和PBDDR用于控制引脚的输入或输出;而后续数据允许寄存器NDERA和NDERB用来开放或关闭TPC的端口输出;TPC的输出方式寄存器TPMR用于选择TPC每组的输出方式;输出控制寄存器TPCR则用于选择TPC每组的触发信号源,即由定时器的哪个通道触发。其中单片机H8/3062F的定时器有3个通道,每个通道分别有3个寄存器:定时计数器TCNT、通用寄存器GRA和GRB。 (图片) 定时器启动后,定时器中已选定的某通道的计数寄存器TCNT将对时钟源的脉冲进行计数。当TCNT等于该通道的通用寄存器GRA(GRB)中数值时,就称作该通道的A(B)比较匹配事件发生。这样事先置于后续数据寄存器NDRA(NDRB)的值自动被传送到相应端口A(B)的数据寄存器PADR(PBDR)对应的位,于是就更新了TPC的输出值。
TPC有两种输出方式,即不重叠输出和正常输出。可以通过输出方式寄存器TPMR,来选择TPC每组的输出方式。不重叠输出方式是在脉冲输出之间可保障有不重叠裕度。在该通道的通用寄存器GRB中,设置不重叠TPC输出波形的输出触发周期,则不重叠裕度置于GRA中,输出值将在A比较匹配事件和B比较匹配事件发生时变化触发。正常输出方式,则是在GRA中设置TPC输出波形的输出触发周期,当A比较匹配事件发生时TPC输出信号。根据步进电机的脉冲控制要求,这里采用的是正常输出方式。
TPC用于步进电机脉冲控制的原理如下:首先,将通用寄存器GRA选作输出比较寄存器;然后,将TPC下一个输出的端口值置于后续数据寄存器NDRA(NDRB),再启动定时器,当A比较匹配事件发生时发出中断请求。在研究TPC输出时序的过程中发现,TPC并非是在中断响应过程中给TPC端口送值的,而是在A比较匹配事件发生的3个时钟周期后,就把事先置于后续数据寄存器的值送到端口数据寄存器PADR(PBDR),于是就更新了TPC的输出值。由于H8/3062F系列的单片机时钟频率都在20 MHz以上,这样只需不到O.2ms,就可以送出端口信号,大大缩短了响应时间,比一般的单片机在定时中断过程中送端口信号快了几十倍甚至上百倍,从而使对脉冲控制的更加准确。而在中断子程序中则是更新后续数据寄存器NDRA(NDRB)和输出比较寄存器GRA的值,从而改变脉冲的频率实现对异步电机的调速。图2为产生脉冲频率变化的原理图。图中GRA、GRA'和GRA"抽象地表示3个不同的GRA值,从而演示了GRA值的改变对脉冲频率的影响。(图片) 2 步进电机的启动、调速及加减速脉冲控制方案
采用H8/3062F的TPC的TP15引脚和I/O口的P1.O分别控制步进电机的速度和方向。TP15输出的脉冲送至由功率管组成的电机驱动控制电路,使功率管工作在开关状态,步进电机停止时TP15的输出保持高电平。这样当TP15输出一个负脉冲时,功率管导通,从而使步进电机前进一步,通过控制TP15输出的脉冲频率来实现步进电机的调速。P1.0控制步进电机的运行方向。当P1.O输出为高电平时,步进电机前进;反之,则后退。
步进电机在负载情况下能够正常启动的脉冲频率称为"步进电机启动频率"。如果脉冲频率高于该值,则电机将不能正常启动,可能发生丢步或堵转;同样步进电机在制动时也应该最后以启动频率制动。如果要使电机达到高速转动,那么脉冲频率应该有个加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(降速过程反之)。较为理想的启动曲线,应是按指数规律启动,根据用户的负载情况选择不同的启动频率和不同的指数曲线,以找到一条最理想的曲线。
一般在运行控制过程中,采用"阶梯升速法"将速度连续升到所需要的速度,按预置的曲线运行速度转换时间应尽量短。为了缩短速度转换的时间,可以采用建立数据表的方法,结合各曲线段的频率和各段间的阶梯频率便可以建立一个连续的数据表。经过多次"试机"计算出256个脉冲频率对应的GRA值。其中:第一个为步进电机启动频率对应的GRA值;最后一个是步进电机最大脉冲频率对应的GRA值,在软件编程中存放在数组中,用于改变脉冲频率,实现对步进电机的加减速控制。减速制动过程与加速启动过程同理。图3为阶梯升速启动示意图。(图片) 3 软件程序设计
软件部分由1个主程序和3个子程序(TPC初始化子程序、定时器初始化子程序和中断子程序)组成,程序用C语言编写。TPC初始化子程序设定了TP15为输出方式及其下一个输出的电位,并且选择输出信号触发源。定时器初始化子程序选择了定时器时钟源,及其计数器的清O源,并打开了定时中断。中断子程序实现了脉冲的输出控制,从而实现步进电机的调速。在编程中要重点考虑一个问题,就是离目标点的距离与脉冲频率位置变量的关系。这是是否加减速的依据。经过计算发现,当离目标点的距离大于脉冲位置变量中的值加1时,步进电机加速或者保持最高运行速度;否则就要减速,不然到达目标点时就可能无法以启动频率停止,从而导致制动失败。
结语
利用H8/3062F单片机中的TPC控制步进电机的脉冲序列,可以使步进电机的运行更加快速准确,是一般单片机控制脉冲的响应速度的数十倍甚至上百倍,从而满足步进电机调速控制的精度要求,而且TPC最多可以控制16个步进电机同步运行,因此在步进电机调速中必将有广泛的应用。
12/26/2008
|