基于FPGA的自動售貨機的控制系統_第1頁
基于FPGA的自動售貨機的控制系統_第2頁
基于FPGA的自動售貨機的控制系統_第3頁
基于FPGA的自動售貨機的控制系統_第4頁
基于FPGA的自動售貨機的控制系統_第5頁
已閱讀5頁,還剩36頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 摘 要: 隨著我國商品市場的不斷繁榮和城市現代化程度的不斷提高,自動售貨機也已悄然步入了我國的大中城市。豐富了中國的商業產業結構,開創了一個全新的自動銷售和自助服務時代。該課題將以EDA技術實現自動售貨機控制系統設計。應用EDA技術實現的自動售貨機控制系統,以其可減少商品開發周期,降低開發成本,增加設計一次性成功通過的可能性等優點,使自動售貨機可開發性增強,成本降低。該課題包含兩部分:硬件系統設計和FPGA內部電路的編程設計。FPGA內部電路的編程設計采用硬件描述語言(VHDL)對自動售貨機的功能進行描述;選擇ALTERA公司的FPGA芯片為目標器件。硬件系統設計是圍繞所選合適的FPGA器件

2、的硬件電路設計。本文介紹了一種基于FPGA的自動售貨機的整體設計與工作原理,詳細闡述了投幣模塊,商品選擇模塊,主控模塊等模塊的軟件設計與實現,對所設計的FPGA內部功能進行仿真驗證。關鍵詞: FPGA EDA 自動售貨機 VHDL Abstract With the continuously prosperity of chinas commodity market and with the rapid develepment of modernization level , vending machines has enterd into large and medium-sized cit

3、ies 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 technology.Since it has the advantages of shortening product development cycle,reducing product deve

4、lepment 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 design and fpga internal circuit design. Fpga internal circuit design uses hardware describe languag

