工程科技51单片机控制四相步进电机毕业设计资料_第1页
工程科技51单片机控制四相步进电机毕业设计资料_第2页
工程科技51单片机控制四相步进电机毕业设计资料_第3页
工程科技51单片机控制四相步进电机毕业设计资料_第4页
工程科技51单片机控制四相步进电机毕业设计资料_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、51单片机控制四相步进电机接触单片机快两年了,不过只是非常业余的兴趣,实践却不多,到现在还算是个初学者吧。这几天给自己的任务就是搞定步进电机的单片机控制。以前曾看过有关步进电机原理和控制的资料,毕竟自己没有做过,对其具体原理还不是很清楚。今天从淘宝网买了一个EPSON的UMX-1型步进电机,此步进电机为双极性四相,接线共有六根,外形如下图所示:拿到步进电机,根据以前看书对四相步进电机的了解,我对它进行了初步的测试,就是将5伏电源的正端接上最边上两根褐色的线,然后用5伏电源的地线分别和另外四根线(红、兰、白、橙)依次接触,发现每接触一下,步进电机便转动一个角度,来回五次,电机刚好转一圈,说明此步

2、进电机的步进角度为360/(4×5)18度。地线与四线接触的顺序相反,电机的转向也相反。如果用单片机来控制此步进电机,则只需分别依次给四线一定时间的脉冲电流,电机便可连续转动起来。通过改变脉冲电流的时间间隔,就可以实现对转速的控制;通过改变给四线脉冲电流的顺序,则可实现对转向的控制。所以,设计了如下电路图:制作的实物图如下:C51程序代码为:代码一#include <AT89X51.h> static unsigned int count;static unsigned int endcount;void delay();void main(void)   co

3、unt = 0;  P1_0 = 0;  P1_1 = 0;  P1_2 = 0;  P1_3 = 0; EA = 1;              /允许CPU中断   TMOD = 0x11;  /设定时器0和1为16位模式1   ET0 = 1;             /定

4、时器0中断允许TH0 = 0xFC;   TL0 = 0x18;      /设定时每隔1ms中断一次    TR0 = 1;           /开始计数startrun:    P1_3 = 0;  P1_0 = 1;  delay();  P1_0 = 0;  P1_1 = 1;  delay();  P1_1 = 0; 

5、; P1_2 = 1;  delay();  P1_2 = 0;  P1_3 = 1;  delay();  goto startrun; /定时器0中断处理void timeint(void) interrupt 1   TH0=0xFC;   TL0=0x18; /设定时每隔1ms中断一次  count+;void delay()  endcount=2;  count=0;  dowhile(count<endcount);将上面的程序编译,用ISP下载线下载至单片机运行,

6、步进电机便转动起来了,初步告捷!不过,上面的程序还只是实现了步进电机的初步控制,速度和方向的控制还不够灵活,另外,由于没有利用步进电机内线圈之间的“中间状态”,步进电机的步进角度为18度。所以,我将程序代码改进了一下,如下:代码二#include <AT89X51.h> static unsigned int count;static int step_index;void delay(unsigned int endcount);void gorun(bit turn, unsigned int speedlevel);void main(void)   count =

7、 0;  step_index = 0;  P1_0 = 0;  P1_1 = 0;  P1_2 = 0;  P1_3 = 0;  EA = 1;             /允许CPU中断   TMOD = 0x11; /设定时器0和1为16位模式1   ET0 = 1;          

8、0; /定时器0中断允许TH0 = 0xFE;   TL0 = 0x0C;  /设定时每隔0.5ms中断一次    TR0 = 1;         /开始计数  do    gorun(1,60);  while(1); /定时器0中断处理void timeint(void) interrupt 1   TH0=0xFE;   TL0=0x0C; /设定时每隔0.5ms中断一次  count+;

9、void delay(unsigned int endcount)  count=0;  dowhile(count<endcount);void gorun(bit turn,unsigned int speedlevel)  switch(step_index)    case 0:    P1_0 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 0;  

10、0; break;  case 1:    P1_0 = 1;    P1_1 = 1;    P1_2 = 0;    P1_3 = 0;    break;  case 2:    P1_0 = 0;    P1_1 = 1;    P1_2 = 0;    P1_3 = 0;  &#

