《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 业界动态 > 基于FPGA的自动门控制系统设计

基于FPGA的自动门控制系统设计

2008-05-07
作者:裴亚男1, 高彦丽1, 孟艳花2

  摘 要: 介绍了基于FPGA和MC33033的自动门" title="自动门">自动门控制系统的设计。系统包括三大部分:逻辑运算电路、电机控制" title="电机控制">电机控制电路和系统主控制器,能够实现自动门的远距离遥控、遇阻暂停、正反运行分别调速等功能。该系统的特点是简单、可靠、开发成本低。文中给出了实验结果。
  关键词: 自动门 VHDL FPGA 电机控制


  随着经济的发展和人们生活水平的提高,自动门的方便、安全、节能以及低噪音等特点使其应用越来越广泛,现为许多宾馆、超市、百货大楼等现代化建筑所必备。经过对自动门市场和用户的调查分析后发现,欧美国家的产品功能繁多,性能可靠,但这些产品的价格普遍偏高,操作复杂,而国内生产的产品往往性能不稳定,故障率高,需要频繁的维护,增加了运营成本[1~2]
  因此,设计一操作方便、运行稳定可靠、成本低的自动门的控制系统具有一定的市场。本文设计的自动门控制系统为了达到上述目的,采用了如下设计方案:采用按钮、无线遥控、红外感应三种驱动方式,既可自动控制又可人工控制,操作简单并且适用范围广;采用EDA技术设计主控制器的状态转换,可软件诊错;采用自动复位以及电机专用控制芯片来保证系统的可靠运行。由于设计采用了EDA技术的VHDL设计而非传统的单片机设计,是一种自上向下的设计方法,使得系统的开发周期短、成本降低。下文将详细介绍系统各个部分的设计[3]
1 系统分析
  系统总框图如图1所示,通过按钮、无线遥控、红外感应三种驱动方式实现自动门的开、关、停,且按钮优先级别最高。红外感应使用hp2100cdc型全自动人体红外感应开关,有人来时自动门开。还可以通过人工控制方式使用按键与遥控器来控制自动门的开、关、停。无线遥控器选用CY29-5A 型器件,其有效控制范围在150米以内。控制信号" title="控制信号">控制信号逻辑运算电路用来处理三种控制方式的优先级别,以防系统混乱;自动门主控制器电路用一片FPGA,根据驱动信号以及位置和遇阻外部信号来完成对门运行状态的转换控制;电机控制电路则根据主控制器发出的正反转以及停控制信号来控制电机的开、关、停以及实现自动门正反运行的分别调速。


  设计重点为控制信号处理电路、电机控制电路、自动门主控制器电路。
2 逻辑运算电路设计
  由于本自动门系统的驱动信号较多,为了避免这些信号之间在某些情况下出现矛盾,在三种驱动方式同时发出信号时,需要设定其优先级别。控制信号逻辑运算电路主要完成将按钮、无线遥控和红外感应三种驱动信号在处理好优先级条件下转换成三个控制信号(开、关、停)。其优先级由高到低可以按照实际情况设定为:按扭、无线遥控、红外感应。列出其真值表,即可求得开、关、停的逻辑关系,或直接在FPGA中编程实现。