5、e ( 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 appropriate fpga device. and the design of the internal functions of FPGA is simulated.Keywords

6、: FPGA EDA vending machine VHDL 目 錄1 引言 21.1 自動售貨機的歷史21.2 自動售貨機的研究現狀31.3 未來的發展和研究方向31.4 本文的章節安排42 關鍵技術 52.1 EDA技術52.2 可編輯邏輯器件 52.3 vhdl描述語言 52.4 相關技術的發展與應用情況63 硬件系統的設計 83.1 芯片的選擇 83.2 時鐘發生器 93.3 電源電路103.4 硬件鍵盤103.5 下載驅動器以及存儲器的設計113.6 顯示器設計113.7 硬件電路圖124 軟件系統設計124.1 設計思想134.2 軟件設計14結論35參考文獻36致謝37 附錄3

7、81 引言自動售貨機是能根據投入的錢幣自動付貨的機器。自動售貨機是商業自動化的常用設備,它不受時間、地點的限制,能節省人力、方便交易。一般的自動售貨機由錢幣裝置、指示裝置、貯藏售貨裝置等組成。錢幣裝置是售貨機的核心,其主要功能是確認投入錢幣的真偽,分選錢幣的種類,計算金額。如果投入的金額達到購買物品的數值即發出售貨信號,并找出余錢。指示裝置用以指示顧客所選商品的品種。貯藏售貨裝置保存商品,接收出售指示信號,把顧客選擇的商品送至付貨口。一般售貨機的錢幣裝置由投幣口、選別裝置、確認錢幣真偽的檢查裝置、計算金額的計算裝置和找錢裝置組成。70年代以來,出現了采用微型計算機控制的各種新型自動售貨機和利用

8、信用卡代替錢幣并與計算機連接的更大規模的無人售貨系統,如無人自選商場、車站的自動售票和檢票系統、銀行的現金自動支付機等。從西歐、北美、日本和韓國等地區和國家的情況來看,自動售貨機在人們日常生活中扮演越來越重要的角色。1962年,出現了以自動售貨機為主體的流通領域的革命。到了20世紀80年代,自動售貨機在美國和日本被廣泛使用,后逐漸散布世界各地,主要是發達國家。其產品特點是科技含量高;24 小時服務,售貨便利;無需專人盯守,省人工,省成本;售貨范圍廣泛;此外還是一種新穎獨特的廣告媒體。目前,隨著移動商務的發展,自動售貨機作為一種方便、直觀的移動商務工具,開始在全球各地迅速普及和發展。1.1 自動

9、售貨機的歷史自動售貨機是一種全新的商業零售形式,20世紀70年代自日本和歐美發展起來。它又被稱為24小時營業的微型超市。在日本,70的罐裝飲料是通過自動售貨機售出的。全球著名飲料商可口可樂公司在全世界就布有50萬臺飲料自動售貨機。 在日本全國各地,共設有550萬臺自動售貨機(據1998年的統計),銷售額達6兆8969億4887萬日元,為世界第一。在售貨機的顯示屏幕上進行操作,輸入商品號碼和購買數量,并投入錢幣后,商品就會從取貨口出來,甚至從食品自動售貨機上還能買到熱呼呼的面條和米飯團。雖然日本的自動售貨機總臺數低于美國(據1997年的統計為689萬臺),但是,從人口占有數來看卻是世界上最高的,

10、美國平均35人占有一臺,而日本為23人占有一臺。 1.2 自動售貨機的研究現狀現在,自動售貨機產業正在走向信息化并進一步實現合理化。例如實行聯機方式,通過電話線路將自動售貨機內的庫存信息及時地傳送各營業點的電腦中,從而確保了商品的發送、補充以及商品選定的順利進行。并且,為防止地球暖化,自動售貨機的開發致力于能源的節省,節能型清涼飲料自動售貨機成為該行業的主流。在夏季電力消費高峰時,這種機型的自動售貨機即使在關掉冷卻器的狀況下也能保持低溫,與以往的自動售貨機相比,它能夠節約1015的電力。進入21世紀時,自動售貨機也將進一步向節省資源和能源以及高功能化的方向發展。 自動售貨咖啡機是一種既可以出冷

11、熱咖啡也可以同時出奶茶果汁飲料的咖啡飲料自動售貨機,省時方便快捷。既可以作投資來使用,也可作為員工福利來使用。1.3 未來發展和研究方向隨著科技的發展及人們生活水平的提高,自動售貨機市場的發展呈現出多元化及個性化的需求,通過自動售貨機進行自助購物正逐漸成為市民的一種新的消費時尚和追求高品質生活的需要。傳統的自動售貨機控制系統采用單片機作為控制核心,不僅需要在輸入輸出接口上做大量的工作,而且系統的抗干擾性也比較差。FPGA 具有可靠性高、編程簡單、維護方便等優點,已在工業控制領域得到廣泛應用。現如今長生了基于了一種用FPGA 實現的自動售貨機主控制系統的硬件設計和軟件設計,通過此次畢業設計闡述了

12、基于FPGA的自動售貨機的控制系統設計并進行了軟件仿真和硬件設計實驗,實驗表明該控制系統是可行的。現在,自動售貨機產業正在走向信息化并進一步實現合理化。例如實行聯機方式,通過電話線路將自動售貨機內的庫存信息及時地傳送各營業點的電腦中,從而確保了商品的發送、補充以及商品選定的順利進行。并且,為防止地球暖化,自動售貨機的開發致力于能源的節省,節能型清涼飲料自動售貨機成為該行業的主流。在夏季電力消費高峰時,這種機型的自動售貨機即使在關掉冷卻器的狀況下也能保持低溫,與以往的自動售貨機相比,它能夠節約1015的電力。進入21世紀時,自動售貨機也將進一步向節省資源和能源以及高功能化的方向發展。作為一種商務

13、工具,自動售貨機在生活中應用愈加廣泛,綜合分析現代自動售貨機的研究現狀和研究重點,以及自動售貨機所處的市場現狀和對社會的影響,根據日本、美國等國家的經驗,自動售貨機將在全球范圍內得到更大的普及。自動售貨機的機體內部結構已經相當完善,影響其普及的關鍵因素為:如何在現有的各種通信網絡平臺上,讓自動售貨機形成一種銷售連鎖網,為其提供更方便的營銷方式和管理機制,以其最大限度地降低生產、運營成本。目前,無論是基于Internet還是基于移動通信網或其他網絡平臺,其運作的機制都不太成熟,不過這并不影響自動售貨機的發展潛力。因此,自動售貨機未來的發展趨勢是將其納入到一個更廣闊、更便利的移動商務網絡平臺。1.

14、4 本文的章節安排本文第一章為總體描述自動售貨機的歷史以及研究現狀等相關知識,第二章主要介紹本課題所應用的關鍵技術,第三章主要描述本課題所設計的自動售貨機控制系統的相關硬件設計,第四章主要闡述本課題的軟件系統的各個模塊以及仿真。附錄將指出本課題所用到的相關文獻以及所需要的硬件元器件。2 關鍵技術系統所應用到的技術有可編程邏輯器件及EDA技術,應用VHDL語言實現自動售貨機控制系統的設計,應用PROTEL軟件輔助完成硬件系統設計。2.1 EDA技術EDA是電子設計自動化(Electronic Design Automation)的縮寫,是一種以計算機為基礎的工作平臺;是利用電子技術,計算機技術,

15、智能化技術等多種應用學科的最新成果,開發出的一整套電子CAD(計算機輔助設計)軟件;是一種幫助電子設計工程師從事電子元件產品和系統設計的綜合技術。EDA技術就是以計算機為工具,設計者在EDA軟件平臺上,用硬件描述語言HDL完成設計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合、優化、布局、布線和仿真,直至對于特定目標芯片的適配編譯、邏輯映射和編程下載等工作。EDA技術的出現,極大地提高了電路設計的效率和可操作性,減輕了設計者的勞動強度。2.2 可編程邏輯器件FPGA(FieldProgrammable Gate Array),即現場可編程門陣列,是實現EDA的主流器件,他的特點是直接面

16、向用戶,具有極大的靈活性和通用性,使用方便,硬件測試和實現快捷,開發效率高,成本低,上市時間短,技術維護簡單,工作可靠性強等。 關于FPGA芯片的選擇將在下文進行介紹。2.3 VHDL描述語言VHDL ( very high speed integrated circuit hard2ware descrip tion language)是指超高速集成電路硬件描述語言。VHDL主要用于描述數字系統的結構、行為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式,以及描述風格與句法,類似于一般的計算機高級語言,如C語言。VHDL的程序結構特點是,將一項工程設計或稱設計實體(可以是一

17、個元件、一個電路模塊或一個系統)分成外部(或稱可視部分,即端口)和內部(或稱不可視部分) 。在對一個設計實體定義了外部界面后,一旦其內部開發完成,其他的設計就可以直接調用這個實體。這種將設計實體分成內外部分的概念是VHDL系統設計的基本點。2.4 相關技術的發展與應用情況1)FPGA的應用FPGA的應用可分為三個層面:電路設計,產品設計,系統設計。(1)電路設計中FPGA的應用連接邏輯,控制邏輯是FPGA早期發揮作用比較大的領域也是FPGA應用的基石。事實上,在電路設計中應用FPGA的難度還是比較大的,這要求開發者要具備相應的硬件知識(電路知識)和軟件應用能力(開發工具)。這方面的人才總是緊缺

