基于FPGA的自動售貨機設(shè)計_第1頁
基于FPGA的自動售貨機設(shè)計_第2頁
基于FPGA的自動售貨機設(shè)計_第3頁
基于FPGA的自動售貨機設(shè)計_第4頁
基于FPGA的自動售貨機設(shè)計_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、畢業(yè)設(shè)計中文摘要基于FPGA的自動售貨機控制系統(tǒng)設(shè)計摘要: 隨著我國商品市場的不斷繁榮和城市現(xiàn)代化程度的不斷提高,自動售貨機也已悄然步入了我國的大中城市。豐富了中國的商業(yè)產(chǎn)業(yè)結(jié)構(gòu),開創(chuàng)了一個全新的自動銷售和自助服務(wù)時代。該課題將以EDA技術(shù)實現(xiàn)自動售貨機控制系統(tǒng)設(shè)計。應(yīng)用EDA技術(shù)實現(xiàn)的自動售貨機控制系統(tǒng),以其可減少商品開發(fā)周期,降低開發(fā)成本,增加設(shè)計一次性成功通過的可能性等優(yōu)點,使自動售貨機可開發(fā)性增強,成本降低。該課題包含兩部分:硬件系統(tǒng)設(shè)計和FPGA內(nèi)部電路的編程設(shè)計。FPGA內(nèi)部電路的編程設(shè)計采用硬件描述語言(VHDL)對自動售貨機的功能進行描述;選擇ALTERA公司的FPGA芯片為目

2、標器件。硬件系統(tǒng)設(shè)計是圍繞所選合適的FPGA器件的硬件電路設(shè)計。本文介紹了一種基于FPGA的自動售貨機的整體設(shè)計與工作原理,詳細闡述了投幣模塊,商品選擇模塊,主控模塊等模塊的軟件設(shè)計與實現(xiàn),對所設(shè)計的FPGA內(nèi)部功能進行仿真驗證。關(guān)鍵詞: FPGA EDA 自動售貨機 VHDL畢業(yè)設(shè)計外文摘要Title The Design of Vending machine control system based on FPGA AbstractWith the continuously prosperity of chinas commodity market and with the rapid d

3、evelepment of modernization level , vending machines has enterd into large and medium-sized cities quietly ,it enriches chinas commercial industrial structure and creates a new era of automatic selling and self-service.This subject will accomplish the control system of vending machine with EDA techn

4、ology.Since it has the advantages of shortening product development cycle,reducing product develepment cost , increasing the possibility of first-time success and so on,it can enhence the exploitability of aotomatic machinea and lower the costs. The issue consists of two parts: hardware system desig

5、n and fpga internal circuit design. Fpga internal circuit design uses hardware describe language ( vhdl ) to describe the fuction of vending machine; and fpga chip of ALTERA Corporation is choosen for the target device. Hardware system design is a hardware circuit design that center on the selected

6、appropriate fpga device. and the design of the internal functions of FPGA is simulated.Keywords: FPGA EDA vending machine VHDL 目 次1 引言 21.1 自動售貨機的歷史21.2 自動售貨機的研究現(xiàn)狀31.3 未來的發(fā)展和研究方向31.4 本文的章節(jié)安排42 關(guān)鍵技術(shù) 52.1 EDA技術(shù)52.2 可編輯邏輯器件 52.3 vhdl描述語言 52.4 相關(guān)技術(shù)的發(fā)展與應(yīng)用情況63 硬件系統(tǒng)的設(shè)計 83.1 芯片的選擇 83.2 時鐘發(fā)生器 93.3 電源電路103.4

7、硬件鍵盤103.5 下載驅(qū)動器以及存儲器的設(shè)計113.6 顯示器設(shè)計113.7 硬件電路圖124 軟件系統(tǒng)設(shè)計124.1 設(shè)計思想134.2 軟件設(shè)計14結(jié)論35參考文獻36致謝37 附錄381 引言自動售貨機是能根據(jù)投入的錢幣自動付貨的機器。自動售貨機是商業(yè)自動化的常用設(shè)備,它不受時間、地點的限制,能節(jié)省人力、方便交易。一般的自動售貨機由錢幣裝置、指示裝置、貯藏售貨裝置等組成。錢幣裝置是售貨機的核心,其主要功能是確認投入錢幣的真?zhèn)?,分選錢幣的種類,計算金額。如果投入的金額達到購買物品的數(shù)值即發(fā)出售貨信號,并找出余錢。指示裝置用以指示顧客所選商品的品種。貯藏售貨裝置保存商品,接收出售指示信號,

8、把顧客選擇的商品送至付貨口。一般售貨機的錢幣裝置由投幣口、選別裝置、確認錢幣真?zhèn)蔚臋z查裝置、計算金額的計算裝置和找錢裝置組成。70年代以來,出現(xiàn)了采用微型計算機控制的各種新型自動售貨機和利用信用卡代替錢幣并與計算機連接的更大規(guī)模的無人售貨系統(tǒng),如無人自選商場、車站的自動售票和檢票系統(tǒng)、銀行的現(xiàn)金自動支付機等。從西歐、北美、日本和韓國等地區(qū)和國家的情況來看,自動售貨機在人們?nèi)粘I钪邪缪菰絹碓街匾慕巧?962年,出現(xiàn)了以自動售貨機為主體的流通領(lǐng)域的革命。到了20世紀80年代,自動售貨機在美國和日本被廣泛使用,后逐漸散布世界各地,主要是發(fā)達國家。其產(chǎn)品特點是科技含量高;24 小時服務(wù),售貨便利

