基于FPGA的電梯控制器設計畢業(yè)論文(設計)_第1頁
基于FPGA的電梯控制器設計畢業(yè)論文(設計)_第2頁
基于FPGA的電梯控制器設計畢業(yè)論文(設計)_第3頁
基于FPGA的電梯控制器設計畢業(yè)論文(設計)_第4頁
基于FPGA的電梯控制器設計畢業(yè)論文(設計)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、遠程與繼續(xù)教育學院 本科畢業(yè)論文(設計)基于fpga的電梯控制器設計學習中心:內蒙古學習中心學 號:090f27143002姓 名:朱曉峰專 業(yè):機械設計制造及其自動化 指導教師:曹雪林2016年9月25円中國地質大學(武漢)遠程與繼續(xù)教育學院本科畢業(yè)論文(設計)指導教師指導意見表學生姓名:朱曉峰學號:090f27143002 專業(yè):機械設計制造及其自動化畢業(yè)設計(論文)題目:基于fpga的電梯控制器設計指導教師意見:(請對論文的學術水平做出簡耍評述。包括選題意義;文獻資料的掌握;所用資料、實驗結果和計算數據的可靠性;寫作規(guī)范和邏輯性;文獻引用的規(guī)范性等。還須明確指出論文中存在的問題和不足之處

2、。)論文選題符合本專業(yè)方向,經多次修改內容及格式基本滿足地大本科論文撰寫要求。內容敘述條理較淸晰、層次分明、邏輯性較強。語言表達較為流暢。文獻、圖的引入恰當、準確。對文章闡述起到支撐作用。不足之處:該控制器與其他控制方式的優(yōu)越性未在文屮闡述且無案例說明缺乏其實用性與創(chuàng)新性不足。指導教師結論:倉搭指導教師姓名曹雪林所在單位呼和浩特職業(yè)學院指導時間2016.7. 1010.4中國地質大學(武漢)遠程與繼續(xù)教育學院本科畢業(yè)設計(論文)評閱教師評閱意見表學生姓名:朱曉峰 學號:090f27143002 專業(yè):機械設計制造及其自動化畢業(yè)設計(論文)題目:基于fpga的電梯控制器設計評閱意見:(請對論文的

3、學術水平做出簡耍評述。包括選題意義;文獻資料的掌握; 所用資料、實驗結果和計算數據的可靠性;寫作規(guī)范和邏輯性;文獻引用的規(guī)范性等。 還須明確指出論文中存在的問題和不足之處。)論文選題符合專業(yè)培養(yǎng)要求,具有一定的實用價值。論文介紹了基于fpga的電梯控制器設計, 并對設u的電梯控制器進行了仿真。論文參考資料詳實,結構完整,論述邏輯結構合理,層次比 較清晰,語言通順,格式基本規(guī)范,字數符合要求??偟膩碚f,論文基本達到了本科畢業(yè)設計的 要求。修改意見:(針對上面提出的問題和不足之處提出異體修改意見。評閱成績合格,并 可不用修改直接參加答辯的不必填此意見。)修改意見在文中批注,請按批注進行修改。畢業(yè)設

4、計(論文)評閱成績(百分制):83評閱結論:同意答辯評閱人姓名李昌平所在單位中國地質大學(武漢)評閱時間2016-10-17論文原創(chuàng)性聲明本人鄭重聲明:本人所呈交的本科畢業(yè)論文基于fpga的電梯控制器設計,是本人在導師的指導下獨立進行研宄工作所取得的成果。論文中引用他人的文獻、資料均己明確注出,論文中的結論和結果為本人獨立完成,不包含他人成果及使用過的材料。對論文的完成提供過幫助的有關人員己在文中說明并致以謝意。本人所呈交的本科畢業(yè)論文沒有違反學術道德和學術規(guī)范,沒有侵權行為,并愿意承擔由此而產生的法律責任和法律后果。論文作者(簽字):朱曉日期:2016年9月20日本設計采用的正式fpga來控

5、制電梯的邏輯運行,具有編程靈活,性能可靠 等優(yōu)點,而且fpga在去電后配置數據自動消失,用戶可以控制加載進程,在現 場修改器件的邏輯功能。在設計過程中我們首先把整個電梯設計根據功能分成若 干個功能模塊,然后理清各個模塊的時序,一以便將各個功能模塊綜合在一起, 能夠公用書籍總線,使其能正常工作不受干擾,有些程序在仿真的吋候其吋序是 完全正確的,但是當程序下載到芯片上之后就會發(fā)現錯誤了。這主要是因為各個 功能在實現時會有延時,但這在仿真時是顯示不出來的。因此編程吋要注意在選 芯片之前,要先將計算出的數據信號先放到數據總線上。epga在實現電梯控制方面比較靈活,可以通過對程序的修改來達到控制多 個樓

