单位文秘网 2022-02-07 08:12:45 点击: 次
摘 要:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。本设计采用AT89C51对步进电机进行控制,通过IO口输出的具有时序的方波作为步进电机的控制信号,信号经过A3967SLB驱动步进电机;同时,用4X4的键盘来对电机的状态进行控制,并用数码管显示电机的转速,并且采用74LS164作为4位单个数码管的显示驱动,从单片机输入信号。从而实现对步进电机的控制。
关键词:步进电机;单片机;驱动电路;键盘;数码管
中图分类号:TM383.6 文献标识码:A 文章编号:1674-7712 (2014) 10-0000-01
一、方案比较和论证
(一)对于步进电机驱动的设计
方案一:使用多个功率放大器件驱动电机
通过使用不同的放大电路和不同参数的器件,可以达到不同的放大的要求,放大后能够得到较大的功率。但是由于使用的是四相的步进电机,就需要对四路信号分别进行放大,由于放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂。
方案二:使用A3967SLB驱动电机
A3967SLB是驱动二相步进电机专用驱动器。它的工作电压可达30V,驱动电流达750mA,一个A3967SLB即可驱动一台二相步进电机,可实现8细分驱动。另外,A3967SLB还能提供完善的保护措施,包括抑制瞬态电压,过热保护、防止电流直通、欠电压自锁等功能。
通过对两种方案的比较得到:
A3967SLB和微处理器之间不需要附加其他的接口电路,该芯片采用Easy Stepper接口,将8条控制线减少了2条(步长和方向),只要简单输入控制步进电机的脉冲,其内嵌的转换器就可以实现对步进电机的控制。A3967SLB还需要一些电阻、电容来调整其工作参数,整个驱动电路非常简单。所以在此我选择方案二。
(二)数码管显示电路的设计
方案一:并行接法
使用并行接法时要对每个数码管用IO口单独输入数据,占用资源较多。
方案二:串行接法
设计中要显示4位数字,用74LS164作为显示驱动,其中带锁存,使用串行接法可以节约IO口资源,但要使用SIO,发送数据时容易控制。
通过对两种方案的比较得到:
由于设计中用一块单片机进行控制,资源有限,选择了方案二。另外,使用锁存也起到节约资源的作用。
二、单片机控制步进电机原理
步进电机2个相邻磁极之间的夹角为60°。线圈绕过相对的2个磁极,构成一相(A-A′,B-B′,C-C′)。磁极上有5个均匀分布的矩形小齿,转子上没有绕组,而有40个小齿均匀分布在其圆周上,且相邻2个齿之间的夹角为9°。步进电机的单片机控制步进电机控制的最大特点是开环控制,不需要反馈信号。因为步进电机的运动不产生旋转量的误差累积。
三、硬件设计
(一)基于A3967SLB步进电机驱动电路
MS1和MS2是步进电机细分分辨率选择的逻辑输入口;DIR是电机运转方向的选择口;RESET用于重置芯片初始值,屏蔽所有外部输出;STEP为脉冲输入端口;OUT1A、OUT1B、OUT2A、OUT2B为H桥的两对输出端口。最大限流Imax是由取样电阻Rs和取样比较器的输入参考电压Vref决定的,整个驱动电路非常简单。其中Imax=Vref/8Rs。
(二)通信电路
在最简单的RS-232直接传送通信系统中,只要发送和接受双方同时准备好,仅用信号发送端(TXD)、信号接收端(RXD)和信号地(GND)3根信号线就可以进行通信;若以应答方式进行数据通信,可使用请求发送(RTS)、清除发送(CTS)或数据终端准备(DTR)、数据装置准备(DSR)4个信号进行硬件握手。在AT89C52单片机系统中,分别从P3.0和P3.1引出串口线RXD和TXD,通过专用的电平转换芯片转换成RS-232接口标准的电平,这样,二者之间就可以通过RS-232接口进行数字信号的传送。
单片机可以通过直接传送或应答握手的方式与主机进行数据通信,但由于握手方式占用其它端口,而单片机的端口数量有限,所以,计算机与单片机的通信常采用直接传送的方式。
(三)数码管显示电路的设计
数码管的显示驱动使用74LS164,通过SPCE061A的IOB0和IOB1口对DATA和CLK发送数据。
(四)4x4键盘电路
在设计中,使用了标准的4x4键盘,单片机的A口低8位为键盘的接口。尽管设计要求中只需要4个键对步进电机的状态进行控制,但考虑到对控制功能的扩展,使用了4x4的键盘。
四、软件设计
软件部分的设计主要包括下位机按MCU的接收程序、脉冲控制程序以及上位机的串口发送程序。上位机与下位机之间进行数据通信。上位机的程序主要通过Windows可视化编程VC++实现。
下位机程序主要负责接受PC发来的数据,按照要求产生控制脉冲,具体流程为:首先对要使用的串口进行初始化,然后P2输出口清零,接着进入住程序的死循环,等待中断触发。接收一个字节的数据,RI=1,接着将RI清零。当单片机接收完数据后,标志位置1。将缓存中的数据存入控制的变量中,以便控制时使用(具体操作时先法数据帧再发启动帧)。
五、结束语
结合以上介绍的基于A3967SLB的步进电机控制系统,在VC++环境下,利用MSComm控件实现了PC与单片机之间的串行通信。实验结果表明,用这种方式实现上位机对基于A3967SLB的步进电机的控制系统进行精确的驱动可行有效。本系统中,利用PC的丰富软硬件资源和强大的系统功能,可进行一些数据处理、显示等工作;而从控制器AT89C51则用于实时控制。另外,该系统为开放式结构,便于系统升级。
参考文献:
[1]李华.单片机原理及应用[M].兰州:兰州大学出版社,2001.
[2]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,1999.
[3]郝鸿安.常用数字集成电路应用手册[M].北京:中国计量出版社,1987.
[4]王鸿钰.步进电机控制技术入门[M].上海:同济大学出版社,1990.
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-220-97299-1.html
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用