9、;無需專人盯守,省人工,省成本;售貨范圍廣泛;此外還是一種新穎獨特的廣告媒體。目前,隨著移動商務(wù)的發(fā)展,自動售貨機作為一種方便、直觀的移動商務(wù)工具,開始在全球各地迅速普及和發(fā)展。1.1 自動售貨機的歷史自動售貨機是一種全新的商業(yè)零售形式,20世紀70年代自日本和歐美發(fā)展起來。它又被稱為24小時營業(yè)的微型超市。在日本,70的罐裝飲料是通過自動售貨機售出的。全球著名飲料商可口可樂公司在全世界就布有50萬臺飲料自動售貨機。 在日本全國各地,共設(shè)有550萬臺自動售貨機(據(jù)1998年的統(tǒng)計),銷售額達6兆8969億4887萬日元,為世界第一。在售貨機的顯示屏幕上進行操作,輸入商品號碼和購買數(shù)量,并投入錢

10、幣后,商品就會從取貨口出來,甚至從食品自動售貨機上還能買到熱呼呼的面條和米飯團。雖然日本的自動售貨機總臺數(shù)低于美國(據(jù)1997年的統(tǒng)計為689萬臺),但是,從人口占有數(shù)來看卻是世界上最高的,美國平均35人占有一臺,而日本為23人占有一臺。 1.2 自動售貨機的研究現(xiàn)狀現(xiàn)在,自動售貨機產(chǎn)業(yè)正在走向信息化并進一步實現(xiàn)合理化。例如實行聯(lián)機方式,通過電話線路將自動售貨機內(nèi)的庫存信息及時地傳送各營業(yè)點的電腦中,從而確保了商品的發(fā)送、補充以及商品選定的順利進行。并且,為防止地球暖化,自動售貨機的開發(fā)致力于能源的節(jié)省,節(jié)能型清涼飲料自動售貨機成為該行業(yè)的主流。在夏季電力消費高峰時,這種機型的自動售貨機即使在

11、關(guān)掉冷卻器的狀況下也能保持低溫,與以往的自動售貨機相比,它能夠節(jié)約1015的電力。進入21世紀時,自動售貨機也將進一步向節(jié)省資源和能源以及高功能化的方向發(fā)展。 自動售貨咖啡機是一種既可以出冷熱咖啡也可以同時出奶茶果汁飲料的咖啡飲料自動售貨機,省時方便快捷。既可以作投資來使用,也可作為員工福利來使用。1.3 未來發(fā)展和研究方向隨著科技的發(fā)展及人們生活水平的提高,自動售貨機市場的發(fā)展呈現(xiàn)出多元化及個性化的需求,通過自動售貨機進行自助購物正逐漸成為市民的一種新的消費時尚和追求高品質(zhì)生活的需要。傳統(tǒng)的自動售貨機控制系統(tǒng)采用單片機作為控制核心,不僅需要在輸入輸出接口上做大量的工作,而且系統(tǒng)的抗干擾性也比

12、較差。FPGA 具有可靠性高、編程簡單、維護方便等優(yōu)點,已在工業(yè)控制領(lǐng)域得到廣泛應(yīng)用?,F(xiàn)如今長生了基于了一種用FPGA 實現(xiàn)的自動售貨機主控制系統(tǒng)的硬件設(shè)計和軟件設(shè)計,通過此次畢業(yè)設(shè)計闡述了基于FPGA的自動售貨機的控制系統(tǒng)設(shè)計并進行了軟件仿真和硬件設(shè)計實驗,實驗表明該控制系統(tǒng)是可行的?,F(xiàn)在,自動售貨機產(chǎn)業(yè)正在走向信息化并進一步實現(xiàn)合理化。例如實行聯(lián)機方式,通過電話線路將自動售貨機內(nèi)的庫存信息及時地傳送各營業(yè)點的電腦中,從而確保了商品的發(fā)送、補充以及商品選定的順利進行。并且,為防止地球暖化,自動售貨機的開發(fā)致力于能源的節(jié)省,節(jié)能型清涼飲料自動售貨機成為該行業(yè)的主流。在夏季電力消費高峰時,這種機

13、型的自動售貨機即使在關(guān)掉冷卻器的狀況下也能保持低溫,與以往的自動售貨機相比,它能夠節(jié)約1015的電力。進入21世紀時,自動售貨機也將進一步向節(jié)省資源和能源以及高功能化的方向發(fā)展。作為一種商務(wù)工具,自動售貨機在生活中應(yīng)用愈加廣泛,綜合分析現(xiàn)代自動售貨機的研究現(xiàn)狀和研究重點,以及自動售貨機所處的市場現(xiàn)狀和對社會的影響,根據(jù)日本、美國等國家的經(jīng)驗,自動售貨機將在全球范圍內(nèi)得到更大的普及。自動售貨機的機體內(nèi)部結(jié)構(gòu)已經(jīng)相當完善,影響其普及的關(guān)鍵因素為:如何在現(xiàn)有的各種通信網(wǎng)絡(luò)平臺上,讓自動售貨機形成一種銷售連鎖網(wǎng),為其提供更方便的營銷方式和管理機制,以其最大限度地降低生產(chǎn)、運營成本。目前,無論是基于In

