国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Verilog HDL的自動售貨機(jī)設(shè)計(jì)與仿真

2021-04-20 02:36李紅科王慶春賈曉菲
電子技術(shù)與軟件工程 2021年1期
關(guān)鍵詞:投幣商品價(jià)格紙幣

李紅科 王慶春 賈曉菲

(安康學(xué)院電子與信息工程學(xué)院 陜西省安康市 725000)

1 引言

隨著集成電路產(chǎn)業(yè)快速發(fā)展,電路集成度越來越高,以計(jì)算機(jī)輔助為基礎(chǔ)的電子設(shè)計(jì)自動化(EDA Electronics Design Automation)技術(shù)成為集成電路設(shè)計(jì)重要工具[1],Verilog HDL 硬件描述語言是以文字形式描述數(shù)字系統(tǒng)硬件電路結(jié)構(gòu)和行為的語言,只需描述電路的功能和電路模塊之間的相互關(guān)系,設(shè)計(jì)者更加專注電路設(shè)計(jì)整體性能,使電路更加優(yōu)化,提高設(shè)計(jì)效率[2]。

自動售貨機(jī)是一種常見的智能自動化設(shè)備,由于不受人直接參與,所以廣泛應(yīng)用在辦公樓、操場、高速服務(wù)區(qū)等場所,大大降低時(shí)間、地點(diǎn)的限制,在節(jié)省人力資源方面有著明顯優(yōu)勢。

2 自動售貨機(jī)設(shè)計(jì)思路

有限狀態(tài)機(jī)(FSM Finite-state Machine)是一種用來進(jìn)行對象行為建模的工具,其作用是表示有限個狀態(tài)以及這些狀態(tài)之間相互轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型。有限狀態(tài)機(jī)廣泛應(yīng)用于建模行為、硬件電路設(shè)計(jì)、軟件工程和網(wǎng)絡(luò)協(xié)議等的設(shè)計(jì)。在數(shù)字系統(tǒng)設(shè)計(jì)中,當(dāng)某一事物發(fā)生連續(xù)變化時(shí),可以采用有限狀態(tài)機(jī)設(shè)計(jì)思路提高設(shè)計(jì)效率,增加程序可讀性,降低錯誤概率,有限狀態(tài)機(jī)設(shè)計(jì)思路是數(shù)字系統(tǒng)中最常用的設(shè)計(jì)方法之一[3]。

2.1 自動售貨機(jī)系統(tǒng)總體設(shè)計(jì)

該售貨機(jī)電路設(shè)計(jì)要求:

(1)每次只能出售一種商品。

(2)所售商品種類:售貨機(jī)只售4 種商品,所售商品編號分別用四位二進(jìn)制數(shù)從右向左表示為0001、0010、0100、1000,對應(yīng)價(jià)格分別為2 元、3 元、4 元、5 元。出售哪種商品可由顧客按下相應(yīng)按鍵,按鍵旁邊標(biāo)記該商品的價(jià)格。

(3)等待投幣:本售貨機(jī)只識別1 元、5 元和10 元紙幣和1元硬幣,一次只能投入一種貨幣。在規(guī)定時(shí)間內(nèi)(500 單位時(shí)鐘內(nèi))可以連續(xù)投幣,并計(jì)算投幣總額,先找零再出貨,超時(shí)返回開始狀態(tài),規(guī)定時(shí)間投幣不足,退幣并返回開始狀態(tài)。

2.2 自動售貨機(jī)的工作流程

如圖1所示,自動售貨機(jī)在上一次出售完商品回到空狀態(tài),顧客按鍵選擇所購商品,然后確認(rèn)所選商品,判斷所選商品是否售罄,售罄返回到空狀態(tài),沒有售罄開始計(jì)時(shí)在500 時(shí)間單位內(nèi)計(jì)算投幣總額,如果規(guī)定時(shí)間內(nèi)沒有投幣,則返回空狀態(tài),判斷投幣總額和所選商品價(jià)格關(guān)系,當(dāng)投幣總額等于商品價(jià)格,出貨并返回空狀態(tài),當(dāng)投幣總額大于所選商品價(jià)格,先找零再出貨并返回空狀態(tài),當(dāng)投幣金額小于所選商品價(jià)格,通過找零出口退幣并返回空狀態(tài)。

圖1:售貨機(jī)工作流程圖

2.3 狀態(tài)劃分

針對電路工作流程,將電路分為8 個狀態(tài),系統(tǒng)定義8 個狀態(tài),分別是空狀態(tài)(S_idle)、商品選擇狀態(tài)(S_select)、商品確認(rèn)狀態(tài)(S_confirm)、商品是否售罄狀態(tài)(S_allsell)、等待投幣狀態(tài)(S_money input)、投幣金額和所選商品價(jià)格關(guān)系狀態(tài)(S_confirm)、找零狀態(tài)(S_change)和出貨狀態(tài)(S_out)。各狀態(tài)之間轉(zhuǎn)移關(guān)系及動作如圖2所示。

系統(tǒng)程序輸入端口:時(shí)鐘端口1 個、投幣端口2 個(紙幣投幣口和硬幣投幣口)、商品選擇端口4 個、確認(rèn)和取消端口各1 個。輸出端口:找零端口和出貨端口各1 個。

2.4 各狀態(tài)設(shè)計(jì)

(1)商品選擇模塊:每次只能選擇1 種商品,不允許一次選擇多種商品。將4 個商品選擇按鍵組成二進(jìn)制編碼。

(2)確認(rèn)模塊:每次只能按下“確認(rèn)”或“取消”任意一個按鍵,同時(shí)按下2 個按鍵按照取消功能處理。

