基于MSP430F149实现的步进电机通用控制器

楼主
基于MSP430F149实现的步进电机通用控制器
作者:李颖宏 郭栋 北京科技大学

摘要: 本文主要介绍了基于MSP430F149单片机实现的步进电机通用控制器。该控制器可同时控制多台步进电机按曲线方式运行,包括加减速、定位及换向功能等。文中重点探讨了步进电机升降速曲线的设计方案及其实现方法。

1.前言
基于步进电机的控制系统,除了步进电机一般还需要专门的驱动电源,驱动电源仅仅完成功率驱动部分,用户并不能使整个控制系统按预定的、期望的工作状态运行,必须对它的驱动电源予以控制,用户需要再次开发。

鉴于此,设计了基于MSP430F149单片机实现的步进电机通用控制器,可以满足大多数控制场合下的要求。控制器的主要功能为:

① 可控制多套步进电机驱动系统;目前可同时控制3套系统。
② 工作方式灵活,可按设定的曲线运行,曲线最多达8段;可按外部检测到的控制信号运行;可按模拟调节测试功能运行;

2.系统的设计
2.1系统的结构
本控制器主要实现了多台步进电机在多段曲线上的运行控制。系统结构如图1所示。
                 [IMG=0,middle]../../upload/2006/03/31/143456.gif[/IMG]
2.2微处理器的选择
本设计选用了TI公司所生产的MSP系列单片机MSP430F149。目的是应用其丰富的接口资源和强大的定时器功能,MSP430F149的性能特点如下:

①6个八位并行接口;完全可以实现该系统所有信号的输入、输出,无须硬件扩展,其中P1、P2八位并行端口的每根口线都具有中断功能,使键盘的软、硬件设计变的非常简单。
②12位A/D转换器ADC;完成模拟设定功能。
③强大的定时器功能;TIMER-A3、TIMER-B7分别为带有3个和7个捕捉/比较寄存器的16位定时器,可以满足系统速度的设定及曲线定时的要求。
④液晶驱动模块;
⑤内置2KB RAM、60KB的FLASH;
MSP430F149所提供的丰富资源,外围硬件扩展只需做很少的工作,不仅设计变得非常简单,而且该控制器体积小、可靠性高。

2.3步进电机起动及加/减速控制方案
步进电动机的最高起动频率(突跳频率)一般为0.1KHz到3-4KHz,而最高运行频率则可以达到N*102 KHz。以超过最高起动频率的频率直接起动,将出现"失步"现象,甚至无法起动。较为理想的起动曲线,应是按指数规律起动。但实际应用对起动段的处理可采用按直线拟合的方法,即"阶梯升速法"。可按两种情况处理,①已知突跳频率则按突跳频率分段起动,分段数n=f/fq。②未知突跳频率,则按段拟合至给定的起动频率,每段频率的递增量(后称阶梯频率)△f=f/8,即采用8段拟合。在运行控制过程中,将起始的速度(频率)分为n分作为阶梯频率,采用"阶梯升速法"将速度连续升到所需要的速度,然后锁定,按预置的曲线运行。如图2所示。

                 [IMG=0,middle]../../upload/2006/03/31/143543.gif[/IMG]
图2 阶梯升速起动
用单片机实现步进电机的加/减速控制,实际上就是控制发脉冲的频率,升速时,使脉冲频率增高,减速时相反。如果使用定时中断来控制电机的速度,加减速控制就是不断改变定时器的初值。速度从V1→V2如果是线性增加,则按给定的斜率升/降速;如果是突变,则按"阶梯升速法"处理。在此过程中要处理好两个问题:

①速度转换时间应尽量短;为了缩短速度转换的时间,可以采用建立数据表的方法。,结合各曲线段的频率和各段间的阶梯频率便可以建立一个连续的数据表,并通过转换程序将其转换为定时初值表。通过在不同的阶段调用相应的定时初值,控制电机的运行。定时初值的计算是在定时中断外实现的,并不占用中断时间,保证电机的高速运行。

②保证控制速度的精确性;要从一个速度准确达到另外一个速度,就要建立一个校验机制,以防超过或未达到所需速度。

2.4步进电机的换向问题
步进电机换向时,一定要在电机降速停止或降到突跳频率范围之内再换向,以免产生较大的冲击而损坏电机。换向信号一定要在前一个方向的最后一个CP脉冲结束后以及下一个方向的第一个CP脉冲前发出。如图3所示。对于CP脉冲的设计主要要求其有一定的脉冲宽度(一般不小于5μs)、脉冲序列的均匀度及高低电平方式。

                [IMG=0,middle]../../upload/2006/03/31/143617.gif[/IMG]
在某一高速下的正、反向切换实质包含了降速→换向→升速三个过程。

2.5速度与定时器初值的转换
本系统的速度控制是依靠定时产生CP脉冲来完成的,设定的速度与产生CP脉冲的定时器初值间存在一定关系。MSP430F149定时器的工作方式有多种,本设计定时器工作在连续方式下。在连续模式,定时器从它的当前值开始计数,当计到0FFFFH后又从"0"开始重新计数。在该方式下,将定时器的当前值和比较寄存器CCRX相比较,如相等则产生中断,并在该中断服务程序中可以将下一个事件发生的时间加到比较寄存器CCRX上,如图4,如此这样便会得到连续的定时时间间隔,并在每一个定时间隔到来产生中断请求。

            [IMG=0,middle]../../upload/2006/04/09/132045.gif[/IMG]
定时初值=所需定时值/计数周期;对于步进电机其速度值常以频率形式给定,诸如运行在20KHZ下,因此上式可转换为:定时初值=计数频率/速度值。(其中计数频率为系统时钟频率)
3.结束语
该控制器可以实现步进电机在多段设定曲线下的运行控制,具有硬件简单、体积小、可靠性高的特点,已将其用于电线生产线上的排线控制部分,取得了令人满意的效果。该课题为北方工业大学校科研基金资助项目。

参考文献
1. 胡大可. MSP430系列FLASH型超低功耗16位单片机. 北京航空航天大学出版社,2001.
2. 李仁定. 电机的微机控制. 机械工业出版社,1999.
3. 陈理璧. 步进电动机及其应用. 上海科学技术出版社,1985.
4. MSP430 Assembler, Linker, and Librarian Programming Guide,Texas Instruments Corportation.

作者简介:
李颖宏,女,出生于1968年4月,北方工业大学自动化学科讲师,1992年毕业于北京理工大学,取得硕士学位。毕业以来多年从事电机及单片机教学和科研工作,经验丰富。
郭栋,男,出生于1980年3月。2002年7月毕业于北方工业大学,现就读于北京科技大学系统工程专业(研究生),爱好单片机开发,精通MCS51,MCS96及MSP430F149单片机,曾开发过多个项目。具有较为丰富的实际开发经验。
1楼
[P]没有程序?[/P][P] [/P]

电脑版 Page created in 0.2188 seconds width 3 queries.