14、ternet還是基于移動通信網(wǎng)或其他網(wǎng)絡(luò)平臺,其運作的機制都不太成熟,不過這并不影響自動售貨機的發(fā)展?jié)摿?。因?自動售貨機未來的發(fā)展趨勢是將其納入到一個更廣闊、更便利的移動商務(wù)網(wǎng)絡(luò)平臺。1.4 本文的章節(jié)安排本文第一章為總體描述自動售貨機的歷史以及研究現(xiàn)狀等相關(guān)知識,第二章主要介紹本課題所應(yīng)用的關(guān)鍵技術(shù),第三章主要描述本課題所設(shè)計的自動售貨機控制系統(tǒng)的相關(guān)硬件設(shè)計,第四章主要闡述本課題的軟件系統(tǒng)的各個模塊以及仿真。附錄將指出本課題所用到的相關(guān)文獻以及所需要的硬件元器件。2 關(guān)鍵技術(shù)系統(tǒng)所應(yīng)用到的技術(shù)有可編程邏輯器件及EDA技術(shù),應(yīng)用VHDL語言實現(xiàn)自動售貨機控制系統(tǒng)的設(shè)計,應(yīng)用PROTEL軟件

15、輔助完成硬件系統(tǒng)設(shè)計。2.1 EDA技術(shù)EDA是電子設(shè)計自動化(Electronic Design Automation)的縮寫,是一種以計算機為基礎(chǔ)的工作平臺;是利用電子技術(shù),計算機技術(shù),智能化技術(shù)等多種應(yīng)用學科的最新成果,開發(fā)出的一整套電子CAD(計算機輔助設(shè)計)軟件;是一種幫助電子設(shè)計工程師從事電子元件產(chǎn)品和系統(tǒng)設(shè)計的綜合技術(shù)。EDA技術(shù)就是以計算機為工具,設(shè)計者在EDA軟件平臺上,用硬件描述語言HDL完成設(shè)計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計的效

16、率和可操作性,減輕了設(shè)計者的勞動強度。2.2 可編程邏輯器件FPGA(FieldProgrammable Gate Array),即現(xiàn)場可編程門陣列,是實現(xiàn)EDA的主流器件,他的特點是直接面向用戶,具有極大的靈活性和通用性,使用方便,硬件測試和實現(xiàn)快捷,開發(fā)效率高,成本低,上市時間短,技術(shù)維護簡單,工作可靠性強等。 關(guān)于FPGA芯片的選擇將在下文進行介紹。2.3 VHDL描述語言VHDL ( very high speed integrated circuit hard2ware descrip tion language)是指超高速集成電路硬件描述語言。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行

17、為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式,以及描述風格與句法,類似于一般的計算機高級語言,如C語言。VHDL的程序結(jié)構(gòu)特點是,將一項工程設(shè)計或稱設(shè)計實體(可以是一個元件、一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,即端口)和內(nèi)部(或稱不可視部分) 。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點。2.4 相關(guān)技術(shù)的發(fā)展與應(yīng)用情況1)FPGA的應(yīng)用FPGA的應(yīng)用可分為三個層面:電路設(shè)計,產(chǎn)品設(shè)計,系統(tǒng)設(shè)計。(1)電路設(shè)計中FPGA的應(yīng)用連接邏輯,控制邏輯是FPGA早

18、期發(fā)揮作用比較大的領(lǐng)域也是FPGA應(yīng)用的基石。事實上,在電路設(shè)計中應(yīng)用FPGA的難度還是比較大的,這要求開發(fā)者要具備相應(yīng)的硬件知識(電路知識)和軟件應(yīng)用能力(開發(fā)工具)。這方面的人才總是緊缺的,往往都從事新技術(shù),新產(chǎn)品的開發(fā)。成功的產(chǎn)品將變成市場主流基礎(chǔ)產(chǎn)品,供產(chǎn)品設(shè)計者應(yīng)用。在不遠的將來,通用和專用IP的設(shè)計將成為一個熱門行業(yè)。 (2)產(chǎn)品設(shè)計把相對成熟的技術(shù)應(yīng)用到某些特定領(lǐng)域如通訊,視頻,信息處理等等,開發(fā)出滿足行業(yè)需要并能被行業(yè)客戶接受的產(chǎn)品。這方面主要是FPGA技術(shù)和專業(yè)技術(shù)的結(jié)合問題,此外,關(guān)與專業(yè)客戶的界面問題,產(chǎn)品設(shè)計分為專業(yè)工具類產(chǎn)品及民用產(chǎn)品,前者重點在性能,后者對價格敏感,