6、層,本設計在電梯控制方面做的比較全面,比如設計了內外電梯的指示系統(tǒng) 和當前電梯運行情況顯示,以及超載報警等,能夠滿足一般的載客電梯的工作功 能需耍。關鍵詞:1、電梯2、設計3、fpga/cpld 4、控制器、 -、冃ij胃一、fpga 概述2(一)fpge的定義2(二)fpge的特點2(三)fpga工作原理3二、總體設計方案介紹4(一)利用fpga/cpld進行電梯控制器設計的一般流程.4(二)電梯控制器的系統(tǒng)設計方案1 4(三)電梯控制器的系統(tǒng)設計方案2 5三、單元模塊設計7(一)電梯控制系統(tǒng)的設計7(二)電梯控制器系統(tǒng)組成及模塊設計介紹8(三)模塊設計程序硬件分析和軟件分析9(四)頂層文件

7、原理圖及其各部件仿真19四、系統(tǒng)功能23五、設計總結24翻寸25參考文獻26前言現代社會,伴隨著不斷發(fā)展的城市建設,日趨增多的高層建筑,作為高層逑 筑中垂直運行的交通工具,電梯己經與人們的日常生活密不可分。目前電梯控制系統(tǒng)主要有三種控制方式:繼電器控制系統(tǒng)(“早期安裝的電 梯多位繼電器控制系統(tǒng)”)、fpga/cpld的控制系統(tǒng)、微機控制系統(tǒng)。繼電器控 制系統(tǒng)由于可靠性差、故障率高、控制方式不靈活以及消耗功率大等缺點,目前 己逐漸被淘汰。微機控制系統(tǒng)雖然在智能控制方面有較強的功能,但也存在一些 缺陷,例如:抗擾性差,系統(tǒng)設計復雜,一般維修人員難以掌握其維修技術等。 fpga/cpld控制系統(tǒng)由于

8、具有設計和調試周期較短,抗干擾性強,運行可靠性高, 使用維修方便等優(yōu)點,而倍受人們的重視,己經成為目前在電梯控制系統(tǒng)中使用 最多的控制方式,同時也廣泛用于傳統(tǒng)繼電器控制系統(tǒng)的技術改造。一、fpga概述(一)fpge的定義fpga (field-programmable gate array),即現場可編程門陣列,它是在 pal、 gal, cpld等可編程器件的基礎上進一步發(fā)展的產物。它是作為專用集成電路 (asic)領域中的一種半定制電路而出現的,既解決了定制電路的不足,乂克服了 原有可編程器件門電路數有限的缺點。以硬件描述語言(verilog或vhdl)所完成的電路設計,可以經過簡單的綜

9、合與布局,快速的燒錄至fpga上進行測試,是現代1c設計驗證的技術主流。 這些可編輯元件可以被用來實現一些基本的邏輯門電路(比如and、or、xor、 not)或者更復雜一些的組合功能比如解碼器或數學方程式。在大多數的fpga 里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(flip flop)或者其他 更加完整的記憶塊。系統(tǒng)設計師可以根據需要通過可編輯的連接把fpga內部的邏輯塊連接起 來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品fpga的邏 輯塊和連接可以按照設計者而改變,所以fpga可以完成所需要的邏輯功能。fpga般來說比asic(專用集成電路)的速度要慢,實現同樣的

10、功能比asic 電路面積要大。但是他們也有很多的優(yōu)點比如可以快速成品,可以被修改來改正 程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的 fpga。因為這些芯片有比較差的可編輯能力,所以這些設計的開發(fā)是在普通的 fpga上完成的,然后將設計轉移到一個類似于asic的芯片上。另外一種方法是 用 cpld (complex programmable logic device,復雜可編程邏輯器件)。(二)fpge的特點1)采用fpga設計asic電路(專用集成電路),用戶不需要投片生產,就能 得到合用的芯片。2)fpga可做其它全定制或半定制asic電路的中試樣片。3)fpga內部

11、有豐富的觸發(fā)器和i/o引腳。4)fpga是asic電路中設計周期最短、開發(fā)費用最低、風險最小的器件之o5)fpga采用高速cmos工藝,功耗低,可以與cmos、ttl電平兼容。可以說,fpga芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。fpga是由存放在片內ram中的程序來設置其工作狀態(tài)的,因此,工作時需 耍對片內的ram進行編程。用戶可以根據不同的配置模式,采用不同的編程方式。加電時,fpga芯片將eprom中數據讀入片內編程ram中,配置完成后,epga 進入工作狀態(tài)。棹電后,fpga恢復成白片,內部邏輯關系消失,因此,fpga能 夠反復使用。fpga的編程無須專用的fpga編程

