自動(dòng)售貨機方便快捷,可以每天24小時(shí)售貨,被稱(chēng)為“永不下班的超級營(yíng)業(yè)員”,這種前衛的零售方式在發(fā)達國家已經(jīng)十分普及。我國從90年代初期從國外引進(jìn)第一臺自動(dòng)售貨機到現今國內自主研發(fā)或代理國外的自動(dòng)售貨機,已經(jīng)開(kāi)始遍布機場(chǎng),商場(chǎng)等一些公共場(chǎng)所¨J。然而這些售貨機終端大都采用CAN總線(xiàn)或采用485總線(xiàn)連接控制主機,由于分布零散等因素造成系統的建設投資大、運營(yíng)費用高監控維護不及時(shí)等缺點(diǎn),另外這些售貨機都存在只接受硬幣和小額面值鈔票等缺點(diǎn),直接影響了自動(dòng)售貨機的銷(xiāo)售數量,間接制約了其發(fā)展速度。針對這種情況現提出采用現代前沿的GPRS無(wú)線(xiàn)網(wǎng)絡(luò )通信技術(shù)與非接觸式Ic卡相結合的方式,由于GPRS網(wǎng)絡(luò )采用分組交換技術(shù)特別適合于間斷的、突發(fā)性的或頻繁的、少量的數據傳輸,也適用于偶爾的大數據量傳輸。具有永遠在線(xiàn)、信號質(zhì)量好、快速登錄、按流量收費等特點(diǎn),保證了系統的實(shí)時(shí)性和穩定性,同時(shí)采用IC卡的交易方式對于消費者十分便利,因此研究開(kāi)發(fā)基于這種方式下的各類(lèi)自動(dòng)售貨機具有明顯的現實(shí)意義和商用價(jià)值。
1系統網(wǎng)絡(luò )方案 從整體角度來(lái)看,采用C/S結構來(lái)組網(wǎng)。C/S模式主要由客戶(hù)程序Client、服務(wù)器管理程序Server和中間件Middleware 3個(gè)部件組成?蛻(hù)應用程序是系統中用戶(hù)與數據進(jìn)行交互的部件。服務(wù)器程序負責有效地管理系統資源,C/S的優(yōu)點(diǎn)主要就是交互性強、提供了安全的存取模式及網(wǎng)絡(luò )通信量低;贕PRS移動(dòng)網(wǎng)絡(luò )的自動(dòng)售貨機可分為售貨機終端、GSM/GPRS網(wǎng)絡(luò )、INTERNET網(wǎng)絡(luò )和服務(wù)器四大塊舊J。如圖1所示。
組網(wǎng)方案:向中國移動(dòng)申請APN專(zhuān)網(wǎng)業(yè)務(wù),分 配專(zhuān)用的APN并申請綁定移動(dòng)內網(wǎng)的固定IP地址。服務(wù)器用MODEM撥號上網(wǎng),得到其公網(wǎng)固定IP;自動(dòng)售貨機直接向服務(wù)器發(fā)起TCP連接。
這種方案結構簡(jiǎn)單,中間環(huán)節少,容易實(shí)現,利用CRC校驗實(shí)現數據的安全傳輸。利用程序設計實(shí)現數據的等間隔傳輸,且實(shí)時(shí)性完全可以保證,即使發(fā)生數據丟失,也可以利用重發(fā)的方式來(lái)補償。
2硬件電路設計
2.1硬件概述
刷卡自動(dòng)售貨機工作流程大概如下:首先用戶(hù)選擇所要的商品按下相應的按鍵之后選擇投幣或者刷卡,如果用戶(hù)選擇刷卡則自動(dòng)銷(xiāo)售完之后顯示用戶(hù)卡余額,及語(yǔ)音提示物品領(lǐng)取等信息。因此根據售貨機的銷(xiāo)售特點(diǎn)將硬件分為兩大部分:主板模塊和驅動(dòng)模塊,驅動(dòng)模塊主要包括所要驅動(dòng)的控制對象,包括直流電機、電磁開(kāi)關(guān)、硬(紙)幣機及液晶顯示屏等。主板主要用于用戶(hù)的刷卡消費及數據的上傳以及完成對驅動(dòng)板的各種控制指令,現主要介紹主板的設計過(guò)程。設計的目的是要實(shí)現自動(dòng)售貨機刷卡消費并將消費信息、交易明細等記錄通過(guò)GPRS上傳,充值列表、黑名單列表等控制信息也通過(guò)GPRS下傳到售貨機。因此按功能分為射頻卡讀寫(xiě)子模塊和GPRS通信子模塊。兩個(gè)模塊都直接與自動(dòng)售貨機的主控制器相連,這種設計方案具有硬件實(shí)現簡(jiǎn)單,易于調試另外為軟件的編寫(xiě)也提供了很大的便利,這一切應歸功于近年來(lái)基于A(yíng)RM7內核的微處理器的廣泛應用。另外系統還需有數據存儲部分,時(shí)鐘部分以及電源部分和接口部分電路構成,整體結構見(jiàn)圖2。
2.2硬件選取與設計
2.2.1微處理器選型
單片機是整個(gè)系統的核心,其性能會(huì )直接影響到整個(gè)系統的性能。為了滿(mǎn)足串口、程序運行的快速性、內帶大容量的flash以及調試方便等要求jMCU選為PhilipsLPC2292,LPC2292是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI—STM的CPU,并帶有256 k字節(kB)嵌入的高速Flash存儲器。128位寬度的存儲器接口和獨特的加速結構使32位代碼能夠在最大時(shí)鐘速率下運行損失很小。包含2個(gè)16C550工業(yè)標準UART,通過(guò)片內boot裝載程序實(shí)現在系統編程(ISP)和在應用編程(IAP)舊1等優(yōu)點(diǎn)。在系統中LPC2292主要作用如下。
(1) 通過(guò)串口1與SIM300C模塊相連,通過(guò)AT指令完成對SIM300C的初始化以及基于TCP/IP協(xié)議的數據收發(fā)功能。
(2) 串口2擴展MAX3232標準串口與驅動(dòng)板相連,完成對驅動(dòng)板的控制。
(3) 擴展刷卡接口完成與刷卡模塊之間的相互通信從而控制驅動(dòng)電路和驅動(dòng)SIM300C模塊進(jìn)行數據的傳輸。
(4) 根據遠程控制指令完成其他操作。
2.2.2 通信模塊的設計
通信模塊部分選用SIMCOM有限公司提供的SIM300C GPRS模塊,具有標準AT指令接口,自動(dòng)檢測SIM卡(包括6腳和8腳SIM卡),可以提供GSM語(yǔ)音、短消息和GPRS上網(wǎng)等業(yè)務(wù)。與
LPC2292之間通過(guò)AT指令來(lái)通信。該模塊體積小,便于安裝,另外SIM300C最大的特點(diǎn)在于內嵌TCP/IP協(xié)議H.5],特別適合于數據傳輸方面,方便用戶(hù)的使用,降低了產(chǎn)品開(kāi)發(fā)成本,縮短開(kāi)發(fā)時(shí)間。為提高GPRS模塊的穩定性和抗干擾性,應在SIM卡座和SIM300C接口部分敷銅并且兩者之間的距離不應超過(guò)10 cm,電源和地線(xiàn)采用50 mil走線(xiàn)為好。SIM300C的工作電壓在3.4—4.5 V之間,在突然數據傳輸發(fā)生時(shí)必須要保證提供給模塊2A的尖峰電流,處理好這些問(wèn)題后SIM300C在點(diǎn)火啟動(dòng)后便可以正常工作。
2.2.3數據存儲及時(shí)鐘部分設計
數據存儲部分用來(lái)對消費信息,刷卡數據,黑名單等一些數據保存,防止在GPRS網(wǎng)路故障和突然斷電的情況下造成數據的丟失。在此選用了1 M X16大小的CMOS多功能Flash(MPF)芯片
SST39VFl60(TSOP封裝),此j簽片具有10 000個(gè)周期的耐用性和大于100年的數據保持時(shí)問(wèn),編程或擦除的操作電壓為2.7—3.6 V,符合1M×16存儲器的JEDEC標準的管腳分配。由于自動(dòng)售貨機上傳的交易信息中需要有時(shí)間信息,因此要設計時(shí)鐘電路部分來(lái)記錄詳細的事件發(fā)生時(shí)間,在此選用DALLAS公司的涓流充電芯片,內含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節靜態(tài)RAM,為了
防止外接電池的充電,應該在其正極放置二極管,另外也可以用程序來(lái)控制反充電。
2.2.4接口部分和電源部分的設計
為了調試程序及下載程序的方便,必須拓展ARM7TDMI J’rAG調試接口,調試系統包括:調試主機、協(xié)議轉換器和調試目標。調試主機是一臺運行調試軟件(如ARM公司開(kāi)發(fā)的ADS調試軟件)的計算機。調試主機可以發(fā)出一些高層次的調試指令,如設置斷點(diǎn)、訪(fǎng)問(wèn)內存等。協(xié)議轉換器(MULTI.ICE)用來(lái)將調試主機發(fā)出的高層次調試指令轉換成底層的ARM JTAG調試命令。調試目標在此就是指基于A(yíng)RM7TDMI內核的LPC2292目標開(kāi)發(fā)板。經(jīng)過(guò)協(xié)議轉換器進(jìn)行命令解釋主機運行的調試軟件就可以通過(guò)mG接口直接和ARM7TDMI內核對話(huà)。極大地方便了程序的調試。為方便與驅動(dòng)板的通信,還必須在主板上拓展一個(gè)9針串口,具體電路很簡(jiǎn)單,在此不做介紹。對于一個(gè)系統來(lái)說(shuō),電源部分是至關(guān)重要的,在本系統中模塊分別需要5 V,3.3 V以及1.8 V的電壓支持。其中5 V電壓由開(kāi)關(guān)電源構成,只有得到純凈的5 V電壓才能得到其他兩種電壓,其它兩種電壓由模擬電源構成。5 V的電壓供給刷卡模塊、串口等;3.3 V,1.8 V分別供給LPC2292的內核以及I/O口。電源輸入端采用(8—40)V的直流電源供電,選用LM2676系列電源芯片來(lái)獲取5 V電壓,選用AMSlll7—3.3 V和AMSlll7—1.8 V來(lái)獲取3.3 V和1.8 V的電壓。各種電壓的輸出口與地應該接入三個(gè)0.1妒的去耦電容。
2.2.5刷卡模塊的設計
由于刷卡模塊的重要性需要單獨制作一快高頻板,刷卡模塊的核心芯片為RC500讀卡芯片和支持在線(xiàn)編程的STC89LES58RD+單片機?珊芎玫闹С謱Ψ墙佑|式Ic的操作。通過(guò)主板拓展的5針插口與其通信。
3軟件設計
軟件主要采用C語(yǔ)言編寫(xiě),除完成對ARM芯片及各個(gè)子模塊的初始化之外主要編寫(xiě)與服務(wù)器之間的通信程序,軟件必須保證數據傳輸得可靠性、安全性以及GPRS通信鏈路得穩定性等問(wèn)題。主流程圖如圖3所示。
3.1數據處理及錯誤控制
自動(dòng)售貨機與服務(wù)器問(wèn)的通信為一種擴展的Client/Server(C/S)模式,Sever作為主,主動(dòng)向作為Client的售機發(fā)送指令,再根據售貨機回應進(jìn)行相應的處理。其相應的錯誤控制機制如下。發(fā)送方只在收到對方的錯誤應答時(shí)才重發(fā),超時(shí)未收到對方應答不進(jìn)行重發(fā),如果超時(shí)無(wú)應答,發(fā)送方即切斷當前鏈路,從而拋棄了原有鏈路中可能延后到達的垃圾數據,出現此情況時(shí),放棄本次通信任務(wù),向上層返回錯誤,迫使售貨機重建新的鏈接,使收發(fā)雙方重新初始化緩沖區并在新鏈接上重新開(kāi)始通信 數據報文格式如圖4。
應答報文格式如圖5。
字段簡(jiǎn)要說(shuō)明
報頭標志:前三字節固定,后兩字節為協(xié)議版本號。
報文長(cháng)度:表示從報頭到校驗和的整個(gè)報文長(cháng)度的16進(jìn)制數。
報文S.N:接收的數據報文的報文序列號
報文類(lèi)型:接收的數據報文的報文類(lèi)型
VM ID:自動(dòng)售貨機編號,10位定長(cháng)BCD格式數字代碼。
應答字:比如11為應答成功;BitO一7位置0時(shí)表示相應處理出錯
附加內容:自定義內容,對不同的報文類(lèi)型的應答有不同的內容定義。
CRC交驗和:不包括校驗和本身的CRC校驗和與報文中的CRC校驗和相等為正確。
所有的管理命令報文均為簡(jiǎn)短的命令,售貨機則應立即用簡(jiǎn)短的應答予以確認,即便是為了實(shí)現與售貨機的數據交換,也不由管理命令報文本身完成,管理命令只是用于向售貨機下達通知,需進(jìn)行的實(shí)際數據交換工作在收到售貨機回應命令后在進(jìn)行處理,對時(shí)鐘同步命令售貨機必須立即執行。圖6、圖7是GPRS接受數據和發(fā)送數據的流程。
3.2軟件設計要點(diǎn)
SIM300C是SIMCOM有限公司開(kāi)發(fā)的支持GPRS上網(wǎng)、GSM語(yǔ)音及支持標準AT指令的模塊,因此編程應用很方便。SIM300C也是通過(guò)標準的232接口和MCU通信的,具體的指令系統是AT指令集。通常情況下為了簡(jiǎn)化硬件的設計而采用3線(xiàn)制232接口。也就是是說(shuō)沒(méi)有多余的硬件措施來(lái)檢測SIM300C的串口是否正常工作。然而SIM300C只有在串口功能被打開(kāi)的情況下才能正常的發(fā)出命令,而在有些時(shí)候是會(huì )關(guān)閉串口的,比如電壓突然過(guò)低(這在搜索網(wǎng)絡(luò )或撥打電話(huà)時(shí)有可能出現)或者溫度的影響等等。在這些情況下,SIM300C的串口就關(guān)閉而不能工作了。如果在這時(shí)在等待AT指令的返回,程序很有可能就進(jìn)入死循環(huán)。為此必須加入超時(shí)控制的代碼來(lái)避免這種情況的發(fā)生,也就是在發(fā)送完一條AT指令后。在規定的時(shí)間范圍內等待接收SIM300C對該條指令的回應,結合系統實(shí)際運行證明這完全是可行的。另外在實(shí)際應用中發(fā)現,一旦由于某種原因SIM300C不工作了,這時(shí)候最可靠的方法是重新啟動(dòng)SIM300C,觸發(fā)點(diǎn)火信號,讓其重新工作。
4結論
目前,介紹的基于GPRS網(wǎng)絡(luò )的刷卡自動(dòng)售貨機已投入運行,部分通訊數據還在調試,該系統能夠及時(shí)將用戶(hù)的刷卡消費記錄、黑名單以及與管理中心之間的通訊數據都能夠及時(shí)上傳和下傳,管理中心能夠及時(shí)了解分布在各點(diǎn)的售貨機的運行情況,方便維護,該系統具有成本低廉,功能易于擴展,在即將到來(lái)的基于無(wú)線(xiàn)的自動(dòng)售貨機市場(chǎng)有廣泛的應用前景。