19、產(chǎn)品設(shè)計以實現(xiàn)產(chǎn)品功能為主要目的。在這個領(lǐng)域FPGA技術(shù)是一個實現(xiàn)手段,F(xiàn)PGA因為具備接口,控制,功能IP,內(nèi)嵌CPU等特點,有條件實現(xiàn)一個構(gòu)造簡單,固化程度高,功能全面的系統(tǒng)產(chǎn)品設(shè)計,這將是FPGA技術(shù)應(yīng)用最廣大的市場。 (3)系統(tǒng)級應(yīng)用系統(tǒng)級的應(yīng)用是FPGA與傳統(tǒng)的計算機技術(shù)結(jié)合,實現(xiàn)一種FPGA版的計算機系統(tǒng):如用XilinxV-4, V-5系列的FPGA,實現(xiàn)內(nèi)嵌POWERPCCPU, 然后再配合各種外圍功能,實現(xiàn)一個基本環(huán)境,在這個平臺上跑LINIX等系統(tǒng),這個系統(tǒng)也就支持各種標準外設(shè)和功能接口(如圖像接口)了。這對于快速構(gòu)成FPGA大型系統(tǒng)來講是很有幫助的。2)EDA的應(yīng)用利用E

20、DA工具,電子設(shè)計師可以從概念、算法、協(xié)議等開始設(shè)計電子系統(tǒng),大量工作可以通過計算機完成,并可以將電子產(chǎn)品從電路設(shè)計、性能分析到設(shè)計出IC版圖或PCB版圖的整個過程,在計算機上自動處理完成?,F(xiàn)在對EDA的概念或范疇用得很寬。在機械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學、軍事等各個領(lǐng)域,都有EDA的應(yīng)用。目前EDA技術(shù)已在各大公司、企事業(yè)單位和科研教學部門廣泛使用。例如在飛機制造過程中,從設(shè)計、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術(shù)。3 硬件系統(tǒng)的設(shè)計本控制系統(tǒng)的硬件外圍設(shè)備分為:外部存儲器,外部電源,晶振信號發(fā)生器,以及FPGA芯片,LED外部顯示燈,出貨裝置。3.1

21、芯片的選擇 本文所用到的FPGA芯片為,Altera生產(chǎn)的EPF10K10LC84 芯片,EPF10K10LC84-4是一種復(fù)雜可編程邏輯器件,另外還有其它類型的管腳和封裝,選擇性強。FLEX10K組成及特點: FLEX10K主要由嵌入式陣列塊、邏輯陣列塊、快速通道(FastTrack)和I/O單元四部分組成。其中邏輯陣列塊由多個邏輯單元構(gòu)成。FLEX10K系列采用重復(fù)可構(gòu)造的CMOS SRAM工藝,把連續(xù)的快速通道互連與獨特的嵌入式陣列結(jié)構(gòu)相組合,同時也結(jié)合了眾多可編程器件的有點來完成普通門陣列的宏功能。每個FLEX 10K器件包括一個嵌入式陣列和一個邏輯陣列,它能讓設(shè)計人員輕松地開發(fā)出存儲

22、器、數(shù)字信號處理器以及特殊邏輯等強大功能于一身的芯片。該芯片具有的多電壓功能可以全面支持以不同電壓工作的產(chǎn)品。FLEX10K10主要特點如下:(1)它是工業(yè)世界的第一種嵌入式可編程邏輯器件,提供了在單個器件中的系統(tǒng)集成,具有實現(xiàn)宏函數(shù)的嵌入式陣列和實現(xiàn)普通功能的邏輯陣列;(2)高密度,它具有10000150000個可用門,高達40960位內(nèi)部RAM;(3)系統(tǒng)支持多電壓IO接口;(4)低功耗,系統(tǒng)維持狀態(tài)小于0.5mA;(5)靈活的內(nèi)部連接,快速、可預(yù)測連線延時的快速通道連續(xù)式分布結(jié)構(gòu);(6)增強功能的IO引腳,每個引腳都有一個獨立的三臺輸出使能控制和每個IO引腳都有漏極開路選擇;FLEX10

23、K引腳簡介EPF10K10有84I/O口,其豐富的IO資源,適用于速度要求高或需要較多的I/O引腳電路或系統(tǒng)中適用。其I/O引腳能夠兼容5V 3.3V 2.5V等接口標準,具體的IO引腳與對應(yīng)的引腳序號如表3-1所示:表3-1 I/O引腳對應(yīng)的引腳序號引腳名稱引腳編號引腳名稱引腳編號引腳名稱引腳編號引腳名稱引腳編號I/O716I/O1728I/O2749I/O3762I/O817I/O1829I/O2850I/O3864I/O918I/O1930I/O2951I/O3965I/O1019I/O2035I/O3052I/O4066I/O1121I/O2136I/O3153I/O4167I/O12

24、22I/O2237I/O3254I/O4371I/O1323I/O2338I/O3358I/O4472I/O1424I/O2439I/O3459I/O1525I/O2547I/O3560I/O1627I/O2648I/O3661FLEX 10K10主要由84個引腳組成,各引腳對應(yīng)的引腳名如圖3.1所示:圖3.1 各引腳對應(yīng)的引腳名稱 3.2 時鐘發(fā)生器自動售貨機的控制系統(tǒng)需要一個時鐘信號,我們選用的是6MHz的時鐘信號,時鐘發(fā)生器如圖3.2所示。其中用兩個振蕩器以及兩個電阻可以完成我們所需要的設(shè)定。圖 3.2 時鐘發(fā)生器3.3 電源電路日常所用到的電源為220V電壓的電源,但是本課題中自動售貨