3 电机控制电路设计
  为了保证电机的控制简便可靠,设计中使用了电机专用控制芯片MC33033。该芯片是MOTOROLA公司生产的一种高性能直流电机控制器,可对直流电机速度进行开环和闭环控制,亦可分别对电机正反转进行调速。MC33033是第二代无刷直流电机控制器的典型芯片,该芯片内含转子位置译码器,并可为传感器工作提供带有温度补偿的参考基准电压。MC33033的另一个特点是内含三个集电极开路的顶部驱动器和为MOSFET驱动电源而设计的三个高电流推拉式底部驱动器,并具有电机过流检测和保护功能。此外,MC33033还具有如下特点:
  (1) 具有10~30V的宽电源电压范围;
  (2) 具有欠压锁定功能;
  (3) 可提供6.25V带有温度补偿的基准电压源;
  (4) 带有为闭环控制提供的误差放大器;
  (5) 与MC33033组合可控制三相桥式高电流驱动器;
  (6) 具有周期—周期电流限制功能;
  (7) 具有热开关断功能;
  (8) 可在60°/120°或120°/240°的传感器相位中任选;
  (9) 亦可控制H桥式有刷直流电机。
  利用MC33033也可以设计出直流有刷电机的速度控制电路。图2为MC33033用于控制有刷电机的典型电路。如果在传感器的输入端加上某个输入码,如100,则当控制器的正转/反转引脚为逻辑1时,输入码使左上角Q和右下角Q产生驱动;当控制器的正转反转为逻辑0时,输入码使右上角Q和左下角Q产生驱动。


  在通常情况下,控制器在PWM频率为25kHz时就能正常工作,电机速度的控制可以通过调节误差放大器的同相输入电压来实现,同时它也为PWM提供基准和限幅电平。周期电流限制(3A电机电流)是由电阻R到地之间的100mV门限电压来完成的。过流保护电路能够防止电机启动和改变转向时损坏器件,可以保证整个电路的安全[4~6]
  MC33033应用到自动门的电机控制原理如图3所示。将逻辑运算电路得出的停止、正转、反转作为三个输入信号,其中,优先级高低顺序是停止、正转、反转(正常情况下三个信号中有且仅有一个有效)。正转和反转信号经过逻辑门接入MC33033的3端,如果该端为高电平" title="高电平">高电平时,MC33033将使AT输出高电平,开关Q1导通" title="导通">导通,同时CB端输出PWM调制波形,开关Q4相应地动作,从而实现电机正转并进行速度调整;反之,MC33033将使AB输出高电平,开关Q2导通,同时CT端输出PWM调制波形,开关Q3相应地动作,从而实现电机反转并进行速度调整。低电平时,停止信号接入到MC33033的19端(使能端),如果它为高电平时,芯片将停止正常工作,此时就能实现电机的停转。这就是电机部分如何实现电机正转、反转、停止以及正反转分别调速的原理。


  下面将具体分析电路是如何实现调速的。当电机控制部分被输入正转信号时,在MC33033芯片的3端为高电平信号,U2A光电隔离不会导通,U2B光电隔离可以导通,此时L2发光二极管会发光,表示正转,高电平将通过RP2、二级管D2进入到MC33033的9端,其电压可以通过滑动变阻器RP2来调整,而MC33033的9端是振荡波,将会利用PWM原理对8与9进行比较来控制Q4的输出脉冲波形,从而调整电动机正转时的端电压,实现电机正转调速。当电机控制部分被输入反转信号时,MC33033芯片的3端是低电平信号,在经过4011与非门后得出高电平,U2A光电隔离可以导通,U2B光电隔离不会导通,此时,L1发光二极管会发光,表示反转,高电平将通过RP1、二级管D1进入到MC33033的9端,其电压可以通过滑动变阻器RP2来调整,控制Q3的输出脉冲,从而调整电动机反转时的端电压,实现电机反转调速。
4 基于FPGA的自动门主控制电路
  用VHDL进行电子系统设计的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的但与工艺有关的因素花费过多的时间和精力。因此本设计采用VHDL语言的状态机设计法进行设计,通过编译、仿真、综合、配置,最终在FPGA上实现逻辑功能[7]
4.1 系统状态图
  根据VHDL状态机设计方法,首先画出自动门控制器的状态图。分析自动门的运行过程可知:门开始处于闭合状态即0位置,有开信号则开门,开关门过程中如遇到阻力则暂停一段时间,然后自动继续原来的开关门动作。门在运行过程中遇到停信号以及0位置则停遇到底位置信号则暂停一段时间,然后自动执行关门动作。系统状态图如图4所示。其中:x1、x2、x3分别表示开、关、停控制信号;x4表示门在运行过程中遇到障碍时传感器发出的信号;x5表示门完全闭合,即运行到0位置时传感器发出的信号;x6表示门完全打开,即运行到底位置时传感器发出的信号。


  COUT为控制器内部的定计时控制信号(这里假定
  三个暂停状态的暂停时间一样)。
  s0表示电动门处于零位置时的状态,此时电动门处于关闭的位置;
  s1表示电动门开的状态、电机正转的情况;
  s2表示电动门关的状态、电机反转的情况;
  s3表示电动门停止时的状态,此时要求电机停止转动;
  s4表示电动门处于底位置时的状态,此时电动门处于开的临界位置;
  s5表示在反转过程中电动门在遇到障碍时的暂停状态;
  s6表示在正转过程中电动门在遇到障碍时的暂停状态。
  Z1、Z2、Z3分别表示控制器发给电机控制电路的开、关、停控制信号。