18、的,往往都從事新技術,新產品的開發。成功的產品將變成市場主流基礎產品,供產品設計者應用。在不遠的將來,通用和專用IP的設計將成為一個熱門行業。 (2)產品設計把相對成熟的技術應用到某些特定領域如通訊,視頻,信息處理等等,開發出滿足行業需要并能被行業客戶接受的產品。這方面主要是FPGA技術和專業技術的結合問題,此外,關與專業客戶的界面問題,產品設計分為專業工具類產品及民用產品,前者重點在性能,后者對價格敏感,產品設計以實現產品功能為主要目的。在這個領域FPGA技術是一個實現手段,FPGA因為具備接口,控制,功能IP,內嵌CPU等特點,有條件實現一個構造簡單,固化程度高,功能全面的系統產品設計,這

19、將是FPGA技術應用最廣大的市場。 (3)系統級應用系統級的應用是FPGA與傳統的計算機技術結合,實現一種FPGA版的計算機系統:如用XilinxV-4, V-5系列的FPGA,實現內嵌POWERPCCPU, 然后再配合各種外圍功能,實現一個基本環境,在這個平臺上跑LINIX等系統,這個系統也就支持各種標準外設和功能接口(如圖像接口)了。這對于快速構成FPGA大型系統來講是很有幫助的。2)EDA的應用利用EDA工具,電子設計師可以從概念、算法、協議等開始設計電子系統,大量工作可以通過計算機完成,并可以將電子產品從電路設計、性能分析到設計出IC版圖或PCB版圖的整個過程,在計算機上自動處理完成。