25、機所需要的電壓為5V,因此我們需要設(shè)定一個變壓電路來完成所需的電壓。在這部分電路我們用到了一個變壓器,一個整流橋,一個濾波電路,一個穩(wěn)壓器完成為5V電壓的電源。電源電路如圖3.3所示。 圖3.3 電源電路3.4 鍵盤的設(shè)計為了完成購物自動售貨機必須有購物鍵,本課題所要求的是五個按鍵,其中四個是商品選擇鍵(熱狗,飲料,漢堡,雙層漢堡),剩下的一個按鍵為初始按鍵。關(guān)于輸入按鍵的信號發(fā)生情況將在下文中的軟件系統(tǒng)設(shè)計中闡述,這里就不多敘述,按鍵選用的是SW_PB,按鍵的硬件部分如圖3.4所示。圖 3.4 選擇鍵的設(shè)計3.5 下載驅(qū)動器以及外擴存儲器電路設(shè)計自動售貨機需要跳電存儲功能,因此需要在FPGA

26、芯片外接一個存儲器,另由于控制器需要下載驅(qū)動,因此需要外接一個驅(qū)動下載以及外接存儲器,如圖3.5所示。此裝置能夠順利完成下載驅(qū)動以及跳電存儲功能。圖 3.5 下載驅(qū)動與外接存儲器3.6 顯示器設(shè)計自動售貨機需要一個顯示燈,當購物結(jié)束后顯示器顯示找零錢數(shù)額。對于顯示器的顯示數(shù)字情況,將在下文軟件系統(tǒng)中的顯示模塊進行闡述。顯示器如圖3.6所示。圖 3.6 顯示器3.7 硬件電路圖本論文的重點在于對控制系統(tǒng)的設(shè)計,因此,我們只關(guān)注控制信號以及信號發(fā)生后出現(xiàn)的結(jié)果,對于自動售貨機的電動機不做太多的討論。自動售貨機的硬件電路圖見附錄。4 軟件系統(tǒng)設(shè)計軟件系統(tǒng)分為總體思想與模塊的分類。4.1 設(shè)計思想4.

27、1.1 功能要求(1)該系統(tǒng)能完成對貨物信息的存儲、進程控制、錢幣處理、余額計算和顯示功能。 (2)自動售貨機能夠銷售4種商品:熱狗(1元),漢堡包(4元),雙層漢堡包(8元),飲料(3元)數(shù)量無限。自動售貨機允許投入1元,2元,5元硬幣:當總幣值等于顧客需要的商品單價時,機器送出需要的商品:若總幣值大于顧客需要的商品單價時,機器除提供所需商品外,并將余幣退出;若總幣值小于顧客需要的商品單價時,機器退出顧客投入的硬幣。設(shè)機器內(nèi)1元和2元的找零硬幣無限。(3)如果投入的硬幣達到或大于所購商品的價格,自動售貨機會發(fā)出一個指示信號使接受硬幣的裝置不再接收新的硬幣。(4)每次投幣的時間有限制,不得超過

28、30秒,在時間到時,總幣值不足顧客購買的商品單價時,自動售貨機按不足錢數(shù)處理,退還全部硬幣?;蛘咴谠O(shè)定時間內(nèi),總幣值不足顧客購買的商品單價時,若需要取消交易則可按取消鍵,售貨機按不足錢數(shù)處理,退還全部硬幣。(5)當顧客完成一次購買后或按錯按鈕后,需要設(shè)置一個重新開始按鈕,使整個系統(tǒng)恢復(fù)到初始狀態(tài)。(6)顧客一次只能購買一種商品的一個,若需要更多商品,需要重復(fù)操作。4.1.2 總體思想自動售貨機包括四個商品,依據(jù)四種商品分別設(shè)為四個按鈕,A1,A3,A4,A8。當顧客選擇其中的一種商品時,售貨機發(fā)送出一個信號按鈕不再生效,用一個LED燈顯示。設(shè)置三個按鈕:a1,a2,a5來表示投入的硬幣是1元、

29、2元、5元。當顧客投入的硬幣大于或等于售價時將不再接受硬幣,用一個LED燈顯示。當顧客確定某種商品且投入了足額的硬幣,投幣時限到時,投幣窗口找零,用七段顯示管顯示找零數(shù),同時送出商品,指示燈out亮。4.1.3 控制狀態(tài)的設(shè)計此售貨機分為三種狀態(tài),每一個狀態(tài)能完成一定得功能:初始狀態(tài),投幣狀態(tài),找零狀態(tài)。(1)初始狀態(tài):當售貨機通電后進入初始狀態(tài),顧客購買時,可根據(jù)選擇xuan_rg,xuan_yl,xuan_hb,xuan_schb鍵購買商品,從而進入下一狀態(tài)。當顧客購買錯誤或不再購買時按下start重新進入初始狀態(tài)。(2)投幣狀態(tài):在這個狀態(tài)時xuan_rg,xuan_yl,xuan_hb

