新疆石河子大學(xué)機(jī)械電氣工程學(xué)院 宋雨桐 瞿 誼 佘賽波
隨著科學(xué)技術(shù)發(fā)展和社會(huì)進(jìn)步,商業(yè)機(jī)械的自動(dòng)化得到越來越廣泛的應(yīng)用,自動(dòng)售貨作為商業(yè)機(jī)械自動(dòng)化的典型應(yīng)用,給大眾生活帶來的巨大的便利,同時(shí)給商家節(jié)省了銷售成本。在中國,自動(dòng)售貨機(jī)將成為一個(gè)潛在的巨大產(chǎn)業(yè),繼百貨商店、超市之后掀起第三次零售業(yè)革命,其前景非常廣闊[1-3]。
自動(dòng)售貨機(jī)功能的實(shí)現(xiàn)主要依靠其內(nèi)部控制系統(tǒng),目前國內(nèi)外對(duì)自動(dòng)售貨機(jī)的控制主要有PLC控制程序、CPLD芯片控制、VHDL語言控制等。文獻(xiàn)[4]采用可編程序控制器(PLC)控制自動(dòng)售貨機(jī),文獻(xiàn)[5]采用單片CPLD芯片使自動(dòng)售貨機(jī)實(shí)現(xiàn)其基本功能,文獻(xiàn)[6]通過單片機(jī)實(shí)現(xiàn)了自動(dòng)售貨功能。文獻(xiàn)[4-6]都實(shí)現(xiàn)了自動(dòng)售貨的功能,但所需的專業(yè)編程知識(shí)較多,對(duì)電子愛好者來說具有一定入門條件?,F(xiàn)代自動(dòng)售貨機(jī)的內(nèi)部控制系統(tǒng)大多采用VHDL描述語言,用有限狀態(tài)機(jī)進(jìn)行系統(tǒng)狀態(tài)描述,通電復(fù)位后系統(tǒng)自動(dòng)初始化,根據(jù)外界輸入的信號(hào)轉(zhuǎn)換成投幣狀態(tài)、銷售狀態(tài)、顯示狀態(tài)、找零狀態(tài)[7]。
基于QuartusII模塊化設(shè)計(jì),通過邏輯電路實(shí)現(xiàn)自動(dòng)售貨機(jī)的基本功能,簡化了自動(dòng)售貨機(jī)的設(shè)計(jì)難度,利用程序的編寫,完成控制電路的設(shè)計(jì)。各電路模塊互不干擾、具有良好的兼容性,且使得電路模塊具有一定的可移植性。
1)商品選擇電路
商品選擇電路是一個(gè)雙選擇5-8組合優(yōu)先編碼器,即選擇商品的種類A,B,再選擇對(duì)應(yīng)種類下的商品,相當(dāng)于輸入對(duì)應(yīng)的BCD碼,會(huì)出現(xiàn)對(duì)應(yīng)的輸出rst_n,再將rst_n接到分線器的reset_n,即完成了商品選擇過程。
2)投幣找零電路
投幣找零電路是由多個(gè)狀態(tài)機(jī)組成,在選擇不同的商品,列出其選擇商品可能性,對(duì)應(yīng)不同的投幣找零電路所對(duì)應(yīng)的狀態(tài)機(jī),
3)計(jì)數(shù)電路
根據(jù)不同的投幣找零電路的狀態(tài)機(jī),對(duì)應(yīng)不同的計(jì)數(shù)電路的狀態(tài)機(jī),根據(jù)其所投幣的多少,不同價(jià)位對(duì)應(yīng)不同的數(shù)值找零。
1)商品選擇電路基本工作原理
實(shí)現(xiàn)自主選擇功能,當(dāng)顧客按下想要買的商品對(duì)應(yīng)的按鈕時(shí),則會(huì)產(chǎn)生對(duì)應(yīng)編號(hào)的輸入,從而通過商品選擇電路得到對(duì)應(yīng)輸出信號(hào),這些輸出將會(huì)傳遞給后面的投幣與找零電路即狀態(tài)機(jī)內(nèi),實(shí)現(xiàn)商品的選擇。本自動(dòng)售貨機(jī)提供以下商品:
商品 方便面 小熊餅干 奧利奧 德芙 冰紅茶 脈動(dòng) 紅牛 咖啡價(jià)格 2 4 6 8 3 4 5 6編號(hào)(AB) 10001 10010 10011 10100 00001 00010 00011 00100
給定輸入變量AB以表示不同商品,A=1代表選擇零食,A=0代表選擇飲料,B則是不同商品對(duì)應(yīng)的特定編號(hào)。由于后面希望不同商品即不同價(jià)位應(yīng)對(duì)于不同的狀態(tài)機(jī)實(shí)現(xiàn)不同的找零,而狀態(tài)機(jī)是否功能取決于復(fù)位信號(hào)是否有效,所以當(dāng)顧客選擇物品后,對(duì)應(yīng)的輸出信號(hào)能使對(duì)應(yīng)價(jià)位的狀態(tài)機(jī)的復(fù)位信號(hào)為1即無效,實(shí)現(xiàn)選擇物品后能自動(dòng)對(duì)應(yīng)找零的效果。
2)時(shí)序仿真
圖2.1 商品選擇模塊的仿真波形
1)投幣與找零電路基本工作原理
投幣信號(hào)作為輸入信號(hào),由售貨機(jī)的投幣口的傳感器提供,故本設(shè)計(jì)中只將其抽象為兩位二進(jìn)制數(shù)。售貨機(jī)默認(rèn)只收5元和10元紙幣。售貨機(jī)內(nèi)的錢數(shù)只有0元、5元和10元三種狀態(tài)。在這三種狀態(tài)間轉(zhuǎn)換的動(dòng)作即是對(duì)投幣、出貨與找零的任務(wù)的執(zhí)行。
圖2.2 小于五元、等于五元、大于五元的狀態(tài)轉(zhuǎn)換圖
驅(qū)動(dòng)狀態(tài)轉(zhuǎn)換的信號(hào)有兩個(gè),一個(gè)是clk時(shí)鐘信號(hào),確保狀態(tài)機(jī)能隨時(shí)間的推移而自動(dòng)運(yùn)行,還有一個(gè)是現(xiàn)態(tài)c_st,現(xiàn)態(tài)c_st的改變也將作為啟動(dòng)狀態(tài)機(jī)工作的條件之一。輸入信號(hào)兩位,第一位代表是否輸入了紙幣10元,第二位代表是否輸入了紙幣5元,輸入信號(hào)決定了狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移的方向。每個(gè)狀態(tài)對(duì)應(yīng)一個(gè)三位二進(jìn)制的輸出,分別代表出貨信號(hào)、找5元信號(hào)和找1元信號(hào),用以驅(qū)動(dòng)后續(xù)的電路實(shí)現(xiàn)相應(yīng)功能(圖2.2)。
2)部分時(shí)序仿真
圖2.3 三元商品狀態(tài)機(jī)仿真波形圖
1)計(jì)數(shù)電路基本工作原理
計(jì)數(shù)電路的基本工作原理就是當(dāng)達(dá)到CLK的上升沿時(shí)候,并且此時(shí)EN端為高電平時(shí),此時(shí)計(jì)數(shù)電路工作,當(dāng)達(dá)到下一個(gè)CLK的上升沿的時(shí)候,判斷EN是否為有限信號(hào),有則計(jì)數(shù),否則不工作。根據(jù)投幣找零電路來設(shè)置計(jì)數(shù)電路計(jì)數(shù)的多少。
計(jì)數(shù)電路中的狀態(tài)機(jī)程序編寫是通過找零1元和5元的個(gè)數(shù),分別編寫其對(duì)應(yīng)個(gè)數(shù)的找零,即找零幾個(gè)1元就從幾倒計(jì)時(shí)到0,即找零倒數(shù)到0,如果需要找零4元,其計(jì)數(shù)電路救贖從4開始倒數(shù)到0,倒數(shù)結(jié)束即找零結(jié)束。 利用if-else語句對(duì)一元的出幣數(shù)進(jìn)行判斷,針對(duì)不同的狀態(tài)機(jī)和輸入,進(jìn)行不同數(shù)量的計(jì)數(shù)。
2)部分時(shí)序仿真
圖2.4 找四個(gè)一元的計(jì)數(shù)電路仿真波形圖
將20MHZ高頻電路分頻成1HZ的頻率,使其便于板級(jí)驗(yàn)證。利用if-else語句對(duì)高頻的clk進(jìn)行降頻,分成不同頻率的clk模塊,此模塊無仿真,綜合代碼見附錄4.1
各個(gè)模塊的連接狀態(tài),首先是商品選擇電路連接的輸出連接到一個(gè)8線分線器,將對(duì)應(yīng)8線分線器輸出分別對(duì)應(yīng)接到相應(yīng)的rst_n,將clk連接到分頻模塊,接到每個(gè)狀態(tài)機(jī)的en,將投幣找零電路的輸出com_output分別接到3線分線器的輸入,再將對(duì)應(yīng)的3線分線器的輸出out1接或門接到輸出管腳,將對(duì)應(yīng)的out2輸出接到或門接到輸出管腳,將每個(gè)out3輸出管腳接到分別接到計(jì)數(shù)電路的en,再將clk輸入到接到板上自帶的clk信號(hào),輸出在分配到對(duì)應(yīng)的管腳。
以投10元買8元商品為例,簡要介紹對(duì)售貨機(jī)原理的仿真過程和驗(yàn)證結(jié)果。
首先,設(shè)置clk的頻率為50HZ,每隔0.02s自動(dòng)翻轉(zhuǎn)一次信號(hào)的高低電平。接著,給定狀態(tài)機(jī)的輸入信號(hào)的變化規(guī)律。其中,輸入信號(hào)A和B組合起來共同決定選擇的貨物的價(jià)格,輸入信號(hào)input設(shè)置投入錢數(shù)。這里A取低電平,B取1,表示選定的是價(jià)格為8元的商品,投錢信號(hào)在前10個(gè)clk周期內(nèi)先清零,后給一個(gè)數(shù)值為10的信號(hào),代表投入10元。
接下來,運(yùn)行狀態(tài)機(jī)仿真,根據(jù)之前的各模塊的內(nèi)部連接圖,可知在input信號(hào)為0時(shí),所以輸出模塊保持最初的零狀態(tài)。但當(dāng)input信號(hào)變?yōu)?0時(shí),在接下來的第一個(gè)clk到來后,商品選擇電路將會(huì)輸出對(duì)應(yīng)的rsn信號(hào),以推動(dòng)其后模塊執(zhí)行售貨機(jī)的下一流程。這里,只有rsn4輸出低電平,激活其后的fsm8狀態(tài)機(jī),該模塊立即根據(jù)輸入input的10,將狀態(tài)從0狀態(tài)變?yōu)?0狀態(tài),并使輸出出貨信號(hào)OUT持續(xù)一段高電平,控制找五元的輸出信號(hào)OUT3繼續(xù)為0,以及使找一元的輸出信號(hào)置一。它會(huì)繼續(xù)激活后續(xù)的change2模塊,用以實(shí)現(xiàn)找出2元零錢的功能。
在找一元的輸出信號(hào)置一后的第一個(gè)clk上升沿到來后,啟動(dòng)change2的狀態(tài)機(jī),使?fàn)顟B(tài)機(jī)的狀態(tài)從2逐漸減一到0后保持0不在變化,這樣模擬了實(shí)際的找零時(shí)一元一元找零時(shí)的計(jì)數(shù)倒數(shù)過程。通過以上的仿真過程分析以及仿真結(jié)果的波形圖可以看出,售貨機(jī)的狀態(tài)流程圖基本得以實(shí)現(xiàn)。
圖2.5 投10元買8元商品
本文利用EDA實(shí)現(xiàn)了一種自動(dòng)售貨機(jī)的內(nèi)部設(shè)計(jì),針對(duì)它的各個(gè)功能進(jìn)行了詳細(xì)的分析和程序設(shè)計(jì),最后封裝并進(jìn)行了仿真,驗(yàn)證了它的有效性。將這種簡易的設(shè)計(jì)應(yīng)用于自動(dòng)售貨機(jī)內(nèi),可以為人們帶來生活的便捷并提高銷售的速度并帶來一定的社會(huì)價(jià)值。在本文中用EDA實(shí)現(xiàn)的自動(dòng)售貨機(jī)可以結(jié)合人臉識(shí)別功能、虹膜識(shí)別功能和語言識(shí)別功能,使其更加智能化,能夠更加適應(yīng)于現(xiàn)代化生活。
[1]王穎,陳小嬌,柳雨婷,米思雨.基于FPGA的自動(dòng)售貨機(jī)控制電路設(shè)計(jì)[J].信息記錄材料,2017,18(08):86-87.
[2]俞寧,梅杰,陳智.基于人因工程學(xué)的自動(dòng)售貨機(jī)設(shè)計(jì)改進(jìn)研究[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2017,31(03):43-51.
[3]邵元浩.散裝飲料自動(dòng)售貨機(jī)關(guān)鍵部分的分析與研究[D].青島科技大學(xué),2016.
[4]陳齊平,張文俊,王鋼林,李鶴賢,闞清享.基于Multisim的簡易自動(dòng)售貨機(jī)控制系統(tǒng)設(shè)計(jì)與仿真[J].華東交通大學(xué)學(xué)報(bào),2015,32(06):88-92.
[5]徐龍飛,李永紅,程秀芹,岳掌寬.自動(dòng)售貨機(jī)系統(tǒng)設(shè)計(jì)[J].電子世界,2014(02):120.
[6]林若波,廖興展,方宋杰.基于PLC控制的自動(dòng)售貨機(jī)系統(tǒng)設(shè)計(jì)[J].齊齊哈爾大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,27(01):20-23.
[7]余世明,晁岳磊,繆仁將.自動(dòng)售貨機(jī)研究現(xiàn)狀及展望[J].中國工程科學(xué),2008,10(07):51-56.