11、160; break;  case 3:    P1_0 = 0;    P1_1 = 1;    P1_2 = 1;    P1_3 = 0;    break;  case 4:    P1_0 = 0;    P1_1 = 0;    P1_2 = 1;    P1_3 = 0;  

12、  break;  case 5:    P1_0 = 0;    P1_1 = 0;    P1_2 = 1;    P1_3 = 1;    break;  case 6:    P1_0 = 0;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1; 

13、0;  break;  case 7:    P1_0 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1;    delay(speedlevel);  if (turn=0)      step_index+;    if (step_index>7)      s

14、tep_index=0;    else      step_index-;    if (step_index<0)      step_index=7;      改进的代码能实现速度和方向的控制,而且,通过step_index静态全局变量能“记住”步进电机的步进位置,下次调用 gorun()函数时则可直接从上次步进位置继续转动,从而实现精确步进;另外,由于利用了步进电机内线圈之间的“中间状态”,步进角度减

15、小了一半,只为9度,低速运转也相对稳定一些了。但是,在代码二中,步进电机的运转控制是在主函数中,如果程序还需执行其它任务,则有可能使步进电机的运转收到影响,另外还有其它方面的不便,总之不是很完美的控制。所以我又将代码再次改进:代码三#include <AT89X51.h> static unsigned int count;  /计数static int step_index;  /步进索引数,值为07static bit turn;  /步进电机转动方向static bit stop_flag;  /步进电机停止标志static int s

16、peedlevel; /步进电机转速参数,数值越大速度越慢,最小值为1,速度最快static int spcount;    /步进电机转速参数计数void delay(unsigned int endcount); /延时函数,延时为endcount*0.5毫秒void gorun();          /步进电机控制步进函数void main(void)   count = 0;  step_index = 0;  spcount

17、 = 0;  stop_flag = 0;P1_0 = 0;  P1_1 = 0;  P1_2 = 0;  P1_3 = 0;EA = 1;             /允许CPU中断   TMOD = 0x11; /设定时器0和1为16位模式1   ET0 = 1;           /定时器0中断允许TH0 = 0

18、xFE;  TL0 = 0x0C;   /设定时每隔0.5ms中断一次  TR0 = 1;         /开始计数 turn = 0;speedlevel = 2;  delay(10000);  speedlevel = 1;  do    speedlevel = 2;    delay(10000);    speedlevel = 1;

19、    delay(10000);    stop_flag=1;    delay(10000);    stop_flag=0;  while(1); /定时器0中断处理 void timeint(void) interrupt 1   TH0=0xFE;  TL0=0x0C; /设定时每隔0.5ms中断一次  count+;  spcount-;  if(spcount<=0)   &

20、#160;  spcount = speedlevel;    gorun();  void delay(unsigned int endcount)  count=0;  dowhile(count<endcount);void gorun()  if (stop_flag=1)      P1_0 = 0;    P1_1 = 0;    P1_2 = 0;    P1_3 =

21、 0;    return;    switch(step_index)    case 0: /0    P1_0 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 0;    break;  case 1: /0、1    P1_0 = 1;    P1_1 = 1;

22、60;   P1_2 = 0;    P1_3 = 0;    break;  case 2: /1    P1_0 = 0;    P1_1 = 1;    P1_2 = 0;    P1_3 = 0;    break;  case 3: /1、2    P1_0 = 0;    P1

23、_1 = 1;    P1_2 = 1;    P1_3 = 0;    break;  case 4:  /2    P1_0 = 0;    P1_1 = 0;    P1_2 = 1;    P1_3 = 0;    break;  case 5: /2、3    P1_0 = 0; 

24、;   P1_1 = 0;    P1_2 = 1;    P1_3 = 1;    break;  case 6: /3    P1_0 = 0;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1;    break;  case 7: /3、0    P1_0

25、 = 1;    P1_1 = 0;    P1_2 = 0;    P1_3 = 1;    if (turn=0)      step_index+;    if (step_index>7)      step_index=0;    else      step_index-; 

