《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的自動(dòng)售貨機(jī)主控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于FPGA的自動(dòng)售貨機(jī)主控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
范文萍,吳定雪
摘要: 從總體上介紹了自動(dòng)售貨機(jī)主控制系統(tǒng)的組成和功能,討論了自動(dòng)售貨機(jī)工作原理,詳細(xì)闡述了主控制系統(tǒng)FPGA的軟、硬件設(shè)計(jì)及其主要控制模塊的仿真實(shí)現(xiàn),并編寫了系統(tǒng)程序總框圖。實(shí)踐驗(yàn)證,系統(tǒng)能夠在各種條件下持續(xù)、平穩(wěn)、可靠地工作。
Abstract:
Key words :

    摘 要:從總體上介紹了自動(dòng)售貨機(jī)主控制系統(tǒng)的組成和功能,討論了自動(dòng)售貨機(jī)工作原理,詳細(xì)闡述了主控制系統(tǒng)FPGA的軟、硬件設(shè)計(jì)及其主要控制模塊的仿真實(shí)現(xiàn),并編寫了系統(tǒng)程序總框圖。實(shí)踐驗(yàn)證,系統(tǒng)能夠在各種條件下持續(xù)、平穩(wěn)、可靠地工作。
    關(guān)鍵詞:FPGA;自動(dòng)售貨機(jī);硬件設(shè)計(jì);軟件仿真

 

    隨著科技的發(fā)展及人們生活水平的提高,自動(dòng)售貨機(jī)市場(chǎng)的發(fā)展呈現(xiàn)出多元化及個(gè)性化的需求,通過自動(dòng)售貨機(jī)進(jìn)行自助購(gòu)物正逐漸成為市民的一種新的消費(fèi)時(shí)尚和追求高品質(zhì)生活的需要。傳統(tǒng)的自動(dòng)售貨機(jī)控制系統(tǒng)采用單片機(jī)作為控制核心,不僅需要在輸入輸出接口上做大量的工作,而且系統(tǒng)的抗干擾性也比較差。FPGA具有可靠性高、編程簡(jiǎn)單、維護(hù)方便等優(yōu)點(diǎn),已在工業(yè)控制領(lǐng)域得到廣泛應(yīng)用。本文詳細(xì)介紹了一種用FPGA實(shí)現(xiàn)的自動(dòng)售貨機(jī)主控制系統(tǒng)的硬件設(shè)計(jì)和軟件設(shè)計(jì),并進(jìn)行了軟件仿真和硬件設(shè)計(jì)實(shí)驗(yàn),實(shí)驗(yàn)表明該控制系統(tǒng)是可行的。
