【正文】
師趙桂青的親切關(guān)懷和精心指導(dǎo),使得本設(shè)計(jì)得以順利完成,其中無不飽含著導(dǎo)師的汗水和心血。2. 電梯執(zhí)行完所有請(qǐng)求時(shí)電梯將停在1樓待機(jī)。),發(fā)出超載警報(bào)alarm;超載信號(hào)消失(full=39。led顯示電梯所在樓層;led_d、ledc_u和led_c_d顯示用戶的請(qǐng)求。設(shè)置好的輸入波形如圖15所示。選擇菜單“File” 中的“New”項(xiàng),在New窗口中選擇“Vector Waveform File”,單擊OK按鈕,即出現(xiàn)空白的波形編譯器(圖12)。注意文件名和實(shí)體定義名必須保持一致,即dianti,文件后綴名為vhd。 電梯內(nèi)人請(qǐng)求信號(hào)顯示 led_c_u=cc_u。c_d33amp。c_u55amp。d55amp。 elsif c_d5=39。139。 elsif c_u4=39。139。 elsif d5=39。139。down=39。q1=0。 電梯進(jìn)入關(guān)門狀態(tài) else q1=q1+1。 then q1=3。139。 then door=10。 end if。039。以此類推,在一樓時(shí)led賦值為“100111”,三樓時(shí)為“0000110”,四樓時(shí)為……在進(jìn)程執(zhí)行單元里,對(duì)電梯在樓層時(shí)的操作情況作出了描述,例如:開門、關(guān)門延時(shí)、超載報(bào)警、故障報(bào)警以及電梯內(nèi)的請(qǐng)求信號(hào)處理,具體說明給出如下:process(clk)beginif clk39。139。139。139。 有上升請(qǐng)求,則電梯進(jìn)入預(yù)備上升狀態(tài) elsif dd_cc00000010 then en_dw=39。 opendoor=39。 then 電梯前一運(yùn)動(dòng)狀態(tài)位上升 if d22=39。VHDL語言也具有與一般編程語言相同的一些語句邏輯結(jié)構(gòu),如上述中的“if…then…elsif…then…;”等。139。139。開門使能信號(hào)signal updown:std_logic。(3)archi結(jié)構(gòu)體設(shè)計(jì)模塊和process進(jìn)程執(zhí)行單元architecture behav of dianti issignal d11,d22,d33,d44,d55,d66:std_logic。電梯門控制信號(hào) led : out std_logic_vector(6 downto 0)。use 。其分布如圖6所示。 程序流程分析電梯的運(yùn)行規(guī)則確立后,需對(duì)整個(gè)控制程序的設(shè)計(jì)作一個(gè)流程規(guī)范。(3)對(duì)電梯開門、關(guān)門、報(bào)警等內(nèi)部信號(hào)處理分析。處于六樓時(shí),電梯只可能接收到下降的請(qǐng)求信號(hào)。電梯接收到請(qǐng)求信號(hào)后,都必須作預(yù)操作。由于毛刺的存在,使的系統(tǒng)存在許多不穩(wěn)定因素,經(jīng)常會(huì)造成對(duì)脈沖上下沿敏感的電路產(chǎn)生誤動(dòng)作。實(shí)體名;(3)結(jié)構(gòu)體所有能被仿真的實(shí)體都由結(jié)構(gòu)體(ARCHITECTURE)描述,即結(jié)構(gòu)體描述實(shí)體的結(jié)構(gòu)或行為,一個(gè)實(shí)體可以有多個(gè)結(jié)構(gòu)體,每個(gè)結(jié)構(gòu)體分別代表該實(shí)體功能的不同實(shí)現(xiàn)方案。類型;端口信號(hào)名3:實(shí)體格式如下:ENTITY1)要求的功能模塊劃分;2)VHDL的設(shè)計(jì)描述(設(shè)計(jì)輸入);3)代碼仿真模擬(前仿真);4)計(jì)綜合、優(yōu)化和布局布線;5)布局布線后的仿真模擬(后仿真);6)設(shè)計(jì)的實(shí)現(xiàn)(下載到目標(biāo)器件)。(三)獨(dú)立性:VHDL的硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無關(guān)。VHDL具有與具體硬件電路無關(guān)和設(shè)計(jì)平臺(tái)無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化結(jié)構(gòu)化設(shè)計(jì)方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。利用EDA工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議等開始設(shè)計(jì)電子系統(tǒng),大量工作可以通過計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB版圖的整個(gè)過程在計(jì)算機(jī)上自動(dòng)處理完成。在QuartusII平臺(tái)上開發(fā)具有易學(xué)易懂、控制靈活方便、抗干擾能力強(qiáng)、運(yùn)行穩(wěn)定可靠等優(yōu)點(diǎn)?;贓DA技術(shù)的VHDL語言對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)?;贓DA技術(shù)的電梯控制器實(shí)現(xiàn)與仿真——六層電梯控制器的設(shè)計(jì)一、設(shè)計(jì)目的針對(duì)我國(guó)樓層層數(shù)的基本水平,本著“一理通,百理明”的原則,本設(shè)計(jì)希望通過簡(jiǎn)單的六層電梯控制器的設(shè)計(jì),為廣大電梯設(shè)計(jì)者提供一個(gè)基礎(chǔ)。對(duì)于用EDA技術(shù)完成的一個(gè)確定的設(shè)計(jì),可以利用相應(yīng)的工具平臺(tái)進(jìn)來邏輯綜合和優(yōu)化,完成設(shè)計(jì)任務(wù)。使用VHDL語言進(jìn)行程序設(shè)計(jì),在QuartusII軟件上對(duì)程序進(jìn)行編譯、仿真。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。VHDL作為一個(gè)規(guī)范語言和建模語言,具有很強(qiáng)的電路描述和建模能力,能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建模和描述,從而大大簡(jiǎn)化了硬件設(shè)計(jì)任務(wù),提高了設(shè)計(jì)效率和可靠性。此外,通過更換庫(kù)再重新綜合很容易移植為ASIC設(shè)計(jì)。 VHDL的設(shè)計(jì)步驟采用VHDL的系統(tǒng)設(shè)計(jì),一般有以下6個(gè)步驟。實(shí)體類似于原理圖中的一個(gè)部件符號(hào),它并不描述設(shè)計(jì)的具體功能,只是定義所需的全部輸入/輸出信號(hào)。模式END毛刺(競(jìng)爭(zhēng) — 冒險(xiǎn))現(xiàn)象是長(zhǎng)期困繞電子工程師的問題之一。出于這方面的考慮,本設(shè)計(jì)把電梯的請(qǐng)求信號(hào)劃分為上升請(qǐng)求和下降請(qǐng)求。處于二樓到五樓時(shí),電梯可能出現(xiàn)三種情況:1電梯沒有接收到請(qǐng)求信號(hào),電梯返回一樓待機(jī);2電梯收到上升請(qǐng)求信號(hào),進(jìn)入預(yù)上升狀態(tài);3電梯受到下降請(qǐng)求信號(hào),進(jìn)入預(yù)下降狀態(tài)。本設(shè)計(jì)采用以下規(guī)則:電梯以前一狀態(tài)為基準(zhǔn),即前一狀態(tài)為上升,則操作完所以上升請(qǐng)求再操作下降請(qǐng)求;前一狀態(tài)為下降,則反之。電梯控制器的原理圖如圖4所示。輸出端口:電梯門控制信號(hào)(door)、電梯所在樓層顯示(led)電梯外人上升請(qǐng)求信號(hào)顯示(led_c_u)、電梯外人下降請(qǐng)求信號(hào)顯示(led_c_d)、電梯內(nèi)請(qǐng)求信號(hào)顯示(led_d)、看門狗報(bào)警信號(hào)(wahaha)、電梯運(yùn)動(dòng)方向顯示(ud)、超載警告信號(hào)(alarm)、電機(jī)控制信號(hào)(up,down)。use 。到達(dá)樓層信號(hào) door : out std_logic_vector(1 downto 0)。電機(jī)控制信號(hào)和電梯運(yùn)動(dòng)end dianti。電梯內(nèi)外請(qǐng)求信號(hào)寄存器signal opendoor:std_logic。event and clk=39。elsif full=39。139。039。039。 電梯前一運(yùn)動(dòng)狀態(tài)為下降 elsif d22=39。opendoor=39。 有下降請(qǐng)求,則電梯進(jìn)入預(yù)備下降狀態(tài) elsif dd_cc00000011 thenen_up=39??砂l(fā)光段a、b、c、e、g形成一個(gè)2字。wahaha=39。 else door=00。139。開門操作 elsif en_up=39。139。q1=q1+1。 then door=10。039。 end if。 對(duì)電梯內(nèi)人請(qǐng)求信號(hào)進(jìn)行檢測(cè)和寄存 elsif d2=39。 then d44=d4。 if c_u1=39。 then c_u33=c_u3。 if c_d2=39。 then c_d44=c_d4。 dd=d66amp。amp。c_d44amp。 電梯運(yùn)動(dòng)狀態(tài)顯示 led_d=dd。(4) 輸入完畢后,需要對(duì)程序進(jìn)行保存。四 程序仿真(1)編譯完成后,新建波形編輯器進(jìn)行設(shè)計(jì)仿真。如對(duì)時(shí)鐘信賦于周期如下圖14所示。圖17 電梯控制程序仿真圖圖18電梯控制程序仿真局部放大圖1從上面兩個(gè)仿真圖可以看出:1. 電梯停在一樓時(shí),接受到請(qǐng)求信號(hào)c_dc_dc_u4和d6,并把請(qǐng)求信號(hào)寫入相應(yīng)的寄存器。139。圖21 電梯控制程序仿真局部放大圖4從上圖可以看出:1. 電梯排除故障后繼續(xù)運(yùn)行。本設(shè)計(jì)在實(shí)用方面和參考方面具有一定的價(jià)值。當(dāng)然也要感謝我的父母,我所邁出的每一步,都凝聚著你們心血和汗水,你們始終如一的支持和關(guān)愛,是我一直勇敢向前的動(dòng)力。 超載、關(guān)門中斷、提前關(guān)門清除報(bào)警信號(hào) c_u1,c_u2,c_u3,c_u4,c_u5: in std_logic。 電梯外人下降請(qǐng)求信號(hào)顯示 led_d : out std_logic_vector(5 downto 0)。 電梯外人下降請(qǐng)求信號(hào)寄存信號(hào)signal q:integer range 0 to 1。event and clk=39。 清除故障報(bào)警 elsif full=39。 elsif q=1 then q=0。q1=0。 then 上升預(yù)操作 if deng=39。 提前關(guān)門 elsif q1=6 then door=00。door=00。q2=q2+1。139。139。 c_u11=39。 opendoor=39。 電梯到達(dá)2樓,數(shù)碼管顯示2 if updown=39。 c_u22=39。 opendoor=39。 有下降請(qǐng)求,則電梯進(jìn)入預(yù)備下降狀態(tài) end if。039。039。 elsif g3=39。139。139。039。 then d33=39。en_up=39。 opendoor=39。 then if d44=39。 opendoor=39。 elsif dd_cc00001000 then en_dw=39。139。139。139。 then led=0100100。039。039。039。 c_d55=39。opendoor=39。 end if。 then d66=39。en_up=39。039。 then d11=d1。139。 end if。139。 end if。139。end if。039。c_d55amp。 ud=updown