background image

TPC 单元及其在步进电机调速中的应用

 

    步进电机在各种自动化控制系统中有着广泛的应用,是机电一体化装置中的关键部件。
这是一种数字控制的电动机,是将电脉冲转化为角位移的执行机构,它通过控制脉冲个

 

数和脉冲频率来控制电机的角位移量和转动速度,从而达到准确定位和调速的目的。

    传统的步进电机所需的数字式电脉冲信号(即方波控制信号)一般都是借助数字逻辑电路
来产生。随着嵌入式技术的不断发展,单片机的应用更为广泛,由单片机定时来产生这种
脉冲信号的场合越来越多。单片机定时控制脉冲一般有软件定时和定时器定时两种方式。
前一种方式占用了 CPU 的大部分工作时间,所以常用定时器定时中断来产生脉冲信号。
由于一般的单片机系统中断响应时间大部分在 10Us 级以上,因而定时器定时中断来产生
脉冲的精确度大致也在 10Us 级以上,往往不能满足步进电机速度控制的高精度要求。为
了提高脉冲控制的精确度,笔者采用瑞萨公司 H8/300H 系列的 H8/3062F 单片机中的
可编程定时式样控制器进行脉冲控制,使得脉冲信号输出的相应时间达到 O.1Us 级,

 

从而能够满足步进电机速度控制的高精度要求。

    1 可编程定时式样控制器 TPC 

    可编程定时式样控制器 TPC 用 16 位定时器作时基提供各种式样的脉冲输出。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 个时钟周