30、,xuan_schb鍵失效。投入錢(1元,2元,5元),當投入硬幣等于或者超過商品價格時進入下一狀態(tài)。投幣時間為30秒超過30秒,售貨機拒絕接受錢幣。 (3)找零狀態(tài):投幣結(jié)束,售貨機自動判別總錢數(shù),若在時限到來之際,總錢數(shù)少于顧客所需商品的單價,則退出錢幣,用LED顯示退錢數(shù)。若大于或等于商品數(shù)則通過控制系統(tǒng)找零,用LED顯示找零數(shù),送出商品。出貨找零,表示一次工作已經(jīng)結(jié)束,等待下一個信號到來,進行新的售貨。4.1.4 設(shè)計流程圖是是否否否是一元貨物2元貨3元貨投幣計算金額金額>物價繼續(xù)投幣確認購買出貨找零退幣結(jié)束4元貨開始圖 4.1 流程圖4.2 模塊分類此售貨機模塊包括:投幣處理模

31、塊,商品選擇模塊,投幣模塊,分頻模塊,控制器模塊,計時模塊,LED燈顯示模塊,找零模塊,出貨模塊,如圖4.2所示。圖 4.2 模塊示意圖4.2.1 投幣模塊自動售貨機能夠自動計算投入的錢幣數(shù)目,需要提供一個寄存器來記錄并保存投入的總幣值。此模塊有六個輸入信號以及兩個輸出信號:qian1,qian2,qian5為不同數(shù)額錢幣輸入信號;en1為主控模塊所發(fā)出的信號,當en1信號為1的時候,投幣模塊開始工作;reset為恢復(fù)初始信號,當reset信號為1 的時候投幣模塊不進行工作;en為給計時器的輸出信號,當en為1的時候計時器開始工作;bi為輸出的錢幣數(shù)目。如圖4.2所示。投幣模塊的作用相當于一個

32、計數(shù)的寄存器,在清零的狀態(tài)下可以準確的計算投幣數(shù)額,記錄并保存總幣值。圖 4.2. 投幣模塊投幣模塊主要程序如下:library ieee;use ieee.std_logic_1164.all;entity toubi is port (a1,a2,a5,en1,clk,reset:in std_logic; bi :out integer range 0 to 15; en: out std_logic); end toubi;architecture a of toubi issignal state:integer range 0 to 1;beginprocessvariable q

33、ian:integer range 0 to 15;beginwait until clk='1'and clk' event;if reset='1' then state<=0;bi<=0;qian:=0;en<='0'elsecase state iswhen 0=>if en1='1' then if a1 ='1' then state<=1;bi<=1;qian:=1;en<='1'elsif a2='1' then st

34、ate<=1;bi<=2; qian:=2;en<='1'elsif a5='1' then state<=1;qian:=5;bi<=5;en<='1'end if;end if;when 1=>if en1='1' then if a1='1' then qian:=qian+1;bi<=qian;en<='1'elsif a2='1' then qian:=qian+2;bi<=qian;en<='1&#

35、39;elsif a5='1' then qian:=qian+5;bi<=qian;en<='1'end if;end if;end case;end if;end process;end a;通過程序所得到的仿真圖如下所示:1 當reset輸入為0,輸入5元,2元,1元時,輸出結(jié)果為7。仿真結(jié)果如圖4.3所示:圖4.3 reset輸入為0時的仿真結(jié)果2 當reset輸入為1時,輸入5元,2元,1元,bi輸出應(yīng)為0。仿真結(jié)果如圖4.4所示:圖 4.4 reset輸入為1時的仿真結(jié)果4.2.2 商品選擇模塊自動售貨機的商品選擇模塊,通過自動售貨機上的

36、四個選擇按鍵完成商品選擇,在接收到對應(yīng)四個商品之一的一個選擇信號時進行編譯,將被選擇的商品進行編碼,輸入到主控模塊中,在主控模塊中與所接受的錢幣進行對與計算。輸入信號為a1,a2,a3,a8。而xuan_rg,xuan_hb,xuan_yl,xuan_schb為四個輸出信號,與出貨模塊連接。reset 與en2信號來自主控模塊,當reset為1時模塊進入初始狀態(tài),進行選擇。當en2為1時,商品可以進行選擇,當en2為0時,四個商品選擇鍵無效。商品選擇模塊如圖4.5 所示。圖 4.5 商品選擇模塊商選擇模塊主要程序如下:LIBRARY ieee;USE ieee.std_logic_1164.A

37、LL;ENTITY yima ISPORT ( a1,a3,a4,a8,en2,reset : INSTD_LOGIC;xuan_rg,xuan_yl,xuan_hb,xuan_schb:OUT STD_LOGIC; d: OUT integer range 0 to 8 );END yima;ARCHITECTURE a OF yima ISBEGINprocess(a1,a3,a4,a8)beginif reset='0' thenif a1='1' and en2='1' then d<=1;xuan_rg<='1