12、器,只須用通用的eprom、prom 編程器即可。當需要修改fpga功能時,只需換一片epkom即可。這樣,同一片 fpga,不同的編程數據,可以產生不同的電路功能。因此,fpga的使用非常靈 活。(三) fpga工作原理fpga采用了邏輯單元陣列l(wèi)ca (logic cell array)這樣一個概念,內部包 括可配置遷輯模抉clb (configurable logic block)、輸入輸出模抉10b (input output block)和內部連線(interconnect)三個部分。現場可編程門陣列(fpga) 是可編程器件,與傳統(tǒng)邏輯電路和門陣列(如pal, gal及cpld器件

13、)相比,epga 具有不同的結構。fpga利用小型查找表(16x1ram)來實現組合邏輯,每個查 找表連接到一個d觸發(fā)器的輸入端,觸發(fā)器再來驅動其他邏輯電路或驅動1/0, 由此構成了既可實現組合邏輯功能又可實現時序邏輯功能的基本邏輯單元模塊, 這些模塊間利用金屬連線互相連接或連接到1/0模塊。epga的邏輯是通過向內 部靜態(tài)存儲單元加載編程數據來實現的,存儲在存儲器單元中的值決定了邏輯單 元的邏輯功能以及各模塊之間或模塊與1/0間的聯接方式,并最終決定了 fpga 所能實現的功能,fpga允許無限次的編程。二、總體設計方案介紹(一)利用fpga/cpld進行電梯控制器設計的一般流程 通常歸納為

14、以下7個步驟。第1步:設計輸入。在傳統(tǒng)設計中,設計人員是應該傳統(tǒng)的原理圖輸入方法 來開始設計的。自90年代初,verilog、vhdl、ahdl等硬件描述語言的輸入方法 得到了廣大工程設計人員的認可。第2步:前仿真。所設計的電路必須在布局線前驗證,目的主要是在仿真時, 驗證電路功能是否有效。在asic設計中,這一步驟稱為第一次sign-off。第3步:設計輸入編譯。設計輸入之后就有一個從高層次系統(tǒng)行為設計向低 層次門級邏輯電路的轉化翻譯過程,即把設計輸入的某種或某兒種數據格式(網 表),以求達到與工藝無關。第4步:設計輸入的優(yōu)化。對于上述綜合生成的網表,根據布爾方程功能等 效的原則,用更小更快

15、的綜合結果替代一些復雜的單元,并與指定的庫映射生成 新的網表,這是硬件描述語言輸入方式中減小電路規(guī)模的一條必由之路。第5步:布局布線。當初步的仿真被驗證后,就開始布局布線。這一布局布 線和對規(guī)劃出asic和fpga/cpld的設計第6步:后仿真。設計人員需要利用在布局布線中獲得的更精確的rc參數 再次驗證電路的功能和時序。在asic設計中,這一步驟稱為第二次sign-off。第7步:流片。布局布線和后仿真完成之后,當需要大批量生產該芯片時, 就可以開始asic芯片的投產。(二)電梯控制器的系統(tǒng)設計方案1本次試驗主要完成4層電梯控制器的設計,實現原理主要利用eda層次設計 思想,運用quarui

16、sii軟件的操作方法,首先完成三個模塊的底層文件設計,此 三個模塊分別是控制器,報警器,顯示器(分別用vhdl語言程序作出后,并打 包成模塊):利用原理圖輸入設計的方法將此三個模塊做成整個控制器的設計。 原理框圖如圖2-1顯示器4層電梯投制器圖2-1模塊原理圖框圖其原理圖輸入如下:fiijtfut4> uating圖2-2原理圖設計圖(三)電梯控制器的系統(tǒng)設計方案2本次試驗試驗棊于fpga電梯控制器的設計流程主要完成4層電梯控制器的 設計,實現原理主要利用eda層次設計思想,運用quartusii軟件的操作方法, 首先完成兩個模塊的底層文件設計,此三個模塊分別是主控制器(超重警告,至ij

17、 達下樓信號,外人請求信號)、分頻器,最后分別用v11dl語言程序作出后,并 打包成模塊:利用原理圖輸入設計的方法將此三個模塊做成整個控制器的設計。 原理框圖如圖1-3分頻器c>狀態(tài)存儲,中一 央* 處# 理p 器c>電梯升、降邗'1關j亭摟層顯示超載、告警圖2-3電梯方向優(yōu)先控制方式控制系統(tǒng)方框圖三、單元模塊設計(一)電梯控制系統(tǒng)的設計在此本組采用方案(二),控制器的功能模塊如圖3-1所示,包括主控制器、 分控制器、樓層選擇器、狀態(tài)顯示器、譯碼器和樓層顯示器。乘客在電梯中選擇 所要到達的樓層,通過主控制器的處理,電梯開始運行,狀態(tài)顯示器顯示電梯的 運行狀態(tài),電梯所在的樓層

