一種可擴(kuò)展的三層電梯控制器的實(shí)現(xiàn)
首先說(shuō)明一下?tīng)顟B(tài)。狀態(tài)機(jī)設(shè)置了lO個(gè)狀態(tài),分別是電梯停留在l層(stoponl)、開(kāi)門(mén)(dooropen)、關(guān)門(mén)(doorclose)、開(kāi)門(mén)等待第1秒(doorwaitl)、開(kāi)門(mén)等待第2秒(doorwait2)、開(kāi)門(mén)等待第3秒(doorwait3)、開(kāi)門(mén)等待第4秒(doorwait4)、上升(up)、下降(down)和停止(stop)。在實(shí)體說(shuō)明定義完端口之后,在結(jié)構(gòu)體architecture和begin之間需要有如下的定義語(yǔ)句,來(lái)定義狀態(tài)機(jī)。
TYPE lift_state IS
(stoponl,dooropen,doorclose,doorwaitl,doorwait2,doorwai t3,door。wai t4,up,down,s top):
SIGNAL mylift:lift_state:
在結(jié)構(gòu)體中,設(shè)計(jì)了倆個(gè)進(jìn)程互相配合,一個(gè)是狀態(tài)機(jī)進(jìn)程作為主要進(jìn)程,另外一個(gè)是信號(hào)燈控制進(jìn)程作為輔助進(jìn)程。狀態(tài)機(jī)進(jìn)程中的很多判斷條件是以信號(hào)燈進(jìn)程產(chǎn)生的信號(hào)燈信號(hào)為依據(jù)的,而信號(hào)燈進(jìn)程中信號(hào)燈的熄滅又是由狀態(tài)機(jī)進(jìn)程中傳出的clearup和cleardn信號(hào)來(lái)控制。
在狀態(tài)機(jī)進(jìn)程中,在電梯的上升狀態(tài)中,通過(guò)對(duì)信號(hào)燈的判斷,決定下一個(gè)狀態(tài)是繼續(xù)上升還是停止;在電梯下降狀態(tài)中,也是通過(guò)對(duì)信號(hào)燈的判斷,決定下一個(gè)狀態(tài)是繼續(xù)下降還是停止;在電梯停止?fàn)顟B(tài)中,判斷是最復(fù)雜的,通過(guò)對(duì)信號(hào)的判斷,決定電梯是上升、下降還是停止。
在信號(hào)燈控制進(jìn)程中,由于使用了專(zhuān)門(mén)的頻率較高的按鍵時(shí)鐘,所以使得按鍵的靈敏度增大,但是時(shí)鐘頻率不能過(guò)高,否則容易使按鍵過(guò)于靈敏。按鍵后產(chǎn)生的點(diǎn)亮的信號(hào)燈(邏輯值為‘1’)用于作為狀態(tài)機(jī)進(jìn)程中的判斷條件,而clearup和cleardn信號(hào)為邏輯‘l’使得相應(yīng)的信號(hào)燈熄滅。
3.3 三層電梯控制器VHDL設(shè)計(jì)
三層電梯控制器的VHDL描述模塊流程如圖2所示。三層電梯控制器的源代碼(見(jiàn)附錄)可知:
(1)本程序設(shè)計(jì)調(diào)用了IEEE庫(kù),IEEE庫(kù)是VHDL設(shè)計(jì)中最為常用的庫(kù),它包含有IEEE標(biāo)準(zhǔn)的程序包和其他一些支持工業(yè)標(biāo)準(zhǔn)的程序包。本設(shè)計(jì)采用了STD_LOGIC_1164、STD_LOGIC_ARITH、STD_LOGIC_UNSIGNED程序包。
(2)以關(guān)鍵詞ENTITY引導(dǎo),END ENTITY threeflift結(jié)尾的語(yǔ)句部分,稱(chēng)為實(shí)體。VHDL的實(shí)體描述了電路器件的外部情況及各信號(hào)端口的基本性質(zhì)。本設(shè)計(jì)定義了關(guān)于三層電梯控制器用到的各類(lèi)時(shí)鐘、異步復(fù)位按鍵、信號(hào)燈指示、電梯的請(qǐng)求。端口模式主要就是IN、BUFFER、OUT端口。及定義了各端口信號(hào)的數(shù)據(jù)類(lèi)型,主要是STD_LOGIC(標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類(lèi)型)、INTEGER(整數(shù)類(lèi)型)、STD_LOGIC_VECTOR(標(biāo)準(zhǔn)邏輯矢量數(shù)據(jù)類(lèi)型)。這些都滿(mǎn)足上面調(diào)用的IEEE庫(kù)中的程序包。
(3)以關(guān)鍵詞ARCHITECTURE引導(dǎo),END ARCHITECTUREa結(jié)尾的語(yǔ)句部分,稱(chēng)為結(jié)構(gòu)體。結(jié)構(gòu)體負(fù)責(zé)描述電路器件的內(nèi)部邏輯功能或電路結(jié)構(gòu)。本設(shè)計(jì)定義了lO個(gè)狀態(tài)。描述了在三層電梯中出現(xiàn)的各種可能的情況作為控制電梯的主要進(jìn)程。信號(hào)燈控制作為輔助進(jìn)程。
3.4 三層電梯控制器的模塊
評(píng)論