自動(dòng)售貨機(jī)是一種集聲、光、電、機(jī)、電于一體的高智能科技產(chǎn)物,可以每天24 小時(shí)售貨,被稱為“永不下班的超級營業(yè)員”,這種前衛(wèi)的零售方式在發(fā)達(dá)國家已經(jīng)十分普及。我國從國外引進(jìn)第一臺(tái)自動(dòng)售貨機(jī)到現(xiàn)今國內(nèi)自主研發(fā)或代理國外的自動(dòng)售貨機(jī),已經(jīng)開始遍布機(jī)場,商場等一些公共場所。然而這些自動(dòng)售貨機(jī)大都采用現(xiàn)金支付的方式,基于現(xiàn)金支付的自動(dòng)售貨機(jī)一般只能接收5 角或1 元的硬幣,5 元、10 元或20 元等小額人民幣,如果顧客手頭零錢短缺或不足,有可能無法購買到自己所需要的商品。這個(gè)直接影響了自動(dòng)售貨機(jī)的銷售數(shù)量, 間接制約了其發(fā)展速度。針對這種情況現(xiàn)提出采用現(xiàn)代前沿的非接觸式射頻IC 卡技術(shù)與GPRS 無線網(wǎng)絡(luò)通信技術(shù)相結(jié)合的方式設(shè)計(jì)出一種基于IC 卡支付的無線網(wǎng)絡(luò)自動(dòng)售貨機(jī)系統(tǒng)。非接觸式IC 卡技術(shù)是近幾年風(fēng)靡的一項(xiàng)新技術(shù),它成功地結(jié)合了射頻識(shí)別技術(shù)、磁電技術(shù)、計(jì)算機(jī)技術(shù)和IC 卡技術(shù),現(xiàn)已非常成熟,而且IC 卡的交易方式對于消費(fèi)者十分便利,因此研究開發(fā)基于此方式下的各類售貨機(jī)具有明顯的現(xiàn)實(shí)意義和商用價(jià)值。
1 系統(tǒng)組網(wǎng)方案
從整體角度來看,基于IC 卡支付的自動(dòng)售貨機(jī)系統(tǒng)可分為售貨機(jī)終端、GSM/GPRS 網(wǎng)絡(luò)、INTERNET 網(wǎng)絡(luò)和服務(wù)器四大塊(如圖1 所示)。
組網(wǎng)方案:向中國移動(dòng)申請APN 專網(wǎng)業(yè)務(wù),分配專用的APN 并申請綁定移動(dòng)內(nèi)網(wǎng)的固定IP 地址。服務(wù)器用無線MODEM 撥號上網(wǎng),得到其公司固定IP。自動(dòng)售貨機(jī)直接向服務(wù)器發(fā)起連接。
這種方案結(jié)構(gòu)簡單,中間環(huán)節(jié)少,容易實(shí)現(xiàn),所有的數(shù)據(jù)都在移動(dòng)GPRS 的APN 內(nèi)網(wǎng)傳輸,無需經(jīng)過公網(wǎng),安全性增強(qiáng)。本論文主要研究處于自動(dòng)售貨機(jī)終端設(shè)計(jì)與實(shí)現(xiàn)。
2 MDB 總線
MDB 總線是根據(jù)MDB/ICP 協(xié)議制定的總線標(biāo)準(zhǔn)。MDB/ICP 協(xié)議(Multi-DropBus/Internal Communication Protocol) 是歐洲售貨機(jī)制造者協(xié)會(huì)制定的一套用于協(xié)調(diào)自動(dòng)售貨機(jī)的主控制器(VMC)與多個(gè)外設(shè)之間通信的協(xié)議。
MDB 總線接口實(shí)際上是工作于9600b/s 的單從型串行總線接口。MDB 接口共有6 針,各針信號定義如下:
針1:34V 直流電源針2:電源地線
針3:不用針4:主接收線
針5:主發(fā)送線針6:公共線
MDB 協(xié)議的串行格式為:1 個(gè)起始位,8 個(gè)數(shù)據(jù)位,1 個(gè)方式位與1 個(gè)停止位,共11 位。方式位的值置1 時(shí),該字節(jié)的內(nèi)容為地址;置0 時(shí),字節(jié)內(nèi)容為數(shù)據(jù)。
VMC 向外設(shè)發(fā)送命令時(shí)采用廣播方式。第一字節(jié)為地址字節(jié),該字節(jié)被所有外設(shè)讀取,但只有符合地址字節(jié)所指的外設(shè)才處理其后的數(shù)據(jù)字節(jié)。當(dāng)數(shù)據(jù)從外設(shè)發(fā)送到VMC 時(shí),最后一個(gè)字節(jié)的方式位被置1,標(biāo)志著數(shù)據(jù)發(fā)送完畢。
3 自動(dòng)售貨終端的硬件設(shè)計(jì)
3.1 硬件概述
刷卡自動(dòng)售貨機(jī)的工作流程大概如下:用戶根據(jù)貨機(jī)提示,把IC 卡放入自動(dòng)售貨機(jī)讀卡模塊的有效范圍,經(jīng)過驗(yàn)證確認(rèn),扣除用戶購買商品金額成功后,售貨機(jī)主控制器驅(qū)動(dòng)對應(yīng)貨道電機(jī),商品即可掉入取貨倉中,同時(shí)該次交易信息,包括卡號,交易日期和時(shí)間、消費(fèi)金額等會(huì)記錄在售貨機(jī)存儲(chǔ)器中。因此根據(jù)售貨機(jī)的銷售特點(diǎn)將硬件分為兩大部分:主板模塊和驅(qū)動(dòng)模塊,驅(qū)動(dòng)模塊主要包括所要驅(qū)動(dòng)的控制對象,包括直流電機(jī)、電磁開關(guān)、硬(紙)幣機(jī)及液晶顯示屏等。主板主要用于用戶的刷卡消費(fèi)及數(shù)據(jù)的上傳以及對驅(qū)動(dòng)板的各種控制指令。
設(shè)計(jì)的目的是要實(shí)現(xiàn)在自助售貨管理中心要求上傳數(shù)據(jù)時(shí),把所存儲(chǔ)的信息根據(jù)客戶端與服務(wù)器制定的通信協(xié)議打包,然后通過GPRS 無線網(wǎng)絡(luò)發(fā)送給自助售貨管理中心,管理中心軟件對收到的信息進(jìn)行分析整理,并把相關(guān)記錄存儲(chǔ)到數(shù)據(jù)庫表中。管理中心也會(huì)通信協(xié)議定時(shí)把充值列表、黑名單列表等控制信息打包通過GPRS 下傳到售貨機(jī)。因此按功能分為射頻卡讀寫子模塊和GPRS 通信子模塊。射頻卡讀寫模塊直接與自動(dòng)售貨機(jī)相連,GPRS 通信子模塊通過一個(gè)總線轉(zhuǎn)換接口與自動(dòng)售貨機(jī)相連。
3.2 自動(dòng)售貨機(jī)結(jié)構(gòu)
終端設(shè)備自動(dòng)售貨機(jī)的內(nèi)部結(jié)構(gòu)如圖2 所示。
自動(dòng)售貨終端的主控制器VMC (Vending Machine Controller) 先用Motorola公司的M68HC11 單片機(jī),它有一個(gè)全雙工串口,通過該串口連接紙幣器、硬幣器和讀卡器,使用MDB/ICP 協(xié)議通信。根據(jù)MDB 協(xié)議,圖2 中的VMC 是主控制器,而紙幣器、硬幣器及GPRS 模塊是從設(shè)備。另外,VMC 直接連接顯示屏、鍵盤及馬達(dá)電機(jī)等,以實(shí)現(xiàn)與用戶的交互及驅(qū)動(dòng)出貨裝置。GPRS 模塊采用西門子公司提供的MC35i 工業(yè)級GPRS/GSM 模塊, 它提供標(biāo)準(zhǔn)的RS-232 串行接口,使用該串口同VCM 進(jìn)行數(shù)據(jù)傳輸。但是VMC 只有一個(gè)全雙工串口,并且已經(jīng)使用,要實(shí)現(xiàn)VMC 與MC35i 模塊的通信,需將MC35i 模塊與紙幣器、硬幣器、讀卡器一樣作為從設(shè)備使用, 遵循MDB/ICP 協(xié)議通信, 所以在VMC 與MC35i模塊之間需要設(shè)計(jì)一個(gè)接口模塊,來完成MDB/ICP 協(xié)議的轉(zhuǎn)換功能。
3.3 總線轉(zhuǎn)換接口模塊的設(shè)計(jì)
轉(zhuǎn)換接口采用Winbond 公司的W77E58 單片機(jī)。這種型號的單片機(jī)內(nèi)含兩個(gè)增強(qiáng)型串口和32KB 大容易Flash 存儲(chǔ)器, 指令集與51 系列單片機(jī)完全兼容,適合于接口轉(zhuǎn)換應(yīng)用。轉(zhuǎn)換接口設(shè)計(jì)方案如圖3 所示。
在這里,W77E58 串口0 的TXD0X 線和RXD0 線分別通過光耦連接MDB接口的4 線(主接收線)和5 線(主發(fā)送線)。MDB 接口的1 線和2 線接34V 直流電源,以線空出不用,6 線作為公共線。W77E58 串口1 的TXD1 線和RXD1 線經(jīng)過電平轉(zhuǎn)換芯片MAX232 便可以直接與MC35i 模塊的RS232 串口相連, 由于串口0 可以使用定時(shí)器T1 或定時(shí)器T2 作為波特率發(fā)生器;而串口1 只能使用定時(shí)器T1 作為其波特率發(fā)送器,使用定時(shí)器T1 作為串口1 的波特率發(fā)生器,波特率均設(shè)為9600b/s。另外,由于W77E58 已有256B 的RAM 和1KB 的SRAM,足夠本接口的數(shù)據(jù)緩存之用,故不需要擴(kuò)展存儲(chǔ)器。
4 軟件設(shè)計(jì)
軟件主要采用C 語言來實(shí)現(xiàn)。
4.1 數(shù)據(jù)格式的設(shè)計(jì)
在自動(dòng)售貨機(jī)和監(jiān)控中心的信息傳送中,必須對信息的格式進(jìn)行統(tǒng)一規(guī)定,才能使兩端都能解讀信息的內(nèi)容。自動(dòng)售貨機(jī)發(fā)給監(jiān)控中心的信息一般有三種:
1) 故障信息:包括紙幣器故障、溫度失控、主板故障等約64 種故障信息。
2)狀態(tài)信息:包括缺貨、缺幣、開門檢測等信息。
3)銷售信息:包括每次銷售信息、總銷售額等信息。
根據(jù)這一種信息種類,設(shè)計(jì)數(shù)據(jù)包的格式如表1 所示。由于系統(tǒng)傳輸?shù)臄?shù)據(jù)量較大, 所以在傳送信息的過程中,必須對重要的信息優(yōu)先傳送。我們規(guī)定一個(gè)優(yōu)先級順序,信息類型1 為最高優(yōu)先級,信息類型2 次之,信息類型3 最低。
4.2 總線轉(zhuǎn)換接口的通信協(xié)議及軟件實(shí)現(xiàn)
W77E58 提供了雙串口,本次設(shè)計(jì)中,用串口0 實(shí)現(xiàn)與MDB 接口的通信,而串口1 實(shí)現(xiàn)與讀卡模塊的通信,串口1 在與讀卡模塊RS232 串口相連之前必須經(jīng)過芯片MAX232,以實(shí)現(xiàn)電平轉(zhuǎn)換。使用定時(shí)器T2 作為串口0 的波特率發(fā)送器,使用定時(shí)器T1 作為串口1 的波特率發(fā)生器,波特率均設(shè)為9600bps.
在轉(zhuǎn)換接口中,VMC、W77E58 和讀卡模塊既是發(fā)送方又是接收方,都工作在半雙工模式。W77E58 與VMC 之間的通信部分,VMC 作為主設(shè)備, 在通信過程中的發(fā)送和接收都采用查訪方式,W77E58 串口0 的發(fā)送和接收均采用中斷方式,即VMC 與W77E58 之間通信是以VMC 為主的“主從通信法”通信協(xié)議。而W77E58 與讀卡模塊之間的通信部分,WW77E58 做主設(shè)備,W77E58 串口1 的發(fā)送和接收均采用查詢方式,讀卡模塊串口的收發(fā)均采用中斷方式。
VMC 是通過MDB 總線以廣播方式發(fā)送命令的, 作為接收設(shè)備的W77E58 需要使用一個(gè)設(shè)定的從設(shè)備地址。以串口0 為例,串口0 接收到命令時(shí),首先要判斷該命令是不是發(fā)給本設(shè)備的,如果是就繼續(xù)接收后面的數(shù)據(jù),否則重新等待命令。當(dāng)數(shù)據(jù)從外設(shè)發(fā)送到VMC 時(shí),最后一字節(jié)的方式位被置1, 標(biāo)志著數(shù)據(jù)發(fā)送完畢。W77E58 串口0 的中斷發(fā)送、接收程序的主要主要流程如圖4所示。串口1 的收發(fā)程序流程與此類似。
5 結(jié)論
目前,介紹的基于IC 支付的無線網(wǎng)絡(luò)自動(dòng)售貨機(jī)已投入運(yùn)行,部分通訊數(shù)據(jù)還在調(diào)試,該系統(tǒng)能夠及時(shí)將用戶的刷卡消費(fèi)記錄、黑名單以及與管理中心之間的通訊數(shù)據(jù)能夠及時(shí)上傳和下傳,管理中心能夠及時(shí)了解分布在各點(diǎn)的售貨機(jī)的支付情況,方便維護(hù),該系統(tǒng)具有成本低廉,功能易于擴(kuò)展,在即將到來的基于無線自動(dòng)售貨機(jī)市場有廣泛的應(yīng)用前景。