18、數通過譯碼器譯碼從而在樓層顯示器中顯示。分控制 器把有效的請求傳給主控的樓層數。由于分控制器相對簡單很多,所以主控制器 是核心部分。圖3-1電梯控制器原理框圖1、電梯控制器系統(tǒng)一般要求1)每層電梯入門處設有上下請求開關各1個,電梯a設有乘客到達層次的數 字開關。電梯當前所在的樓層位置用兩位數碼管顯示,用兩只發(fā)光二極管顯示開 門/關門狀態(tài),用發(fā)光二極管顯示每層的上下請求狀態(tài)。2)顯示電梯當前所處位置和電梯上行、下行及開門、關門狀態(tài)。3)電梯到達有??空菊埱蟮臉菍雍?,電梯門就會自動打開門指示燈亮,開 門6秒后,電梯門自動關閉(開門指示等滅)電梯繼續(xù)運行。4)能記憶電梯內外的所有請求信號,并按照電梯

19、運行的規(guī)則次第響應,即 電梯上升時只能響應高層的呼喚的請求,下降時只響應低層的呼喚請求,每個請 求信號保留到執(zhí)行后撤出。5)當沒有請求信號時,電梯停在一樓。6)電梯有超載提示。當電梯|aj部超載過電梯規(guī)定的人數或重量后,電梯會 自動報警,提示電梯已超載。(二) 電梯控制器系統(tǒng)組成及模塊設計介紹1、系統(tǒng)組成:該設計采用方向優(yōu)先控制方案方向優(yōu)先控制是指電梯運行到某一樓層吋先 考慮這一樓層是否有請求:有,則停止;無,則繼續(xù)前進。停下來后再啟動時 的步驟:考慮前方一一上方或下方是否有請求:有,則繼續(xù)前進;無,則停止; 檢測后方是否有請求,有請求則轉向運行,無請求則維持停止狀態(tài)。2、模塊設計(1) 設計

20、原理電梯升降原理是利用步進電機在控制器的驅動下旋轉閥定角度到達指定樓 層的即:高度h=rx o樓層數n=h + l式中l(wèi)為單位樓層的高度;r為步進電機的轉軸半徑;為步進電機旋轉的 角度。(2) 設計思想及設計方案解釋電梯升降控制的方法有多種,電機也是多種多樣,步進電機能準確的旋轉指 定角度并具有鎖死功能是一種理想的電梯驅動電機。本課程設計介紹的是用 fpga進行控制步進電機升降從而模擬出電梯的功能。本系統(tǒng)采用了多cpu協同操作,這樣簡化明晰了各個模塊的功能,便于調試 和維護。兩個大的模塊分別為:主控制器模塊(電梯外控制模塊,電梯內控制模 塊,中央運算模塊),分頻器模塊。電梯內、外控制模塊:完成

21、對電梯外部4個樓層的按鍵識別,并點亮與用戶 按鍵對應的指示燈通知用語系統(tǒng)己經接收按鍵請求。當接收到請求后,該模塊將 向中央運算器發(fā)送請求樓層信號,便于中央運算處理。同吋當電梯到達當前樓層 時該模塊還將熄滅相應的指示燈。中央運算模塊:負責對電梯外控制模塊,電梯內控制模塊,傳過來的信息進 行分類收集,按照給定的算法做出相的計算和任務調度,并將運算結果交由步進 電機控制模塊,同時,中央運算模塊將相應樓層送入液晶顯示器顯示。分頻器模塊:接受中央運算模塊的樓層和方向數據旋轉相應的轉數后停止, 發(fā)出作業(yè)完成信號等待中央運算模塊的再次調度上下行時間控制:電梯的行駛速度設定為常數,上下行一層需時2秒。用計 數