20、現在對EDA的概念或范疇用得很寬。在機械、電子、通信、航空航天、化工、礦產、生物、醫學、軍事等各個領域,都有EDA的應用。目前EDA技術已在各大公司、企事業單位和科研教學部門廣泛使用。例如在飛機制造過程中,從設計、性能測試及特性分析直到飛行模擬,都可能涉及到EDA技術。3 硬件系統的設計本控制系統的硬件外圍設備分為:外部存儲器,外部電源,晶振信號發生器,以及FPGA芯片,LED外部顯示燈,出貨裝置。3.1 芯片的選擇 本文所用到的FPGA芯片為,Altera生產的EPF10K10LC84 芯片,EPF10K10LC84-4是一種復雜可編程邏輯器件,另外還有其它類型的管腳和封裝,選擇性強。FLE

21、X10K組成及特點: FLEX10K主要由嵌入式陣列塊、邏輯陣列塊、快速通道(FastTrack)和I/O單元四部分組成。其中邏輯陣列塊由多個邏輯單元構成。FLEX10K系列采用重復可構造的CMOS SRAM工藝,把連續的快速通道互連與獨特的嵌入式陣列結構相組合,同時也結合了眾多可編程器件的有點來完成普通門陣列的宏功能。每個FLEX 10K器件包括一個嵌入式陣列和一個邏輯陣列,它能讓設計人員輕松地開發出存儲器、數字信號處理器以及特殊邏輯等強大功能于一身的芯片。該芯片具有的多電壓功能可以全面支持以不同電壓工作的產品。FLEX10K10主要特點如下:(1)它是工業世界的第一種嵌入式可編程邏輯器件,

22、提供了在單個器件中的系統集成,具有實現宏函數的嵌入式陣列和實現普通功能的邏輯陣列;(2)高密度,它具有10000150000個可用門,高達40960位內部RAM;(3)系統支持多電壓IO接口;(4)低功耗,系統維持狀態小于0.5mA;(5)靈活的內部連接,快速、可預測連線延時的快速通道連續式分布結構;(6)增強功能的IO引腳,每個引腳都有一個獨立的三臺輸出使能控制和每個IO引腳都有漏極開路選擇;FLEX10K引腳簡介EPF10K10有84I/O口,其豐富的IO資源,適用于速度要求高或需要較多的I/O引腳電路或系統中適用。其I/O引腳能夠兼容5V 3.3V 2.5V等接口標準,具體的IO引腳與對

23、應的引腳序號如表3-1所示:表3-1 I/O引腳對應的引腳序號引腳名稱引腳編號引腳名稱引腳編號引腳名稱引腳編號引腳名稱引腳編號I/O716I/O1728I/O2749I/O3762I/O817I/O1829I/O2850I/O3864I/O918I/O1930I/O2951I/O3965I/O1019I/O2035I/O3052I/O4066I/O1121I/O2136I/O3153I/O4167I/O1222I/O2237I/O3254I/O4371I/O1323I/O2338I/O3358I/O4472I/O1424I/O2439I/O3459I/O1525I/O2547I/O3560I/

