步进电机控制器的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

步进电机控制器的设计

研究mps430单片机构成步进电机的控制系统,控制步进电机实现三相六拍运行,启动、升减速、停车定位,以及与上位机的通信,采用串行通信模块、单片机模块和电机驱动模块来构成电机的控制系统;用定时器中断来控制I/O输出高低电平,控制驱动的通断,实现脉冲的环形分配完成三相六拍运行;控制定时时间,来控制频率的增加和减少,实现升减速。电机的启动频率达到1000hz,最高运行频率达到20000hz。

标签:MPS430单片机;步进电机;通信

本系统设计的主要内容分为硬件设计和软件设计两部分。下面具体的说明一下系统的硬件设计和软件设计。

1 硬件系统的设计

设计本系统中,硬件系统主要由电机驱动电路,电源电路,串口通信电路,单片机电路,下面就具体的电路进行分析设计介绍。

图1 硬件系统图

1.1 电机驱动电路

主要由驱动芯片组成,该系统的驱动部分采用了UC3717A芯片,UC3717A 芯片使用非常简单,它通过3个输入管脚(Phase、I1和I0)接受输入的参数,在2个输出管脚(AOUT和BOUT)上输出相应的控制信号。

利用外部逻辑电路构成的逻辑分配器或微处理器分配信号,由若干片这种电路和少量无源元件可组成一个完整的多相步进电动机驱动系统,可实现整步(基本步距)、半步或微步距控制。在这里我们使用的是MSP430单片机来分配信号,控制方式是双极性、固定OFF(关断)时间的斩波电流控制。它们是16脚双列直插塑料封装,4、5、12、13脚为地.UC3717A是UC3717的改进型,其驱动能力是双向电流1A,步进电动机供电电压范围宽,为10-46V。H桥的功率晶体管有低饱和压降,并附有快速恢复续流二极管(见图2)。

1.2 电源电路

在本設计中,整个系统要求电源既有稳压性能,和纹波小等特点,还有是硬件系统的低功耗等特点,因此本系统的电源部分选用了TI公司芯片TPS76033来实现,该芯片能很好的满足硬件系统的要求,TPS760XX芯片是针对电池供电应用的50mA输出的低压差线性稳压器,使用Bicmos工艺,使其在电池供电中显示出杰出的性能。芯片采用小体积的SOT-23封装,工作温度范围宽。其特性是50mA电流输出,多种固定电压可选:5V,3.8V,3.3V,3.2V和3V,典型压

差:120mV/50mA,过温保护,关断时静态电流小于1uA,工作温度范围-45℃~+125℃,5管脚SOT-23封装,1.SKV ESD保护,专门设计用于电池供电的系统.低压降稳压器,具有热保护功能,具有较低的功耗,关闭状态静态电流仅为1μA。并且该芯片具有很小的封装,在电路的设计分配中,因此能有效地节约PCB版的面积(见图3)。

1.3 串口通信电路

本系统中采用的SP3220,来实现接口电平的转换。SP3220芯片具有功耗低、封装小等特点,是一款低功耗的RS232 驱动芯片,在介绍具体电路之前先介绍一下SP3220芯片,SP3220芯片具有以下特点:满足RS232协议操作;宽电压供电,工作电压为+3.0V到5V;满载最小数据速率:120Kbps,上传速率可以达到235Kb/s;1?滋A的低功耗关断模式,接收器有效;处于低功耗模式下,仍然可以接收数据;可与RS-232器件共同工作,电源低至+2.7V(见图4)。

1.4 MPS430单片机电路

单片机与UC3717A芯片的接口主要是通过单片机的一般I/O口与UC3717A 芯片的输出管脚进行连接。虽然单片机与UC3717A芯片的供电电压不一致,但是由于UC3717A芯片的输入高电平最小为2V,而MSP430单片机的输出高点平大于2V,因此在接口时不需要进行电平转换。单片机与上位机通信通过单片机的串口0(UART)实现,由于单片机与上位机的接口电平不一致,所以需要通过串口芯片(SP3220 )来完成电平的转换。另外,有与其他电路的接口,如电源电路(见图5)。

2 软件设计