(3)判斷所選商品是否充足模塊:如果所選商品無貨,則返回空狀態(tài),如果所選商品有貨,則轉(zhuǎn)入等待投幣狀態(tài)。left0、left1、left2、left3 代表編號從0001 到1000 商品剩余數(shù)量為零時(shí)信號,售貨機(jī)每次出售1 個商品,內(nèi)部機(jī)械裝置將后一個商品輸送到最前端,等待下次出貨,當(dāng)最后一個商品售出,由于商品自身重力作用,對應(yīng)leftx=0(x 為0 到3),當(dāng)某種商品沒有售罄時(shí)leftx!=0,,

圖2:狀態(tài)轉(zhuǎn)移圖

(4)等待投幣狀態(tài),在等待500 個時(shí)間單位周期內(nèi)接受投幣,超時(shí)投幣不算,這個模塊分兩部分:1.貨幣識別:投幣識別器分紙幣和硬幣兩部分,我國目前市場流行小面額紙幣分別是1 元、5 元和10 元和硬幣1 元。紙幣識別器包括主控部分、傳感器部分、驅(qū)燈組件、AD 轉(zhuǎn)換、外幣存儲器、電機(jī)電源等部件組成,硬幣識別器相對紙幣識別器簡單,所以在找零環(huán)節(jié)只退硬幣。紙幣投幣端口只能一次接收一張紙幣,可以連續(xù)投幣,硬幣端口類似。但是1 元紙幣和1 元硬幣對電路輸入信號是相同,貨幣識別器將每種貨幣轉(zhuǎn)換為BCD 8421 碼,送給主控模塊。2.規(guī)定時(shí)間內(nèi)投幣總額計(jì)算。

(5)判斷投幣總額與所選商品價(jià)格關(guān)系模塊:在投幣模塊計(jì)算出投幣總額減掉所選商品價(jià)格,差值不等于零,轉(zhuǎn)入找零模塊。差值等于零,說明投幣總額等于所選商品價(jià)格,沒有找零,直接轉(zhuǎn)入出貨狀態(tài)。

(6)找零模塊:找零分兩種情況:

1.投幣總額大于商品價(jià)格;2.投幣總額小于商品價(jià)格,退幣從找零端口輸出。

2.5 仿真測試

針對自動售貨機(jī)的3 種工作狀態(tài)分別做如下仿真:(說明為了調(diào)整仿真圖能放在1 張圖上完整顯示仿真效果,調(diào)整投幣等待時(shí)間,從原來500 單位時(shí)間等待,縮減到25 單位時(shí)間,其他參數(shù)不變。商品編號從右向左依次0-1-2-3,價(jià)格從右向左依次2、3、4 和5 元)

(1)找零情況仿真:一次投幣金額大于所選商品價(jià)格,選擇編號為0010 商品價(jià)格3 元,投入5 元紙幣。從圖3看到,選擇0010 商品,確認(rèn),等待投幣5 元,先找3 元,然后出貨編號0010,仿真結(jié)果正確。

圖3:找零仿真

(2)連續(xù)投幣情況仿真:選擇編號為1 商品價(jià)格3 元,連續(xù)投入3 次1 元,沒有找零,出貨編號0010,仿真結(jié)果如圖4所示。

圖4:連續(xù)投幣仿真

(3)投幣不足情況仿真:選擇編號為1 商品價(jià)格3 元,連續(xù)投入2 次1 元,投幣總金額小于所選商品價(jià)格,不能購買該商品,仿真結(jié)果如圖5所示,退幣2 元,沒有出貨。

圖5:退幣仿真

當(dāng)所選商品售罄時(shí),利用商品自身重力作用給電路信號,left0、left1、left2 和left3 分別代表編號0-1-2-3 剩余量信號,某個商品售罄時(shí),對應(yīng)剩余量信號低電平,所選商品無法購買。

找零不足,在初始狀態(tài)時(shí),機(jī)器內(nèi)部存有硬幣足夠找零,所以找零不足情況可以不用考慮。

3 結(jié)論

采用Verilog HDL 語言,利用狀態(tài)機(jī)模塊化思想,可以在每個階段仿真驗(yàn)證,保證設(shè)計(jì)正確性,降低設(shè)計(jì)成本,縮短設(shè)計(jì)周期,同時(shí)體現(xiàn)模塊化、易修改等特點(diǎn)[4]。在大規(guī)模數(shù)字系統(tǒng)設(shè)計(jì)凸顯出更多優(yōu)勢,使設(shè)計(jì)更加合理。從仿真結(jié)果分析,電路設(shè)計(jì)滿足要求,系統(tǒng)允許規(guī)定紙幣和硬幣使用,能夠完成售貨、找零和退幣等功能,因此具有一定實(shí)用價(jià)值。

目前隨著無線支付方式的便捷性和消費(fèi)者廣泛使用,本設(shè)計(jì)只需在付款方式增加無線付款方式,用戶掃描售貨機(jī)界面付款碼并成功支付,支付寶或微信后臺收款并反饋給商家后臺,商家返回給售貨機(jī)付款成功信號,售貨機(jī)就能完成出貨動作。本文設(shè)計(jì)方法還可以應(yīng)用在共享充電樁、共享洗衣機(jī)等設(shè)備的設(shè)計(jì)上。

猜你喜歡
投幣商品價(jià)格紙幣
國際部分大宗商品價(jià)格或已見頂
國際大宗商品價(jià)格持續(xù)攀升
二季度國際大宗商品價(jià)格將震蕩運(yùn)行
中國化肥信息(2020年7期)2020-03-19
投幣暢飲(圖片故事)
消失的紙幣
猜紙幣
放飛誠信的白鴿
猜紙幣
奇妙投幣機(jī)