22、器count2控制。上電鎖控制:電梯有控制鎖,用lock信號表示。開鎖上電,鎖上時電梯不 能運行。電梯運行鎖用撥動開關代替,低電平上鎖,高電平解鎖。上電后初始化 系統(tǒng)各按鈕指示燈,內部變量。故障控制:電梯有重量限制,超重用一撥動開關代替,用overweight信號表 示,在關門時檢測,高電平有效,超載時電梯不能運行,直到超載信號被清除, 電梯內設有超載燈;電梯內設有事故報警trouble按鈕(通話器),用一撥動開 關代替,用trouble信號表示,高電平有效,任何時候報警時電梯不能繼續(xù)運行, 保持當前狀態(tài)不變,并有warning指示燈,信號保留至事故消除。電梯門控制:到達??繉訒r電梯門自動打開

23、,設有開關門led指示開關門情 況,用door表示。默認開門停留時間是6秒,電梯內設有手動開關門按鈕,可 以人為控制延長開門時間或立即關門。(3)設計方案總結1外部數據高速采集模塊設計外部信號采集、處理要求電梯控制器對外部請求信號的實時、準確采集準 確、實時的捕捉樓層到達信號;有防止樓層到達信號、外部請求信號的誤判。2)信號存儲模塊電梯控制器的請求輸入信號有27個(電梯外有9個上升請求和9個下降請 求的用戶輸入端口,電梯內有9個請求用戶輸入端口),由于系統(tǒng)對內、外請求 沒有設置優(yōu)先級,各樓層的內、外請求信號被采集后可先進行運算,再存到存儲 器內。3)基于fpga的中央處理模塊中央數據處理模塊是

24、系統(tǒng)的核心,通過對存儲的數據(含請求、到達樓層等 信號)進行比較、判斷以驅動系統(tǒng)狀態(tài)的流轉。電梯工作過程中共有9種狀態(tài): 等待、上升、下降、開門、關門、停止、休眠、超載報警以及故障報警狀態(tài)。一 般情況下,電梯工作起始點是第一層,起始狀態(tài)是等待狀態(tài),啟動條件是收到上 升請求。(三)模塊設計程序硬件分析和軟件分析1、電梯硬件控制模塊一外控制模塊電梯外控制模塊是負責收集電梯外部的人員按鍵和控制相應led燈亮滅的 模塊,考慮到每一層樓都會有向上和向下兩個運行方向,所以在4個樓層里一共 需要4個按鍵和4個led燈。而每個按鍵按下時會點亮亮對應的led燈,當電梯 到達該樓層時就熄滅該樓層對應運動方向的le

25、d燈。當燈熄滅的時候就表示電梯 己經執(zhí)行了相應的操作了。考慮到系統(tǒng)1/0資源有限。其模塊電路如閣3-2所示:ik1<|4 7ka' ialkta3a4a5ix)1)2 mcurru7 raorb6 rairb5 ra2kim ra3rb3 ra4rb2 ra5rbi vjwrbo 1 osc2vll? v» rcorc7 rcirc6 rc2rc5 rc3rc4 alpic161-873hh-2k272625242221vcc1)704do11'11 ll li ik<!7l>1nl>3lr|roi|rd2|rd3 |uikikikirix)i

26、kl<*3-2電梯外硬件電路2、電梯硬件控制模塊一內控制模塊電梯內控制模塊是負責收集電梯內部的人員按鍵和控制相應led燈亮滅的 模塊。它安裝在電梯內部,一共需要4個按鍵和4個led燈。而每個按鍵按下時 會點亮亮對應的led燈,當電梯到達該樓層時就熄滅該樓層的led燈。考慮到系 統(tǒng)i/o資源需求,4個按鍵值采用掛在portb 口。其模塊電路如閣3-3所示:u!>-w-13.1516ml ik rah rai ra2 ra5 ra4 ra5 細 uei m2 vtx> v»ni osci! rcd rci rc2 rc3 rixiri>1nr* 納 77"

27、;xitrw7 rb6 rb5 rh< hk5 kb2 kb i riki vix> vk40 b?二22少 仆ti,3? viriio_ii.rlbbijrt iwrc?rc6rc5rciri»ri>2?lb5k4p:ip p事 p p ipip亨,閣3-3電梯內硬件電路3、電梯硬件控制模塊一軟件設計 (1)主控制器的功能1) 完成4個樓層多用戶的載客服務控制。2) 電梯運行時顯示電梯的運行方向和所在的樓層。3) 當電梯到達選擇的樓層時,電梯自動幵門。4) 具有提前關電梯f j和延時關電梯門的功能。5) 響應分控制器的有效請求,如果到達有請求的樓層,電梯自動幵門。