在本系统中,MPS单片机首先要确定好输出的逻辑关系,要求电机执行的是三相六拍的运行,要求单片机完成三相六拍的环形分配,设计中主要用到了定时器的比较功能,设置定时器每个模块比较器的比较值,即第一个模块中断到来时,预设下一个中断是哪一相,并设置对应模块的比较值,这样按照三相六拍的序列循环依次设置比较值,来完成电机的脉冲的环形分配。

整个控制器系统的软件设计主要包括主程序、串口中断服务程序、数据处理程序和比较中断服务程序。在该系统中,主程序主要完成时钟,端口,定时器,串口的初始化,及循环顺序检测串口发送数据、接收数据的标志和定时器中断标志,及时调用发送数据中断服务程序、接收数据中断服务程序和定时中断服务程序;定时中断服务程序是整个控制器设计内容的核心。

2.1 主程序

在主程序中完成一系列的初始化,包括时钟的分配,主要是为进入中断做准备;而实实在在的事情在各自的中断服务程序中实现。系统的主程序主要是完成对各个模块(I/O端口、定时器、串口)的初始化,并及时查询串口通信标志,

将接收到的数据及时写入存储器,并调用子程序对数据进行处理,如有上位机发送一个数据(电机所要运行的步数)到来要接受时,根据串口通信标志接收数据,为真接收写入存储器,此时并调用数据处理子程序,把步数转换成定时器的在各个转折点的比较值,循环查询中断标志,调用各个中断服务程序,对相应电机进行相应的控制,下面分别对各个模块的程序进行具体的设计(见图6)。

2.2 串口中断服务程序

串行通信主要是完成数据的发送和接收。在该软件系统中,采用中断服务程序实现串口通信,串行口的控制是通过地址070H的串行口控制寄存器进行的。串行口的数据由串行口缓冲寄存器URXBUF0、UTXBUF0负责收发。URXBUF0保存串行口接收到的数据,SUTXBUF0则用以暂存准备发送的数据。收发程序都处于等待状态,一旦外面有数据到来,则触发中断,进入中断接收中断服务程序,接收数据。中断程序从“RXBUF0”寄存器里读取数据,将得到的数据放到“UART0_TX_BUF”里,接收数据后设置一个标志,来通知主程序。如果有数据在需要发送时,主程序设置一个发送标志,并且触发中断,发送完数据后,发送中断程序等待下一次中断的到来。2.3 比较中断服务程序

比较中断服务程序是完成电机控制的核心内容,主要是通过定时器实现在相应的管脚输出不同的状态逻辑来驱动电机芯片,以使电机进行相应的工作,该作用主要是使用定时器中的各个模块,来执行中断服务程序,进行相应的处理。定时器中断服务程序不仅根据相应的状态向电机驱动芯片输出相应的值,从而实现电机的不同工作,而且还控制频率的增加和减少,实现控制电机升减速。

比较中断服务程序主要完成系统的脉冲环形分配和频率的加减,即电机绕组的换相,三相六拍的换相顺序是A-AB-B-BC-C-CA-A,这里三相绕组对应的是定时器的三个比较器,因为timerA带有三个比较输出单元,三个输出单元正好连接三相绕组,这里通过设定三个比较器的比较值来确定换相时间间隔,即在第一个中断到来时,就要确定好,是通过计算来确定下中断的时间,同时确定好输出的高低电平;另外,通过中断时间的大小来确定电机的加减速,这样来确定电机的各个状态(见图7)。

2.4 数据处理程序

数据处理程序主要是完成定时器的控制频率与定时器的比较值之间的转换,以及由给定的步数,转换成为最高频率,相应的比较值的设定,之间的换算的程序实现。

这个程序主要是处理一些数据,通过一个给定的步数,先是通过公式运算,计算出其所能达到最大频率值,然后把这个值与给定的最高频率相比较,判断是属于哪一种情况,如果是小于,即是没有达到最高频率就开始减速了,按照对应的算法设定比较值,如果是等于,則要继续判断下一步,如果此时下一步的频率也是大于等于最高频率时,即为第一种情况,能够进行完整运行,包括三个状态启动、稳定、停车三个状态,按照前面对应的算法设定定时器比较值,如果此时

相关文档
最新文档