4.2 自动门控制器的VHDL 设计
  由状态图可以看出,本系统属于MOORE 型有限状态机设计,本文采用双进程符号化的VHDL有限状态机设计方法。分析状态图可以得出系统输入输出端口,如图5所示。


  (1) VHDL的实体描述:
  ENTITY autodoor IS
  PORT (
  clk、reset: IN STD_LOGIC;——时钟、系统复位信号;
  x1、x2、x3、x4、x5、x6:OUT STD_LOGIC;——开、关、停、障碍、0位置、底位置
  comb_outputs : OUT STD_LOGIC_VECTOR (1 TO 3);
  ——comb_outputs(1) 对应 Z1;
  ——comb_outputs(2) 对应Z2;
  ——comb_outputs(3) 对应Z3;
  ten: OUT STD_LOGIC);——为了观测暂停信号
  END autodoor;
   (2)主控时序进程
  REG: PROCESS (reset,clk)
  BEGIN
    IF reset = ′1′ THEN current_state<=s0;
    ELSIF clk=′1′ AND clk′EVENT THEN
      current_state <= next_state;
    END IF;
  END PROCESS;
  (3)主控组合进程部分程序
  COM: PROCESS(current_state,x1,x2,x3,x4,x5,x6)
    BEGIN
      CASE current_state IS
        WHEN s0 => comb_outputs<= '001';
        en<=′0′; ——电动门在零位置状态
    IF x1=′1′ THEN next_state<=s1;
    ELSE next_state<=s0;
    END IF;
  ——表明只有当电动门在获得正转信号时,才会改变状态(转入s1状态),即电动门开的状态、电机正转的情况
  (4) 定时程序略
4.3 时序仿真波形
  把设计的VHDL程序编译,在MAX+PLUSⅡ下的仿真波形如图6、图7所示。

 


  由仿真波形可以看出:在清零信号reset为高电平时,电路会回到原来的初始状态,即s0状态。先给电路一个清零信号后,电路处于s0状态,comb_outputs=1(Z3=1表示电机停止),此时,如图6中所示给它一个x1正转信号,在遇到脉冲为上升沿时,由下面两行输出可知comb_outputs=4(Z1=1表示电机正转),电路将进入s1状态(即电动门开,电机正转);之后又给了x2反转信号,同样可以看到comb_outputs=2(Z2=1表示电机反转),电路进入了s2状态(即电动门关,电机反转);后给一个x3停止信号,同样可以看到comb_outputs =1(Z3=1表示电机停止),电路进入了s3状态(即电动门停止运行);如在电机正转的情况下,给x4信号(电动机在遇到障碍时的信号),电机将进入停止状态,此时电动门的状态是s5(即在正转过程中电动门在遇到障碍时的暂停状态),此时,再看ten信号的波形、计数信号q状态,ten信号由低电平向高电平转变,计数信号由原来的0不断地加1直到15为止,又进入到此暂停状态的开始状态(s1状态)。因此设计完全满足控制时序要求。
参考文献
1 徐庆继.西门子LOGO!在自动门控制系统中的应用[J]. 现代技能开发,2003;(12):110~111
2 姚卫丰.基于PLC控制的自动门系统[J].自动化与仪表,2002;(6):64~65
3 陈小兰,肖 化.基于PIC单片机的自动门控制器设计[J].华南师范大学学报(自然科学版),2001;(1):68~70
4 吴红星, 张千帆, 寇宝泉. 电机控制集成电路的选用第六讲:无刷直流电动机控制芯片MC33033的选用[J].微电机,1999;(6):42~43
5 孙中禹,杨友社.直流电机控制器MC33033及其应用电路[J]. 国外电子元器件,2000;(5):19~22
6 吴玉香.无刷直流电机在自动门控制中的应用.微特电机[J],2002;(4):37~38
7 潘 松, 黄继业.EDA技术实用教程[M].北京:科学出版社,2002

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。