【基于FPGA的電梯控制器的探究設計8100字(論文)】_第1頁
【基于FPGA的電梯控制器的探究設計8100字(論文)】_第2頁
【基于FPGA的電梯控制器的探究設計8100字(論文)】_第3頁
【基于FPGA的電梯控制器的探究設計8100字(論文)】_第4頁
【基于FPGA的電梯控制器的探究設計8100字(論文)】_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于FPGA的電梯控制器的研究設計目錄TOC\o"1-3"\h\u9947摘要 Ⅰ25904第一章緒論 1215041.1研究背景 192481.2設計思想與方案論證 1221801.3EDA概述 2236921.4EDA功能 3129721.5FPGA 3307701.6FPGA功能 345131.7本文主要內容 4574第二章設計特點和要求 5186502.1電梯控制器的任務和要求 5322862.2電梯控制器的設計思路 529952.3電梯控制器系統(tǒng)配置和模塊設計 6165792.3.1系統(tǒng)配置 657222.3.2模塊設計 6196332.4模塊設計程序的硬件分析 710302.4.1總電路圖 740692.4.2電梯核心控制子模塊 865542.4.3電梯模擬子模塊 8312622.4.4樓層號顯示子模塊 9203302.4.5按鈕清零控制子模塊 918342.4.6時鐘分頻模塊 1093262.4.7附加模塊 1031944第三章軟件設計 11108093.1電梯核心控制子模塊的功能 11270273.2電梯模擬子模塊的功能 15212313.3樓層號顯示子模塊的功能 摘要電梯現(xiàn)在成為了現(xiàn)代化社會不可缺少的運載工具。電梯是隱藏的資源消耗者。起動或制動時的負載經(jīng)常變化,并且運動方向保持著持續(xù)變化。電梯控制系統(tǒng)需要在各種負載下進行適當調整,以確保安全可靠的電梯運行和乘客舒適度。速度性能電梯控制系統(tǒng)為電梯提供動力,以控制電梯的啟動加速度,穩(wěn)定的速度運行和制動減速度。使用FPGA組裝件的主動型的控制芯片和模塊化研發(fā)方法,采用Verilog的硬件描述語言對電梯控制器的每個功能區(qū)域進行精準編程,用來實現(xiàn)四層電梯控制器的準確設計。然后使用軟件仿真和硬件來完成,最終表示這個方案基本符合設計要求,可以拓展到多樓層的電梯,是十分實用的。關鍵詞:FPGA;Verilog;控制器第一章緒論1.1研究背景目前在人口稠密的地區(qū),勞動力的極度短缺和土地資源匱乏之間的沖突變得越來越嚴重。目的是使用合理利用土地的方法來解決人地矛盾。建造摩天大樓是有效的措施之一。隨著時間的流逝,出現(xiàn)了一部電梯,電梯能夠快速,輕松地到達目的地。在一些國家和地區(qū),每個人使用電梯數(shù)量超過每10,000人30臺,在其他部分國家里,電梯的使用數(shù)量可能已經(jīng)超過每10,000人120臺。城市化程度越高,電梯的市場前景就越廣闊。當前,每年的增長率為15-18%。因為現(xiàn)在使用電梯的地方越來越多,人們對電梯運輸?shù)姆奖愕男枨笤絹碓礁?。電梯的最主要的特點就是安全和快速地抵達所想要到達的樓層。因此,研發(fā)控制器已經(jīng)作為了電梯的設計領域里的關鍵性技術。伴隨如今電子技術的高水平快速發(fā)展,科技化時代的電子信息科技產(chǎn)品現(xiàn)在幾乎影響到了社會的每個領域之中,十分有效地促進了世界生產(chǎn)力的快速發(fā)展,提升了世界的計算機化程度。與此同時,我們也優(yōu)化了現(xiàn)代化電子產(chǎn)品,還加速了電子設計的開發(fā)、技術升級和技術的不斷創(chuàng)新的過程。對于這些廣闊的電梯市場前景,所謂的"科技至關重要的生產(chǎn)力"電子設計技術自然會超過電梯技術的標準,這對設計師而言是至關重要的絕佳的設計空間。所以,這個設計需要在綜合電子化設計技術的前提條件之下設計安全高效的電梯控制系統(tǒng)。1.2設計思想與方案論證方案一:基于FPGA的電梯控制器研發(fā)程序使用Altera公司開發(fā)的QuartusII集成化的研發(fā)環(huán)境,采取自上而下的模塊化設計方法,有利于程序的優(yōu)化和升級,設計語言使用語法十分嚴謹且廣泛的Verilog語言。在關鍵組裝器件的選擇中,因為想到Cyclo-neII系列芯片要比一代芯片在設計和研究上、內部的邏輯關系上都具有較大的優(yōu)化,而且價格方面也能被多數(shù)用戶們所接受。方案二:基于嵌入式的電梯控制器使用將電梯核心控制器為主要控制器的嵌入式軟件發(fā)開平臺來編譯Linux電梯核心控制器的每個獨立的功能模塊的驅動程序,為符合控制器的功能的基本要求,研發(fā)電梯控制器的數(shù)據(jù)流圖,在這個條件上對電梯控制器的功能進行結構改造,還使用Linux的編程方法來研發(fā)完成控制器的基礎邏輯控制功能。最終,搭建虛擬檢驗平臺,對電梯控制器的硬件和軟件的功能進行模擬測試。方案三:基于蟻群算法的電梯群控制器的研發(fā)設計使用DSP芯片通過CAN總線協(xié)議與現(xiàn)場數(shù)據(jù)收集的信息通訊來研發(fā)電梯群控制器的一部分硬件系統(tǒng)。使用VisualBasic6.0語言進行電梯系統(tǒng)的監(jiān)控界面的編譯,在與群控制器采用的傳輸速度更快的USB通訊技術,這樣通過信息的交互,電梯的監(jiān)管人員能夠實時地觀察電梯運行情況??偨Y,如果用基于FPGA的方法來進行設計和優(yōu)化電梯控制器,不僅優(yōu)化了電路的設計和提升控制器的抗干擾能力,而且具有節(jié)能的功能,降低了功耗,擁有廣闊的發(fā)展前景。1.3EDA概述在1990年代,因電子及計算機技術領域方面十分成功,所以世界的許多國家紛紛尋找新的電子電路的設計方法,并且徹底地改變了這些設計方法和工具。只有硬件設計和軟件設計才是方便、快捷的。這些器件可通過運用軟件編程的方法來重新配置這些硬件的構造和結構。所以,這些都已經(jīng)完全地更改了普通的系統(tǒng)開發(fā)方法和概念,促進了EDA核心技術的飛速提升。EDA技術使用計算機作為工具。研發(fā)人員運用HDL硬件的描述語言把研發(fā)信息儲存于EDA軟件平臺里。之后,計算機會自行地進行邏輯編譯,優(yōu)化,區(qū)分,綜合,布置,連線及仿真,持續(xù)到完成相關的編譯和邏輯過程。因為EDA技術的發(fā)明,設計電路所花費的時間和可操作程度得到極大的優(yōu)化,研發(fā)人員們的工作強度得到適當降低。電子研發(fā)人員運用EDA工具依靠相關理念,規(guī)則,協(xié)議等來研發(fā)相關的電子系統(tǒng),并且使用計算機來達目的,包含完全的電路設計和功能檢驗過程?,F(xiàn)在,EDA概念或類別已被廣泛使用。EDA用于各種領域,例如機械,電子,電信,航空,化學工業(yè),礦物學,生物學,醫(yī)學和軍事。如今,EDA技術已廣泛用于大型公司,企業(yè),機構,科學研究和教育部門。1.4EDA功能(1)為了優(yōu)化自上而下的設計技術,最新的EDA工具可以對系統(tǒng)進行優(yōu)化和改良,來有效的減短設計時所花費的時間周期并且提高在設計時候的效率。(2)運用硬件描述語言來實施設計。運用硬件編程語言搭建電路和系統(tǒng)是目前EDA技術的一種功能。和目前使用的電路設計技術相比,HDL語言十分適合于搭建較大的數(shù)字系統(tǒng)。這使設計人員可以在相對抽象的級別上解釋系統(tǒng)的結構和邏輯。使用HDL語言設計的主要優(yōu)點是語言的開放性和易用性,獨立的設計和過程,廣泛的寫入功能,易于配置,重用,大型系統(tǒng)的通信和設計,以及保存和修改。目前全球世界使用最廣的硬件描述語言為IEEEVHDL標準及VerilogHDL。(3)對于標準化最新的EDA工具一般會采取標準化的框架結構。EDA系統(tǒng)可以容納第三方EDA工具和設備,以進行符合標準的設計工作,從而構建開放的框架結構。這樣,可以完成多種EDA工具的結構優(yōu)化,將其集成于一種可以編輯管理的環(huán)境中,并可以進行相關的資源共享。1.5FPGA使用目前的硬件編程語言來搭建的電路設計能在FPGA上以較快的速度生成,還擁有簡化的綜合和檢驗功能,這是現(xiàn)代化電路驗證技術的趨勢。這些可編輯組件可用于實現(xiàn)更復雜的組合功能,例如某些基本邏輯門電路(AND,OR,XOR,NOT等)或解碼器和表達式。在大部分的FPGA里,這一些可進行編輯的組件也包含了存儲組件,例如觸發(fā)器和其他更完整的存儲塊。系統(tǒng)研發(fā)人員可依據(jù)需要通過可修改的連接(例如,芯片電路板放置)來連接FPGA邏輯模塊。研發(fā)人員可以通過編輯FPGA邏輯模塊和工廠端口的連接,來使FPGA可以完成所需的邏輯功能。FPGA一般情況下相比ASIC較慢,可以完成十分繁瑣的設計,并且不會損失掉過多的功率。但是,快速完成產(chǎn)品具有許多優(yōu)勢,例如修復程序錯誤和降低成本。制造商還會供應十分便宜的FPGA,而其編輯能力不足。由于這些芯片的可編輯性較低,因此這一些設計的研發(fā)早于現(xiàn)有FPGA上使用的下一個ASIC型芯片。另一種方法是運用CPLD。1.6FPGA功能(1)通過使用FPGA設計ASIC(專用集成電路),即使用戶不制造芯片,也可以獲得合適的芯片。(2)FPGA可使用在完全定制或半定制ASIC電路的樣本。(3)FPGA擁有較多的觸發(fā)器和I/O引腳。(4)FPGA是ASIC電路里研發(fā)時間、費用、風險程度最低的器件之一。(5)FPGA采用高速CHMOS技術和低功耗來支持CMOS和TTL電平。FPGA芯片是用來使較少的系統(tǒng)提升系統(tǒng)集成度和穩(wěn)定性的最優(yōu)芯片之一。FPGA由存儲在芯片RAM中的程序組成,以設置工作狀態(tài)。所以,要對芯片中的RAM進行具體化編譯。使用者可以為此外不一樣的配置模式來運用不同的編程方法。通電之后,F(xiàn)PGA芯片從RAM中讀取EPROM數(shù)據(jù)。配置完成后,F(xiàn)PGA將運行。斷電之后,F(xiàn)PGA重新成為空白,內部的邏輯取消關聯(lián)。因此,F(xiàn)PGA可以重復使用。FPGA的編譯是不需要使用專門的FPGA編程器的,通常僅需要EPROM和PROM編程器。如果需要更改FPGA的功能,則只需更改一個EPROM。這樣,同一FPGA,其他編程數(shù)據(jù)可以創(chuàng)建其他電路的功能。1.7本文主要內容第一章基于FPGA的電梯控制器的發(fā)展,對比當前多種電梯控制器的設計方案并進行方案分析論證,介紹設計相關FPGA技術等,了解現(xiàn)如今的一些研究現(xiàn)狀,說明了本研究的意義。第二章介紹FPGA的電梯控制器的功能要求,并闡述電梯控制器的設計思路及原理圖,介紹系統(tǒng)配置和具體的模塊設計和硬件功能的分析。(如:1.電梯核心控制子模塊2.電梯模擬子模塊3.樓層號顯示子模塊4.按鈕清零控制子模塊5.時鐘分頻模塊6.附加模塊)第三章介紹電梯核心控制子模塊、電梯模擬子模塊、樓層號顯示子模塊、按鈕清零控制子模塊、時鐘分頻模塊和附加模塊的具體功能還有其程序代碼展示。第四章進行設計總結和期望;表示在完成這次電梯控制器設計時,F(xiàn)PGA更加靈活。可以修改程序以控制多層,十分適合電梯控制器的設計。表達對老師和同學的感謝!第二章設計特點和要求2.1電梯控制器的任務和要求Verilog硬件描述語言用于對電梯控制器系統(tǒng)的每個模塊進行編程。該系統(tǒng)至少具有以下特征:(1)電梯在4樓完成了乘客服務,并且可以根據(jù)方向優(yōu)先原則進行控制。(2)運行模式和下班模式。(3)有司機和無司機功能。(4)顯示功能。2.2電梯控制器的設計思路圖2-1是控制器的功能模塊,例如主控制器,分控制器,樓層選擇器,狀態(tài)指示器,解碼器和樓層指示器。用戶選擇想要抵達的樓層,主控制器使電梯運行,且狀態(tài)顯示屏展示電梯目前的工作狀態(tài)。解碼器使用電梯解碼樓層數(shù),并將其顯示在樓層顯示器上。子控制器將有效請求發(fā)送到主控制器的樓層數(shù)。分控制器比較簡單,所以主控制器是核心部分。狀態(tài)顯示狀態(tài)顯示分控制器主控制器譯碼器樓層顯示分控制器主控制器譯碼器樓層顯示樓層選擇樓層選擇圖2-1電梯控制器原理框圖電梯控制器系統(tǒng)的一般要求(1)在電梯的每一層的進門口有上下請求開關,使乘客可以到達電梯的高度。電梯樓層的當前位置用兩位數(shù)顯管顯示。(2)顯示電梯的當前位置。(3)當電梯響應停止請求到達地板時,電梯門自動打開,門燈點亮。如果開門3秒鐘,電梯門將自動關閉(開門指示燈將熄滅),電梯將繼續(xù)運行。(4)可以存儲和響應電梯內部及外部的所有請求信號,這些信息基于電梯的運行規(guī)則。保留每個請求令牌,直到執(zhí)行為止。2.3電梯控制器系統(tǒng)配置和模塊設計2.3.1系統(tǒng)配置該設計采用了定向優(yōu)先級控制方法。方向優(yōu)先級控制意味著,當電梯到達某個特定層時,它首先會考慮是否需要該層。顯示消息時停止。如果沒有消息,請繼續(xù)移動。停止后恢復的步驟:考慮請求是來自上方還是下方。出現(xiàn)提示時,單擊繼續(xù)。如果沒有,請繼續(xù)。否則它將停止。進入運行狀態(tài)之前,請確保存在一個請求或一個請求。2.3.2模塊設計(1)設計原理電梯上升和下降的原理是依靠步進電機在控制器的帶動下通過旋轉固定的角度來抵達指定的樓層:高度H=R×Φ式2.1樓層數(shù)N=H÷L式2.2公式里L為單位樓層的高度;R為步進電機的轉軸半徑;Φ為步進電機旋轉的角度。(2)設計思路和設計方案說明電梯具有許多電梯控制方法和多種類型的電動機。步進電機可以準確地旋轉指定角度。該過程的設計展示了如何使用FPGA控制步進電機的上升和下降以模擬電梯的功能。這個系統(tǒng)使用了多個CPU的協(xié)同配合來進行優(yōu)化和闡述各模塊的功能,從而有助于調試和維護。兩個核心的模塊是主控制器模塊(電梯核心控制子模塊,電梯模擬子模塊)和分頻器模塊。電梯核心控制子模塊:實現(xiàn)電梯的相關調度算法,通過接收樓層信號和按鈕信號來生成電梯的運行方向指示信號、控制信號及請求電梯停止信號、控制電梯停止信號。電梯模擬子模塊:模擬電梯在不同工作模式下的實際運行,即根據(jù)電梯當前的運行方向控制信號控制電梯的樓層轉移并輸出樓層號;根據(jù)該控制信號使電梯停止,產(chǎn)生用于打開和關閉電梯門的控制信號,并關閉電梯門1s,然后產(chǎn)生按鈕復位控制信號。樓層號顯示子模塊:用于顯示樓層號。當電梯懸掛在某個樓層上時,電梯中的數(shù)字管會對應的樓層數(shù)進行閃爍,并以每秒1次的頻率顯示樓層號。在其他情況下,電梯中的數(shù)字管會穩(wěn)定顯示電梯當前通過的樓層號。按鈕清零控制子模塊:將10個按鈕信號調整為正脈沖有效模式,并控制按鈕信號的存儲和清除。首先,將10個按鈕信號調整為正脈沖有效模式;一旦脈沖按鈕信號ipt到來,則對應的輸出opt為高。時鐘分頻模塊:對1KHz進行100分頻得到10Hz時鐘信號,再進行10分頻,得到1Hz時鐘信號。附加模塊:調整按鈕信號均為正脈沖有效模式。2.4模塊設計程序的硬件分析2.4.1總電路圖圖3-1總電路2.4.2電梯核心控制子模塊實現(xiàn)電梯的相關調度算法,通過接收樓層信號和按鈕信號來生成電梯的運行方向指示信號、控制信號及請求電梯停止信號、控制電梯停止信號。模塊電路如圖3-2所示:圖3-2電梯核心控制子模塊2.4.3電梯模擬子模塊用來模擬電梯在不同工作模式下的實際運行情況,根據(jù)電梯當前運行方向控制信號來控制電梯的樓層移動并輸出樓層號;根據(jù)該控制信號使電梯停止,產(chǎn)生用于打開和關閉電梯門的控制信號,并關閉電梯門1s,然后產(chǎn)生按鈕復位控制信號。模塊電路如圖3-3所示:圖3-3電梯模擬子模塊2.4.4樓層號顯示子模塊用于顯示樓層號。當電梯懸掛在某個樓層上時,電梯中的數(shù)字管會對應的樓層數(shù)進行閃爍,并以每秒1次的頻率顯示樓層號。在其他情況下,電梯中的數(shù)字管會穩(wěn)定顯示電梯當前通過的樓層號。模塊電路如圖3-4所示:圖3-4樓層號顯示子模塊2.4.5按鈕清零控制子模塊將10個按鈕信號調整為正脈沖有效模式,并控制按鈕信號的存儲和清除。首先,將10個按鈕信號調整為正脈沖有效模式;一旦脈沖按鈕信號ipt到來,則對應的輸出opt為高。當電梯到達地板時,它響應地板的按鈕信號。暫停,打開門并關閉門1秒鐘后,應清除按鈕信號。此時,按鈕清除控制信號c[9..0]中的相應位為高,使輸出變低。模塊電路如圖3-5所示:圖3-5按鈕清零控制子模塊2.4.6時鐘分頻模塊時鐘分頻模塊對1KHz進行100分頻得到10Hz時鐘信號,再進行10分頻,得到1Hz時鐘信號。模塊電路如圖3-6所示:圖3-6時鐘分頻模2.4.7附加模塊附加模塊調整按鈕信號均為正脈沖有效模式。模塊電路如圖3-7所示:圖3-7附加模塊第三章軟件設計3.1電梯核心控制子模塊的功能(1)實現(xiàn)電梯的調度算法(2)根據(jù)當前樓層和按鈕信號產(chǎn)生電梯的運行方向指示信號、控制信號及請求電梯停止信號、控制電梯停止信號。程序如下:modulecorecontrol(dirup,dirdown,ctrlup,ctrldown,ask_stop,stop,clk,status,opt,run_cnt,ds0,ds1);inputclk;input[2:0]status;input[9:0]opt;input[4:0]run_cnt;outputdirup,dirdown;outputctrlup,ctrldown;outputask_stop;outputstop;outputds0,ds1;regdirup,dirdown;wirectrlup,ctrldown;regup,down;regask_stop;regds0,ds1;wiref1_up,f2_up,f2_down,f3_up,f3_down,f4_down,cmd1,cmd2,cmd3,cmd4;wirestop;assignf1_up=opt[0];assignf2_up=opt[1];assignf2_down=opt[2];assignf3_up=opt[3];assignf3_down=opt[4];assignf4_down=opt[5];assigncmd1=opt[6];assigncmd2=opt[7];assigncmd3=opt[8];assigncmd4=opt[9];always@(posedgeclk)begin case(status)3'd1:beginup=f2_up|f2_down|f3_up|f3_down||f4_down|cmd2|cmd3|cmd4;ask_stop=f1_up|cmd1;down=0;end 3'd2:begin up=f3_up|f3_down|f4_down|cmd3|cmd4;down=f1_up|cmd1;ask_stop=ds0&f2_up|ds1&f2_down|ds0&(f2_down)&(~f3_up)&(~f3_down)&(~f4_down)&(~cmd3)&(~cmd4)|ds1&(f2_up)&(~f1_up)&(~cmd1)|cmd2;end3'd3:beginup=f4_down|cmd4;down=f2_up|f2_down|f1_up|cmd1|cmd2;ask_stop=ds0&f3_up|ds1&f3_down|ds0&(f3_down)&(~f4_down)&(~cmd4)| ds1&(f3_up)&(~f2_up)&(~f2_down)&(~f1_up)&(~cmd2)&(~cmd1)|cmd3;end 3'd4:beginup=0;down=f3_up|f3_down|f2_up|f2_down|f1_up|cmd1|cmd2|cmd3;ask_stop=ds1&f4_down|ds0&f4_down|cmd4;end default: begin up=0; down=0; ask_stop=0; end endcase endalways@(posedgeclk)begin if(ds0==0&&ds1==0)beginds0=1;ds1=1;end elseif((ds0==1)&&(up==1))begindirup=1;dirdown=0;ds0=1;ds1=0;end elseif((ds0==1)&&(up==0)&&(ask_stop==1))begindirup=0;dirdown=0;ds0=1;ds1=1;end elseif((ds1==1)&&(down==1))begindirup=0;dirdown=1;ds0=0;ds1=1;end elseif((ds1==1)&&(down==0)&&(ask_stop==1))begindirup=0;dirdown=0;ds0=1;ds1=1;end elsebegindirup=0;dirdown=0;ds0=1;ds1=1;end //elseif((up==1)&&(down==0)&&(ask_stop==0))begindirup=1;dirdown=0;ds0=1;ds1=0;end endassignstop=(ask_stop&(run_cnt==0));assignctrlup=dirup&!stop;assignctrldown=dirdown&!stop;endmodule3.2電梯模擬子模塊的功能(1)模擬電梯在不同工作模式下的實際運行情況。(2)根據(jù)電梯當前運行方向控制信號,控制電梯的樓層轉移并輸出樓層號。(3)令電梯停止的控制信號,產(chǎn)生開、關電梯門控制信號,關門1s后產(chǎn)生按鈕清零控制信號。程序如下:modulesimulator(cnt,run_cnt,status,open_door,close_door,c,clk,ctrlup,ctrldown,stop,power,admin,open,close);inputclk;inputctrlup,ctrldown;inputstop;inputpower;inputadmin;inputopen;inputclose;output[4:0]cnt;output[4:0]run_cnt;output[2:0]status;outputopen_door,close_door;output[9:0]c;reg[2:0]status;reg[9:0]c;regclose_door;reg[4:0]cnt;reg[4:0]run_cnt;assignopen_door=power&(stop==1)&(!close_door);initialstatus=0;always@(posedgeclkornegedgepower)begin if(!power) begin close_door=1; c=16'h3fff; cnt=0; run_cnt=0; end else begin if(status==0)beginstatus=1;close_door=0;endif(ctrlup)beginif(run_cnt==19)beginrun_cnt=0;status=status+1'b1;endelsebeginrun_cnt=run_cnt+1'b1;endend elseif(ctrldown) begin if(run_cnt==19) beginrun_cnt=0;status=status-1'b1;end elsebeginrun_cnt=run_cnt+1'b1;end end elseif(stop) begin if(!admin&&(close_door==0)&&(cnt==29))begin if(open) close_door=0; else begin cnt=0; close_door=1; end end elseif((close_door==0)&&(open==0)&&(close)) begin cnt=0; close_door=1; end elseif((cnt==9)&&(close_door==1)) begin cnt=0; close_door=0; case(status)3'd1:beginc[0]=1;c[6]=1;end3'd2:beginc[1]=1;c[2]=1;c[7]=1;end3'd3:beginc[3]=1;c[4]=1;c[8]=1;end 3'd4:beginc[5]=1;c[9]=1;endendcase end else begin cnt=cnt+1'b1; c=10'h000; end end else begincnt=0;run_cnt=0;c=0;endendendendmodule3.3樓層號顯示子模塊的功能(1)顯示電梯所在的樓層。程序如下:moduledisplay(eleIn,floor1,floor2,floor3,floor4,clk1k,clk1Hz,statusin,stopin,power);output[3:0]eleIn,floor1,floor2,floor3,floor4;inputclk1k;inputclk1Hz;input[2:0]statusin;//fourfloorinputstopin;inputpower;reg[3:0]eleIn,floor1,floor2,floor3,floor4;always@(posedgeclk1k)beginif(!power) begin eleIn<=4'd0; floor1<=4'd0; floor2<=4'd0; floor3<=4'd0; floor4<=4'd0; end else begin case(statusin) 3'd1:begin if(stopin) begin eleIn<=statusin&{3{clk1Hz}}; floor1<=statusin&{3{clk1Hz}}; floor2<=statusin; floor3<=statusin; floor4<=statusin; end else begin eleIn<=statusin; floor1<=statusin; floor2<=statusin; floor3<=statusin; floor4<=statusin; end end 3'd2:begin if(stopin) Begin eleIn<=statusin&{3{clk1Hz}}; floor1<=statusin; floor2<=statusin&{3{clk1Hz}}; floor3<=statusin; floor4<=statusin; end else begin eleIn<=statusin; floor1<=statusin; floor2<=statusin; floor3<=statusin; floor4<=statusin; end end 3'd3:begin if(stopin) begin eleIn<=statusin&{3{clk1Hz}}; floor1<=statusin; floor2<=statusin; floor3<=statusin&{3{clk1Hz}}; floor4<=statusin; end else begin eleIn<=statusin; floor1<=statusin; floor2<=statusin; floor3<=statusin; floor4<=statusin; end end 4'd4:begin if(stopin) begin eleIn<=statusin&{3{clk1Hz}}; floor1<=statusin; floor2<=statusin; floor3<=statusin; floor4<=statusin&{3{clk1Hz}}; end else begin eleIn<=statusin; floor1<=statusin; floor2<=statusin; floor3<=statusin; floor4<=statusin; end end default:begin eleIn<=4'd0; floor1<=4'd1; floor2<=4'd2; floor3<=4'd3; floor4<=4'd4; end endcase endendEndmodule3.4按鈕清零控制子模塊的功能調整10個按鈕信號均為正脈沖有效模式,并對按鈕信號進行存儲和清零控制。(2)將脈沖信號轉換為電平信號。(3)當電梯到達該層時響應了該層的按鈕信號,暫停、開門、關門1s后則應清除此按鈕信號,此時使按鈕清零控制信號c[9..0]中的相應位為高,使輸出opt變低。程序如下:modulebutton_clr_ctrl(opt,clk,ipt,c);inputclk;input[9:0]ipt,c;output[9:0]opt;reg[4:0]i;reg[9:0]opt;wire[9:0]ipt_high;assignipt_high={~ipt[9],~ipt[8],ipt[7:0]};always@(posedgeclk) begin for(i=0;i<=9;i=i+1) if(ipt_high[i])opt[i]<=1; elseif(c[i])opt[i]<=0; endendmodule3.5時鐘分頻模塊的功能(1)對1KHz進行100分頻得到10Hz時鐘信號,再進行10分頻,得到1Hz時鐘信號。程序如下:moduleclockdiv(clkin,clk_10Hz,clk_1Hz);inputclkin;outputclk_10Hz,clk_1Hz;regclk_10Hz,clk_1Hz;reg[5:0]count1,count2;always@(posedgeclkin)begin if(count1==49) begin clk_10Hz=~clk_10Hz; count1=0; end elsecount1=count1+1;endalways@(posedgeclk_10Hz)beginif(count2==4)beginclk_1Hz=~clk_1Hz;count2=0;endelsecount2=count2+1;endendmodule 3.6附加模塊的功能(1)調整按鈕信號均為正脈沖有效模式程序如下:modulenot10(in,out);input[9:0]in;output[9:0]out;assignout={~in[9],~in[8],in[7:0]};endmodule圖頂層電路圖第四章總結與期望使用先前的設計進行調試和改進,并通過長期的迭代測試。如果需要,可以將各種索引的參數(shù)打印為曲線圖和模擬圖,但是建議重復一次。Verilog硬件描述語言方式的數(shù)字系統(tǒng)設計非常地方便和靈活。大幅縮短了運用EDA軟件編譯及優(yōu)化仿真的電路開發(fā)時間,還減少了錯誤的發(fā)生概率且大幅減少了開發(fā)所需要的成本。這種設計方法肯定會增加。這對于研發(fā)過程有著極其重要的作用。未來的數(shù)字系統(tǒng)。在此設計中,用于控制電梯邏輯操作的官方FPGA具有編程靈活,性能穩(wěn)定的優(yōu)點。電源關閉時,F(xiàn)PGA配置數(shù)據(jù)將自動刪除。用戶可以在現(xiàn)場控制充電過程并更改設備的邏輯功能。整個設計過程電梯的設計可以根據(jù)其功能分為幾個功能模塊,可以掌握每個模塊的時間,并且可以將這些功能模塊集成在一起并與NorthBus共享。它可以正常運行而不會受到干擾。在仿真過程中,某些程序的時序非常精確,但是將程序下載到芯片時出現(xiàn)了錯誤。這主要是由于每個功能執(zhí)行的延遲,但在仿真過程中不會出現(xiàn)。所以進行編程的時候要十分注意在選擇芯片之前將計算出的數(shù)據(jù)信號放置在數(shù)據(jù)總線上。在完成電梯的控制時,F(xiàn)PGA更加靈活??梢孕薷某绦蛞钥刂贫鄬?。該設計與電梯控制完美配合。例如,內部和外部電梯指示器系統(tǒng)的設計以及電梯當前運行狀態(tài)的顯示可以滿足一般乘客電梯的運行功能要求。參考文獻[1]高迎慧,侯忠霞,楊成林.基于FPGA的自動升降電梯控制器設計[J].遼寧工程技術大學學報,2007(02):242-244.[2]陳慧萍,王章瑞,馬啟強,黃學坤.基于FPGA的三層電梯控制器的實現(xiàn)[J].儀器儀表用戶,2007(04):72-73.[3]申彥春,張銀蒲,吳錚.基于FPGA的電梯控制器的設計[J].科技創(chuàng)新導報,2007(32):94-9

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論