26、60;  if (step_index<0)      step_index=7;      在代码三中,我将步进电机的运转控制放在时间中断函数之中,这样主函数就能很方便的加入其它任务的执行,而对步进电机的运转不产生影响。在此代码中,不但实现了步进电机的转速和转向的控制,另外还加了一个停止的功能,呵呵,这肯定是需要的。步进电机从静止到高速转动需要一个加速的过程,否则电机很容易被“卡住”,代码一、二实现加速不是很方便,而在代码三中,加速则很容易了。在此代码中,当转速参数speedlevel

27、为2时,可以算出,此时步进电机的转速为1500RPM,而当转速参数speedlevel 1时,转速为3000RPM。当步进电机停止,如果直接将speedlevel 设为1,此时步进电机将被“卡住”,而如果先把speedlevel 设为2,让电机以1500RPM的转速转起来,几秒种后,再把speedlevel 设为1,此时电机就能以3000RPM的转速高速转动,这就是“加速”的效果。在此电路中,考虑到电流的缘故,我用的NPN三极管是S8050,它的电流最大可达1500mA,而在实际运转中,我用万用表测了一下,当转速为1500RPM时,步进电机的电流只有90mA左右,电机发热量较小,当转速为60R

28、PM时,步进电机的电流为200mA左右,电机发热量较大,所以NPN三极管也可以选用9013,对于电机发热量大的问题,可加一个10欧到20欧的限流电阻,不过这样步进电机的功率将会变小。51单片机驱动步进电机电路及程序在这里介绍一下用51单片机驱动步进电机的方法。 这款步进电机的驱动电压12V,步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!  该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5:黄色、6:黑色。采用51驱动ULN2003的方法进行驱动。 ULN2003的驱动直接用单片机系统的5V电压,可能力矩不是很大

29、,大家可自行加大驱动电压到12V。  *;*步进电机的驱动*; DESIGN BY BENLADN911    FOSC = 12MHz    2005.05.19;-; 步进电机的驱动信号必须为脉冲信号! 转动的速度和脉冲的频率成正比!; 本步进电机步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成!;-; A组线圈对应 P2.4; B组线圈对应 P2.5; C组线圈对应 P2.6; D组线圈对应 P2.7; 正转次序: AB组-BC组-CD组-DA组 (即一个脉冲,正转 7.5 度);-;-正转- OR

30、G 0000H LJMP MAINORG 0100HMAIN:MOV R3,#144   正转 3 圈共 144 脉冲START:MOV R0,#00HSTART1:MOV P2,#00HMOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ START   对 A 的判断,当 A = 0 时则转到 STARTMOV P2,ALCALL DELAYINC R0DJNZ R3,START1MOV P2,#00HLCALL DELAY1;-反转-MOV R3,#144    反转一圈共 144 个脉冲STA

31、RT2:MOV P2,#00HMOV R0,#05START3:MOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ START2MOV P2,ACALL DELAYINC R0DJNZ R3,START3MOV P2,#00HLCALL DELAY1LJMP MAINDELAY: MOV R7,#40 步进电机的转速M3: MOV R6,#248 DJNZ R6,$ DJNZ R7,M3 RETDELAY1: MOV   R4,#20    2S 延时子程序DEL2: MOV  

32、 R3,#200DEL3: MOV   R2,#250            DJNZ  R2,$            DJNZ  R3,DEL3            DJNZ 

33、; R4,DEL2            RETTABLE:DB 30H,60H,0C0H,90H  正转表DB 00  正转结束DB 30H,90H,0C0H,60H  反转表DB 00  反转结束END主题: 单片机控制步进电机驱动器工作原理 步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器、或角位移发生器等。有时从一些旧设备上拆下的步进电机(这种电机一般没有损坏)要改作它用,一般需

34、自己设计驱动器。本文介绍的就是为从一日本产旧式打印机上拆下的步进电机而设计的驱动器。    本文先介绍该步进电机的工作原理,然后介绍了其驱动器的软、硬件设计。 1. 步进电机的工作原理    该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图  图1 四相步进电机步进示意图    开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D

35、相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。    当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。    四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,

36、八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。    单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:  a. 单四拍                                 

37、;                     b. 双四拍                             