28、 程序如下:library ieee;use ieee.std_logic_1164.all; use ieee.stdjogic一unsigned.all; use ieee.std_logic_arith.all; entity tenlift isport ( elk : in stdjogic;-時鐘信號 overweight,close,quick,clr: in stdjogic;-超載upl,up2,up3,up4,up5, up6, up7, up8, up9: in std_logic;電梯外人的上升 請求信號down2,down3,down4,down5,down6,dow

29、n7,down8,down9,downl0 : in stdjogic;-電梯外人的下降請求信號al,a2,a3,a4,a5,a6,a7,a8,a9,al0 : in stdjogic;-電梯內人的請求信號 gatel,gate2,gate3,gate4,gate5,gate6,gate7,gate8,gate9,gatel0 : in stdjogic;-到達樓層信號door: out std_logic_vector(l downto 0);-電梯門控制信號 led_c_f : out std_logic_vector(6 downto 0);-電梯所在樓層顯示 led_o_u:out s

30、td_logic_vector(9 downto 0);-電梯外人上升請求信號顯示 led_o_d:out std_logic_vector(9 downto 0);-電梯外人下降請求信號顯示 led_i_a : out std_logic_vector(9 downto 0);-電梯內請求信號顯豕 warning : out stdjogic;-看門狗報警信號up_down,overweight_warning : out stdjogic;-電梯運動方向顯不,超載警告信號up,down : out stdjogic );-電機控制信號和電梯運動end ;architecture oo of

31、 tenlift issignal inal/ina2,ina3/ina4,ina5,ina6,ina7,ina8,ina9,inal0:stdjogic;-電梯內人請求信號寄存信號signal upol,upo2,upo3,upo4,upo5,upo6,upo7,upo8,upo9:stdogic;-電梯夕卜人上升請求信號寄存信號signaldowno2,downo3,downo4,downo5,downo6,downo7,downo8,downo9,downol0:std_ logic;-電梯外人下降請求信號寄存信號signal q:integer range 0 to 1;signal

32、ql:integer range 0 to 6;signal q2:integer range oto 9;-看門狗計數器signal dd,cc_u,cc_d,dd_cc:stdogic_vector(9 downto 0); 電梯內外請求信號寄存器signal opendoor:stdjogic;-幵門信號 signal updown:std_logic;-電梯運動方向信號寄存器 signal en_up,en_dw:std_logic;-預上升、預下降使能信號 begincom:process(clk)beginif clk'event and clk=t thenif clr=

33、'o' then ql<=0;q2<=0;warning<='0,;-清除故障報警elsif overweight=,0, then overweight_warning<=t; ql<=0;-超載報警if ql>=3 then door<="10"else door<="00" end if;elsif q=l then q<=0;overweight_warning<=,0,; if q2=3 then warning<=t;-故障報警 elseif opend

34、oor=t then door<="10',;ql<=0;q2<=0;up<='0'down<='0,;-開門操作 elsif en_up=t then if close='0' then door<="10"ql<=0;q2<=q2+l;elsif quick='o' then ql<=3;-提前關門elsif ql=6 then door<="oon;updown<=t;up<=t;elsif ql>=3 th

35、en door<="01"ql<=ql+l;-電梯進入關門狀態(tài)else ql<=ql+l;door<="oor,;end if;elsif en_dw=t then -下降預操作 if close='0' then door<="10"ql<=0;q2<=q2+l; elsif quick:1。' then ql<=3;elsif ql=6 then door<=h00"updown<=,0,;down<='l,; elsif ql>

36、;=3 then door<="01,;ql<=ql+l; else ql<=ql+l;door<="oor,; end if;end if;if gatel='o' then led_c_f<="1001111n;-電梯到達 1 樓,數碼管顯示 1 if inal='o' or upol='0' then inal<=t; upol<=t;opendoor<=t;-有當前層的請求,則電梯進入開門狀態(tài)elsif dd_cc>"0000000001&quo

37、t; then en_up<='l' opendoor<='0'-有上升請求,則電梯進入預備上升狀態(tài)elsif dd_cc="0000000000n then opendoor<='0'-無請求時,電梯停在 1 樓待機 end if;elsif gate2='o' then led_c_f<="0100100"-電梯到達 2 樓,數碼管顯示 2 if updown='0* thenif ina2='o' or upo2='0' then

38、ina2<=t; upo2<=t; opendoor<=t;-有當前層的請求,則電梯進入開門狀態(tài)elsif dd_cc>"ooooooooll" then en_up<='l' opendoor<='0'-有上升請求,則電梯進入預備上升狀態(tài)elsif dd_cc<"oooooooolo" then en_dw<=t; opendoor<='0'-有下降請求,則電梯進入預備下降狀態(tài)end if;elsif ina2='o' or downo

