• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 电子设计 > PCB设计 > PCB设计 > 基于89C55和GAL16V8,MC1413的步进电机驱动器的设计(06-100)

基于89C55和GAL16V8,MC1413的步进电机驱动器的设计(06-100)

录入:edatop.com    点击:

  引言

  步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。
  
  89C55和GAL16V8

  89C55是Atmel公司的低电压,高性能CMOS  8 位单片机,片内含20k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,引脚兼容工业标准89C51和89C52芯片,采用通用编程方式,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微处理器的AT89C55可提供许多高性价比的解决方案,适用于多数嵌入式应用系统。

  通用阵列逻辑GAL是美国Lattice公司研制的一种电可擦除的可编程的新型PLD器件。近几年来,GAL以其高性能、高可靠性、可擦除及输出逻辑结构可组态等特性和100%的成品率,博得广大用户的信赖。它可以用来构成译码器、优先级编码器、多路开关、比较器、移位寄存器、计数器、总线仲裁器等。采用GAL16V8器件对两相和四相混和式步进电机进行控制,不仅简化了系统的结构,降低了成本,而且编程灵活方便,提高了系统的可靠性,使系统具有更强的适应性。
  
  硬件设计

  本设计选用GALl6V8为环形脉冲分配器和MC1413(国产型号为5G1413)七路达林顿驱动器阵列。最大驱动电流 可以达到500mA.通常应用时是把负载步进电机的一端接到VDD(12V)上,另一端接到输出引脚上,如16脚。了防止程序进入死循环,增加了外部的硬件看门狗定时器MAX813L,其内部的看门狗定时器监控UP/UC的工作。如果在1.6s内未检测到其工作,内部的定时器将使看门狗输出WDO处于低电平状态,WDO将保持低电平直到在WDI检测到UP/UC的工作。将WR和WDO连接可使看门狗超时产生复位。具体硬件电路如图1所示。

[p]

  软件设计

  通常,步进电机的脉冲控制是由逻辑电路实现的。在计算机控制的系统中,也可以通过编制程序,由扩展I/O口输出脉冲来决定电机的运行方式、方向及转速。这种方式电路简单、控制灵活,但占用CPU的时间过多,每次驱动电机时,PC机都得被占用。GAL器件有多种型号,根据设计的需要,同时从经济的角度考虑,选用GALl6V8来实现四相混和式步进电机进行控制。使用ABEL语言编程,原码如下:

 module motor
 title
 Operation of the simulator on devices with
 motor
                      DATA I/O Corp.      21 10 2002
          FB1     device 'P16V8R';
          D1,D2,D3,D4        pin 2,3,4,5;
          F1,F2,F3,F4,F5,F6,F7,F8      pin
  19,18,17,16,15,14,13,12;
  equations
          F8      = D1&D2&D3&D4;
          F7      = D1&D2&D3&!D4;
          F6      = D1&D2&!D3&D4;
          F5      = D1&D2&!D3&!D4;
          F4      = D1&!D2&D3&D4;
          F3      = D1&!D2&D3&!D4;
          F2      = D1&!D2&!D3&D4;
          F1      = D1&!D2&!D3&!D4;
end motor。

  设置软件陷阱

  当程序进入到非程序区,只要在非程序区设置拦截措施,使程序进入陷阱,然后强迫程序回到初始状态。如对CPU的RST指令对应的字节码为0FFH,如果不用的程序存储区预先写入0FFH,则当程序因干扰而“飞”到该区域执行代码时,就相当于执行1条RST指令,从而达到系统复位的目的。

  程序流程图如图2。

[p]

  汇编原码如下:

  MOV120: MOV     R3,#51H         
  MOV121: LCALL   MOV124           ;12
  行前进程序1
          DJNZ    R3,MOV121
          MOV     P1,#0H           ;电机矢电
   MOV    R0,#100
  RD08:     LCALL DELY
   DJNZ    R0,RD08
  MOV80:  MOV     R3,#13H
          MOV     2CH,#7          ;8列前进程
   序1
  MOV81:  LCALL   MOV84
          DJNZ    R3,MOV81
          MOV     P1,#0H           ;电机矢电
          MOV R0,#10H
  RD09:   LCALL DELY     ;测量单
      孔程序
          DJNZ R0,RD09
          SETB ET0 ; 开定时器0
  LCALL COTP   ; 单孔测量程序
  CLR ET0  ;关定时器0
  LCALL QUIT
  INC 2DH
  LCALL D10MS   ;延时1毫秒
  LCALL D10MS    ; 延时1毫秒
  MOV85:  MOV     R4,#0CH     ;8列前
  进程序2
  MOV83:  LCALL   MOV86
          DJNZ    R4, MOV83
          MOV     P1,#0H
          MOV     R0,#10H
  RD03:   LCALL DELY
   DJNZ R0,RD03
          SETB ET0 ;开定时器0
  LCALL COTP ;单孔测量程序
  CLR   ET0    ;关定时器0
  LCALL QUIT
  INC 2DH
  LCALL D10MS ;延时1毫秒
  LCALL D10MS
          DJNZ    2CH,MOV85        ;测量,循
   环7次,
          CJNE    R7,#1,RD02       ;判断测量
   是否完毕
          POP 07H
  SETB    P3.3   ;P3.3=1
    high voltage = 450V
  LCALL   BK080               ;测量行列
   完毕,返回初始位置程序
  LCALL    BK120           
  LCALL    LOCKOFF     
  RD02:   LCALL BK080       ;8列后
   退程序
          MOV R0,#250
  RD0A:  LCALL DELY
         LCALL   DELY
      DJNZ R0,RD0A
  RD01:   MOV     R5,#0BH
  MOV123: LCALL   MOV125     ;12行
   前进程序2
          DJNZ    R5,MOV123
          MOV     P1,#0H           ;电机矢电
          MOV A,R7
  MOV 2DH,#0
  INC 2EH
  DJNZ R7,MOV80  ;循环行数次
  
  结语

  采用此设计的步进电机驱动系统,运动平稳,速度快,控制精度高,该产品已应用于哈尔滨思创生物的单光子分析计数仪的驱动系统。

射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...

天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...

上一篇:基于FPGA和AD768的高精度信号卡设计
下一篇:基于SOPC的定量称重控制系统的设计与实现

射频和天线工程师培训课程详情>>

  网站地图