38、60;          c八拍图2.步进电机工作时序波形图2.基于AT89C2051的步进电机驱动器系统电路原理步进电机驱动器系统电路原理如图3:  图3 步进电机驱动器系统电路原理图    AT89C2051将控制脉冲从P1口的P1.4P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组。使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和停止等动

39、作。图中L1为步进电机的一相绕组。AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。    图3中的RL1RL4为绕组内阻,50电阻是一外接电阻,起限流作用,也是一个改善回路时间常数的元件。D1D4为续流二极管,使电机绕组产生的反电动势通过续流二极管(D1D4)而衰减掉,从而保护了功率管TIP122不受损坏。    在50外接电阻上并联一个200F电容,可以改善注入步进电机绕组的电流脉冲前沿,提高了步进电机的高频性能。与续流二极管串联的200电阻可减小回

40、路的放电时间常数,使绕组中电流脉冲的后沿变陡,电流下降时间变小,也起到提高高频工作性能的作用。3.软件设计该驱动器根据拨码开关KX、KY的不同组合有三种工作方式供选择:方式1为中断方式:P3.5(INT1)为步进脉冲输入端,P3.7为正反转脉冲输入端。上位机(PC机或单片机)与驱动器仅以2条线相连。方式2为串行通讯方式:上位机(PC机或单片机)将控制命令发送给驱动器,驱动器根据控制命令自行完成有关控制过程。方式3为拨码开关控制方式:通过K1K5的不同组合,直接控制步进电机。当上电或按下复位键KR后,AT89C2051先检测拨码开关KX、KY的状态,根据KX、KY 的不同组合,进入不同的工作方式

41、。以下给出方式1的程序流程框图与源程序。在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20H单元的各位为步进电机正转标志位;21H单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换向时产生错步。 图4 方式1程序框图方式1源程序:   MOV        20H,#00H   &#

42、160;          ;20H单元置初值,电机正转位置指针  MOV         21H,#00H              ;21H单元置初值,电机反转位置指针  MOV        

43、P1,#0C0H              ;P1口置初值,防止电机上电短路  MOV         TMOD,#60H           ;T1计数器置初值,开中断  MOV       

44、60; TL1,#0FFH  MOV         TH1,#0FFH  SETB        ET1  SETB        EA  SETB        TR1  SJMP      &#

45、160; $;*计数器1中断程序*IT1P:       JB          P3.7,FAN              ;电机正、反转指针;*电机正转*            JB  

46、        00H,LOOP0            JB          01H,LOOP1            JB       

47、0;  02H,LOOP2            JB          03H,LOOP3            JB          04H,LOOP4  

48、0;         JB          05H,LOOP5            JB          06H,LOOP6        &#

49、160;   JB          07H,LOOP7LOOP0:      MOV         P1,#0D0H            MOV         2

50、0H,#02H            MOV         21H,#40H            AJMP        QUITLOOP1:      MOV &#

51、160;       P1,#090H            MOV         20H,#04H            MOV         21H,#

52、20H            AJMP        QUITLOOP2:      MOV         P1,#0B0H            MOV  

53、       20H,#08H            MOV         21H,#10H            AJMP        QUITLOOP3:

54、0;     MOV         P1,#030H            MOV         20H,#10H            MOV  

55、0;      21H,#08H            AJMP        QUITLOOP4:      MOV         P1,#070H       &#

56、160;    MOV         20H,#20H            MOV         21H,#04H            AJMP   &

57、#160;    QUITLOOP5:      MOV         P1,#060H            MOV         20H,#40H        

58、    MOV         21H,#02H            AJMP        QUITLOOP6:      MOV         P1,#0E0H 

59、           MOV         20H,#80H            MOV         21H,#01H        

60、0;   AJMP        QUITLOOP7:      MOV         P1,#0C0H            MOV         20H,#01H 

61、0;          MOV         21H,#80H            AJMP        QUIT;*电机反转*FAN:        JB 

62、60;        08H,LOOQ0            JB          09H,LOOQ1            JB       &

63、#160;  0AH,LOOQ2            JB          0BH,LOOQ3            JB          0CH,LOOQ4  &

