

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)論文</b></p><p> 題目:基于FPGA的智能電梯控制系統(tǒng)的實(shí)現(xiàn)</p><p> 2010 年 12 月 07 日</p><p><b> 摘要</b></p><p> 智能電梯控制系統(tǒng)的設(shè)計(jì)思想</p><p>
2、; 智能電梯的編寫(xiě)的過(guò)程也不是一帆風(fēng)順的。而且我試過(guò)好多種方法去實(shí)現(xiàn)電梯的狀態(tài)的轉(zhuǎn)移。起初我想到的肯定是有限狀態(tài)機(jī)。不過(guò)由于開(kāi)始我想到只有六個(gè)請(qǐng)求(分別為1~6樓),后來(lái)在老師的啟發(fā)下和東十二樓的電梯實(shí)際運(yùn)行情況我發(fā)現(xiàn),6個(gè)按鈕肯定是不夠的,所以我又加了5個(gè)向上的請(qǐng)求按鈕和5個(gè)向下的請(qǐng)求按鈕,這樣總共就有16個(gè)按鈕了,由于當(dāng)時(shí)我沒(méi)有想到用信號(hào)并置的方法,所以需要分析的情況實(shí)在是太多了,我也沒(méi)有信心了。不過(guò)問(wèn)題始終都是要得到解決的,后來(lái)
3、我在我們寢室的一個(gè)同學(xué)的參考書(shū)上看到了一個(gè)用VHDL語(yǔ)言編寫(xiě)的智能電梯控制器的程序,不過(guò)很不完整,它給我的最大的啟發(fā)就是“信號(hào)并置的算法”,我才發(fā)現(xiàn)這樣一來(lái)的話(huà),我的工作量就大大減少了。</p><p> 當(dāng)時(shí)我不僅采用“信號(hào)并置的算法”外,還采納了它的“以樓層為電梯的狀態(tài)轉(zhuǎn)移的依據(jù)”的思想,這確實(shí)是一個(gè)不錯(cuò)的方法,不過(guò)當(dāng)時(shí)我一直沒(méi)有任何進(jìn)展,一是它是用VHDL語(yǔ)言編寫(xiě)的,而且我對(duì)這個(gè)語(yǔ)言不是很熟悉所以不是特別
4、理解。后來(lái)竟然干起了把VHDL語(yǔ)言翻譯成verilog語(yǔ)言的工作,這樣沒(méi)有任何含金量的工作讓我浪費(fèi)了不少時(shí)間?,F(xiàn)在想起來(lái),我才發(fā)現(xiàn)我竟然迷失了自己,我原先自己的算法已經(jīng)被丟失了,留下了的僅僅是一些他人的程序?!耙詷菍訛殡娞莸臓顟B(tài)轉(zhuǎn)移的依據(jù)”的編程方法讓我沒(méi)有得到任何進(jìn)展,我放棄的這種處理多種狀態(tài)的方法,繼而轉(zhuǎn)向了我原先的“有限狀態(tài)機(jī)”的方法。使用三段式的有限狀態(tài)機(jī)的方法也花了很多時(shí)間去修正和改善。實(shí)現(xiàn)了基本的功能,當(dāng)時(shí)一遇到比較復(fù)雜的情
5、況時(shí)(比喻同時(shí)有幾個(gè)人在請(qǐng)求或者是同時(shí)有兩個(gè)在不同樓層的請(qǐng)求時(shí)電梯該如何運(yùn)行呢,這些特殊情況我在當(dāng)時(shí)一直沒(méi)有找到合適和有效的方法去解決)。</p><p> 關(guān)鍵詞:信號(hào)并置 verilog 狀態(tài)機(jī)</p><p> Intelligent elevator control system design thought
6、</p><p><b> Abstract</b></p><p> Intelligent elevator compilation process is not easy. And I tried a variety of ways to realize the transfer of the state. At first I thought the a
7、ffirmation is a finite state machine. But due to start I thought only six request (respectively for 1 ~ 6 / f) and then in teacher inspired and east ten on the second floor of the elevator actual operation situation I fo
8、und, 6 button affirmation is not enough, so I added five upward request button and five downward request button, so it has 16 button, </p><p><b> 目 錄</b></p><p> 第一章 概述摘要7</
9、p><p> 1.1 EDA概述7</p><p> 1.1.1什么是EDA7</p><p> 1.1.2 EDA的特8</p><p> 1.1.3 EDA的應(yīng)用8</p><p> 1.2 FPGA的簡(jiǎn)介及特點(diǎn)9</p><p> 1.3 VHDL語(yǔ)言及程序概述11&l
10、t;/p><p> 1.3.1 VHDL語(yǔ)言的發(fā)展.11</p><p> 1.3.2 VHDL語(yǔ)言的特點(diǎn)11</p><p> 1.3.3 VHDL語(yǔ)言程序的基本結(jié)構(gòu)13</p><p> 1.4狀態(tài)機(jī)的簡(jiǎn)介13</p><p> 第二章 電梯控制系統(tǒng)的分析15</p><p>
11、; 2.1選題的背景15</p><p> 2.2電梯控制的研究背景16</p><p> 2.3 我國(guó)電梯的發(fā)展概況16</p><p> 2.4 電梯設(shè)計(jì)的具體目的及控制要求17</p><p> 2.5電梯控制器設(shè)計(jì)原理及思路17</p><p> 2.6 電梯控制系統(tǒng)狀態(tài)圖分析18<
12、;/p><p> 第三章 電梯控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)21</p><p> 3.1 MAX+PLUSII的介紹21</p><p> 3.2 電梯控制系統(tǒng)的VHDL語(yǔ)言設(shè)計(jì)及仿真22</p><p> 3.2.1 模塊示意圖和輸入輸出描述22</p><p> 3.2.2 模塊設(shè)計(jì)過(guò)程25</p&g
13、t;<p> 3.2.3 波形仿真26</p><p> 3.3 電梯控制系統(tǒng)的實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn)32</p><p><b> 結(jié)論與體會(huì).33</b></p><p><b> 致謝.35</b></p><p><b> 附件程序.35</b>
14、</p><p><b> 參考文獻(xiàn).49</b></p><p><b> 第一章 概述摘要</b></p><p><b> 1.1 EDA概述</b></p><p> EDA在通信行業(yè)(電信)里的另一個(gè)解釋是企業(yè)數(shù)據(jù)架構(gòu),EDA給出了一個(gè)企業(yè)級(jí)的數(shù)據(jù)架構(gòu)的總體
15、視圖,并按照電信企業(yè)的特征,進(jìn)行了框架和層級(jí)的劃分。 EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)的縮寫(xiě),在20世紀(jì)60年代中期從計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)和計(jì)算機(jī)輔助工程(CAE)的概念發(fā)展而來(lái)的。</p><p> 1.1.1什么是EDA</p><p> 20世紀(jì)90年代,國(guó)際上電子和計(jì)算機(jī)技
16、術(shù)較先進(jìn)的國(guó)家,一直在積極探索新的電子電路設(shè)計(jì)方法,并在設(shè)計(jì)方法、工具等方面進(jìn)行了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來(lái)了極大的靈活性。這些器件可以通過(guò)軟件編程而對(duì)其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過(guò)程和設(shè)計(jì)觀念,促進(jìn)了EDA技術(shù)的迅速發(fā)展。 &l
17、t;/p><p> EDA技術(shù)就是以計(jì)算機(jī)為工具,設(shè)計(jì)者在EDA軟件平臺(tái)上,用硬件描述語(yǔ)言HDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局、布線(xiàn)和仿真,直至對(duì)于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,減輕了設(shè)計(jì)者的勞動(dòng)強(qiáng)度。 </p><p> 利用EDA工具,電子設(shè)計(jì)師可以從概念、算法、協(xié)議
18、等開(kāi)始設(shè)計(jì)電子系統(tǒng),大量工作可以通過(guò)計(jì)算機(jī)完成,并可以將電子產(chǎn)品從電路設(shè)計(jì)、性能分析到設(shè)計(jì)出IC版圖或PCB版圖的整個(gè)過(guò)程的計(jì)算機(jī)上自動(dòng)處理完成。 </p><p> 現(xiàn)在對(duì)EDA的概念或范疇用得很寬。包括在機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等各個(gè)領(lǐng)域,都有EDA的應(yīng)用。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門(mén)廣泛使用。例如在飛機(jī)制造過(guò)程中,從設(shè)計(jì)、性能測(cè)試及特性分析直到飛行模
19、擬,都可能涉及到EDA技術(shù)。</p><p> 1.1.2 EDA的特點(diǎn)</p><p> (1) 高層綜合和優(yōu)化</p><p> 為了能更好地支持自頂向下的設(shè)計(jì)方法,現(xiàn)代的EDA工具能夠在系統(tǒng)進(jìn)行綜合和優(yōu)化,這樣就縮短了設(shè)計(jì)的周期,提高了設(shè)計(jì)效率。</p><p> (2)采用硬件描述語(yǔ)言進(jìn)行設(shè)計(jì)</p><p
20、> 采用硬件描述語(yǔ)言進(jìn)行電路與系統(tǒng)的描述是當(dāng)前EDA技術(shù)的另一個(gè)特征。與傳統(tǒng)的原理圖設(shè)計(jì)方法相比,HDL語(yǔ)言更適合描述規(guī)模大的數(shù)字系統(tǒng),它能夠使設(shè)計(jì)者在比較抽象的層次上對(duì)所設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)和邏輯功能進(jìn)行描述。采用HDL語(yǔ)言設(shè)計(jì)的突出優(yōu)點(diǎn)是:語(yǔ)言的公開(kāi)性和利用性;設(shè)計(jì)與工藝的無(wú)關(guān)性;寬范圍的描述能力;便于組織大規(guī)模系統(tǒng)的設(shè)計(jì);便于設(shè)計(jì)的復(fù)用,交流,保存和修改等。目前最常用的硬件描述語(yǔ)言有VHDL和Verilog HDL,它們都已經(jīng)成
21、為IEEE標(biāo)準(zhǔn)。</p><p> ?。?)開(kāi)放性和標(biāo)準(zhǔn)化</p><p> 現(xiàn)代EDA工具普遍采用標(biāo)準(zhǔn)化和開(kāi)放性框架結(jié)構(gòu),任何一個(gè)EDA系統(tǒng)只要建立了一個(gè)符合標(biāo)準(zhǔn)的開(kāi)放式框架結(jié)構(gòu),就可以接納其他廠(chǎng)商的EDA工具儀器進(jìn)行設(shè)計(jì)工作。這樣就可以實(shí)現(xiàn)各種EDA工具的優(yōu)化組合,并集成在一個(gè)易于管理的統(tǒng)一環(huán)境下,實(shí)現(xiàn)資源共享。</p><p> 1.1.3 EDA的應(yīng)用&
22、lt;/p><p> 隨著電子技術(shù)的發(fā)展,可編程邏輯器件和eda技術(shù)已廣泛應(yīng)用于通信、工業(yè)自動(dòng)化、智能儀表、圖像處理、計(jì)算機(jī)等領(lǐng)域。EDA(ElectronincDesign Automation,電子設(shè)計(jì)自動(dòng)化)技術(shù)是現(xiàn)代電子工程領(lǐng)域的一門(mén)新技術(shù),它提供了基于計(jì)算機(jī)和信息技術(shù)的電路系統(tǒng)設(shè)計(jì)方法。EDA技術(shù)的發(fā)展和推廣應(yīng)用極大地推動(dòng)了電子工業(yè)的發(fā)展。隨著EDA技術(shù)的發(fā)展,硬件電子電路的設(shè)計(jì)幾乎全部可以依靠計(jì)算機(jī)來(lái)完
23、成,這樣就大大縮短了硬件電子電路設(shè)計(jì)的周期,從而使制造商可以快速開(kāi)發(fā)出品種多、批量小的產(chǎn)品,以滿(mǎn)足市場(chǎng)的眾多需求。EDA教學(xué)和產(chǎn)業(yè)界的技術(shù)推廣是當(dāng)今世界的一個(gè)技術(shù)熱點(diǎn),EDA技術(shù)是現(xiàn)代電子工業(yè)中不可缺少的一項(xiàng)技術(shù)。</p><p> 1.2 FPGA的簡(jiǎn)介及特點(diǎn)</p><p><b> 背景</b></p><p> 目前以硬件描述語(yǔ)言
24、(Verilog或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過(guò)簡(jiǎn)單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來(lái)實(shí)現(xiàn)一些基本的邏輯門(mén)電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。 </p><p> 系
25、統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過(guò)可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來(lái),就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠(chǎng)后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。 </p><p> FPGA一般來(lái)說(shuō)比ASIC(專(zhuān)用集成芯片)的速度要慢,無(wú)法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來(lái)改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠(chǎng)商也可
26、能會(huì)提供便宜的但是編輯能力差的FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開(kāi)發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類(lèi)似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。 </p><p> CPLD與FPGA的關(guān)系</p><p> 早在1980年代中期,F(xiàn)PGA已經(jīng)在PLD設(shè)備中扎根。CPLD和FPGA包括了一些相對(duì)大數(shù)量的可以編輯邏輯單
27、元。CPLD邏輯門(mén)的密度在幾千到幾萬(wàn)個(gè)邏輯單元之間,而FPGA通常是在幾萬(wàn)到幾百萬(wàn)。 </p><p> CPLD和FPGA的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。CPLD是一個(gè)有點(diǎn)限制性的結(jié)構(gòu)。這個(gè)結(jié)構(gòu)由一個(gè)或者多個(gè)可編輯的結(jié)果之和的邏輯組列和一些相對(duì)少量的鎖定的寄存器。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預(yù)計(jì)的延遲時(shí)間和邏輯單元對(duì)連接單元高比率的優(yōu)點(diǎn)。而FPGA卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,
28、但是結(jié)構(gòu)卻復(fù)雜的多。 </p><p> CPLD和FPGA另外一個(gè)區(qū)別是大多數(shù)的FPGA含有高層次的內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。一個(gè)因此有關(guān)的重要區(qū)別是很多新的FPGA支持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設(shè)計(jì)隨著系統(tǒng)升級(jí)或者動(dòng)態(tài)重新配置而改變。一些FPGA可以讓設(shè)備的一部分重新編輯而其他部分繼續(xù)正常運(yùn)行。 </p><p><b> FPGA工作
29、原理</b></p><p> FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(xiàn)(Interconnect)三個(gè)部分。 </p><p><b> FPGA的基本特點(diǎn)</b&g
30、t;</p><p> 1)采用FPGA設(shè)計(jì)ASIC電路(特定用途集成電路),用戶(hù)不需要投片生產(chǎn),就能得到合用的芯片。 </p><p> 2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。 </p><p> 3)FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳。 </p><p> 4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用
31、最低、風(fēng)險(xiǎn)最小的器件之一。 </p><p> 5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。 </p><p> 可以說(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 </p><p> FPGA是由存放在片內(nèi)RAM中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶(hù)可以根據(jù)不同的配置模式
32、,采用不同的編程方式。 </p><p> 加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無(wú)須專(zhuān)用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此
33、,F(xiàn)PGA的使用非常靈活。</p><p> 1.3 VHDL語(yǔ)言及程序概述</p><p> VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,誕生于 1982 年。1987 年底,VHDL被 IEEE 和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言。 </p><p>
34、; VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類(lèi)似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱(chēng)設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱(chēng)可視部分,及端口)和內(nèi)部(或稱(chēng)不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。
35、這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。 </p><p> 1.3.1 VHDL語(yǔ)言的發(fā)展</p><p> 在集成電路制造工藝的發(fā)展的過(guò)程中,微電子設(shè)計(jì)工藝已經(jīng)達(dá)到了深亞微米時(shí)代,在EDA設(shè)計(jì)中主要有軟硬件協(xié)作設(shè)計(jì)的要求,現(xiàn)有的工具支持SOC設(shè)計(jì)尚有難度,迫切需要提高設(shè)計(jì)能力。在設(shè)計(jì)語(yǔ)言中,由于VHL和Verilog HDL是目前通用的設(shè)計(jì)語(yǔ)言,在設(shè)計(jì)大系統(tǒng)時(shí),
36、不夠方便直觀,所以需要進(jìn)一步完善。</p><p> 電子產(chǎn)品隨著技術(shù)的進(jìn)步,更新?lián)Q代日新月異,而掌握電子產(chǎn)品開(kāi)發(fā)研制的動(dòng)力源—EDA技術(shù),是我們國(guó)家工程技術(shù)人員不可推卸的責(zé)任,因?yàn)橹袊?guó)的設(shè)計(jì)公司大多還處在發(fā)展的初級(jí)階段,所使用的設(shè)計(jì)工具都是幾年前國(guó)外的主流工具。</p><p> 1.3.2 VHDL語(yǔ)言的特點(diǎn)</p><p> VHDL 語(yǔ)言能夠成為標(biāo)準(zhǔn)化
37、的硬件描述語(yǔ)言并獲得廣泛應(yīng)用 , 它自身必然具有很多其他硬件描述語(yǔ)言所不具備的優(yōu)點(diǎn)。歸納起來(lái) ,VHDL 語(yǔ)言主要具有以下優(yōu)點(diǎn):[1] </p><p> (1) VHDL 語(yǔ)言功能強(qiáng)大 , 設(shè)計(jì)方式多樣 </p><p> VHDL 語(yǔ)言具有強(qiáng)大的語(yǔ)言結(jié)構(gòu), 只需采用簡(jiǎn)單明確的VHDL語(yǔ)言程序就可以描述十分復(fù)雜的硬件電路。同時(shí), 它還具有多層次的電路設(shè)計(jì)描述功能。此外 ,VHDL 語(yǔ)
38、言能夠同時(shí)支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì)實(shí)現(xiàn), 這是其他硬件描述語(yǔ)言所不能比擬的。VHDL 語(yǔ)言設(shè)計(jì)方法靈活多樣 , 既支持自頂向下的設(shè)計(jì)方式, 也支持自底向上的設(shè)計(jì)方法; 既支持模塊化設(shè)計(jì)方法, 也支持層次化設(shè)計(jì)方法。 </p><p> (2) VHDL 語(yǔ)言具有強(qiáng)大的硬件描述能力 </p><p> VHDL 語(yǔ)言具有多層次的電路設(shè)計(jì)描述功能,既可描述系統(tǒng)級(jí)電路 , 也可
39、以描述門(mén)級(jí)電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合描述方式。同時(shí),VHDL 語(yǔ)言也支持慣性延遲和傳輸延遲,這樣可以準(zhǔn)確地建立硬件電路的模型。VHDL 語(yǔ)言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類(lèi)型。VHDL 語(yǔ)言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類(lèi)型,也支持用戶(hù)定義的數(shù)據(jù)類(lèi)型,這樣便會(huì)給硬件描述帶來(lái)較大的自由度。 </p><p> (3) VHDL 語(yǔ)言具有很強(qiáng)的移植能力 <
40、/p><p> VHDL 語(yǔ)言很強(qiáng)的移植能力主要體現(xiàn)在: 對(duì)于同一個(gè)硬件電路的 VHDL 語(yǔ)言描述 , 它可以從一個(gè)模擬器移植到另一個(gè)模擬器上、從一個(gè)綜合器移植到另一個(gè)綜合器上或者從一個(gè)工作平臺(tái)移植到另一個(gè)工作平臺(tái)上去執(zhí)行。 </p><p> (4) VHDL 語(yǔ)言的設(shè)計(jì)描述與器件無(wú)關(guān) </p><p> 采用 VHDL 語(yǔ)言描述硬件電路時(shí), 設(shè)計(jì)人員并不需要首
41、先考慮選擇進(jìn)行設(shè)計(jì)的器件。這樣做的好處是可以使設(shè)計(jì)人員集中精力進(jìn)行電路設(shè)計(jì)的優(yōu)化, 而不需要考慮其他的問(wèn)題。當(dāng)硬件電路的設(shè)計(jì)描述完成以后 ,VHDL 語(yǔ)言允許采用多種不同的器件結(jié)構(gòu)來(lái)實(shí)現(xiàn)。 </p><p> (5) VHDL 語(yǔ)言程序易于共享和復(fù)用 </p><p> VHDL 語(yǔ)言采用基于庫(kù) ( library) 的設(shè)計(jì)方法。在設(shè)計(jì)過(guò)程中 , 設(shè)計(jì)人員可以建立各種可再次利用的模塊
42、, 一個(gè)大規(guī)模的硬件電路的設(shè)計(jì)不可能從門(mén)級(jí)電路開(kāi)始一步步地進(jìn)行設(shè)計(jì) , 而是一些模塊的累加。這些模塊可以預(yù)先設(shè)計(jì)或者使用以前設(shè)計(jì)中的存檔模塊, 將這些模塊存放在庫(kù)中 , 就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用。 </p><p> 由于 VHDL 語(yǔ)言是一種描述、模擬、綜合、優(yōu)化和布線(xiàn)的標(biāo)準(zhǔn)硬件描述語(yǔ)言 , 因此它可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間方便地進(jìn)行交流和共享, 從而減小硬件電路設(shè)計(jì)的工作量, 縮短開(kāi)發(fā)周期。</
43、p><p> 1.3.3 VHDL語(yǔ)言程序的基本結(jié)構(gòu)</p><p> 實(shí)體(Entity)結(jié)構(gòu)體 (Architecture) 包集合(Package) 配(Configuration) 庫(kù)(Library)</p><p><b> 1.4狀態(tài)機(jī)的簡(jiǎn)介</b></p><p>
44、; 關(guān)于狀態(tài)機(jī)的一個(gè)極度確切的描述是它是一個(gè)有向圖形,由一組節(jié)點(diǎn)和一組相應(yīng)的轉(zhuǎn)移函數(shù)組成。狀態(tài)機(jī)通過(guò)響應(yīng)一系列事件而“運(yùn)行”。每個(gè)事件都在屬于“當(dāng)前” 節(jié)點(diǎn)的轉(zhuǎn)移函數(shù)的控制范圍內(nèi),其中函數(shù)的范圍是節(jié)點(diǎn)的一個(gè)子集。函數(shù)返回“下一個(gè)”(也許是同一個(gè))節(jié)點(diǎn)。這些節(jié)點(diǎn)中至少有一個(gè)必須是終態(tài)。當(dāng)?shù)竭_(dá)終態(tài), 狀態(tài)機(jī)停止。 </p><p> 包含一組狀態(tài)集(states)、一個(gè)起始狀態(tài)(start state)、一組輸入
45、符號(hào)集(alphabet)、一個(gè)映射輸入符號(hào)和當(dāng)前狀態(tài)到下一狀態(tài)的轉(zhuǎn)換函數(shù)(transition function)的計(jì)算模型。當(dāng)輸入符號(hào)串,模型隨即進(jìn)入起始狀態(tài)。它要改變到新的狀態(tài),依賴(lài)于轉(zhuǎn)換函數(shù)。在有限狀態(tài)機(jī)中,會(huì)有有許多變量,例如,狀態(tài) 機(jī)有很多與動(dòng)作(actions)轉(zhuǎn)換(Mealy機(jī))或狀態(tài)(摩爾機(jī))關(guān)聯(lián)的動(dòng)作,多重起始狀態(tài),基于沒(méi)有輸入符號(hào)的轉(zhuǎn)換,或者指定符號(hào)和狀態(tài)(非定有 限狀態(tài)機(jī))的多個(gè)轉(zhuǎn)換,指派給接收狀態(tài)(識(shí)別者)的一
46、個(gè)或多個(gè)狀態(tài),等等。 </p><p> 傳統(tǒng)應(yīng)用程序的控制流程基本是順序的:遵循事先設(shè)定的邏輯,從頭到尾地執(zhí)行。很少有事件能改變標(biāo)準(zhǔn)執(zhí)行流程;而且這些事件主要涉及異常情況?!懊钚袑?shí)用程序”是這種傳統(tǒng)應(yīng)用程序的典型例子。 </p><p> 另一類(lèi)應(yīng)用程序由外部發(fā)生的事件來(lái)驅(qū)動(dòng)——換言之,事件在應(yīng)用程序之外生成,無(wú)法由應(yīng)用程序或程序員來(lái)控制。具體需要執(zhí)行的代碼取決于接收到的事件,或者
47、它 相對(duì)于其他事件的抵達(dá)時(shí)間。所以,控制流程既不能是順序的,也不能是事先設(shè)定好的,因?yàn)樗蕾?lài)于外部事件。事件驅(qū)動(dòng)的GUI應(yīng)用程序是這種應(yīng)用程序的典 型例子,它們由命令和選擇(也就是用戶(hù)造成的事件)來(lái)驅(qū)動(dòng)。 </p><p> Web應(yīng)用程序由提交的表單和用戶(hù)請(qǐng)求的網(wǎng)頁(yè)來(lái)驅(qū)動(dòng),它們也可劃歸到上述類(lèi) 別。但是,GUI應(yīng)用程序?qū)τ诮邮盏降氖录杂幸欢ǔ潭鹊目刂疲驗(yàn)檫@些事件要依賴(lài)于向用戶(hù)顯示的窗口和控件,而窗口和控
48、件是由程序員控制的。Web應(yīng)用 程序則不然,因?yàn)橐坏┯脩?hù)采取不在預(yù)料之中的操作(比如使用瀏覽器的歷史記錄、手工輸入鏈接以及模擬一次表單提交等等),就很容易打亂設(shè)計(jì)好的應(yīng)用程序邏輯。 </p><p> 顯然,必須采取不同的技術(shù)來(lái)處理這些情況。它能處理任何順序的事件,并能提供有意義的響應(yīng)——即使這些事件發(fā)生的順序和預(yù)計(jì)的不同。有限狀態(tài)機(jī)正是為了滿(mǎn)足這方面的要求而設(shè)計(jì)的。 </p><p>
49、 有限狀態(tài)機(jī)是一種概念性機(jī)器,它能采取某種操作來(lái)響應(yīng)一個(gè)外部事件。具體采取的操作不僅能取決于接收到的事件,還能取決于各個(gè)事件的相對(duì)發(fā)生順序。之所以能 做到這一點(diǎn),是因?yàn)闄C(jī)器能跟蹤一個(gè)內(nèi)部狀態(tài),它會(huì)在收到事件后進(jìn)行更新。為一個(gè)事件而響應(yīng)的行動(dòng)不僅取決于事件本身,還取決于機(jī)器的內(nèi)部狀態(tài)。另外,采取 的行動(dòng)還會(huì)決定并更新機(jī)器的狀態(tài)。這樣一來(lái),任何邏輯都可建模成一系列事件/狀態(tài)組合。 </p><p> 狀態(tài)機(jī)可歸納
50、為4個(gè)要素,即現(xiàn)態(tài)、條件、動(dòng)作、次態(tài)。這樣的歸納,主要是出于對(duì)狀態(tài)機(jī)的內(nèi)在因果關(guān)系的考慮?!艾F(xiàn)態(tài)”和“條件”是因,“動(dòng)作”和“次態(tài)”是果。詳解如下: </p><p> ?、佻F(xiàn)態(tài):是指當(dāng)前所處的狀態(tài)。 </p><p> ?、跅l件:又稱(chēng)為“事件”。當(dāng)一個(gè)條件被滿(mǎn)足,將會(huì)觸發(fā)一個(gè)動(dòng)作,或者執(zhí)行一次狀態(tài)的遷移。 </p><p> ?、蹌?dòng)作:條件滿(mǎn)足后執(zhí)行的動(dòng)作。動(dòng)作執(zhí)
51、行完畢后,可以遷移到新的狀態(tài),也可以仍舊保持原狀態(tài)。動(dòng)作不是必需的,當(dāng)條件滿(mǎn)足后,也可以不執(zhí)行任何動(dòng)作,直接遷移到新?tīng)顟B(tài)。 </p><p> ④次態(tài):條件滿(mǎn)足后要遷往的新?tīng)顟B(tài)?!按螒B(tài)”是相對(duì)于“現(xiàn)態(tài)”而言的,“次態(tài)”一旦被激活,就轉(zhuǎn)變成新的“現(xiàn)態(tài)”了。</p><p> 第二章 電梯控制系統(tǒng)的分析</p><p><b> 2.1選題的背景<
52、/b></p><p> 隨高層樓宇的增加,電梯越來(lái)越多的走進(jìn)了人們的生活,對(duì)人們的生活的影響越來(lái)越大。為了讓電梯更好的服務(wù)人們,各種電梯新技術(shù)不斷地發(fā)展起來(lái)。隨著人們生活水平的不斷提高,經(jīng)濟(jì)的快速發(fā)展和生產(chǎn)生活的需要,城市高層建筑如雨后春筍拔地而起。與此相應(yīng),作為一種可以垂直升降運(yùn)輸?shù)墓ぞ咭浑娞菀驳玫窖该偷陌l(fā)展?,F(xiàn)在,電梯己完全融入我們的生活、工作及學(xué)習(xí)中,人們?cè)絹?lái)越離不開(kāi)它。因此,它的安全可靠性、迅速
53、準(zhǔn)確性、舒適性,對(duì)人們來(lái)說(shuō)都是非常重要的。為了確保電梯正常運(yùn)行、安全使用,一般電梯都有專(zhuān)業(yè)的維修管理人員。他們必須對(duì)電梯原理、性能、特點(diǎn)、控制、運(yùn)行要全面認(rèn)識(shí)和掌握,才能做到對(duì)電梯的正確使用、管理及維護(hù)。根據(jù)我國(guó)有關(guān)部門(mén)的規(guī)定,電梯作業(yè)屬于特種作業(yè),其作業(yè)人員必須經(jīng)過(guò)專(zhuān)門(mén)培訓(xùn),并經(jīng)理論考試和實(shí)踐考核合格后,發(fā)給《特種作業(yè)操作證》方可上崗操作。同時(shí),對(duì)電梯操作人員定期考核,讓他們定期參加安全技術(shù)學(xué)習(xí),扎扎實(shí)實(shí)地做好電梯維護(hù)和保養(yǎng)工作,才能
54、使人們平安長(zhǎng)久的使用電梯少,</p><p> 2.2電梯控制的研究背景 </p><p> 電梯控制系統(tǒng)是一個(gè)相當(dāng)復(fù)雜的邏輯控制系統(tǒng).系統(tǒng)要同時(shí)對(duì)幾百個(gè)信號(hào)進(jìn)行接收、處理。由于用戶(hù)對(duì)電梯功能的要求不斷提高.其相應(yīng)控制方式也在不斷發(fā)生變化。隨著EDA技術(shù)的快速發(fā)展.基于FPGA的微機(jī)化控制已廣泛應(yīng)用于電梯電路設(shè)計(jì)與控制的各個(gè)方面。</p><p>
55、2.3 我國(guó)電梯的發(fā)展概況 </p><p> 電梯控制是屬于機(jī)電一體化研究領(lǐng)域,它涉及到多個(gè)方面,包括:機(jī)械工程、電子技術(shù)、電力電子技術(shù)、電機(jī)與拖動(dòng)理論、自動(dòng)控制理論、電力拖動(dòng)自動(dòng)控制系統(tǒng)、微機(jī)技術(shù)和土建工程等多個(gè)科學(xué)領(lǐng)域。</p><p> 100多年來(lái),我國(guó)電梯行業(yè)的發(fā)展經(jīng)歷以下幾個(gè)階段:①對(duì)進(jìn)口電梯的銷(xiāo)售、安裝、維護(hù)階段(1900-1949年),這一階段我國(guó)電梯擁有數(shù)
56、量?jī)H約1100多臺(tái);②獨(dú)立自主、艱苦研制、生產(chǎn)階段(1950-1979年),這一階段我國(guó)共生產(chǎn)安裝電梯</p><p> 約1萬(wàn)臺(tái);③建立三資企業(yè),行業(yè)快速發(fā)展階段(自1980年至今),這一階段我國(guó)</p><p> 共生產(chǎn)安裝電梯約40萬(wàn)臺(tái)。目前,我國(guó)已經(jīng)成為世界最大的新裝電梯市場(chǎng)和最</p><p> 大的電梯生產(chǎn)國(guó)。并且還有著巨大市場(chǎng)和發(fā)展?jié)摿臻g。20
57、02年,中國(guó)電梯行</p><p> 業(yè)電梯年產(chǎn)量首次突破6萬(wàn)臺(tái)。中國(guó)電梯行業(yè)自改革開(kāi)放以來(lái)第三次發(fā)展浪潮正</p><p> 在掀起。第一次出現(xiàn)在1986-1988年,當(dāng)時(shí)適逢我國(guó)高層建筑業(yè)的大規(guī)模浪潮的</p><p> 第一次興起。第二次出現(xiàn)在1995^-1997年。應(yīng)該說(shuō),隨著我國(guó)經(jīng)濟(jì)的增長(zhǎng),電</p><p> 梯市場(chǎng)一直保
58、持著旺盛的需求。其次表現(xiàn)在企業(yè)的規(guī)模效益逐步展現(xiàn)。隨著我國(guó)</p><p> 經(jīng)濟(jì)平穩(wěn)持續(xù)的發(fā)展,尤其是住宅產(chǎn)業(yè)作為國(guó)民經(jīng)濟(jì)新增長(zhǎng)點(diǎn)的提出,為電梯業(yè)</p><p> 的發(fā)展提供了良好的機(jī)遇。今后幾年,我國(guó)將年建住宅3. 5億平方米,公建項(xiàng)目</p><p> 1.2億平方米。隨著城市向大型化、高層化的發(fā)展,我國(guó)每年將需要電梯在40000</p>
59、<p> 臺(tái)以上。如此大的市場(chǎng)需求,將是電梯業(yè)再創(chuàng)輝煌的最好契機(jī)。</p><p> 2.4 電梯設(shè)計(jì)的具體目的及控制要求</p><p> 使用FPGA完場(chǎng)6層的電梯控制系統(tǒng)??梢允褂脿顟B(tài)機(jī)實(shí)現(xiàn)。要求指示電梯所在樓層位置等其他必要的信號(hào)。通過(guò)仿真結(jié)果驗(yàn)證其正確性,并在開(kāi)發(fā)板上進(jìn)行硬件測(cè)試。</p><p><b> 系統(tǒng)的要求如下:&
60、lt;/b></p><p> 電梯共有6層。電梯運(yùn)行規(guī)則:上升時(shí):響應(yīng)比當(dāng)前位置高的上樓要求,由下往上逐個(gè)執(zhí)行;如果樓層有下樓請(qǐng)求,直接升到由此請(qǐng)求的最高層,然后進(jìn)入下降模式。進(jìn)入下降模式后,只響應(yīng)比當(dāng)前位置低的下樓請(qǐng)求,由上到下逐個(gè)執(zhí)行。電梯有6層,每1秒上升或者下降1層。</p><p> 有信號(hào)燈指示電梯處于上升或者下降狀態(tài),并有數(shù)碼管顯示電梯到達(dá)層數(shù)。</p>
61、;<p> 每一層有信號(hào)燈指示該層電梯門(mén)狀態(tài),有兩個(gè)按鍵分別響應(yīng)上升或下降的請(qǐng)求</p><p> 每一層電梯內(nèi)部有乘客到達(dá)樓層的停站請(qǐng)求開(kāi)關(guān)及其顯示</p><p> 電梯到達(dá)有停站請(qǐng)求的樓層后,電梯門(mén)打開(kāi),指示燈亮,4秒后電梯門(mén)關(guān)閉,指示燈滅,直至執(zhí)行完。最后停在發(fā)出最后一個(gè)請(qǐng)求的樓層。</p><p> 電梯的初始位置為一層,處于開(kāi)門(mén)狀態(tài)
62、。</p><p> 2.5電梯控制器設(shè)計(jì)原理及思路 </p><p><b> 原理與系統(tǒng)設(shè)計(jì)</b></p><p><b> 思想來(lái)源:</b></p><p> 平時(shí)我們上課或者是上自習(xí)都去過(guò)東十二樓或者去過(guò)科技樓、南一樓,免不了坐坐電梯,對(duì)它的基本工作原理我們有知道多少了
63、,這次我們要制作一個(gè)智能電梯控制器,必須對(duì)它的工作原理有十分清晰的了解。我們?cè)O(shè)計(jì)的智能電梯控制器應(yīng)該可以實(shí)時(shí)接受各樓層的上下請(qǐng)求信號(hào)及電梯內(nèi)部的??空?qǐng)求,然后根據(jù)這些請(qǐng)求實(shí)現(xiàn)對(duì)電梯正確的控制:</p><p> 1、除了頂層和底層外,各樓層均設(shè)有上下請(qǐng)求開(kāi)關(guān),頂層和底層分別設(shè)有下降和上升請(qǐng)求開(kāi)關(guān),這一點(diǎn)應(yīng)該不難理解;電梯內(nèi)設(shè)有乘客到達(dá)層次的請(qǐng)求開(kāi)關(guān)。</p><p> 2、電梯每1s上
64、升或下降一層</p><p> 3、電梯到達(dá)有停站請(qǐng)求的樓層后,經(jīng)過(guò)1s后電梯門(mén)打開(kāi),開(kāi)門(mén)指示燈亮,開(kāi)門(mén)5s后電梯指示燈滅,電梯繼續(xù)運(yùn)行,直至運(yùn)行完最后一個(gè)請(qǐng)求后??吭诋?dāng)前層。以上是我們所應(yīng)實(shí)現(xiàn)的基本功能。我在序言中也講到了,“應(yīng)用有限狀態(tài)機(jī)”實(shí)現(xiàn)電梯的實(shí)時(shí)控制是最好不過(guò)的方法了,通過(guò)我的分析以及參考圖書(shū)館的有關(guān)書(shū)籍,也少不了參照一些網(wǎng)上的程序,最后總結(jié)出了電梯正常運(yùn)行的七個(gè)狀態(tài):上升、下降、上升的過(guò)程中途停止
65、、下降的過(guò)程中途停止、開(kāi)門(mén)、關(guān)門(mén)、等待狀態(tài)。電梯在上述七個(gè)狀態(tài)間的轉(zhuǎn)移是通過(guò)三段式狀態(tài)機(jī)來(lái)實(shí)現(xiàn)的,各狀態(tài)間的轉(zhuǎn)移大體與生活中的電梯運(yùn)轉(zhuǎn)一致,有如下的基本原則:</p><p> 1、方向?yàn)榈谝粌?yōu)先準(zhǔn)則,這就是曾老師給我們的技術(shù)指標(biāo)。電梯在運(yùn)轉(zhuǎn)時(shí)先響應(yīng)同方向上的請(qǐng)求,只有當(dāng)同方向上的請(qǐng)求響應(yīng)完后,才能轉(zhuǎn)而響應(yīng)不同方向上的請(qǐng)求。</p><p> 2、初始化狀態(tài)為1樓等待門(mén)是關(guān)閉的。這個(gè)就
66、不用多解釋了。除了我對(duì)電梯的運(yùn)行規(guī)律做出如上的分析外,我的另一個(gè)選擇開(kāi)發(fā)智能電梯控制器的原因是我想鍛煉一下自己的邏輯思維和分析復(fù)雜問(wèn)題的能力。</p><p> 2.6 電梯控制系統(tǒng)狀態(tài)圖分析</p><p> 最開(kāi)始我根據(jù)DE2板子所能提供的資源,把樓層數(shù)設(shè)為6層。從我查閱的書(shū)籍中我總結(jié)了兩點(diǎn)是我可以借鑒的。首先,是怎樣處理數(shù)量繁多的電梯輸入信號(hào),如果采用分情況討論的話(huà),程序一路寫(xiě)完
67、,復(fù)雜度肯定是不堪設(shè)想,而且我還不敢保證是否分析到所有的情況了。</p><p> always @(call_up_1 or call_up_2 or call_up_3 or call_up_4 or call_up_5)</p><p> up_all={1'b0, call_up_5, call_up_4, call_up_3, call_up_2, call_up_1
68、}; </p><p> //將各下降請(qǐng)求信號(hào)實(shí)時(shí)地合并(1樓為底層,無(wú)下降請(qǐng)求,考慮到通用性,將第1位填零)</p><p> always @(call_down_2 or call_down_3 or call_down_4 or call_down_5 or call_down_6)</p><p> down_all={call_d
69、own_6, call_down_5, call_down_4, call_down_3, call_down_2, 1'b0};</p><p> //將各??空?qǐng)求信號(hào)實(shí)時(shí)地合并 </p><p> always @(request_1 or request_2 or request_3 or request_4 or request_5 or request_6)<
70、;/p><p> request_all={request_6, request_5, request_4, request_3, request_2, request_1};</p><p> 以上這一段程序就是我采用的信號(hào)并置處理很多輸入信號(hào)的一種行之有效的方法。</p><p> 其次,我從資料中學(xué)習(xí)到的方法就是如何把信號(hào)并置的方法和有限狀態(tài)機(jī)聯(lián)系起來(lái)。這一
71、點(diǎn)從下面的參數(shù)定義中可以窺見(jiàn)一二。</p><p> parameter WAIT=7'b0000001, UP=7'b0000010, DOWN=7'b0000100, UPSTOP=7'b0001000</p><p> , DOWNSTOP=7'b0010000, OPENDOOR=7'b0100000, CLOSEDOOR=7
72、39;b1000000;</p><p> //定義樓層的符號(hào)常量</p><p> parameterFLOOR1=6'b000001,FLOOR2=6'b000010,FLOOR3=6'b000100, FLOOR4=6'b001000, FLOOR5=6'b010000, FLOOR6=6'b100000;</p>
73、;<p> parameter TRUE=1'b1, FALSE=1'b0;//定義門(mén)打開(kāi)和門(mén)關(guān)閉的符號(hào)常量</p><p> parameter OPEN=1'b1, CLOSED=1'b0;//定義電梯上升,下降和靜止的符號(hào)常量</p><p> parameter UPFLAG=2'b01,DNFLAG=2'b10,
74、STATIC=2'b00;</p><p> 這里采用了七個(gè)狀態(tài)實(shí)現(xiàn)了有限狀態(tài)機(jī)。</p><p> 以上是我分析的兩種基本的電梯狀態(tài)轉(zhuǎn)換圖:</p><p> 黑線(xiàn):WAIT TO UP TO UPSTOP TO OPENDOOR TO CLOSEDOOR TO WAIT</p><p> 粉
75、紅線(xiàn):WAIT TO DOWN TO DOWNSTOP TO OPENDOOR TO CLOSEDOOR TO WAIT </p><p> 由于狀態(tài)轉(zhuǎn)換的輸入條件實(shí)在太多,在此我不畫(huà)出,讀者可以自行在程序(附有詳細(xì)注釋?zhuān)┲蓄I(lǐng)會(huì)。我的程序中采用的是標(biāo)準(zhǔn)的MEALY型狀態(tài)狀態(tài)機(jī)。而且是老師建議的三段式的結(jié)構(gòu)來(lái)寫(xiě)的。不過(guò)我有一點(diǎn)不明白的就是為什么在我的QUARTUS7.1中運(yùn)用RTL
76、 VIEW不能顯示出這個(gè)三段式的有限狀態(tài)機(jī)。不過(guò)我會(huì)繼續(xù)努力一下的,目前我智能用圖形框來(lái)表示這個(gè)狀態(tài)的流程了。</p><p> 第三章 電梯控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 3.1 MAX+PLUSII的介紹</p><p> Max+plusII(或?qū)懗蒑axplus2,或MP2) 是Altera公司推出的的第三代PLD開(kāi)發(fā)系統(tǒng)(Altera第四代P
77、LD開(kāi)發(fā)系統(tǒng)被稱(chēng)為:QuartusII,主要用于設(shè)計(jì)新器件和大規(guī)模CPLD/FPGA).使用MAX+PLUSII的設(shè)計(jì)者不需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu)。設(shè)計(jì)者可以用自己熟悉的設(shè)計(jì)工具(如原理圖輸入或硬件描述語(yǔ)言)建立設(shè)計(jì),MAX+PLUSII把這些設(shè)計(jì)轉(zhuǎn)自動(dòng)換成最終所需的格式。其設(shè)計(jì)速度非???。對(duì)于一般幾千門(mén)的電路設(shè)計(jì),使用MAX+PLUSII,從設(shè)計(jì)輸入到器件編程完畢,用戶(hù)拿到設(shè)計(jì)好的邏輯電路,大約只需幾小時(shí)。設(shè)計(jì)處理一般在數(shù)分鐘內(nèi)內(nèi)完成
78、。特別是在原理圖輸入等方面,Maxplus2被公認(rèn)為是最易使用,人機(jī)界面最友善的PLD開(kāi)發(fā)軟件,特別適合初學(xué)者使用。在這里我們可以先看一看用FPGA/CPLD開(kāi)發(fā)工具進(jìn)行電路設(shè)計(jì)的一般流程</p><p> 通常可將FPGA/CPLD設(shè)計(jì)流程歸納為以下7個(gè)步驟,這與ASIC設(shè)計(jì)有相似之處。</p><p> 1.設(shè)計(jì)輸入。在傳統(tǒng)設(shè)計(jì)中,設(shè)計(jì)人員是應(yīng)用傳統(tǒng)的原理圖輸入方法來(lái)開(kāi)始設(shè)計(jì)的。自
79、90年代初, Verilog、VHDL、AHDL等硬件描述語(yǔ)言的輸入方法在大規(guī)模設(shè)計(jì)中得到了廣泛應(yīng)用。</p><p> 2.前仿真(功能仿真)。設(shè)計(jì)的電路必須在布局布線(xiàn)前驗(yàn)證電路功能是否有效。(ASCI設(shè)計(jì)中,這一步驟稱(chēng)為第一次Sign-off)PLD設(shè)計(jì)中,有時(shí)跳過(guò)這一步。</p><p> 3.設(shè)計(jì)編譯。設(shè)計(jì)輸入之后就有一個(gè)從高層次系統(tǒng)行為設(shè)計(jì)向門(mén)級(jí)邏輯電路設(shè)轉(zhuǎn)化翻譯過(guò)程,即把設(shè)
80、計(jì)輸入的某種或某幾種數(shù)據(jù)格式(網(wǎng)表)轉(zhuǎn)化為軟件可識(shí)別的某種數(shù)據(jù)格式(網(wǎng)表)。</p><p> 4.優(yōu)化。對(duì)于上述綜合生成的網(wǎng)表,根據(jù)布爾方程功能等效的原則,用更小更快的綜合結(jié)果代替一些復(fù)雜的單元,并與指定的庫(kù)映射生成新的網(wǎng)表,這是減小電路規(guī)模的一條必由之路。</p><p> 5.布局布線(xiàn)。在PLD設(shè)計(jì)中,3-5步可以用PLD廠(chǎng)家提供的開(kāi)發(fā)軟件(如 Maxplus2)自動(dòng)一次完成。&
81、lt;/p><p> 6.后仿真(時(shí)序仿真)需要利用在布局布線(xiàn)中獲得的精確參數(shù)再次驗(yàn)證電路的時(shí)序。(ASCI設(shè)計(jì)中,這一步驟稱(chēng)為第二次Sign—off)。</p><p> 7.生產(chǎn)。布線(xiàn)和后仿真完成之后,就可以開(kāi)始ASCI或PLD芯片的投產(chǎn)。同樣,使用Maxplus2基本上也是有以上幾個(gè)步驟,但可簡(jiǎn)化為:1.設(shè)計(jì)輸入 2.設(shè)計(jì)編譯 3.設(shè)計(jì)仿真
82、60; 4.下載</p><p> 3.2 電梯控制系統(tǒng)的VHDL語(yǔ)言設(shè)計(jì)及仿真 </p><p> 3.2.1 模塊示意圖和輸入輸出描述</p><p> 電梯主控制器模塊elevator_controller:</p><p><b> 端口聲明:</b></p>&l
83、t;p> Input Port:</p><p> call_up_1, call_up_2, call_up_3, call_up_4, call_up_5分別為1-5樓的上行請(qǐng)求信號(hào),</p><p> call_down_2, call_down_3, call_down_4, call_down_5, call_down_6則分別為2-6樓的下行請(qǐng)求信號(hào)</p&g
84、t;<p> request_1, request_2, request_3, request_4, request_5, request_6則分別為電梯內(nèi)部的???-6樓的請(qǐng)求</p><p> 上述各端口均為有請(qǐng)求時(shí),輸入為高電平,否則為低電平;</p><p> clk分別為狀態(tài)轉(zhuǎn)移時(shí)鐘,reset為復(fù)位信號(hào)</p><p> Outpu
85、t Port:</p><p> PosOut輸出當(dāng)前電梯所在的樓層,DoorFlag為開(kāi)門(mén)標(biāo)志,UpDnFlag為電梯上下標(biāo)志</p><p> LiftState輸出當(dāng)前電梯的狀態(tài).</p><p> PosOut取值可為6'b000001,6'b000010,6'b000100,6'001000,6'b010000
86、,6'b100000分別代表電梯處在1,2,3,4,5,6樓。這樣編碼的話(huà),有利于后面的比較判斷。</p><p> DoorFlag取值可為1'b0,1'b1,分別代表當(dāng)前門(mén)是關(guān)閉和當(dāng)前門(mén)是打開(kāi)的。</p><p> UpDnFlag取值可為2'b00,2'b01,2'b10,分別代表當(dāng)前電梯是上升的,下降的和靜止的。</p>
87、;<p> LiftState7'b0000001,7'b0000010,7'b0000100,7'b0001000,7'b0010000,7'b0100000,7'b1000000,</p><p> 分別電梯處于等待模式、上升模式、下降模式、上升停止,下降停止、開(kāi)門(mén)和關(guān)門(mén)等7個(gè)狀態(tài)。</p><p> ?。?)分
88、頻模塊frequence_div:</p><p><b> 端口說(shuō)明:</b></p><p> Input ports:</p><p><b> cp_50M;</b></p><p> output ports:</p><p><b> cp_1
89、;</b></p><p> ?。?)電梯狀態(tài)仲裁器arbitrator:</p><p><b> 端口說(shuō)明:</b></p><p> Input ports:</p><p> elevator_state;</p><p><b> count_in;<
90、/b></p><p> output ports:</p><p> output open_enable,stop_enable,up_enable,down_enable,close_enable;</p><p> ?。?)LCD驅(qū)動(dòng)模塊DE2_Default:</p><p><b> 端口說(shuō)明:</b&
91、gt;</p><p> Input ports:</p><p> input open_enable,stop_enable,up_enable,down_enable,close_enable;</p><p> inputCLOCK_50;//50 MHz</p><p> input KE
92、Y;</p><p> output ports:</p><p> inout[7:0]LCD_DATA;//LCD Data bus 8 bits</p><p> outputLCD_ON;//LCD Power ON/OFF</p><p> outputLCD_BLON;//LCD Back L
93、ight ON/OFF</p><p> outputLCD_RW;//LCD Read/Write Select, 0 = Write, 1 = Read</p><p> outputLCD_EN;//LCD Enable</p><p> outputLCD_RS;//LCD Command/DataSelect, 0= Co
94、mmand, 1 = Data</p><p> 3.2.2 模塊設(shè)計(jì)過(guò)程</p><p> 現(xiàn)在我簡(jiǎn)要的說(shuō)明一下我的模塊的設(shè)計(jì)過(guò)程:</p><p> ?。?)電梯主控制器模塊elevator_controller:</p><p> 此段智能電梯控制器由三個(gè)重要部分組成的。</p><p> ?。╝)信號(hào)并置
95、部分,完成對(duì)5路向上請(qǐng)求、5路向下請(qǐng)求、6路內(nèi)部請(qǐng)求的信號(hào)并置,化繁為簡(jiǎn)。</p><p> (b)三段式有限狀態(tài)機(jī)部分。在有請(qǐng)求的情況下,電梯控制器還要根據(jù)電梯的當(dāng)前狀態(tài)和當(dāng)前的樓層去判斷電梯的下一步該如何運(yùn)作。</p><p> ?。╟)計(jì)數(shù)器部分。完成電梯的開(kāi)門(mén)、關(guān)門(mén)的時(shí)間管理。</p><p> ?。?)分頻模塊frequence_div:</p&g
96、t;<p> 這段分頻器完成對(duì)50Mhz的1分頻操作。采用傳統(tǒng)的“一半就翻轉(zhuǎn)”的計(jì)數(shù)技巧。</p><p> (3)電梯狀態(tài)仲裁器arbitrator:</p><p> 完成電梯信號(hào)到LCD控制的信號(hào)轉(zhuǎn)換。其中也采用了“電梯主控制器”中的信號(hào)并置的思想。這一點(diǎn)可以在我的程序中十分清楚的看到,在此我不再贅述。</p><p> (4)LCD驅(qū)動(dòng)
97、模塊DE2_Default:</p><p> 這個(gè)模塊我是采用“ 拿來(lái)主義”的。因?yàn)槭荄E2板子提供的源程序,所以編寫(xiě)起來(lái)還算比較輕松。就只加了一個(gè)“ 根據(jù)不同的輸入產(chǎn)生不同的輸出 ”的模塊。中途還遇到了字符型液晶不能更新的問(wèn)題,不過(guò)在同學(xué)的幫助下,最終還是解決了。</p><p> ?。?)數(shù)碼管譯碼模塊:</p><p> (6)數(shù)碼管時(shí)間譯碼模塊:<
98、;/p><p> 以上兩個(gè)模塊一起講比較合適,因?yàn)樗鼈兌际遣捎昧送瑯拥淖g碼原則,只不過(guò)條件不一樣而已。我們可以針對(duì)不同的輸入根據(jù)自己的意愿把它譯成同樣的數(shù)碼顯示。</p><p> 以上的模塊設(shè)計(jì)過(guò)程說(shuō)的比較的簡(jiǎn)約。主要是大概的介紹了我的各個(gè)模塊的基本設(shè)計(jì)原理,希望讀者能從程序中仔細(xì)體會(huì)這種原理。</p><p> 3.2.3 波形仿真</p>&l
99、t;p> ?。?)當(dāng)電梯處于初始狀態(tài)時(shí),電梯在高層有向下的請(qǐng)求時(shí):</p><p> ?。?)LCD的顯示由于數(shù)據(jù)太多,所以單獨(dú)顯示如下:</p><p> 首先顯示:“ it is static.. ”</p><p><b> 隨后會(huì)顯示:</b></p><p> 以上的字符發(fā)送到液晶顯示模塊之后,可以
100、顯示“ door is rising.. ”</p><p><b> 隨后會(huì)顯示:</b></p><p> 可以顯示“ it is static.. ”</p><p> 以上的字符發(fā)送到液晶顯示模塊之后,可以顯示“ door is opening.. ”</p><p><b> 隨后會(huì)顯示:&l
101、t;/b></p><p> 以上的字符發(fā)送到液晶顯示模塊之后,可以顯示“ it is closing.. ”</p><p> 最后會(huì)顯示下列字符,電梯重新回到初始等待狀態(tài):</p><p> 以上可以顯示“ it is static.. ”</p><p> 說(shuō)明:由于LCD顯示波形會(huì)占用比較多的空間,所以以上我僅以在高層有
102、向下的請(qǐng)求為例來(lái)說(shuō)明,電梯的狀態(tài)完全可以通過(guò)LCD來(lái)正確地顯示出來(lái)。鑒于此,我的下面的波形將不展示LCD顯示部分的波形圖。</p><p> ?。?)當(dāng)電梯停在6樓處于等待狀態(tài)時(shí),在1樓和2樓同時(shí)有向上的請(qǐng)求時(shí):</p><p> ?。?)當(dāng)電梯停在1樓處于等待狀態(tài)時(shí),在6樓和5樓同時(shí)有向下的請(qǐng)求時(shí):</p><p> ?。?)當(dāng)電梯停在6樓時(shí),有在5樓的向下的請(qǐng)求
103、時(shí),電梯應(yīng)該先到五樓,電梯內(nèi)部請(qǐng)求到1樓,如果電梯在下降的過(guò)程中,有在2樓的向上的請(qǐng)求時(shí),電梯應(yīng)該先相應(yīng)內(nèi)部請(qǐng)求,然后相應(yīng)外部請(qǐng)求:</p><p> (6)電梯的強(qiáng)制運(yùn)行按鈕forbid:</p><p> 3.3 電梯控制系統(tǒng)的實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn) </p><p><b> 結(jié)論與體會(huì)</b></p><p&g
104、t; 結(jié)論:我們?cè)O(shè)計(jì)的智能電梯控制器應(yīng)該可以實(shí)時(shí)接受各樓層的上下請(qǐng)求信號(hào)及電梯內(nèi)部的停靠請(qǐng)求,然后根據(jù)這些請(qǐng)求實(shí)現(xiàn)對(duì)電梯正確的控制:</p><p> 1、除了頂層和底層外,各樓層均設(shè)有上下請(qǐng)求開(kāi)關(guān),頂層和底層分別設(shè)有下降和上升請(qǐng)求開(kāi)關(guān),這一點(diǎn)應(yīng)該不難理解;電梯內(nèi)設(shè)有乘客到達(dá)層次的請(qǐng)求開(kāi)關(guān)。</p><p> 2、電梯每1s上升或下降一層</p><p>
105、3、電梯到達(dá)有停站請(qǐng)求的樓層后,經(jīng)過(guò)1s后電梯門(mén)打開(kāi),開(kāi)門(mén)指示燈亮,開(kāi)門(mén)5s后電梯指示燈滅,電梯繼續(xù)運(yùn)行,直至運(yùn)行完最后一個(gè)請(qǐng)求后停靠在當(dāng)前層。</p><p> 以上是我們所應(yīng)實(shí)現(xiàn)的基本功能。我在序言中也講到了,“應(yīng)用有限狀態(tài)機(jī)”實(shí)現(xiàn)電梯的實(shí)時(shí)控制是最好不過(guò)的方法了,通過(guò)我的分析以及參考圖書(shū)館的有關(guān)書(shū)籍,也少不了參照一些網(wǎng)上的程序,最后總結(jié)出了電梯正常運(yùn)行的七個(gè)狀態(tài):</p><p>
106、 上升、下降、上升的過(guò)程中途停止、下降的過(guò)程中途停止、開(kāi)門(mén)、關(guān)門(mén)、等待狀態(tài)。</p><p> 電梯在上述七個(gè)狀態(tài)間的轉(zhuǎn)移是通過(guò)三段式狀態(tài)機(jī)來(lái)實(shí)現(xiàn)的,各狀態(tài)間的轉(zhuǎn)移大體與生活中的電梯運(yùn)轉(zhuǎn)一致,有如下的基本原則:</p><p> 1、方向?yàn)榈谝粌?yōu)先準(zhǔn)則,這就是老師給我們的技術(shù)指標(biāo)。電梯在運(yùn)轉(zhuǎn)時(shí)先響應(yīng)同方向上的請(qǐng)求,只有當(dāng)同方向上的請(qǐng)求響應(yīng)完后,才能轉(zhuǎn)而響應(yīng)不同方向上的請(qǐng)求。</
107、p><p> 2、初始化狀態(tài)為1樓等待門(mén)是關(guān)閉的。這個(gè)就不用多解釋了。</p><p> 除了我對(duì)電梯的運(yùn)行規(guī)律做出如上的分析外,我的另一個(gè)選擇開(kāi)發(fā)智能電梯控制器的原因是我想鍛煉一下自己的邏輯思維和分析復(fù)雜問(wèn)題的能力。</p><p> 體會(huì):本人認(rèn)為電梯時(shí)未來(lái)高層建筑必不可少的一種工具,并且由于世界人</p><p> 口的急劇增加和地
108、球的有效使用面積的減少,未來(lái)的建筑都在向越來(lái)越高的方向</p><p> 發(fā)展,所以電梯在未來(lái)有著舉足輕重的作用,對(duì)此研究有著十分積極的作用。</p><p> 通過(guò)對(duì)此課題的研究,本人還發(fā)現(xiàn)一個(gè)優(yōu)秀的電子產(chǎn)品必須具備自動(dòng)化能</p><p> 力,本人還認(rèn)為此課題還培養(yǎng)了我們更好的了解本專(zhuān)業(yè)的知識(shí),提高個(gè)人修養(yǎng),</p><p>
109、鍛煉自己的實(shí)際操作能力以及對(duì)待一件事的嚴(yán)謹(jǐn)態(tài)度,以及對(duì)以后的工作提出了</p><p> 寶貴的經(jīng)驗(yàn)。首先感謝我們學(xué)校給了我們這樣一個(gè)寶貴的鍛煉自己的能力的機(jī)會(huì)。我覺(jué)得在大學(xué)缺少的就是象這樣的鍛煉,我們不是有好多同學(xué)抱怨自己工作沒(méi)經(jīng)驗(yàn)、做項(xiàng)目沒(méi)有經(jīng)驗(yàn)嗎?我覺(jué)得只要象這樣的機(jī)會(huì)都每次認(rèn)真對(duì)待了,我覺(jué)得我們就會(huì)有一個(gè)很不一樣的看法?;仡櫼幌挛覀儚拇笠坏浆F(xiàn)在象這樣的機(jī)會(huì)不多:大二上的C語(yǔ)言程序課程設(shè)計(jì);大二下的電工實(shí)
110、習(xí);大三上的電子線(xiàn)路設(shè)計(jì)與測(cè)試實(shí)驗(yàn)—多功能數(shù)字鐘的設(shè)計(jì);大三上的IC課程設(shè)計(jì);可以看出我們這樣的機(jī)會(huì)不是沒(méi)有,如果每一次我們都認(rèn)真做了,認(rèn)真總結(jié)了,認(rèn)真分析了,資料認(rèn)真查了,那么不管你最終成績(jī)?nèi)绾危矣X(jué)得我們都成功了。</p><p><b> 致謝</b></p><p> 回首課題研究的歷程,對(duì)那些引導(dǎo)我、幫助我、激勵(lì)我的人心中充滿(mǎn)了感激。</p>
111、<p> 首先要感謝導(dǎo)師楊小獻(xiàn)老師,雖然我們是在開(kāi)始畢設(shè)時(shí)才算真正的認(rèn)識(shí),但他卻</p><p> 能以一位長(zhǎng)輩的風(fēng)范來(lái)容諒我的無(wú)知,給我不厭其煩的指導(dǎo),從論文定題、開(kāi)發(fā)</p><p> 過(guò)程的疑難解決到論文概要、寫(xiě)作方式以及用詞造句、標(biāo)點(diǎn)符號(hào),傾注了楊老師</p><p> 大量的心血。課題研究開(kāi)發(fā)以及論文寫(xiě)作期間,深深受益于楊老師的關(guān)心、
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于fpga的智能電梯控制系統(tǒng)的實(shí)現(xiàn)畢業(yè)論文
- 基于fpga電梯控制系統(tǒng)畢業(yè)論文
- fpga智能電梯控制系統(tǒng)實(shí)現(xiàn)大學(xué)課題論文
- 基于fpga的運(yùn)動(dòng)控制系統(tǒng)-畢業(yè)論文
- 畢業(yè)論文-基于fpga六層電梯控制系統(tǒng)【精校排版】
- 基于plc的電梯控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于eda技術(shù)的電梯控制系統(tǒng)畢業(yè)論文
- 電梯控制系統(tǒng)畢業(yè)論文
- 基于eda技術(shù)的電梯控制系統(tǒng)畢業(yè)論文
- 基于profibus的電梯群控制系統(tǒng)【畢業(yè)論文】
- 基于fpga的溫度控制系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文---基于plc的電梯控制系統(tǒng)的應(yīng)用
- 基于plc的電梯控制系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- 基于plc的四層電梯控制系統(tǒng)【畢業(yè)論文】
- 基于plc的六層電梯控制系統(tǒng)畢業(yè)論文
- 畢業(yè)論文---基于fpga的空調(diào)控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的電梯控制系統(tǒng)畢業(yè)論文
- 畢業(yè)論文-基于fpga的電梯控制器設(shè)計(jì)
- 電梯控制系統(tǒng)的仿真設(shè)計(jì)畢業(yè)論文
- plc電梯控制系統(tǒng)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論