【正文】
y of state method, then turned to my original finite state machine method. Use the finite state machine 3sectional methods also spent a lot of time to modify and improve. Realize the basic functions, when a meet more plex situations (parables meanwhile several people in request or is also have two in different floor request? How should the elevator running these special cases I at that time has not find appropriate and effective approach to solve).Abstract KEY WORDS: A signal and buy 狀態(tài)機Intelligent elevator control system design thought AbstractIntelligent elevator pilation process is not easy. And I tried a variety of ways to realize the transfer of the state. At first I thought the affirmation 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 found, 6 button affirmation is not enough, so I added five upward request button and five downward request button, so it has 16 button, because at that time I didn39。使用三段式的有限狀態(tài)機的方法也花了很多時間去修正和改善。當時我不僅采用“信號并置的算法”外,還采納了它的“以樓層為電梯的狀態(tài)轉(zhuǎn)移的依據(jù)”的思想,這確實是一個不錯的方法,不過當時我一直沒有任何進展,一是它是用VHDL語言編寫的,而且我對這個語言不是很熟悉所以不是特別理解。而且我試過好多種方法去實現(xiàn)電梯的狀態(tài)的轉(zhuǎn)移。起初我想到的肯定是有限狀態(tài)機。后來竟然干起了把VHDL語言翻譯成verilog語言的工作,這樣沒有任何含金量的工作讓我浪費了不少時間。實現(xiàn)了基本的功能,當時一遇到比較復(fù)雜的情況時(比喻同時有幾個人在請求或者是同時有兩個在不同樓層的請求時電梯該如何運行呢,這些特殊情況我在當時一直沒有找到合適和有效的方法去解決)。verilogt think by signal and inverted method, so need analysis of true is too many, I also have no confidence. Nevertheless the problem are always to be solved, later I in our bedroom is a classmate of reference books on saw a with VHDL language preparation intelligent elevator controller program, but is not plete, it gives me the greatest inspiration is signal and inverted algorithm, I discovered this way, then my workload is greatly was not only use signal and inverted algorithm outside, still adopted its to the floor for elevator status transfer basis thought, it is really a good method, but I haven39。verilog在電子技術(shù)設(shè)計領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計帶來了極大的靈活性。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計的效率和可操作性,減輕了設(shè)計者的勞動強度。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學(xué)部門廣泛使用。與傳統(tǒng)的原理圖設(shè)計方法相比,HDL語言更適合描述規(guī)模大的數(shù)字系統(tǒng),它能夠使設(shè)計者在比較抽象的層次上對所設(shè)計系統(tǒng)的結(jié)構(gòu)和邏輯功能進行描述。這樣就可以實現(xiàn)各種EDA工具的優(yōu)化組合,并集成在一個易于管理的統(tǒng)一環(huán)境下,實現(xiàn)資源共享。隨著EDA技術(shù)的發(fā)展,硬件電子電路的設(shè)計幾乎全部可以依靠計算機來完成,這樣就大大縮短了硬件電子電路設(shè)計的周期,從而使制造商可以快速開發(fā)出品種多、批量小的產(chǎn)品,以滿足市場的眾多需求。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。但是他們也有很多的優(yōu)點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。 CPLD與FPGA的關(guān)系 早在1980年代中期,F(xiàn)PGA已經(jīng)在PLD設(shè)備中扎根。CPLD是一個有點限制性的結(jié)構(gòu)。 CPLD和FPGA另外一個區(qū)別是大多數(shù)的FPGA含有高層次的內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。 FPGA工作原理 FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。 4)FPGA是ASIC電路中設(shè)計周期最短、開發(fā)費用最低、風(fēng)險最小的器件之一。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。當需要修改FPGA功能時,只需換一片EPROM即可。1987 年底,VHDL被 IEEE 和美國國防部確認為標準硬件描述語言。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。電子產(chǎn)品隨著技術(shù)的進步,更新?lián)Q代日新月異,而掌握電子產(chǎn)品開發(fā)研制的動力源—EDA技術(shù),是我們國家工程技術(shù)人員不可推卸的責任,因為中國的設(shè)計公司大多還處在發(fā)展的初級階段,所使用的設(shè)計工具都是幾年前國外的主流工具。此外 ,VHDL 語言能夠同時支持同步電路、異步電路和隨機電路的設(shè)計實現(xiàn), 這是其他硬件描述語言所不能比擬的。同時,VHDL 語言也支持慣性延遲和傳輸延遲,這樣可以準確地建立硬件電路的模型。 (4) VHDL 語言的設(shè)計描述與器件無關(guān) 采用 VHDL 語言描述硬件電路時, 設(shè)計人員并不需要首先考慮選擇進行設(shè)計的器件。在設(shè)計過程中 , 設(shè)計人員可以建立各種可再次利用的模塊 , 一個大規(guī)模的硬件電路的設(shè)計不可能從門級電路開始一步步地進行設(shè)計 , 而是一些模塊的累加。狀態(tài)機通過響應(yīng)一系列事件而“運行”。當?shù)竭_終態(tài), 狀態(tài)機停止。在有限狀態(tài)機中,會有有許多變量,例如,狀態(tài) 機有很多與動作(actions)轉(zhuǎn)換(Mealy機)或狀態(tài)(摩爾機)關(guān)聯(lián)的動作,多重起始狀態(tài),基于沒有輸入符號的轉(zhuǎn)換,或者指定符號和狀態(tài)(非定有 限狀態(tài)機)的多個轉(zhuǎn)換,指派給接收狀態(tài)(識別者)的一個或多個狀態(tài),等等。 另一類應(yīng)用程序由外部發(fā)生的事件來驅(qū)動——換言之,事件在應(yīng)用程序之外生成,無法由應(yīng)用程序或程序員來控制。 Web應(yīng)用程序由提交的表單和用戶請求的網(wǎng)頁來驅(qū)動,它們也可劃歸到上述類 別。它能處理任何順序的事件,并能提供有意義的響應(yīng)——即使這些事件發(fā)生的順序和預(yù)計的不同。之所以能 做到這一點,是因為機器能跟蹤一個內(nèi)部狀態(tài),它會在收到事件后進行更新。 狀態(tài)機可歸納為4個要素,即現(xiàn)態(tài)、條件、動作、次態(tài)。 ②條件:又稱為“事件”。動作不是必需的,當條件滿足后,也可以不執(zhí)行任何動作,直接遷移到新狀態(tài)。為了讓電梯更好的服務(wù)人們,各種電梯新技術(shù)不斷地發(fā)展起來。因此,它的安全可靠性、迅速準確性、舒適性,對人們來說都是非常重要的。同時,對電梯操作人員定期考核,讓他們定期參加安全技術(shù)學(xué)習(xí),扎扎實實地做好電梯維護和保養(yǎng)工作,才能使人們平安長久的使用電梯少, 我國電梯的發(fā)展概況③建立三資企業(yè),行業(yè)快速發(fā)展階段(自1980年至今),這一階段我國共生產(chǎn)安裝電梯約40萬臺。中國電梯行業(yè)自改革開放以來第三次發(fā)展浪潮正在掀起。其次表現(xiàn)在企業(yè)的規(guī)模效益逐步展現(xiàn)。如此大的市場需求,將是電梯業(yè)再創(chuàng)輝煌的最好契機。通過仿真結(jié)果驗證其正確性,并在開發(fā)板上進行硬件測試。電梯有6層,每1秒上升或者下降1層。(6) 電梯的初始位置為一層,處于開門狀態(tài)。電梯內(nèi)設(shè)有乘客到達層次的請求開關(guān)。電梯在上述七個狀態(tài)間的轉(zhuǎn)移是通過三段式狀態(tài)機來實現(xiàn)的,各狀態(tài)間的轉(zhuǎn)移大體與生活中的電梯運轉(zhuǎn)一致,有如下的基本原則:方向為第一優(yōu)先準則,這就是曾老師給我們的技術(shù)指標。除了我對電梯的運行規(guī)律做出如上的分析外,我的另一個選擇開發(fā)智能電梯控制器的原因是我想鍛煉一下自己的邏輯思維和分析復(fù)雜問題的能力。always (call_up_1 or call_up_2 or call_up_3 or call_up_4 or call_up_5) up_all={139。 //將各??空埱笮盘枌崟r地合并 always (request_1 or request_2 or request_3 or request_4 or request_5 or request_6) request_all={request_6, request_5, request_4, request_3, request_2, request_1}。 parameter WAIT=739。b0001000 , DOWNSTOP=739。 //定義樓層的符號常量 parameterFLOOR1=639。b001000, FLOOR5=639。b1, FALSE=139。b0。b00。而且是老師建議的三段式的結(jié)構(gòu)來寫的。設(shè)計者可以用自己熟悉的設(shè)計工具(如原理圖輸入或硬件描述語言)建立設(shè)計,MAX+PLUSII把這些設(shè)計轉(zhuǎn)自動換成最終所需的格式。特別是在原理圖輸入等方面,Maxplus2被公認為是最易使用,人機界面最友善的PLD開發(fā)軟件,特別適合初學(xué)者使用。自90年代初, Verilog、VHDL、AHDL等硬件描述語言的輸入方法在大規(guī)模設(shè)計中得到了廣泛應(yīng)用。 模塊示意圖和輸入輸出描述(1) 電梯主控制器模塊elevator_controller:端口聲明:Input Port:call_up_1, call_up_2, call_up_3, call_up_4, call_up_5分別為15樓的上行請求信號,call_down_2, call_down_3, call_down_4, call_down_5, call_down_6則分別為26樓的下行請求信號request_1, request_2, request_3, request_4, request_5, request_6則分別為電梯內(nèi)部的???6樓的請求上述各端口均為有請求時,輸入為高電平,否則為低電平。b000100,639。這樣編碼的話,有利于后面的比較判斷。UpDnFlag取值可為239。LiftState739。b0001000,739。(2)分頻模塊frequence_div:端口說明:Input ports:cp_50M。output ports:output open_enable,stop_enable,up_enable,down_enable,close_enable。output ports:inout [7:0] LCD_DATA。 // LCD Read/Write Select, 0 = Write, 1 = Readoutput LCD_EN。(b)三段式有限狀態(tài)機部分。(2)分頻模塊frequence_div:這段分頻器完成對50Mhz的1分頻操作。這一點可以在我的程序中十分清楚的看到,在此我不再贅述。中途還遇到了字符型液晶不能更新的問題,不過在同學(xué)的幫助下,最終還是解決了。主要是大概的介紹了我的各個模塊的基本設(shè)計原理,希望讀者能從程序中仔細體會這種原理。結(jié)論與體會結(jié)論:我們設(shè)計的智能電梯控制器應(yīng)該可以實時接受各樓層的上下請求信號及電梯內(nèi)部的??空埱?,然后根據(jù)這些請求實現(xiàn)對電梯正確的控制:除了頂層和底層外,各樓層均設(shè)有上下請求開關(guān),頂層和底層分別設(shè)有下降和上升請求開關(guān),這一點應(yīng)該不難理解。我在序言中也講到了,“應(yīng)用有限狀態(tài)機”實現(xiàn)電梯的實時控制是最好不過的方法了,通過我的分析以及參考圖書館的有關(guān)書籍,也少不了參照一些網(wǎng)上的程序,最后總結(jié)出了電梯正常運行的七個狀態(tài):上升、下降、上升的過程中途停止、下降的過程中途停止、開門、關(guān)門、等待狀態(tài)。這個就不用多解釋了。首先感謝我們學(xué)校給了我們這樣一個寶貴的鍛煉自己的能力的機會。首先要感謝導(dǎo)師楊小獻老師,雖然我們是在開始畢設(shè)時才算真正的認識,但他卻能以一位長輩的風(fēng)范來容諒我的無知,給我不厭其煩的指導(dǎo),從論文定題、開發(fā)過程的疑難解決到論文概要、寫作方式以及用詞造句、標點符號,傾注了楊老師大量的心血。他們?yōu)槲业膶W(xué)業(yè)傾注了大量心血,為人師表的風(fēng)范令我敬仰,嚴謹治學(xué)的態(tài)度令我