摘 要:從總體上介紹了自動售貨機主控制系統(tǒng)的組成和功能,,討論了自動售貨機工作原理,詳細闡述了主控制系統(tǒng)FPGA的軟,、硬件設(shè)計及其主要控制模塊的仿真實現(xiàn),,并編寫了系統(tǒng)程序總框圖。實踐驗證,,系統(tǒng)能夠在各種條件下持續(xù),、平穩(wěn)、可靠地工作,。
關(guān)鍵詞:FPGA,;自動售貨機;硬件設(shè)計,;軟件仿真
隨著科技的發(fā)展及人們生活水平的提高,,自動售貨機市場的發(fā)展呈現(xiàn)出多元化及個性化的需求,通過自動售貨機進行自助購物正逐漸成為市民的一種新的消費時尚和追求高品質(zhì)生活的需要,。傳統(tǒng)的自動售貨機控制系統(tǒng)采用單片機作為控制核心,,不僅需要在輸入輸出接口上做大量的工作,而且系統(tǒng)的抗干擾性也比較差,。FPGA具有可靠性高,、編程簡單、維護方便等優(yōu)點,,已在工業(yè)控制領(lǐng)域得到廣泛應(yīng)用,。本文詳細介紹了一種用FPGA實現(xiàn)的自動售貨機主控制系統(tǒng)的硬件設(shè)計和軟件設(shè)計,,并進行了軟件仿真和硬件設(shè)計實驗,實驗表明該控制系統(tǒng)是可行的,。
1 自動售貨機系統(tǒng)總體結(jié)構(gòu)
自動售貨機作為一種完全獨立的售貨設(shè)備,,集接收貨幣、顧客自選商品,、售出商品和找零等功能于一體[1],。具體的說,一個完整的售貨機控制系統(tǒng)[2]一般應(yīng)包含如圖1所示的設(shè)備和模塊,。
(1)人機交互設(shè)備:通過顯示設(shè)備和輸入設(shè)備實現(xiàn),,顧客通過使用鍵盤輸入需要購買的商品編號,根據(jù)液晶顯示器LCD給出的提示信息進行投幣,、取商品,、接受找零等操作;系統(tǒng)管理人員可以使用鍵盤在顯示器所提供的可視化界面下對售貨機的各種運行參數(shù)進行設(shè)置,;
(2)MDB(Multi-Drop Bus / Internal Communication Protocol)通信接口[3]:MDB/ICP協(xié)議是歐洲售貨機制造者協(xié)會制定的一套用于協(xié)調(diào)自動售貨機的主控制器(VMC)與多個外設(shè)之間的通信協(xié)議,,用于協(xié)調(diào)自動售貨機的主控制器(VMC)與多個外設(shè)之間的通信,所有外圍設(shè)備與主控制器之間的通信方式都一致,。由于其簡潔明了,、功能強大、可擴展性強,,并且對外設(shè)數(shù)目沒有限制,,成為理想的自動售貨系統(tǒng)內(nèi)部總線協(xié)議;
(3)主控制器:主要包括對各種外設(shè)獲取的信息加以處理,,對于售貨機的整個銷售流程進行控制,,運行執(zhí)行機構(gòu)正常工作所需的各種算法等;
(4)信息采集模塊:主控制器所需采集的信息主要包括自動售貨機箱體內(nèi)的溫度,,售出的貨物是否正常掉落到顧客取貨區(qū),,電機運行有無異常狀態(tài)。
(5)貨道電機驅(qū)動模塊:主要指商品通道的驅(qū)動電機陣列,。根據(jù)輸入的所選商品的通道號,,主控板驅(qū)動相應(yīng)的小型直流電機轉(zhuǎn)動,將貨物推送至顧客取貨區(qū),。作為自動售貨機的最終執(zhí)行機構(gòu),,電機驅(qū)動控制部分的性能以及可靠穩(wěn)定性直接影響商品銷售,是自動售貨機控制器設(shè)計中非常重要的一部分,。
2 自動售貨機系統(tǒng)工作原理
根據(jù)系統(tǒng)控制要求,,編寫了控制系統(tǒng)的程序總框圖,如圖2所示,。
從投幣口送入貨幣,,然后經(jīng)過傳感器采集數(shù)據(jù),、識別器判別人民幣的真?zhèn)尾⑴袆e面值。識別器把信息數(shù)據(jù)傳給通信模塊,。通信模塊與售貨機的主控系統(tǒng)通信,,主控系統(tǒng)顯示面值,啟動售貨機的面板鍵,,顯示出哪個貨道有貨,,哪個貨道已售完,并等待顧客按鍵選擇商品,。顧客選擇商品后,,售貨機自動把商品送出,等待顧客取走,。顯示余額,,如果金額足夠多,顧客可以選擇找?guī)呕蚶^續(xù)買商品,;如果款額不足,,售貨機經(jīng)過延時予以退幣。退幣分2種情況:一種是由紙幣識別器完成退紙幣,,另一種是由硬幣的通信模塊完成退硬幣。系統(tǒng)復(fù)零,,完成售貨,。
3 主控制系統(tǒng)FPGA[4]的軟件設(shè)計及仿真
3.1 軟件結(jié)構(gòu)
根據(jù)控制系統(tǒng)的工作原理及硬件設(shè)計,該系統(tǒng)的軟件采用模塊化的設(shè)計方法,,其主要由初始化,、投幣過程、價格比較過程,、商品選擇,、顯示、退幣和報警等模塊組成,,其中一些主要模塊的功能如下:
(1)投幣模塊:在投幣過程中,,每投下一枚硬幣,經(jīng)錢幣識別傳感器把信號傳遞給PLC,,該模塊將完成辨別硬幣的真?zhèn)魏团卸ň唧w的幣值,,可以進行錢幣的疊加,并顯示出相應(yīng)的幣值,,余額也增加同樣的幣值,;
(2)價格比較模塊:投幣完成后,系統(tǒng)對余額中錢幣數(shù)據(jù)和可以購買的飲料價格進行區(qū)間比較:若大于或等于商品的價格,,則可以購買該商品,,指示燈亮,;
(3)商品選擇模塊:此模塊可以實現(xiàn)用戶對商品的選擇購買;
(4)退幣模塊:系統(tǒng)可在顧客購買完商品后退回余幣,。在退幣過程中,,最主要的是要完成退幣的運算過程,運算結(jié)果放在數(shù)據(jù)寄存器,,根據(jù)結(jié)果起動退幣電動機工作,,輸出相應(yīng)的錢幣,退幣結(jié)束時還要給程序中使用到的某些寄存器重新賦零,。
3.2 主要模塊功能仿真
3.2.1 投幣模塊功能仿真
系統(tǒng)可以接受4種錢幣的投入,,RESET可以復(fù)位,系統(tǒng)內(nèi)部的計數(shù)器將對投入的錢幣總數(shù),,進行自加計數(shù),,仿真波形如圖3所示。
3.2.2 商品選擇模塊功能仿真
系統(tǒng)允許顧客對4種物品進行選擇,。同時系統(tǒng)內(nèi)部計數(shù)器將進行自減計數(shù),,內(nèi)部變量還會自動記錄顧客購買的各種物品數(shù)目并由LTEM_OUT端口輸出顧客購買物品的種類仿真波形如圖4所示。
3.2.3 退幣模塊功能仿真
系統(tǒng)可以找出2種錢幣,。當顧客鍵入END_BY后,,系統(tǒng)開始找錢,原則為從大往小找,,在找錢的同時,,不允許顧客投入錢幣。系統(tǒng)內(nèi)部的計數(shù)器將進行自減計數(shù),,直至到零為止,。同時,系統(tǒng)將記錄找出各種錢幣的數(shù)目并輸出找出錢幣面值,。
3.2.4 價格比較模塊功能仿真
投幣完成后,,系統(tǒng)會將在余額中錢幣數(shù)據(jù)和可以購買的飲料價格進行區(qū)間比較:若大于或等于商品的價格,則可以購買該商品,,指示燈亮,。
本文介紹了一種基于FPGA的自動售貨機主控制器的整體設(shè)計方案和工作原理,詳細闡述了主控制模塊FPGA的軟件設(shè)計與實現(xiàn)及主要功能模塊仿真,,在以FPGA為核心的自動售貨機控制系統(tǒng)中,,當需要增加可選擇的商品數(shù)量時,該控制系統(tǒng)的硬件只需要增加相應(yīng)的輸入信號,,其硬件的原有接線不需要改變,,軟件則可以根據(jù)不同的控制要求進行修改,具有較強的適應(yīng)性,因此在自動售貨機行業(yè)中得到廣泛的應(yīng)用,。經(jīng)實踐,,整個系統(tǒng)工作穩(wěn)定可靠。
參考文獻
[1] 裴進靈.一種新型自動售貨機的研制[ J].科技情報開發(fā)與經(jīng)濟,,2002,,13(12):141-142.
[2] 朱軍.自動售貨機的結(jié)構(gòu)[ J].信息與電腦,1995(10):12-13.
[3] Multi-Drop Bus / Internal Communication Protocol NAMA vending technology standards committee.
[4] 周美蘭.FPGA電氣控制與組態(tài)設(shè)計[M].北京:科學(xué)出版社,2003.