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