64、#160;         JB          0DH,LOOQ5            JB          0EH,LOOQ6        

65、;    JB          0FH,LOOQ7LOOQ0:      MOV         P1,#0A0H            MOV        

66、; 21H,#02H            MOV         20H,#40H            AJMP        QUITLOOQ1:      MOV 

67、;        P1,#0E0H            MOV         21H,#04H            MOV         20

68、H,#20H            AJMP        QUITLOOQ2:      MOV         P1,#0C0H            MOV 

69、60;       21H,#08H            MOV         20H,#10H            AJMP        QUITLOOQ3:&

70、#160;     MOV         P1,#0D0H            MOV         21H,#10H            MOV  &

71、#160;      20H,#08H            AJMP        QUITLOOQ4:      MOV         P1,#050H       

72、;     MOV         21H,#20H            MOV         20H,#04H            AJMP  

73、0;     QUITLOOQ5:      MOV         P1,#070H            MOV         21H,#40H       

74、60;    MOV         20H,#02H            AJMP        QUITLOOQ6:      MOV         P1,#030H

75、60;           MOV         21H,#80H            MOV         20H,#01H        &

76、#160;   AJMP        QUITLOOQ7:      MOV         P1,#0B0H            MOV         21H,#01H &

77、#160;          MOV         20H,#80HQUIT:       RETI            END4.结论    该驱动器经实验验证能驱动0.5N.m的步进电机。将驱动部分的电阻、电容及续流二极管

78、的有关参数加以调整,可驱动1.2N.m的步进电机。该驱动器电路简单可靠,结构紧凑,对于I/O口线与单片机资源紧张的系统来说特别适用。步进电机的选用计算方法步进电机是一种能将数字输入脉冲转换成旋转或直线增量运动的电磁执行元件。每输入一个脉冲电机转轴步进一个步距角增量 步进电机是一种能将数字输入脉冲转换成旋转或直线增量运动的电磁执行元件。每输入一个脉冲电机转轴步进一个步距角增量。电机总的回转角与输入脉冲数成正比例,相应的转速取决于输入脉冲频率。 步进电机是机电一体化产品中关键部件之一,通常被用作定位控制和定速控制。步进电机惯量低、定位精度高、无累积误差、控制简单等特点。广泛应用于机电一体化产品中,

79、如:数控机床、包装机械、计算机外围设备、复印机、传真机等。 选择步进电机时,首先要保证步进电机的输出功率大于负载所需的功率。而在选用功率步进电机时,首先要计算机械系统的负载转矩,电机的矩频特性能满足机械负载并有一定的余量保证其运行可靠。在实际工作过程中,各种频率下的负载力矩必须在矩频特性曲线的范围内。一般地说最大静力矩Mjmax大的电机,负载力矩大。 选择步进电机时,应使步距角和机械系统匹配,这样可以得到机床所需的脉冲当量。在机械传动过程中为了使得有更小的脉冲当量,一是可以改变丝杆的导程,二是可以通过步进电机的细分驱动来完成。但细分只能改变其分辨率,不改变其精度。精度是由电机的固有特性所决定。

80、 选择功率步进电机时,应当估算机械负载的负载惯量和机床要求的启动频率,使之与步进电机的惯性频率特性相匹配还有一定的余量,使之最高速连续工作频率能满足机床快速移动的需要。 选择步进电机需要进行以下计算: (1)计算齿轮的减速比 根据所要求脉冲当量,齿轮减速比i计算如下: i=(.S)/(360.) (1-1) 式中 -步进电机的步距角(o/脉冲) S -丝杆螺距(mm) -(mm/脉冲) (2)计算工作台,丝杆以及齿轮折算至电机轴上的惯量Jt。 Jt=J1+(1/i2)(J2+Js)+W/g(S/2)2 (1-2) 式中Jt -折算至电机轴上的惯量(Kg.cm.s2) J1、J2 -齿轮惯量(K

81、g.cm.s2) Js -丝杆惯量(Kg.cm.s2) W-工作台重量(N) S -丝杆螺距(cm) (3)计算电机输出的总力矩M M=Ma+Mf+Mt (1-3) Ma=(Jm+Jt).n/T×1.02×102 (1-4) 式中Ma -电机启动加速力矩(N.m) Jm、Jt-电机自身惯量与负载惯量(Kg.cm.s2) n-电机所需达到的转速(r/min) T-电机升速时间(s) Mf=(u.W.s)/(2i)×102 (1-5) Mf-导轨摩擦折算至电机的转矩(N.m) u-摩擦系数 -传递效率 Mt=(Pt.s)/(2i)×102 (1-6) Mt-