39、2='0' then ina2<=t; downo2<=t;opendoor<=t;-電梯 前一運動狀態(tài)為下降,有當前層的請求,則電梯進入開門狀態(tài)elsif dd_cc<"0000000010" then en_dw<=t; opendoor<='0'-有下降請求,則電梯進入預備下降狀態(tài)elsif dd_cc>"0000000011" then en_up<='l' opendoor<='0'-有上升請求,則電 梯進入預備上升狀態(tài)end

40、if;elsif gate3='o' then led一cf<="0110000"-電梯到達 3 樓,數碼管顯示 3 if updown='0* thenif ina3='o' or upo3='0' then ina3<=t; upo3<=t;opendoor<=t; elsif dd_cc>"0000000111" then en_up<=t; opendoor<='0' elsif dd_cc<"0000000100&q

41、uot; then en_dw<=t; opendoor<=*0' end if;elsif ina3='o' or downo3='0' then ina3<=t; downo3<=t; opendoor<=t; elsif dd_cc<"0000000100" then en_dw<=t; opendoor<=*0' elsif dd_cc>"0000000111" then en_up<=t; opendoor<='0'

42、 end if;elsif gate4='o' then led_c_f<="0011001"-電梯到達 4 樓,數碼管顯示 4 if updown='0* thenif ina4='o' or upo4='0, then ina4<=t; upo4<='l' opendoor<=t; elsif dd_cc>"0000001111" then en_up<=t; opendoor<='0' elsif dd_cc<"

43、0000001000" then en_dw<=t; opendoor<=*0' end if;elsif ina4='o' or downo4='0' then ina4<=t; downo4<=t; opendoor<=t; elsif dd_cc<"0000001000" then en_dw<=t; opendoor<=*0' elsif dd_cc>"0000001111" then en_up<=t; opendoor<

44、='0' end if;elsif gate5='o' then led_c_f<="0010010"-電梯到達 5 樓,數碼管顯示 5 if updown='0* thenif ina5='o' or upo5='0, then ina5<=t; upo5<=t;opendoor<=t; elsif dd一cc"0000011111" then en_up<='l' opendoor<='0'elsif dd_cc<

45、"0000010000" then en_dw<=t; opendoor<=*0'end if;elsif ina5='o' or downo5='0' then ina5<=t; downo5<=t;opendoor<=t; elsif dd_cc<"0000010000" then en_dw<=t; opendoor<=*0' elsif dd一cc"0000011111" then en_up<='l' ope

46、ndoor<='0' end if;elsif gate6='o' then led_c_f<="0000010"-電梯到達 6 樓,數碼管顯示 6 if updown='0* thenif ina6='o' or upo6='0, then ina6<=t; upo6<=t; opendoor<=t; elsif dd一cc"0000111111" then en_up<='l' opendoor<='0' elsi

47、f dd_cc<"0000100000" then en_dw<=t; opendoor<=*0' end if;elsif ina6='o' or downo6='0' then ina6<=t; downo6<='l' opendoor<=t; elsif dd_cc<"0000100000" then en_dw<=t; opendoor<=*0' elsif dd一cc"0000111111" then en_

48、up<='l' opendoor<='0' end if;elsif gate7=*0' then led一cj<="1111000"-電梯到達 7 樓,數碼管顯示 7 if updown='0* thenif ina7='o' or upo7='0, then ina7<=t; upo7<='l' opendoor<='l' elsif dd一cc"0001111111" then en_up<='l

49、' opendoor<='0' elsif dd_cc<"0001000000" then en_dw<=t; opendoor<=*0' end if;elsif ina7='o' or downo7='0' then ina7<=t; downo7<='l' opendoor<=t; elsif dd_cc<"0001000000" then en_dw<=t; opendoor<=*0' elsif d

50、d一cc"0001111111" then en_up<='l' opendoor<='0' end if;elsif gate8='o' then led_c_f<="0000000"-電梯到達 8 樓,數碼管顯示 8 if updown='0* thenif ina8='o' or upo8='0, then ina8<=t; upo8<=t; opendoor<=t; elsif dd一cc"0011111111"

51、 then en_up<='l' opendoor<='0' elsif dd_cc<"0010000000" then en_dw<=t; opendoor<=*0'end if;elsif ina8='o' or downo8='0' then ina8<=t; downo8<='l' opendoor<=t; elsif dd_cc<"0010000000" then en_dw<=t; opendoo

52、r<=*0' elsif dd一cc"0011111111" then en_up<='l' opendoor<='0' end if;elsif gate9='o' then led一cf<="0010000"-電梯到達 9 樓,數碼管顯示 9 if updown='0* thenif ina9='o' or upo9='0, then ina9<=t; upo9<=t; opendoor<=t; elsif dd一cc&q