24、O1627I/O2648I/O3661FLEX 10K10主要由84個引腳組成,各引腳對應的引腳名如圖3.1所示:圖3.1 各引腳對應的引腳名稱 3.2 時鐘發生器自動售貨機的控制系統需要一個時鐘信號,我們選用的是6MHz的時鐘信號,時鐘發生器如圖3.2所示。其中用兩個振蕩器以及兩個電阻可以完成我們所需要的設定。圖 3.2 時鐘發生器3.3 電源電路日常所用到的電源為220V電壓的電源,但是本課題中自動售貨機所需要的電壓為5V,因此我們需要設定一個變壓電路來完成所需的電壓。在這部分電路我們用到了一個變壓器,一個整流橋,一個濾波電路,一個穩壓器完成為5V電壓的電源。電源電路如圖3.3所示。 圖3

25、.3 電源電路3.4 鍵盤的設計為了完成購物自動售貨機必須有購物鍵,本課題所要求的是五個按鍵,其中四個是商品選擇鍵(熱狗,飲料,漢堡,雙層漢堡),剩下的一個按鍵為初始按鍵。關于輸入按鍵的信號發生情況將在下文中的軟件系統設計中闡述,這里就不多敘述,按鍵選用的是SW_PB,按鍵的硬件部分如圖3.4所示。圖 3.4 選擇鍵的設計3.5 下載驅動器以及外擴存儲器電路設計自動售貨機需要跳電存儲功能,因此需要在FPGA芯片外接一個存儲器,另由于控制器需要下載驅動,因此需要外接一個驅動下載以及外接存儲器,如圖3.5所示。此裝置能夠順利完成下載驅動以及跳電存儲功能。圖 3.5 下載驅動與外接存儲器3.6 顯示

26、器設計自動售貨機需要一個顯示燈,當購物結束后顯示器顯示找零錢數額。對于顯示器的顯示數字情況,將在下文軟件系統中的顯示模塊進行闡述。顯示器如圖3.6所示。圖 3.6 顯示器3.7 硬件電路圖本論文的重點在于對控制系統的設計,因此,我們只關注控制信號以及信號發生后出現的結果,對于自動售貨機的電動機不做太多的討論。自動售貨機的硬件電路圖見附錄。4 軟件系統設計軟件系統分為總體思想與模塊的分類。4.1 設計思想4.1.1 功能要求(1)該系統能完成對貨物信息的存儲、進程控制、錢幣處理、余額計算和顯示功能。 (2)自動售貨機能夠銷售4種商品:熱狗(1元),漢堡包(4元),雙層漢堡包(8元),飲料(3元)

27、數量無限。自動售貨機允許投入1元,2元,5元硬幣:當總幣值等于顧客需要的商品單價時,機器送出需要的商品:若總幣值大于顧客需要的商品單價時,機器除提供所需商品外,并將余幣退出;若總幣值小于顧客需要的商品單價時,機器退出顧客投入的硬幣。設機器內1元和2元的找零硬幣無限。(3)如果投入的硬幣達到或大于所購商品的價格,自動售貨機會發出一個指示信號使接受硬幣的裝置不再接收新的硬幣。(4)每次投幣的時間有限制,不得超過30秒,在時間到時,總幣值不足顧客購買的商品單價時,自動售貨機按不足錢數處理,退還全部硬幣。或者在設定時間內,總幣值不足顧客購買的商品單價時,若需要取消交易則可按取消鍵,售貨機按不足錢數處理

