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