0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

H8/3062F单片机的TPC脉冲序列在步进电机调速控制中的应用

电子设计 来源:郭婷 作者:电子设计 2019-10-21 08:05 次阅读

步进电机在各种自动化控制系统中有着广泛的应用,是机电一体化装置中的关键部件。这是一种数字控制的电动机,是将电脉冲转化为角位移的执行机构,它通过控制脉冲个数和脉冲频率来控制电机的角位移量和转动速度,从而达到准确定位和调速的目的。

传统的步进电机所需的数字式电脉冲信号(即方波控制信号)一般都是借助数字逻辑电路来产生。随着嵌入式技术的不断发展,单片机的应用更为广泛,由单片机定时来产生这种脉冲信号的场合越来越多。单片机定时控制脉冲一般有软件定时和定时器定时两种方式。前一种方式占用了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。

H8/3062F单片机的TPC脉冲序列在步进电机调速控制中的应用

定时器启动后,定时器中已选定的某通道的计数寄存器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值的改变对脉冲频率的影响。

H8/3062F单片机的TPC脉冲序列在步进电机调速控制中的应用

2 、步进电机的启动、调速及加减速脉冲控制方案

采用H8/3062F的TPC的TP15引脚和I/O口的P1.O分别控制步进电机的速度和方向。TP15输出的脉冲送至由功率管组成的电机驱动控制电路,使功率管工作在开关状态,步进电机停止时TP15的输出保持高电平。这样当TP15输出一个负脉冲时,功率管导通,从而使步进电机前进一步,通过控制TP15输出的脉冲频率来实现步进电机的调速。P1.0控制步进电机的运行方向。当P1.O输出为高电平时,步进电机前进;反之,则后退。

步进电机在负载情况下能够正常启动的脉冲频率称为”步进电机启动频率“。如果脉冲频率高于该值,则电机将不能正常启动,可能发生丢步或堵转;同样步进电机在制动时也应该最后以启动频率制动。如果要使电机达到高速转动,那么脉冲频率应该有个加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(降速过程反之)。较为理想的启动曲线,应是按指数规律启动,根据用户的负载情况选择不同的启动频率和不同的指数曲线,以找到一条最理想的曲线。

一般在运行控制过程中,采用”阶梯升速法“将速度连续升到所需要的速度,按预置的曲线运行速度转换时间应尽量短。为了缩短速度转换的时间,可以采用建立数据表的方法,结合各曲线段的频率和各段间的阶梯频率便可以建立一个连续的数据表。经过多次”试机“计算出256个脉冲频率对应的GRA值。其中:第一个为步进电机启动频率对应的GRA值;最后一个是步进电机最大脉冲频率对应的GRA值,在软件编程中存放在数组中,用于改变脉冲频率,实现对步进电机的加减速控制。减速制动过程与加速启动过程同理。图3为阶梯升速启动示意图。

H8/3062F单片机的TPC脉冲序列在步进电机调速控制中的应用

3 、软件程序设计

软件部分由1个主程序和3个子程序(TPC初始化子程序、定时器初始化子程序和中断子程序)组成,程序用C语言编写。TPC初始化子程序设定了TP15为输出方式及其下一个输出的电位,并且选择输出信号触发源。定时器初始化子程序选择了定时器时钟源,及其计数器的清O源,并打开了定时中断。中断子程序实现了脉冲的输出控制,从而实现步进电机的调速。在编程中要重点考虑一个问题,就是离目标点的距离与脉冲频率位置变量的关系。这是是否加减速的依据。经过计算发现,当离目标点的距离大于脉冲位置变量中的值加1时,步进电机加速或者保持最高运行速度;否则就要减速,不然到达目标点时就可能无法以启动频率停止,从而导致制动失败。

4、结语

利用H8/3062F单片机中的TPC控制步进电机的脉冲序列,可以使步进电机的运行更加快速准确,是一般单片机控制脉冲的响应速度的数十倍甚至上百倍,从而满足步进电机调速控制的精度要求,而且TPC最多可以控制16个步进电机同步运行,因此在步进电机调速中必将有广泛的应用。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620825
  • 控制器
    +关注

    关注

    112

    文章

    15223

    浏览量

    171175
  • 步进电机
    +关注

    关注

    149

    文章

    2929

    浏览量

    146063
收藏 人收藏

    评论

    相关推荐

    基于脉冲序列控制技术的降压型开关电源

    在分析开关电源脉冲序列( Pulse T rain, PT) 控制方法的原理和工作过程的基础上, 设计了一种简单实用的脉冲序列控制电路。利用PSpice 对PT
    发表于 10-18 11:01 2397次阅读
    基于<b class='flag-5'>脉冲序列</b><b class='flag-5'>控制</b>技术的降压型开关电源

    基于单片机步进电机开环控制系统

    基于单片机步进电机开环控制系统摘要: 通过ATMEL89C51单片机步进
    发表于 08-26 15:03

    有没有人会用LabVIEW编一个发射脉冲序列,驱动步进电机的....

    我用的是PCI8602的板子,谁会用LabVIEW编一个发射脉冲序列,驱动步进电机的程序
    发表于 07-26 22:16

    单片机控制步进电机求教~~!!

    各位大神,我现在遇到一个棘手的问题。我需要用单片机发送脉冲步进电机驱动器,驱动器再驱动步进电机
    发表于 04-26 16:52

    步进电机设计参考方案

    。(1)步进电动机与单片机的接口。单片机是性能极佳的控制处理器,控制
    发表于 10-16 18:17

    【每日分享】基于单片机步进电机控制系统设计

    。MSP430FG4618单片机内部的8 KB RAM和116 KB Flash满足控制系统的存储要求,P1和P2端口步进
    发表于 04-01 16:47

    【每日分享】基于单片机步进电机控制系统设计(二)

    单片机程序 利用单片机的定时器TIMER_A(TA)中断产生脉冲信号,通过响应的中断程序实现步进
    发表于 04-08 16:01

    DDA输出脉冲序列控制步进电机正反转(加速、减速、匀速)资料分享

    DDA输出脉冲序列控制步进电机正反转,可实现电机加速、减速、匀速。
    发表于 06-29 08:49

    请问DDA输出脉冲序列是如何控制步进电机正反转的?

    什么是宏定义?main函数是怎样循环的?DDA输出脉冲序列是如何控制步进电机正反转的?
    发表于 06-29 07:00

    请问Arduino单片机是如何控制步进电机的?

    控制脉冲频率来控制电机转动的速度和加速度,达到调速的目的。下面是连接图,右上角是 Arduino 与驱动器的连线,VCC、
    发表于 07-07 07:03

    基于51单片机步进电机控制原理是什么?

    基于51单片机步进电机控制对于步进电机控制,小白
    发表于 07-08 07:37

    51单片机如何调速步进电机

    步进电机的工作原理是什么?51单片机如何调速步进电机
    发表于 10-19 07:44

    单片机控制步进电机的原理

    单片机控制步进电机的原理 本资料详细介绍邓步进电机的工作原理以及
    发表于 03-30 11:13 8.5w次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>控制</b><b class='flag-5'>步进</b><b class='flag-5'>电机</b>的原理

    固定导通时间半滞环脉冲序列控制Boost变换器研究

    固定导通时间半滞环脉冲序列控制Boost变换器研究_刘姝晗
    发表于 01-04 17:05 0次下载

    基于单片机步进电机转速控制设计详解(附程序)

    的长短来具体控制步进角来改变电机的转速,从而实现步进电机调速,本文主要介绍基于
    发表于 04-25 16:09 2.5w次阅读