許斌
(四川信息職業技術學院四川廣元608040)
基于FPGA的自動售貨機的設計與仿真
許斌
(四川信息職業技術學院四川廣元608040)
對于售賣小商品的自動售貨機本文采用自頂向下的設計方法,將整個系統劃分為分頻、主控制器、譯碼顯示等模塊。各模塊均采用硬件描述語言VHDL,在Quartus II和Modelsim平臺進行設計和仿真。該系統可設定多種類型商品的交易模式,并實現商品信息存儲、商品選擇、貨幣識別和找零、錢數和單價的顯示等功能。
自動售貨機;硬件描述語言;模塊設計;仿真
自動售貨機可以根據投入的貨幣進行自動售貨,是交易中常用的一種智能的自動化設備,幾乎不受時間、地點的限制,可以很好的節約人力資源、方便的進行交易[1]。隨著集成電路產業的快速發展,集成電路的規模越來越大,集成度越來越高。對于實現這種大規模集成電路的設計,采用計算機輔助設計和電子設計的智能自動化來設計集成電路已經是一種必然[2]。VHDL、Verilog等硬件描述由于其出色的芯片設計自動化性能,已經被廣發的應用到集成電路設計領域[3-4]。用VHDL語言進行系統設計并不涉及底層電路具體電路結構,而只需要給出各單元模塊之間的鏈接關系,這種設計思路可以使設計者都夠把注意力集中在頂層結構設計從而使系統整體設計更優化,也可以通過語言描述來自動實現電路結構的設計從而節省設計時間提高設計效率[3]。同時由于Quartus II軟件平臺生成的電路是自動綜合出來,電路具有很高的標準化和正確性。本文對各模塊實行獨自設計、修正和調試,最終通過模擬仿真進行驗證[4]。
為了說明設計原理,系統具有商品的數量和價格存儲功能,并設定自動售貨機可以出售4種商品,標價分別為3元、4元、5元和6元,可以識別5角和1元兩種貨幣。
1)售貨員把商品的數量和價格置入到存儲器中,此時系統處于初始狀態可供購買者進行商品的選擇;
2)購買者可以選擇購買4種商品種類,商品種類的選定是按照其存儲的順序依次選擇的。商品選擇好以后,顯示處商品的單價并處于等待投幣狀態。系統提供2中貨幣類型的選擇,購買者可以投5角或者一元的貨幣,投幣成功后會顯示所投貨幣的數額;
3)購買完成后系統指示購買已完成并進行找零,完成交易。
考慮到自動售貨機的運行過程,采用自頂向下[3-4]的方法來實現主控部分的功能,將實際的交易過程轉換為各個狀態的切換,使得整個設計思想清晰明了。并且采用數碼管進行相應的商品單價和所投貨幣數額的顯示。因此,可將自動售貨機系統分為多個模塊:主控模塊、分頻模塊、二進制譯碼模塊和顯示模塊。采用VHDL語言對各個模塊功能進行描寫,最后把各模塊整合成頂層設計實體。如圖1所示。

圖1 整體結構框圖
2.1主要代碼部分
主控模塊:此模塊是整個設計的最重要的部分,控制著整個設計的商品單價數量存儲、投幣、顯示、找零等功能??傮w具有9個如數端口和6個輸出端口。其中輸入主要端口包含clk、coin0(識別5角貨幣)、coin1(識別1元貨幣)、price(商品價格)、quantity(商品數量)。輸出端口主要端口y0(已投錢數顯示)、y1(商品數量顯示)
分頻器模塊:具有一個輸入端口和兩個輸出端口。輸入一個clk時鐘經過分頻器輸出較高頻率時鐘給數碼管掃描模塊和低頻率時鐘給主控模塊的狀態機。
二進制譯碼模塊:具有一個輸入端和兩個輸出端。從coin和qua端口輸出兩個4位的二進制碼轉換為8位的BCD碼y0(已投錢數顯示)和y1(商品數量顯示)并輸出到數碼管模塊動態掃描,其后接顯示數碼管。根據以上的分析編寫代碼如下(由于篇幅原因只顯示部分):


2.2仿真結果
本節主要系統的功能進行仿真和測試,選擇的商品的價格分別為3元、4元、5元、6元對應的商品數量為6件、7件、8件、9件。在QuartusII和Modelsim平臺上分別對頂層電路(圖2),消費者對商品種類選擇(圖3),消費者進行投幣(圖4),系統仿真圖-購買、找幣結束交易(圖5)這幾個部分進行仿真,來測試系統各個部分的功能。

圖2 頂層系統仿真

圖3 商品種類選擇

圖4 投幣

圖5 系統仿真圖-購買、找幣
從仿真結果分析,系統可以滿足識別兩種貨幣、對商品信息進行存儲、投幣、選擇購滿商品和找零等功能。設計中采用了自頂向下[3-4]的設計方法,通過狀態的轉換,實現了模塊化的思想。其中各個模塊所具有的相對獨立性更好地保證了系統的穩定性,使得設計更加合理,節約了電路資源[4]??梢詫⒈驹O計下載到FPGA/CPLD芯片中在具體的項目中應用,因此有一定的實用價值[6]。
[1]陸思杰.自動售貨系統應用介紹[J].機械研究與應用,2010,23(2):147-148.
[2]張晨亮.電子元件自動售貨機設計實現[J].電子測量技術,2014,37(11):4-7.
[3]趙杰.基于VHDL的自動售貨機系統設計[J].系統仿真技術,2015,11(2):167-171.
[4]孫延騰,吳艷霞,等.基于VHDL語言的參數化設計方法[J].計算機工程與應用,2010,46(31):68-71.
[5]葉銀蘭.自動售貨機的設計與實現[J].微計算機信息,2008(8):53-55.
[6]陳慧.基于嵌入式單片機的智能自動售貨機控制系統[J].華東交通大學學報,2008,25(6):78-82.
Design and simulation of automatic vending machine based on FPGA
XU Bin
(Sichuan Information Technology College,Guangyuan 608040,China)
In this paper,a top-down design method is adopted for the vending machine,which divides the whole system into the frequency dividing,the main controller and the decoding display module.Each module uses hardware description language VHDL,in the II Quartus platform for design and simulation.The system can set various types of commodity trading patterns,and implementation of the goods information storage,commodity and currency recognition and change,the money number and unit price of the display function.
vending machine;hardware description language;module design;simulation
TN409
A
1674-6236(2016)17-0147-03
2015-09-07稿件編號:201509051
許斌(1982—),男,陜西渭南人,碩士,工程師。研究方向:通信與信息處理技術。