1 自動(dòng)售貨機(jī)系統(tǒng)總體結(jié)構(gòu)
    自動(dòng)售貨機(jī)作為一種完全獨(dú)立的售貨設(shè)備,集接收貨幣、顧客自選商品、售出商品和找零等功能于一體[1]。具體的說,一個(gè)完整的售貨機(jī)控制系統(tǒng)[2]一般應(yīng)包含如圖1所示的設(shè)備和模塊。

 


    (1)人機(jī)交互設(shè)備:通過顯示設(shè)備和輸入設(shè)備實(shí)現(xiàn),顧客通過使用鍵盤輸入需要購(gòu)買的商品編號(hào),根據(jù)液晶顯示器LCD給出的提示信息進(jìn)行投幣、取商品、接受找零等操作;系統(tǒng)管理人員可以使用鍵盤在顯示器所提供的可視化界面下對(duì)售貨機(jī)的各種運(yùn)行參數(shù)進(jìn)行設(shè)置;
    (2)MDB(Multi-Drop Bus / Internal Communication Protocol)通信接口[3]:MDB/ICP協(xié)議是歐洲售貨機(jī)制造者協(xié)會(huì)制定的一套用于協(xié)調(diào)自動(dòng)售貨機(jī)的主控制器(VMC)與多個(gè)外設(shè)之間的通信協(xié)議,用于協(xié)調(diào)自動(dòng)售貨機(jī)的主控制器(VMC)與多個(gè)外設(shè)之間的通信,所有外圍設(shè)備與主控制器之間的通信方式都一致。由于其簡(jiǎn)潔明了、功能強(qiáng)大、可擴(kuò)展性強(qiáng),并且對(duì)外設(shè)數(shù)目沒有限制,成為理想的自動(dòng)售貨系統(tǒng)內(nèi)部總線協(xié)議;
    (3)主控制器:主要包括對(duì)各種外設(shè)獲取的信息加以處理,對(duì)于售貨機(jī)的整個(gè)銷售流程進(jìn)行控制,運(yùn)行執(zhí)行機(jī)構(gòu)正常工作所需的各種算法等;
    (4)信息采集模塊:主控制器所需采集的信息主要包括自動(dòng)售貨機(jī)箱體內(nèi)的溫度,售出的貨物是否正常掉落到顧客取貨區(qū),電機(jī)運(yùn)行有無異常狀態(tài)。
    (5)貨道電機(jī)驅(qū)動(dòng)模塊:主要指商品通道的驅(qū)動(dòng)電機(jī)陣列。根據(jù)輸入的所選商品的通道號(hào),主控板驅(qū)動(dòng)相應(yīng)的小型直流電機(jī)轉(zhuǎn)動(dòng),將貨物推送至顧客取貨區(qū)。作為自動(dòng)售貨機(jī)的最終執(zhí)行機(jī)構(gòu),電機(jī)驅(qū)動(dòng)控制部分的性能以及可靠穩(wěn)定性直接影響商品銷售,是自動(dòng)售貨機(jī)控制器設(shè)計(jì)中非常重要的一部分。
2 自動(dòng)售貨機(jī)系統(tǒng)工作原理
    根據(jù)系統(tǒng)控制要求,編寫了控制系統(tǒng)的程序總框圖,如圖2所示。

 


    從投幣口送入貨幣,然后經(jīng)過傳感器采集數(shù)據(jù)、識(shí)別器判別人民幣的真?zhèn)尾⑴袆e面值。識(shí)別器把信息數(shù)據(jù)傳給通信模塊。通信模塊與售貨機(jī)的主控系統(tǒng)通信,主控系統(tǒng)顯示面值,啟動(dòng)售貨機(jī)的面板鍵,顯示出哪個(gè)貨道有貨,哪個(gè)貨道已售完,并等待顧客按鍵選擇商品。顧客選擇商品后,售貨機(jī)自動(dòng)把商品送出,等待顧客取走。顯示余額,如果金額足夠多,顧客可以選擇找?guī)呕蚶^續(xù)買商品;如果款額不足,售貨機(jī)經(jīng)過延時(shí)予以退幣。退幣分2種情況:一種是由紙幣識(shí)別器完成退紙幣,另一種是由硬幣的通信模塊完成退硬幣。系統(tǒng)復(fù)零,完成售貨。