82、切削力折算至电机力矩(N.m) Pt-最大切削力(N) (4)负载起动频率估算。数控系统控制电机的启动频率与负载转矩和惯量有很大关系,其估算公式为 fq=fq0(1-(Mf+Mt)/Ml)÷(1+Jt/Jm) 1/2 (1-7) 式中fq-带载起动频率(Hz) fq0-空载起动频率 Ml-起动频率下由矩频特性决定的电机输出力矩(N.m) 若负载参数无法精确确定,则可按fq=1/2fq0进行估算. (5)运行的最高频率与升速时间的计算。由于电机的输出力矩随着频率的升高而下降,因此在最高频率 时,由矩频特性的输出力矩应能驱动负载,并留有足够的余量。 (6)负载力矩和最大静力矩Mmax。负

83、载力矩可按式(1-5)和式(1-6)计算,电机在最大进给速度时,由矩频特性决定的电机输出力矩要大于Mf与Mt之和,并留有余量。一般来说,Mf与Mt之和应小于(0.2 0.4)Mmax.基于单片机的步进电机开环控制系统设计Research on the Driver and Control System of the Step Motor摘要: 本文研究开发了一种步进电机驱动器及其控制系统。该系统以PC机作为上位机,以单片机作为下位机,可使上位机能够可靠地将经过处理的控制指令和参数发送到下位机,保证下位机能够准确、及时地发出控制信号,通过驱动器驱动步进电机工作。同时,上位机检测下位机的各种状态信

84、号,进行诊断和处理。关键字: 步进电机;控制系统;驱动器;通信电路Abstract: A high performance control system of stepping motor has been developed. The system adopts the PC as master computer and the single-chip as slave computer. Control instructions and parameter have been delivered from the master computer to slave computer depe

85、ndently and smoothly in order to guarantee the work that can be accurately and promptly done. Besides, the host computer collects various kinds of state signal that the slave computer feedbacks to diagnose and manipulate. Keywords: Step Motor; Control System; Driver; Communication Circuit1 引言步进电机又称脉

86、冲电动机,是数字控制的一种执行元件。它是随着计算机控制系统发展而发展起来,利用电脉冲信号进行控制,将电脉冲信号转换成相应的角位移或者线位移的电动机。对于步进电机控制系统,运动控制器就像是它的中枢神经系统,指挥着它的每个动作。本文以步进电机为控制对象,继承传统步进电机控制的优点,研制高性能步进电机驱动器及控制系统。2 系统总体设计 图1 控制器总体结构图步进电机控制器是步进电机控制系统重要部分,控制器接收上位机发送的指令,并根据指令向各步进电机发出控制信号,各个电机的驱动器则将控制信号转变成直接驱动步进电机的电信号,实现步进电机的控制。采用PC机的控制系统,其软硬件资源丰富,柔性极强。

87、图1为控制器总体结构图。单片机的种类是很多的,有PIC系列、Motorola系列、Intel系列8051类单片机等。各个系列的单片机各有所长,在处理速度、稳定性、I/O能力、功耗、功能齐全、价格等方面各有优劣。这些种类繁多的单片机家族,给我们单片机的选择提供了很大的余地。Intel公司生产的51系列单片机具有功能强大、价格低廉、体积小、开发工具易操作等特点,在市场中占有很大的份额,是一种比较通用且经济实惠的产品。因而本系统中选用了40管脚的51单片机ATMEL89C51作为主控芯片。3 硬件详细设计3.1 通信电路设计通过EPP并行口可以简单方便地设计出各种接口应用电路,其设计方法与总线方式更为接近,由于它所用的信号线十分有限,必须把数据的传送分为两个周期。EPP口的数据与地址分时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论