自動(dòng)門控制系統(tǒng)設(shè)計(jì)
用 VHDL 進(jìn)行電子系統(tǒng)設(shè)計(jì)的優(yōu)點(diǎn)是從上而下的設(shè)計(jì)方法,設(shè)計(jì)者不用考慮實(shí)際工藝,可以全心在思路設(shè)計(jì)上,這樣更有利于系統(tǒng)的簡(jiǎn)單和實(shí)際應(yīng)用。
3.1 設(shè)計(jì)思路
首先畫出自動(dòng)門控制器的狀態(tài)圖。分析自動(dòng)門的運(yùn)行過程可知:門開始處于閉合狀態(tài),有開信號(hào)則開門,開關(guān)門過程中如遇到阻力則暫停一段時(shí)間,然后自動(dòng)繼續(xù)原來的開關(guān)門動(dòng)作。門在運(yùn)行過程中遇到停信號(hào)以及起始位置(門關(guān)時(shí))則停,遇到底(門全開時(shí))位置信號(hào)則暫停一段時(shí)間,然后自動(dòng)執(zhí)行關(guān)門動(dòng)作。假設(shè)x1、x2、x3 分別表示開、關(guān)、??刂菩盘?hào);x4 表示門在運(yùn)行過程中遇到障礙時(shí)傳感器發(fā)出的信號(hào);x5 表示門完全閉合;x6 表示門完全打開。COUT 為控制器內(nèi)部的定計(jì)時(shí)控制信號(hào)(這里假定三個(gè)暫停狀態(tài)的暫停時(shí)間一樣)。
s0 表示電動(dòng)門處于零位置時(shí)的狀態(tài),此時(shí)電動(dòng)門處于關(guān)閉的位置;s1 表示電動(dòng)門開的狀態(tài)、電機(jī)正轉(zhuǎn)的情況;s2 表示電動(dòng)門關(guān)的狀態(tài)、電機(jī)反轉(zhuǎn)的情況;s3 表示電動(dòng)門停止時(shí)的狀態(tài),此時(shí)要求電機(jī)停止轉(zhuǎn)動(dòng);s4 表示電動(dòng)門處于底位置時(shí)的狀態(tài),此時(shí)電動(dòng)門處于開的臨界位置;s5 表示在反轉(zhuǎn)過程中電動(dòng)門在遇到障礙時(shí)的暫停狀態(tài);s6 表示在正轉(zhuǎn)過程中電動(dòng)門在遇到障礙時(shí)的暫停狀態(tài)。Z1、Z2、Z3 分別表示控制器發(fā)給電機(jī)控制電路的開、關(guān)、??刂菩盘?hào)。
3.2 自動(dòng)門控制器的VHDL 語言設(shè)計(jì)
(1) VHDL 的實(shí)體描述:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY door IS
PORT(
Clk,reset: IN STD_LOGIC;--時(shí)鐘和復(fù)位信號(hào);
X1,x2,x3,x4,x5,x6:OUT STD_LOGIC;--開關(guān)量;
Outputs:OUT_LOGIC_VECTOR(1 TO 3);
Ten:OUT STD_LOGIC);
END door;
(2) 主控組合進(jìn)程部分程序
PROCESS(current_state,x1,x2,x3,x4,x5,x6)
BEGIN
CASE current_state IS
WHEN so=>comb_output=’001’;
en=’0’;
IF x1=’1’ THEN next_states1;
………………
ELSE next_states0;
………………
END IF;
4 結(jié)束語
本文中介紹的自動(dòng)控制系統(tǒng)采用了先進(jìn)的EDA 技術(shù),從上而下的設(shè)計(jì)方法,與工藝無關(guān)的設(shè)計(jì)思路,使設(shè)計(jì)者在設(shè)計(jì)中更多的考慮系統(tǒng)的實(shí)現(xiàn),更好的簡(jiǎn)化系統(tǒng),同時(shí)大大縮短了系統(tǒng)的設(shè)計(jì)完成時(shí)間。EDA 技術(shù)將在自動(dòng)控制中應(yīng)用會(huì)越來越廣泛。
評(píng)論