3 主控制系統(tǒng)FPGA[4]的軟件設(shè)計(jì)及仿真
3.1 軟件結(jié)構(gòu)
    根據(jù)控制系統(tǒng)的工作原理及硬件設(shè)計(jì),該系統(tǒng)的軟件采用模塊化的設(shè)計(jì)方法,其主要由初始化、投幣過程、價(jià)格比較過程、商品選擇、顯示、退幣和報(bào)警等模塊組成,其中一些主要模塊的功能如下:
    (1)投幣模塊:在投幣過程中,每投下一枚硬幣,經(jīng)錢幣識(shí)別傳感器把信號(hào)傳遞給PLC,該模塊將完成辨別硬幣的真?zhèn)魏团卸ň唧w的幣值,可以進(jìn)行錢幣的疊加,并顯示出相應(yīng)的幣值,余額也增加同樣的幣值;
    (2)價(jià)格比較模塊:投幣完成后,系統(tǒng)對(duì)余額中錢幣數(shù)據(jù)和可以購(gòu)買的飲料價(jià)格進(jìn)行區(qū)間比較:若大于或等于商品的價(jià)格,則可以購(gòu)買該商品,指示燈亮;
    (3)商品選擇模塊:此模塊可以實(shí)現(xiàn)用戶對(duì)商品的選擇購(gòu)買;
    (4)退幣模塊:系統(tǒng)可在顧客購(gòu)買完商品后退回余幣。在退幣過程中,最主要的是要完成退幣的運(yùn)算過程,運(yùn)算結(jié)果放在數(shù)據(jù)寄存器,根據(jù)結(jié)果起動(dòng)退幣電動(dòng)機(jī)工作,輸出相應(yīng)的錢幣,退幣結(jié)束時(shí)還要給程序中使用到的某些寄存器重新賦零。
3.2 主要模塊功能仿真
3.2.1 投幣模塊功能仿真

    系統(tǒng)可以接受4種錢幣的投入,RESET可以復(fù)位,系統(tǒng)內(nèi)部的計(jì)數(shù)器將對(duì)投入的錢幣總數(shù),進(jìn)行自加計(jì)數(shù),仿真波形如圖3所示。

 


3.2.2 商品選擇模塊功能仿真
    系統(tǒng)允許顧客對(duì)4種物品進(jìn)行選擇。同時(shí)系統(tǒng)內(nèi)部計(jì)數(shù)器將進(jìn)行自減計(jì)數(shù),內(nèi)部變量還會(huì)自動(dòng)記錄顧客購(gòu)買的各種物品數(shù)目并由LTEM_OUT端口輸出顧客購(gòu)買物品的種類仿真波形如圖4所示。

 


3.2.3 退幣模塊功能仿真
    系統(tǒng)可以找出2種錢幣。當(dāng)顧客鍵入END_BY后,系統(tǒng)開始找錢,原則為從大往小找,在找錢的同時(shí),不允許顧客投入錢幣。系統(tǒng)內(nèi)部的計(jì)數(shù)器將進(jìn)行自減計(jì)數(shù),直至到零為止。同時(shí),系統(tǒng)將記錄找出各種錢幣的數(shù)目并輸出找出錢幣面值。
3.2.4 價(jià)格比較模塊功能仿真
    投幣完成后,系統(tǒng)會(huì)將在余額中錢幣數(shù)據(jù)和可以購(gòu)買的飲料價(jià)格進(jìn)行區(qū)間比較:若大于或等于商品的價(jià)格,則可以購(gòu)買該商品,指示燈亮。
    本文介紹了一種基于FPGA的自動(dòng)售貨機(jī)主控制器的整體設(shè)計(jì)方案和工作原理,詳細(xì)闡述了主控制模塊FPGA的軟件設(shè)計(jì)與實(shí)現(xiàn)及主要功能模塊仿真,在以FPGA為核心的自動(dòng)售貨機(jī)控制系統(tǒng)中,當(dāng)需要增加可選擇的商品數(shù)量時(shí),該控制系統(tǒng)的硬件只需要增加相應(yīng)的輸入信號(hào),其硬件的原有接線不需要改變,軟件則可以根據(jù)不同的控制要求進(jìn)行修改,具有較強(qiáng)的適應(yīng)性,因此在自動(dòng)售貨機(jī)行業(yè)中得到廣泛的應(yīng)用。經(jīng)實(shí)踐,整個(gè)系統(tǒng)工作穩(wěn)定可靠。
參考文獻(xiàn)
[1]  裴進(jìn)靈.一種新型自動(dòng)售貨機(jī)的研制[ J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2002,13(12):141-142.
[2]  朱軍.自動(dòng)售貨機(jī)的結(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è)計(jì)[M].北京:科學(xué)出版社,2003.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。