《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > FPGA在電梯控制系統(tǒng)中的應用
FPGA在電梯控制系統(tǒng)中的應用
來源:微型機與應用2011年第24期
田紅光
(安徽理工大學 電氣與信息工程學院,, 安徽 淮南232001)
摘要: 介紹了基于Altera公司EP1K30TC144芯片的電梯控制器設計過程,,描述了該控制系統(tǒng)的功能,。該設計采用VHDL語言進行編程,,以QUARTUSⅡ軟件為開發(fā)平臺,,對本設計進行了仿真,,并使用JTAG將程序代碼下載到實驗板上進行了硬件驗證,。
Abstract:
Key words :

摘  要: 介紹了基于Altera公司EP1K30TC144芯片的電梯控制器設計過程,,描述了該控制系統(tǒng)的功能,。該設計采用VHDL語言進行編程,以QUARTUSⅡ軟件為開發(fā)平臺,,對本設計進行了仿真,,并使用JTAG將程序代碼下載到實驗板上進行了硬件驗證。
關鍵詞: 電梯控制器; VHDL; EP1K30TC144; QUARTUSⅡ

    隨著社會的發(fā)展,,電梯的使用越來越普遍,,對電梯功能的要求也不斷提高,相應地其控制方式也在不斷發(fā)生變化,。對于電梯的控制,傳統(tǒng)的方法是使用繼電器-接觸器控制系統(tǒng)進行控制,進入全微機化控制的時代,,微型計算機在電梯控制上的應用日益廣泛。電梯的微機化控制主要有以下幾種形式:①PLC控制,;②單板機控制,;③單片機控制;④單微機控制,;⑤多微機控制,;⑥人工智能控制,。隨著EDA技術的快速發(fā)展,CPLD/FPGA因其高速處理信號的能力,、可在線編程,、易于實現(xiàn)、開發(fā)周期短,、便于維護等優(yōu)點,,使FPGA已廣泛應用于電子設計控制的各個方面。本文就是使用一片Altera公司的EP1K30TC144為控制中心,,以VHDL編程語言為基礎進行了電梯控制器的設計,,并做了仿真。
1 系統(tǒng)功能簡介
    電梯控制器[1]的功能:每層電梯入口處設有上下請求開關,;電梯內(nèi)設有乘客到達層次的停站請求開關,;電梯所處位置指示裝置及電梯運行模式指示裝置;電梯每分鐘升降一層樓,。電梯到達有停站請求的樓層后,,經(jīng)過5 s電梯開門,開門指示燈亮,,開門10 s后電梯門關閉,,電梯繼續(xù)運行,直到運行完最后一個請求信號后停在當前層;能記憶電梯內(nèi)外所有請求信號,,并按照電梯運行規(guī)則依次響應,,每個信號保留至執(zhí)行后消除。
    電梯運行規(guī)則:遵循方向優(yōu)先的原則,,電梯上升時,,只響應比電梯所在位置高的上樓請求信號,由下到上逐個執(zhí)行,,直到最后一個上樓請求執(zhí)行完畢,,如更高層有請求下樓信號,則直接上升到有下樓請求的最高層,,然后進入下樓狀態(tài)。電梯下降時,,與上升狀態(tài)規(guī)則相反,。
    輸入信號定義:
    系統(tǒng)復位信號:reset,高電平有效,;
    電梯入口處一層,、二層的上樓請求開關:upone、uptwo,;
    電梯入口處二層,、三層的下樓請求開關:downtwo,、downthree;
    電梯內(nèi)部到達樓層的停站請求開關:one、two,、three;
    所有輸入信號的規(guī)定為:1表示有請求,,0表示無請求;
    輸出信號定義:
    電梯外部上升和下降請求指示燈:lightup和lightdown,,這些信號與upone,、uptwo、downtwo和downthree信號相對應,;
    電梯內(nèi)部乘客到達樓層的停站請求燈:arr,,該信號與one、two和three相對應,;
    電梯所在樓層指示:p表示電梯在對應樓層,;
    電梯的運行狀態(tài):lightdown指示向下運行,lightup向上運行,,arr指示電梯的開關門狀態(tài)及是否到達樓層,。
2 系統(tǒng)設計實現(xiàn)
2.1 系統(tǒng)總體框圖

    系統(tǒng)總體框圖如圖1所示。


2.2頂層電路的設計
    縱觀各種基于FPGA的電梯控制器,,很少有人介紹并使用構造體的結(jié)構描述方式,。即在多層次的設計中,高層次的設計模塊調(diào)用低層次的設計模塊,,或者直接使用門電路設計單元來完成一個復雜的邏輯電路的描述方法,。結(jié)構描述方式最能提高設計效率,它可以將已有的設計成果方便地運用到新的設計中去,。
    本系統(tǒng)的頂層電路設計就采用構造體的結(jié)構描述方式,。易于實現(xiàn),易于糾錯,,易于修改程序,。
    上層模塊源程序[4]及注釋:
library ieee;
use ieee.std_logic_1164.all;
entity total5 is
port(uo,ut,dt,dth:in std_logic--一、二,、三層樓電梯外的上下樓請求鍵,。
o,t,th:in std_logic;--一、二,、三層電梯里的按鍵,。
pres:in std_logic;--reset信號。
clk:in std_logic;--時鐘信號,,1 MHz,。
    lightout:out std_logic_vector(6 downto 0);--數(shù)碼管的輸入信號。
lu,ld:out std_logic;--電梯上升,下降的燈,。
arr:out std_logic);--開門的燈,。
end;
architecture a of total5 is
signal templ0,templ2:std_logic;
signal templ1:integer range 3 to 1;
Signal
temp1,temp2,temp3,temp4,temp5,temp6,temp7:std_logic;
component bigmain--調(diào)用電梯控制模塊。
port(upone,uptwo,downtwo,downthree
:in std_logic;
one,two,three:in std_logic;
reset:in std_logic;
clk,clk2:in std_logic;
p:out integer range 3 to 1;
lightup,lightdown:out std_logic;
arrive:out std_logic);
end component;
component fangdou --調(diào)用防抖動模塊,。
port(clk:in std_logic;
  key:in std_logic;
  keyout:out std_logic);
end component;
component fenpin--調(diào)用分頻器模塊,。
port(clk:in std_logic;
  clk1,clk2:out std_logic);
end component;
component display--調(diào)用譯碼顯示模塊。
port(clk :in std_logic;
light:in integer range 3 to 1;
segout:out std_logic_vector(6 downto 0));
end component;
begin
u1:fenpin port map(clk,templ0,templ2);
u4:fangdou port map(templ0,uo,temp1);
u5:fangdou port map(templ0,ut,temp2);
u6:fangdou port map(templ0,dt,temp3);
u7:fangdou port map(templ0,dth,temp4);
u8:fangdou port map(templ0,o,temp5);
u9:fangdou port map(templ0,t,temp6);
u10:fangdou port map(templ0,th,temp7);
u11:bigmain port  map(temp1,temp2,temp3,
temp4,temp5,temp6,temp7,pres,clk,templ2,
templ1,lu,ld,arr);
u12:display port map(clk,templ1,lightout);
end;
2.3主模塊設計
    控制模塊是整個設計的核心部分,,本設計采用狀態(tài)機[2]的方法來實現(xiàn),。依據(jù)電梯的功能要求,這里將電梯的工作分為10個狀態(tài),。狀態(tài)機如圖2所示,。(1)控制模塊有兩個進程:k1控制輸入,無論電梯在什么狀態(tài)均能接收用戶的輸入請求,,該進程由1 MHz的時鐘觸發(fā),;k2控制電梯的升、降,、停留,,該程序由1 Hz的時鐘觸發(fā)。(2)進程k1是由1MHz的時鐘作為觸發(fā)沿,,不斷地檢測用戶是否有輸入請求,,對于一、二,、三層信號,,分別有flag1、flag2,、flag3和clear1,、clear2、clear3兩套標志位來控制輸入請求是否有效,,是否應該對標志位清零,。程序有兩個表示電梯的狀態(tài):一是位置狀態(tài),二是運行狀態(tài),。
 

 

 

3 電梯控制系統(tǒng)仿真
    電梯控制系統(tǒng)的仿真[3]波形如圖3所示,,由仿真波形可以看出,當電梯的外部出現(xiàn)2樓下樓申請downtwo時,,電梯運行p到2樓,,開門等待,再關門,;當電梯的內(nèi)部有停3樓three申請時,電梯運行到3樓,,開門等待,,再關門,;如果電梯的外部繼續(xù)有1樓上樓申請upone,電梯從3樓下降到1樓,,開門等待,,然后關門。電梯位置的變化及其運行和最初的設計要求完全符合,。

    本系統(tǒng)是基于EP1K30TC144的一個多樓層中單個載客箱的電梯控制器,,該控制器可控制電梯完成3個樓層的載客服務(和多樓層的控制機理相同,可擴展至任意樓層),,而且遵循方向優(yōu)先的原則,,能夠提前關閉電梯門和延遲關閉電梯門,提供電梯運行的開關控制按鈕,,同時指示電梯的運行狀態(tài),、樓層間的運行時間以及電梯所在樓層的等待時間。電梯對用戶的響應率非常高,,且響應的時間比較短,。電梯在維修停止狀態(tài)時可以進入省電模式,能夠節(jié)省大量電能,。
參考文獻
[1] 侯伯亨,,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設計(修訂版)[M].西 安:西安電子科技大學出版社,2006.
[2] 路而紅.專用集成電路設計與電子設計自動化[M].北京:清華大學出版社,,2004.
[3] 袁文波,,張皓,唐振中. FPGA應用開發(fā)從實踐到提高[M]. 北京:中國電力出版社,,2007.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉(zhuǎn)載。