基于移動(dòng)支付的POS 終端系統(tǒng)軟件研究

作者:陳群賢,蔣建軍,張鋼 來源:RFID世界網(wǎng) 2011-04-22 09:11:05

摘要:本文介紹了GPRS無線通信網(wǎng)與無線打印終端系統(tǒng)之間的實(shí)時(shí)數(shù)據(jù)通信流程、通信協(xié)議及其軟件設(shè)計(jì)與實(shí)現(xiàn)方法,詳細(xì)地分析了各軟件層次的實(shí)現(xiàn)方法和TCP/IP在RABBIT3000上的實(shí)現(xiàn),達(dá)到了移動(dòng)支付即時(shí)獲取的設(shè)計(jì)目的,取得了良好的經(jīng)濟(jì)效益和社會(huì)效益。

關(guān)鍵詞:移動(dòng)支付[26篇]POS[15篇]終端系統(tǒng)[0篇]無線通信[58篇]

引言
  在信用卡應(yīng)用不到半個(gè)世紀(jì),支付方式又將經(jīng)歷一次歷史性的變革——基于無線通信技術(shù)上的移動(dòng)支付方式的出現(xiàn),使支付形式徹底擺脫空間上的一切束縛,不但廣泛而便捷地應(yīng)用在固定交易場所;而且可以實(shí)現(xiàn)移動(dòng)過程中的支付功能,從而為消費(fèi)者創(chuàng)造了更靈活、更親切的消費(fèi)環(huán)境,實(shí)現(xiàn)了錢包的電子化、移動(dòng)化,是一種全新的支付手段。
  目前,世界各國都在積極研究這項(xiàng)新興的移動(dòng)支付系統(tǒng),澳大利亞和芬蘭已經(jīng)率先推出了商用模式,廣東省也在國內(nèi)第一個(gè)推出了商用的移動(dòng)支付系統(tǒng),移動(dòng)用戶可以通過他們的手機(jī)購買地鐵票、可樂、零食等商品。據(jù)統(tǒng)計(jì),移動(dòng)終端將在三至五年內(nèi)將成為廣泛使用的支付工具,然而這種新興的支付方式,還不能提供消費(fèi)者票據(jù)憑證,這不符合中國人目前的消費(fèi)觀念,人們急待一種能夠獲取票據(jù)憑證的方法來完善這一新興的支付方式,基于這種狀況研制開發(fā)無線POS打印終端系統(tǒng)就很有必要。
  1系統(tǒng)總體方案的設(shè)計(jì)
  系統(tǒng)總體框圖如圖1所示:


如圖1 系統(tǒng)總體框圖

統(tǒng)組成說明:主控CPU采用Z-WORLD公司的RABBIT3000,SRAM采用CYPRESS公司的CY62128,F(xiàn)LASH采用SST公司的SST39VF020,打印機(jī)采用GPRINTER公司的GP-7635,GPRS模塊采用西門子公司的MC35,CPU內(nèi)嵌TCP/IP協(xié)議棧。
  系統(tǒng)整體框架如下,為了控制整個(gè)系統(tǒng)穩(wěn)定運(yùn)行,系統(tǒng)需要一個(gè)微處理器,為了打印出一張憑證,系統(tǒng)需要一個(gè)微型打印機(jī)。因?yàn)橄到y(tǒng)需要通過無線的方式接入Internet,所以該系統(tǒng)還需要一個(gè)無線通信模塊,該通訊模塊可以接入Internet,選用GPRS通信模塊或者CDMA通訊模塊。為了接入Internet,僅僅有一個(gè)通訊模塊還不行,還需要遵循Internet的共有通信協(xié)議。這樣改系統(tǒng)有好幾種組合方式,本系統(tǒng)選用內(nèi)嵌TCP/IP協(xié)議棧的CPU。采用MCU及固化了TCP/IP協(xié)議的芯片組成應(yīng)用系統(tǒng)的核心,應(yīng)用系統(tǒng)可以直接上網(wǎng),硬件電路相對簡單。該方案具有如下優(yōu)點(diǎn);①不依賴PC機(jī)或高檔單片機(jī),真正實(shí)現(xiàn)8位單片機(jī)系統(tǒng)直接接入Internet,整個(gè)系統(tǒng)完全自給自足;②使用外圍器件少,系統(tǒng)成由低。
  2軟件層次結(jié)構(gòu)
  程序中的所有代碼都是由C語言編寫的,并采用分層的結(jié)構(gòu),從底到上分別為:串口驅(qū)動(dòng)層、GPRS模塊驅(qū)動(dòng)層、PPP協(xié)議層、IP協(xié)議層、UDP協(xié)議層與應(yīng)用層。上層函數(shù)的實(shí)現(xiàn)需要應(yīng)用到底層函數(shù),而底層函數(shù)的任務(wù)就是為上層函數(shù)提供服務(wù),最終完成應(yīng)用層任務(wù)——傳送數(shù)據(jù)。各層的主要函數(shù)如圖2所示:


2.1驅(qū)動(dòng)程序編寫
  首先是串行口驅(qū)動(dòng)層。它實(shí)現(xiàn)打開串口(OpenComm)、關(guān)閉串口(CloseComm)、讀串口數(shù)據(jù)(ReadComm)、寫串口數(shù)據(jù)(WriteComm)等函數(shù)。例如WriteComm函數(shù)向串口發(fā)送一個(gè)字節(jié)的數(shù)據(jù),而transmit函數(shù)向串口發(fā)送一個(gè)字符串的數(shù)據(jù)。
  然后,在這些串口函數(shù)的基礎(chǔ)上編寫GPRS模塊的驅(qū)動(dòng)函數(shù)。微控制器通過串行口控制GPRS模塊,進(jìn)行撥號、設(shè)置等操作??刂频姆椒ㄊ遣捎肁T命令。在控制GPRS模塊撥打移動(dòng)夢網(wǎng)GGSN的登錄號碼“*99**1#”之后,GPRS模塊就轉(zhuǎn)入在線模式(0n-Line)。此時(shí)微控制器向串行口發(fā)送的所有數(shù)據(jù)都透明地傳送給了GGSN,同樣GGSN的回答也傳回單片機(jī)的串行口。當(dāng)數(shù)據(jù)傳送完成后,微控制器需要通知GPRS模塊結(jié)束會(huì)話,并從在線模式轉(zhuǎn)口普通的命令模式,這可以通過置高DTR線完成。同時(shí),如果線路由于異常斷開,CD線會(huì)回復(fù)到平常的低電平,所以處于在線模式下也要不斷檢測CD線是否處于高電平。根據(jù)這些操作,可以編寫GPRS驅(qū)動(dòng)函數(shù):初始化GPRS模塊函數(shù)(GPRSInit)、撥號函數(shù)(GPRSDial)、斷開連接函數(shù)(GPRSHangup)、檢測是否處于在線狀態(tài)函數(shù)(GPRS0nline)。
  這些底層的驅(qū)動(dòng)函數(shù)將會(huì)使上層協(xié)議的編寫很方便,更重要的是,它為我們提供了一個(gè)驅(qū)動(dòng)抽象層。當(dāng)?shù)讓佑布龀龈膭?dòng)的時(shí)候,只需要對底層的驅(qū)動(dòng)函數(shù)進(jìn)行改動(dòng),而上層函數(shù)的代碼不變。
  2.2PPP協(xié)議的實(shí)現(xiàn)
  由于移動(dòng)夢網(wǎng)的GGSN與GPRS模塊通信時(shí)遵循PPP協(xié)議,所以要在微控制器中也實(shí)現(xiàn)一部分PPP協(xié)議才能與之對話。GPRS模塊在撥號后首先要與GPRS網(wǎng)關(guān)進(jìn)行通信鏈路的協(xié)商,