28、,退還全部硬幣。(5)當顧客完成一次購買后或按錯按鈕后,需要設置一個重新開始按鈕,使整個系統恢復到初始狀態。(6)顧客一次只能購買一種商品的一個,若需要更多商品,需要重復操作。4.1.2 總體思想自動售貨機包括四個商品,依據四種商品分別設為四個按鈕,A1,A3,A4,A8。當顧客選擇其中的一種商品時,售貨機發送出一個信號按鈕不再生效,用一個LED燈顯示。設置三個按鈕:a1,a2,a5來表示投入的硬幣是1元、2元、5元。當顧客投入的硬幣大于或等于售價時將不再接受硬幣,用一個LED燈顯示。當顧客確定某種商品且投入了足額的硬幣,投幣時限到時,投幣窗口找零,用七段顯示管顯示找零數,同時送出商品,指示燈

29、out亮。4.1.3 控制狀態的設計此售貨機分為三種狀態,每一個狀態能完成一定得功能:初始狀態,投幣狀態,找零狀態。(1)初始狀態:當售貨機通電后進入初始狀態,顧客購買時,可根據選擇xuan_rg,xuan_yl,xuan_hb,xuan_schb鍵購買商品,從而進入下一狀態。當顧客購買錯誤或不再購買時按下start重新進入初始狀態。(2)投幣狀態:在這個狀態時xuan_rg,xuan_yl,xuan_hb,xuan_schb鍵失效。投入錢(1元,2元,5元),當投入硬幣等于或者超過商品價格時進入下一狀態。投幣時間為30秒超過30秒,售貨機拒絕接受錢幣。 (3)找零狀態:投幣結束,售貨機自動判

30、別總錢數,若在時限到來之際,總錢數少于顧客所需商品的單價,則退出錢幣,用LED顯示退錢數。若大于或等于商品數則通過控制系統找零,用LED顯示找零數,送出商品。出貨找零,表示一次工作已經結束,等待下一個信號到來,進行新的售貨。4.1.4 設計流程圖是是否否否是熱狗飲料漢堡投幣計算金額金額>物價繼續投幣確認購買出貨找零退幣結束雙層漢堡開始圖 4.1 流程圖4.2 模塊分類此售貨機模塊包括:投幣處理模塊,商品選擇模塊,投幣模塊,分頻模塊,控制器模塊,計時模塊,LED燈顯示模塊,找零模塊,出貨模塊,如圖4.2所示。圖 4.2 模塊示意圖4.2.1 投幣模塊自動售貨機能夠自動計算投入的錢幣數目,需

31、要提供一個寄存器來記錄并保存投入的總幣值。此模塊有六個輸入信號以及兩個輸出信號:qian1,qian2,qian5為不同數額錢幣輸入信號;en1為主控模塊所發出的信號,當en1信號為1的時候,投幣模塊開始工作;reset為恢復初始信號,當reset信號為1 的時候投幣模塊不進行工作;en為給計時器的輸出信號,當en為1的時候計時器開始工作;bi為輸出的錢幣數目。如圖4.2所示。投幣模塊的作用相當于一個計數的寄存器,在清零的狀態下可以準確的計算投幣數額,記錄并保存總幣值。圖 4.2. 投幣模塊投幣模塊主要程序如下:library ieee;use ieee.std_logic_1164.all;

32、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 qian:integer range 0 to 15;beginwait until clk='1'and clk' event;if reset='1' t

33、hen 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 state<=1;bi<=2; qian:=2;en<='1'elsif a5='1' then state<=1;qian:=5;bi<

34、=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'elsif a5='1' then qian:=qian+5;bi<=qian;en<='1'end if;end if;end case;end

35、 if;end process;end a;通過程序所得到的仿真圖如下所示:1 當reset輸入為0,輸入5元,2元,1元時,輸出結果為7。仿真結果如圖4.3所示:圖4.3 reset輸入為0時的仿真結果2 當reset輸入為1時,輸入5元,2元,1元,bi輸出應為0。仿真結果如圖4.4所示:圖 4.4 reset輸入為1時的仿真結果4.2.2 商品選擇模塊自動售貨機的商品選擇模塊,通過自動售貨機上的四個選擇按鍵完成商品選擇,在接收到對應四個商品之一的一個選擇信號時進行編譯,將被選擇的商品進行編碼,輸入到主控模塊中,在主控模塊中與所接受的錢幣進行對與計算。輸入信號為a1,a2,a3,a8。而x