38、9; xuan_yl<='0'xuan_hb<='0'xuan_schb<='0'elsif a3='1'thend<=3;xuan_yl<='1'xuan_rg<='0'xuan_hb<='0'xuan_schb<='0'elsif a4='1' and en2='1' then d<=4; xuan_hb<='1'xuan_yl<='0'

39、;xuan_schb<='0'elsif a8='1' and en2='1' then d<=8;xuan_schb<='1'xuan_yl<='0'xuan_rg<='0'xuan_hb<='0'else d<=0;xuan_schb<='0'xuan_yl<='0'xuan_rg<='0'xuan_hb<='0'end if;else d<=0

40、;xuan_schb<='0'xuan_yl<='0'xuan_rg<='0'xuan_hb<='0'end if;end process;END a;通過程序所得仿真結(jié)果如下:1 當reset輸入為1,en2輸入為0,a8輸入為1時,d輸出應(yīng)當為0,仿真結(jié)果如圖4.6所示: 圖 4.6 reset輸入為1,en2輸入為0,a8輸入為1時的仿真結(jié)果2 當reset輸入為0,en2輸入為0,a8輸入為1時,d輸出為0,仿真結(jié)果如圖4.7所示:圖4.7 reset輸入為0,en2輸入為0,a8輸入為1時的仿真結(jié)

41、果3 當reset輸入為0,en2輸入為1,a8輸入為1時,d輸出為8,xuan_schb輸出為1,仿真結(jié)果如圖4.8所示:圖4.8 en2輸出為2時的仿真結(jié)果4.2.3 分頻模塊分頻模塊是用來將外來的時鐘信號進行分頻,有硬件系統(tǒng)已經(jīng)知道,選用的時鐘信號是由外部的6MHZ的晶振提供的,通過分頻模塊進行分頻以后將得到周期為1HZ的信號。由于仿真所需時間過長,本文選擇100.0ns為一周期的信號,分頻后為6.0us為一周期的信號,時鐘輸入信號為clk,輸出信號為newclk,分頻模塊如圖4.9所示。圖4.9 分頻模塊分頻模塊主要程序如下:LIBRARY IEEE;USE IEEE.STD_LOGI

42、C_1164.ALL;ENTITY fenpi ISPORT(CLK:IN STD_LOGIC; NEWCLK:OUT STD_LOGIC);END fenpi;ARCHITECTURE a OF fenpi IS SIGNAL Q:INTEGER RANGE 0 TO 14; SIGNAL DIVCLK: STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN IF Q < 14 THEN Q <=Q+1; ELSE DIVCLK <= NOT DIVCLK;Q <=0

43、; END IF; END IF; END PROCESS;NEWCLK <= DIVCLK;END a;通過程序所得到的仿真結(jié)果如下:當clk第15輸出為上升沿時,newclk輸出為1,仿真結(jié)果如圖4.10所示:圖 4.10 newclk輸出為1時的仿真結(jié)果4.2.4 計數(shù)模塊 由于課題要求自動售貨機控制系統(tǒng)有定時系統(tǒng),并限定在30s內(nèi)完成投幣,30s之后投幣無效,因此需要設(shè)定一個計數(shù)模塊對投幣時間進行限制。en為接受信號,當投幣開始時投幣模塊發(fā)出信號,計數(shù)模塊開始工作,當計數(shù)到30時向控制模塊發(fā)出t信號。Clr為控制器發(fā)送給計數(shù)模塊的一個信號,當clr為1時,計數(shù)器歸零。Clk為分頻