53、uot;0111111111" then en_up<='l' opendoor<='0' elsif dd_cc<"0100000000" then en_dw<=t; opendoor<=*0' end if;elsif ina9='o' or downo9='0' then ina9<=t; downo9<='l' opendoor<=t; elsif dd_cc<"0100000000" then

54、 en_dw<=t; opendoor<=*0' elsif dd一cc"0111111111" then en_up<='l' opendoor<='0' end if;elsif gatelo='o' then led_c_f<=" 1000000"if updown='0' then -電梯到達10樓,數碼管顯示0if inal0='0, or downol0='0* then inalo<=t; downolo<=t;

55、opendoor<=t; elsif dd_cc<" 1000000000" then en_dw<=t; opendoor<=*0' end if;else en_up<='0'en_dw<='0'-電梯進入上升或下降狀態(tài)end if;end if;end if;else q<=l;overweight_warning<='0'-清除超載報警if al=,0, then inal<=al;-對電梯內人請求信號進行檢測和寄存elsif a2='0'

56、then ina2<=a2;elsif a3='0' then ina3<=a3;elsif a4='o' then ina4<=a4;elsif a5='0' then ina5<=a5;elsif a6='o' then ina6<=a6;elsif a7='0, then ina7<=a7; elsif a8='o' then ina8<=a8; elsif a9='o' then ina9<=a9; elsif alo='o&#

57、39; then inalo<=alo; end if;if upl='o' then upol<=upl; elsif up2='o' then upo2<=up2; elsif up3='o' then upo3<=up3; elsif up4=l0l then upo4<=up4; elsif up5='o' then upo5<=up5; elsif up6='o' then upo6<=up6; elsif up7=,0, then upo7<=up7; e

58、lsif up8='o' then upo8<=up8; elsif up9='o' then upo9<=up9; end if;if down2='0, then downo2<=down2; elsif down3=,0, then downo3<=down3; elsif down4='0' then downo4<=down4; elsif down5=,0, then downo5<=down5; elsif down6='0' then downo6<=down6;

59、elsif down7=,0, then downo7<=down7; elsif down8='0' then downo8<=down8; elsif down9='0' then downo9<=down9; elsif downl0=,0, then downolo<=downlo; end if;dd<=inal0&ina9&ina8&ina7&ina6&ina5&ina4&ina3&ina2&inal;-電梯內人請求信號并置cc_u<=,0,&

60、amp;upo9&upo8&upo7&upo6&upo5&upo4&upo3&upo2&upol;-電梯外人上升請求信號并置cc_d<=downol0&downo9&downo8&downo7&downo6&downo5&downo4&downo3&downo2&,0,;dd cc<=dd or cc uorcc d;end if;up_down<=updown;led丄a<=dd;led o u<=cc u;led o d<

61、;=cc d;end if;end process;end oo;4、分頻制器的功能:1) 顯示電梯的運行狀態(tài)和所在的樓層。2) 顯示乘客的上升和下降請求。程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; entity fenping is port(clk50 : in stdjogic;clkl: out stdjogic);end ;architecture oo of fenping issignal co : stdjogic;beginprocess(clk50,c0)var

62、iable num : integer range 0 to 2; beginif(rising_edge(clk50) thenif(num=2) thennum:=0;co<=not co;elsenum:=num+l; end if; end if; clkl<=co; end process; end oo;5、系統(tǒng)誤差分析為了防止在測量過程中測距儀的抖動而引起的測量誤差,一般情況下應該測 量幾次而取其平均植。以上數據都是在閥定測距儀的情況下所測得的。但是由于 系統(tǒng)的分辨率為lus,系統(tǒng)引起的固定誤差約為0.3mm,再加上本設計只轉動角 度,而沒有考慮其它因素(如:摩擦等)

63、的影響,所以在測量的時候給測量結果 帶來了一定的誤差。從以上數據可見精度達到設計要求,并有實際使用價值。最后經過設計的基于pic單片機的電梯升降系統(tǒng)參數如下:§系統(tǒng)升降范圍14樓。§測量誤差<±lcm。§工作溫度范圍:常溫。§工作電壓范圍:510v。(四)頂層文件原理閣及其各部件仿真1、頂層文件原理閣.a圖3-4原理圖設計圖2、仿真波形閣 到達樓下信號仿真如閣op$彡 master time barp pt160 p n« 320 p nx 咖,0 nx 640 p m 800 .0艦,0 nx1 1卜0 ps圖3-5樓下信號仿真圖超重警告仿真如圖ma$le< time bor;opt小| pointer363 49 ns interval369.49 ns start:end

溫馨提示

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

最新文檔

評論

0/150

提交評論