36、uan_rg,xuan_hb,xuan_yl,xuan_schb為四個輸出信號,與出貨模塊連接。reset 與en2信號來自主控模塊,當reset為1時模塊進入初始狀態,進行選擇。當en2為1時,商品可以進行選擇,當en2為0時,四個商品選擇鍵無效。商品選擇模塊如圖4.5 所示。圖 4.5 商品選擇模塊商選擇模塊主要程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY yima ISPORT ( a1,a3,a4,a8,en2,reset : INSTD_LOGIC;xuan_rg,xuan_yl,xuan_hb,xuan_schb:OUT

37、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' xuan_yl<='0'xuan_hb<='0'xuan_schb<='0'elsif a3='1'then

38、d<=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'xuan_schb<='0'elsif a8='1' and en2='1' then d<=8;xuan_schb<='

39、;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;xuan_schb<='0'xuan_yl<='0'xuan_rg<='0'xuan_hb<='0'end

40、 if;end process;END a;通過程序所得仿真結果如下:1 當reset輸入為1,en2輸入為0,a8輸入為1時,d輸出應當為0,仿真結果如圖4.6所示: 圖 4.6 reset輸入為1,en2輸入為0,a8輸入為1時的仿真結果2 當reset輸入為0,en2輸入為0,a8輸入為1時,d輸出為0,仿真結果如圖4.7所示:圖4.7 reset輸入為0,en2輸入為0,a8輸入為1時的仿真結果3 當reset輸入為0,en2輸入為1,a8輸入為1時,d輸出為8,xuan_schb輸出為1,仿真結果如圖4.8所示:圖4.8 en2輸出為2時的仿真結果4.2.3 分頻模塊分頻模塊是用來將

41、外來的時鐘信號進行分頻,有硬件系統已經知道,選用的時鐘信號是由外部的6MHZ的晶振提供的,通過分頻模塊進行分頻以后將得到周期為1HZ的信號。由于仿真所需時間過長,本文選擇100.0ns為一周期的信號,分頻后為6.0us為一周期的信號,時鐘輸入信號為clk,輸出信號為newclk,分頻模塊如圖4.9所示。圖4.9 分頻模塊分頻模塊主要程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY fenpi ISPORT(CLK:IN STD_LOGIC; NEWCLK:OUT STD_LOGIC);END fenpi;ARCHITECTURE a OF

42、 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; END IF; END IF; END PROCESS;NEWCLK <= DIVCLK;END a;通過程序所得到的仿真結果如下:當clk第15輸出為上升沿時,newclk輸出為1,仿

43、真結果如圖4.10所示:圖 4.10 newclk輸出為1時的仿真結果4.2.4 計數模塊 由于課題要求自動售貨機控制系統有定時系統,并限定在30s內完成投幣,30s之后投幣無效,因此需要設定一個計數模塊對投幣時間進行限制。en為接受信號,當投幣開始時投幣模塊發出信號,計數模塊開始工作,當計數到30時向控制模塊發出t信號。Clr為控制器發送給計數模塊的一個信號,當clr為1時,計數器歸零。Clk為分頻模塊發送的時鐘信號。計數模塊如圖4.11所示。圖4.11 計數模塊計數模塊主要程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_

44、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 downto 0);begin process(clk,clr,en) begin if (clr='1') then bcd1n<="0000" elsif(

45、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 (clk,en,clr) begin if(clr='1') then bcd10n<="000" elsif (clk'event and c

46、lk='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 process; process (en,bcd10n) begin if (en='1' and bcd10n="011") then t<='1'

47、 else t<='0' end if; end process; end a;此段程序為十位計數的情況,當bcd為011(30)時發生進位,然后bcd10n歸零。通過程序所得的仿真結果如下:1 當en為1時,clr為0時,t在clk第30個上升沿輸出為1,仿真結果如圖4.12所示: 圖 4.12 t輸出為1時的仿真結果2 當en為1時,clr為1時,t輸出為0,仿真結果如圖4.13所示: 圖 4.13 t輸出為0時的仿真結果4.2.5 出貨模塊出貨模塊是自動售貨機給出相關貨物的信號,本課題要求貨物為四個商品,因此出貨模塊有5個輸入信號,xuan_rg,xuan_sb,x

48、uan_yl,xuan_schb,為所購商品的輸入信號,en為控制模塊所給的信號當en=1時出貨模塊開始工作,然后對顧客所選擇貨物進行出貨。出貨模塊有四個輸出信號為所選擇的貨物的輸出信號。出貨模塊如圖4.14。圖4.14 出貨模塊出貨模塊主要程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY chuhuo ISPORT(xuan_rg,xuan_hb,xuan_yl,xuan_schb,en3 : INSTD_LOGIC;chu_rg,chu_hb,chu_yl,chu_schb:OUTSTD_LOGIC);END chuhuo;ARCHI

49、TECTURE 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' chu_hb<='0'chu_schb<='0'chu_yl<='0'elsif xuan_hb='1'

50、; 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_yl<='0'elsif xuan_yl='1' thenchu_rg<='0' chu_hb<='0'chu_s

51、chb<='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;出貨模塊的仿真結果如下: 1當輸入信號en為1,xuan_rg信號為1時,chu_rg信號為1,仿真結果如圖4.15所示:圖 4.15 chu_rg信號為1時的仿真結果 2 當輸入信號en為0,xuan_rg信號為1時,chu_rg信號為0,仿真結果如圖 4.1

52、6所示:圖4.16 chu_rg信號為0時的仿真結果4.2.6 顯示模塊顯示模塊的作用是對購物結束后的所需找零數目進行顯示。找零顯示模塊的輸入端接收來自控制模塊的輸入信號,輸出端外接LED顯示燈,由于找零的數目為范圍為0至8,因此只需要一個LED顯示燈,輸出信號為a,b,c,d,e,f,g。找零顯示模塊如圖4.17。圖 4.17 顯示模塊顯示模塊程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY zhaoling ISPORT( Di : INinteger range 0 to 9; a : OUTSTD_LOGIC; b : OUTST

53、D_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_logic; variable outp:data_out; begin CASE di ISWHEN 0 => outp:="1111110"WHEN 1 => ou

54、tp:="0110000"WHEN 2 => outp:="1101101"WHEN 3 => outp:="1111001"WHEN 4 => outp:="0110011"WHEN 5 => outp:="1011011"WHEN 6 => outp:="1111110"WHEN 7 => outp:="1011111"WHEN 8 => outp:="1111111"WHEN 9 =>

55、; 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;當輸入信號di為2時,g輸出為1,f輸出為0,e輸出為1,d輸出為1,c輸出為0,b輸出為1,a輸出為1,仿真結果如圖4.18所示圖 4.18 di輸入為2 時的仿真結果4.2.7 主控模塊 主控模塊為自

56、動售貨機控制系統的核心部分,在主控模塊中將輸入的錢幣數目(b)與商品的價格(d)進行對比,然后進行找零并發出出貨信號。輸入信號t為計時信號,當時間超過30s時,商品不再接受貨幣。Clk為控制系統的時鐘信號。輸出信號di,c分別為找零顯示模塊的輸入信號與找零信號。en為控制出貨模塊的信號,當en值為1時,確認出貨模塊可以輸出商品。Start為復位信號,當start值為1時,自動售貨機回到初始狀態。Clr為計數模塊的控制信號,當收貨完成后,clr輸出為1,計數模塊回到初始狀態歸零。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;library ieee;use ieee.std_logic_1164.all;use work.state_pack.all;entity zhukong ispo

溫馨提示

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

評論

0/150

提交評論