44、模塊發(fā)送的時鐘信號。計數(shù)模塊如圖4.11所示。圖4.11 計數(shù)模塊計數(shù)模塊主要程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishu isport(clk,en,clr: in std_logic; t: out std_logic);end jishu; architecture a of jishu is signal bcd1n: std_logic_vector(3 downto 0); signal bcd10n: std_logic_vector(2 dow

45、nto 0);begin process(clk,clr,en) begin if (clr='1') then bcd1n<="0000" elsif(clk'event and clk='1') then if (en='1') then if (bcd1n="1001") then bcd1n<="0000" else bcd1n<=bcd1n+'1' end if; end if; end if; end process; process

46、 (clk,en,clr) begin if(clr='1') then bcd10n<="000" elsif (clk'event and clk='1') then if (en='1' and bcd1n="1001") then if (bcd10n="011") then bcd10n<="000" else bcd10n<=bcd10n+'1' end if; end if; end if; end proces

47、s; process (en,bcd10n) begin if (en='1' and bcd10n="011") then t<='1' else t<='0' end if; end process; end a;此段程序為十位計數(shù)的情況,當bcd為011(30)時發(fā)生進位,然后bcd10n歸零。通過程序所得的仿真結(jié)果如下:1 當en為1時,clr為0時,t在clk第30個上升沿輸出為1,仿真結(jié)果如圖4.12所示: 圖 4.12 t輸出為1時的仿真結(jié)果2 當en為1時,clr為1時,t輸出為0,仿真結(jié)果如圖4.

48、13所示: 圖 4.13 t輸出為0時的仿真結(jié)果4.2.5 出貨模塊出貨模塊是自動售貨機給出相關(guān)貨物的信號,本課題要求貨物為四個商品,因此出貨模塊有5個輸入信號,xuan_rg,xuan_sb,xuan_yl,xuan_schb,為所購商品的輸入信號,en為控制模塊所給的信號當en=1時出貨模塊開始工作,然后對顧客所選擇貨物進行出貨。出貨模塊有四個輸出信號為所選擇的貨物的輸出信號。出貨模塊如圖4.14。圖4.14 出貨模塊出貨模塊主要程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY chuhuo ISPORT(xuan_rg,xuan_h

49、b,xuan_yl,xuan_schb,en3 : INSTD_LOGIC;chu_rg,chu_hb,chu_yl,chu_schb:OUTSTD_LOGIC);END chuhuo;ARCHITECTURE a OF chuhuo ISBEGINprocessbegin if en3='0' thenchu_rg<='0' chu_hb<='0'chu_schb<='0'chu_yl<='0'else if xuan_rg='1'thenchu_rg<='1

50、' chu_hb<='0'chu_schb<='0'chu_yl<='0'elsif xuan_hb='1' thenchu_rg<='0' chu_hb<='1'chu_schb<='0'chu_yl<='0'elsif xuan_schb='1' thenchu_rg<='0' chu_hb<='0'chu_schb<='1'chu_

51、yl<='0'elsif xuan_yl='1' thenchu_rg<='0' chu_hb<='0'chu_schb<='0'chu_yl<='1'else chu_rg<='0' chu_hb<='0'chu_schb<='0'chu_yl<='0'end if;end if;end process;END a;出貨模塊的仿真結(jié)果如下: 1當輸入信號en為1,xuan_rg信號

52、為1時,chu_rg信號為1,仿真結(jié)果如圖4.15所示:圖 4.15 chu_rg信號為1時的仿真結(jié)果 2 當輸入信號en為0,xuan_rg信號為1時,chu_rg信號為0,仿真結(jié)果如圖 4.16所示:圖4.16 chu_rg信號為0時的仿真結(jié)果4.2.6 找零模塊找零模塊的作用是對購物結(jié)束后的所需找零數(shù)目進行顯示。找零顯示模塊的輸入端接收來自控制模塊的輸入信號,輸出端外接LED顯示燈,由于找零的數(shù)目為范圍為0至8,因此只需要一個LED顯示燈,輸出信號為a,b,c,d,e,f,g。找零顯示模塊如圖4.17。圖 4.17 顯示模塊顯示模塊程序如下:LIBRARY ieee;USE ieee.s

53、td_logic_1164.ALL;ENTITY zhaoling ISPORT( Di : INinteger range 0 to 9; a : OUTSTD_LOGIC; b : OUTSTD_LOGIC; c : OUTSTD_LOGIC; d : OUTSTD_LOGIC; e : OUTSTD_LOGIC; f : OUTSTD_LOGIC; g : OUTSTD_LOGIC );END zhaoling;ARCHITECTURE a OF zhaoling ISBEGIN Process (di) type data_out is array (0 to 6) of std_lo

54、gic; variable outp:data_out; begin CASE di ISWHEN 0 => outp:="1111110"WHEN 1 => outp:="0110000"WHEN 2 => outp:="1101101"WHEN 3 => outp:="1111001"WHEN 4 => outp:="0110011"WHEN 5 => outp:="1011011"WHEN 6 => outp:="11

55、11110"WHEN 7 => outp:="1011111"WHEN 8 => outp:="1111111"WHEN 9 => outp:="1111011"WHEN OTHERS => null; END CASE; a <= outp(0); b <= outp(1); c <= outp(2); d <= outp(3); e <= outp(4); f <= outp(5); g <= outp(6); end process;END a;當輸入信

56、號di為2時,g輸出為1,f輸出為0,e輸出為1,d輸出為1,c輸出為0,b輸出為1,a輸出為1,仿真結(jié)果如圖4.18所示圖 4.18 di輸入為2 時的仿真結(jié)果4.2.7 主控模塊 主控模塊為自動售貨機控制系統(tǒng)的核心部分,在主控模塊中將輸入的錢幣數(shù)目(b)與商品的價格(d)進行對比,然后進行找零并發(fā)出出貨信號。輸入信號t為計時信號,當時間超過30s時,商品不再接受貨幣。Clk為控制系統(tǒng)的時鐘信號。輸出信號di,c分別為找零顯示模塊的輸入信號與找零信號。en為控制出貨模塊的信號,當en值為1時,確認出貨模塊可以輸出商品。Start為復(fù)位信號,當start值為1時,自動售貨機回到初始狀態(tài)。Clr為計數(shù)模塊的控制信號,當收貨完成后,clr輸出為1,計數(shù)模塊回到初始狀態(tài)歸零。En1與en2分別為投幣模塊與商品選擇模塊的控制信號,當en1為0時,投幣模塊不工作,當en2為0時商品選擇模塊不工作。主控模塊如圖4.19。圖4.19 主控模塊主控模塊主要程序如下:library ieee;use ieee.std_logic_1164.all;package state_pack istype state is(qa,qb);end state_pack

溫馨提示

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

評論

0/150

提交評論