胥杭君 郭夢生 白旭升 賴寒
摘 要:本文對自動售貨機系統(tǒng)的功能進行了模塊化的劃分,并對其模塊功能及組成進行了討論,同時對其原理進行了研究后得出了相應的模擬系統(tǒng)。并對使用Verilog HDL語言及相應軟件對其功能的實現(xiàn)進行了詳細的闡述,且對模擬系統(tǒng)整體的框架進行了設(shè)計。經(jīng)仿真后得出模擬系統(tǒng)可正常,穩(wěn)定工作的這一結(jié)論。
關(guān)鍵詞:模塊化;自動售貨;FPGA
中圖分類號:TP311 文獻標志碼:A
0 引言
隨著電子技術(shù)的不斷發(fā)展,F(xiàn)PGA,即現(xiàn)場可編程門陣列作為專用集成電路(ASIC)領(lǐng)域中一種半定制的電路,其應用領(lǐng)域已經(jīng)越來越廣泛。且隨著當今生活節(jié)奏的不斷變化,各種自動售貨設(shè)備的需求正在日益增大?;贔PGA的相應系統(tǒng)可實現(xiàn)模塊化的設(shè)計,從而方便日后對系統(tǒng)的升級維護擴展。本文基于搭載FPGA芯片的實驗板對自動收貨系統(tǒng)進行了模擬設(shè)計與仿真驗證。
1 系統(tǒng)整體設(shè)計概述
本文中的模擬系統(tǒng)對自動售貨機的商品選購過程及當前狀態(tài)顯示進行了相應的模擬,因此可大致將其功能模塊劃分為5個相應的功能模塊,分別為按鍵模塊1、按鍵模塊2、控制模塊、數(shù)碼管顯示模塊和狀態(tài)顯示模塊。
2 各模塊詳述
2.1 按鍵模塊1
本模塊在硬件上為一個4×4的矩陣鍵盤,則對應可實現(xiàn)16種商品的模擬的選擇,而矩陣鍵盤的按鍵檢測采用了行掃描法,而其中在程序描述部分還包括了一個編碼器及解碼器,以此使得控制部分接收到較為精簡的數(shù)據(jù)信號。
2.2 按鍵模塊2
本模塊對選定商品后的投幣過程進行了模擬,key_in1模擬表示投入一元的硬幣,而key_in2模擬表示投入五毛的硬幣。同時本模塊中還包括了一個復位按鍵,其可以將系統(tǒng)狀態(tài)恢復為初始狀態(tài),同時可以讓顧客在未完成商品購買全額投入的操作下進行重新選擇。
2.3 控制模塊部分
本模塊為本模擬系統(tǒng)的核心控制部分,而其實現(xiàn)則采用了有限同步狀態(tài)機的思想。而本狀態(tài)機共有6個狀態(tài),分別為初始狀態(tài)(IDLE),共投入一元的狀態(tài)(oney),共投入五毛的狀態(tài)(fivem),共投入一元五的狀態(tài)(onef),共兩元的狀態(tài)(twoy)及錯誤狀態(tài)(error)。由于本系統(tǒng)為模擬系統(tǒng),只做相關(guān)功能驗證,故設(shè)定商品最高金額為兩元。
而具體狀態(tài)轉(zhuǎn)移過程為最開始系統(tǒng)處于初始狀態(tài),當投入一元硬幣后將跳轉(zhuǎn)至狀態(tài)oney,若是投入五角則跳轉(zhuǎn)至fivem狀態(tài),此后依照投入金額為觸發(fā)條件分別跳轉(zhuǎn)至相應狀態(tài)。當跳轉(zhuǎn)至twoy狀態(tài)時,則代表商品購買完成,而若是在狀態(tài)處于onefive時投入一元硬幣,則系統(tǒng)將跳轉(zhuǎn)至error狀態(tài),而若是在狀態(tài)轉(zhuǎn)移中出現(xiàn)其他問題或是不在正常購買流程內(nèi)的情況,系統(tǒng)同樣會跳轉(zhuǎn)至error狀態(tài)。若是在購買過程中按下重置按鍵,則系統(tǒng)將跳轉(zhuǎn)回初試狀態(tài)。同時當系統(tǒng)處于各相應狀態(tài)時將向外輸出value1和value2兩個值給相應的顯示模塊。
2.4 數(shù)碼管顯示模塊
本模塊對當前投幣金額進行顯示。其硬件實現(xiàn)原理為數(shù)碼管的動態(tài)掃描,利用余暉效應來顯示不同的數(shù)值。而其程序部分為接受來自于控制模塊的輸出值value1,然后通過解碼器將其解碼后通過數(shù)碼管對相應金額數(shù)字進行顯示。
2.5 LED顯示模塊
本模塊為通過LED燈的不同點亮位置來對當前狀態(tài)進行可視化的顯示,程序部分同樣為使用解碼器將接收于來自控制部分輸出的值value2進行解碼后點亮相應的LED。
由于本文中使用的實驗板LED燈為低電平有效,且高位在左,低位在右,故對其做出如下表示形式:(0亮1滅)
IDLE:5b11111 fivem:5b11101 oney:5b11011 onef:5b10111
twoy:5b01111 error:5b00000
3 控制部分的仿真驗證
modelsim為一款非常優(yōu)秀的仿真軟件,且其界面設(shè)計簡潔,可讀性高,可提供非常友好的仿真環(huán)境,故本文中將使用modelsim作為仿真工具來對本文中所設(shè)計的系統(tǒng)進行仿真驗證。
分別對模擬先投入一元的硬幣后再投入五角的硬幣再投入一元硬幣導致總金額溢出而出現(xiàn)錯誤的情況進行仿真。其仿真波形如圖1所示。
經(jīng)對其進行仿真驗證后發(fā)現(xiàn)仿真通過,且與預想仿真結(jié)果相同,上板實驗后發(fā)現(xiàn)能夠穩(wěn)定地實現(xiàn)最初所預想要實現(xiàn)的功能。
本文介紹了對基于搭載FPGA芯片的開發(fā)板所實現(xiàn)的自動收貨系統(tǒng)的模擬功能驗證,為其實際應用做出了理論與仿真上的驗證。且由于本文所設(shè)計的系統(tǒng)采用了模塊化的設(shè)計思想,因此可以較為方便地對其功能進行擴展升級,比如在實際使用中出現(xiàn)錯誤時除了燈光警示外還可加入語音警示的功能。而核心控制部分則可根據(jù)實際需求進行靈活的修改,其適應性較強,可廣泛應用于各類自動售貨系統(tǒng)。
參考文獻
[1]朱軍.自動售貨機的結(jié)構(gòu)[J].信息與電腦,1995(10):12-13.
[2]楊文霞,孫青林.數(shù)字邏輯電路[M].北京:北京科學出版社,2007.
[3]黃伊楠,謝育.基于Modelsim的自動化邏輯驗證平臺設(shè)計[J].電子技術(shù)與軟件工程,2015(7):70.
[4]吳繼華,王誠.Verilog HDL設(shè)計與驗證[M].北京:人民郵電出版社,2006.
[5]胥杭君,葉璐.淺談模塊化及其應用[J].科學與財富,2015(13):110-111.
[6]張松,李筠.FPGA的模塊化設(shè)計方法[J].電子測量與儀器學報,2014,28(5):560-565.