首頁(yè)>>>行業(yè)應用>>>移動(dòng)     [相關(guān)廠(chǎng)商信息]

分析移動(dòng)支付POS終端系統軟件

陳群賢 2011/04/28

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

  引言

  在信用卡應用不到半個(gè)世紀,支付方式又將經(jīng)歷一次歷史性的變革——基于無(wú)線(xiàn)通信技術(shù)上的移動(dòng)支付方式的出現,使支付形式徹底擺脫空間上的一切束縛,不但廣泛而便捷地應用在固定交易場(chǎng)所;而且可以實(shí)現移動(dòng)過(guò)程中的支付功能,從而為消費者創(chuàng )造了更靈活、更親切的消費環(huán)境,實(shí)現了錢(qián)包的電子化、移動(dòng)化,是一種全新的支付手段。

  目前,世界各國都在積極研究這項新興的移動(dòng)支付系統,澳大利亞和芬蘭已經(jīng)率先推出了商用模式,廣東省也在國內第一個(gè)推出了商用的移動(dòng)支付系統,移動(dòng)用戶(hù)可以通過(guò)他們的手機購買(mǎi)地鐵票、可樂(lè )、零食等商品。據統計,移動(dòng)終端將在三至五年內將成為廣泛使用的支付工具,然而這種新興的支付方式,還不能提供消費者票據憑證,這不符合中國人目前的消費觀(guān)念,人們急待一種能夠獲取票據憑證的方法來(lái)完善這一新興的支付方式,基于這種狀況研制開(kāi)發(fā)無(wú)線(xiàn)POS 打印終端系統就很有必要。

  1、系統總體方案的設計

  系統總體框圖如圖1所示:
  

  統組成說(shuō)明:主控CPU 采用Z-WORLD 公司的RABBIT3000,SRAM 采用CYPRESS 公司的CY62128,FLASH 采用SST 公司的SST39VF020,打印機采用GPRINTER 公司的GP-7635,GPRS模塊采用西門(mén)子公司的MC35,CPU 內嵌TCP/IP 協(xié)議棧。

  系統整體框架如下,為了控制整個(gè)系統穩定運行,系統需要一個(gè)微處理器,為了打印出一張憑證,系統需要一個(gè)微型打印機。因為系統需要通過(guò)無(wú)線(xiàn)的方式接入Internet,所以該系統還需要一個(gè)無(wú)線(xiàn)通信模塊,該通訊模塊可以接入Internet,選用GPRS 通信模塊或者CDMA 通訊模塊。為了接入Internet,僅僅有一個(gè)通訊模塊還不行,還需要遵循Internet 的共有通信協(xié)議。這樣改系統有好幾種組合方式,本系統選用內嵌TCP/IP 協(xié)議棧的CPU。采用MCU 及固化了TCP/IP 協(xié)議的芯片組成應用系統的核心,應用系統可以直接上網(wǎng),硬件電路相對簡(jiǎn)單。該方案具有如下優(yōu)點(diǎn);①不依賴(lài)PC 機或高檔單片機,真正實(shí)現8 位單片機系統直接接入Internet,整個(gè)系統完全自給自足;②使用外圍器件少,系統成由低。

  2、軟件層次結構

  程序中的所有代碼都是由C 語(yǔ)言編寫(xiě)的,并采用分層的結構,從底到上分別為:串口驅動(dòng)層、GPRS 模塊驅動(dòng)層、PPP 協(xié)議層、IP 協(xié)議層、UDP 協(xié)議層與應用層。上層函數的實(shí)現需要應用到底層函數,而底層函數的任務(wù)就是為上層函數提供服務(wù),最終完成應用層任務(wù)——傳送數據。各層的主要函數如圖2 所示:
  

  2.1 驅動(dòng)程序編寫(xiě)

  首先是串行口驅動(dòng)層。它實(shí)現打開(kāi)串口(OpenComm)、關(guān)閉串口(CloseComm)、讀串口數據(ReadComm)、寫(xiě)串口數據(WriteComm)等函數。例如 WriteComm 函數向串口發(fā)送一個(gè)字節的數據,而transmit 函數向串口發(fā)送一個(gè)字符串的數據。

  然后,在這些串口函數的基礎上編寫(xiě)GPRS 模塊的驅動(dòng)函數。微控制器通過(guò)串行口控制GPRS模塊,進(jìn)行撥號、設置等操作。控制的方法是采用AT 命令。在控制GPRS 模塊撥打移動(dòng)夢(mèng)網(wǎng)GGSN的登錄號碼“*99**1#”之后,GPRS 模塊就轉入在線(xiàn)模式(0n-Line)。此時(shí)微控制器向串行口發(fā)送的所有數據都透明地傳送給了GGSN ,同樣GGSN 的回答也傳回單片機的串行口。當數據傳送完成后,微控制器需要通知 GPRS 模塊結束會(huì )話(huà),并從在線(xiàn)模式轉口普通的命令模式,這可以通過(guò)置高DTR 線(xiàn)完成。同時(shí),如果線(xiàn)路由于異常斷開(kāi),CD 線(xiàn)會(huì )回復到平常的低電平,所以處于在線(xiàn)模式下也要不斷檢測CD 線(xiàn)是否處于高電平。根據這些操作,可以編寫(xiě)GPRS 驅動(dòng)函數:初始化GPRS模塊函數(GPRSInit)、撥號函數(GPRSDial)、斷開(kāi)連接函數(GPRSHangup)、檢測是否處于在線(xiàn)狀態(tài)函數(GPRS0nline)。

  這些底層的驅動(dòng)函數將會(huì )使上層協(xié)議的編寫(xiě)很方便,更重要的是,它為我們提供了一個(gè)驅動(dòng)抽象層。當底層硬件做出改動(dòng)的時(shí)候,只需要對底層的驅動(dòng)函數進(jìn)行改動(dòng),而上層函數的代碼不變。

  2.2 PPP協(xié)議的實(shí)現

  由于移動(dòng)夢(mèng)網(wǎng)的GGSN與GPRS模塊通信時(shí)遵循PPP 協(xié)議,所以要在微控制器中也實(shí)現一部分PPP協(xié)議才能與之對話(huà)。GPRS 模塊在撥號后首先要與GPRS 網(wǎng)關(guān)進(jìn)行通信鏈路的協(xié)商,即協(xié)商點(diǎn)到點(diǎn)的各種鏈路參數配置。協(xié)商過(guò)程遵守LCP(Link Control Protocol)、PAP(Password AuthenticationProtocol)和IPCP(Internet Protocol Control Protocol)等協(xié)議。其中 LCP 協(xié)議用于建立、構造、測試鏈路連接;PAP 協(xié)議用于處理密碼驗證部分;IPCP 協(xié)議用于設置網(wǎng)絡(luò )協(xié)議環(huán)境,并分配IP 地址。

  協(xié)商機制用有限狀態(tài)機的模型來(lái)實(shí)現。一旦協(xié)商完成,鏈路已經(jīng)創(chuàng )建,IP 地址已經(jīng)分配就可以按照協(xié)商的標準進(jìn)行IP 報文的傳輸了。根據應用的不同,IP 報文中可以攜帶UDP 報文,也可以是TCP或ICMP 報文。數據傳輸完成之后,微控制器會(huì )向GGSN 發(fā)送LCP 的斷開(kāi)連接報文,以終止網(wǎng)絡(luò )連接。

  微控制器的串口中斷接收程序首先以包起始和結束符來(lái)判斷是否有完整的PPP 包,并對PPP 包的內容進(jìn)行校驗;以確定數據包的完整性和正確性。然后,在主循環(huán)中進(jìn)入PPP 報文解析模塊,解析過(guò)程如圖4 所示。
  

  2.3 登錄GGSN 的過(guò)程

  系統的一個(gè)難點(diǎn)是微控制器登陸 GPRS 網(wǎng)關(guān)(GGSN)并與網(wǎng)關(guān)通過(guò)LCP、PAP、IPCP 協(xié)議進(jìn)行協(xié)商的過(guò)程。LCP、PAP 與IPCP 協(xié)議的幀結構大同小異,最常用的為請求(REQ)、同意(ACK)和拒絕(NAK)三種幀。微控制器與GGSN 各為一方進(jìn)行協(xié)商,任何一方都可以發(fā)送REQ 幀請求某方面的配制,另一方覺(jué)得配置不能接受會(huì )回應NAK 幀,如果可以則回應ACK 幀。為了節省資源,我們只處理這三種數據幀,其它鏈路問(wèn)題都由微控制器在程序控制下自己重新?lián)芴柦鉀Q。協(xié)商過(guò)程大致描述如下:在撥號成功連接后,GGSN 首先會(huì )返回一個(gè)PAP REQ 數據幀。我們發(fā)送一個(gè)空 LCP REQ 幀,以強迫進(jìn)行協(xié)議協(xié)商階段。隨后,GGSN 發(fā)送LCP 設置幀,我們拒絕所有的設置并請求驗證模式。GGSN 選擇CHAP 或PAP 方式驗證,我們只接受PAP 方式。然后,進(jìn)行PAP 驗證用戶(hù)名和密碼過(guò)程,在GPRS 中用戶(hù)名與密碼都為空,如果成功,GGSN 會(huì )返回IPCP報文分配動(dòng)態(tài)IP 地址。此時(shí),就完成了與GGSN 的協(xié)商過(guò)程。協(xié)商過(guò)程的狀態(tài)轉換如圖5 所示。
  

  協(xié)商完成后進(jìn)入 IP 數據報通信階段。此時(shí),微控制器向GGSN 發(fā)送的所有包含IP 報文的PPP 報文都會(huì )被傳送給Internet網(wǎng)中相應的IP地址;而遠端所有向微控制器IP地址發(fā)送的報文也都會(huì )經(jīng)GPRS網(wǎng)傳送到微控制器上,從而完成微控制器與遠程主機通過(guò)互聯(lián)網(wǎng)的數據傳輸。

    3、TCP/IP 在 RABBIT3000 上的實(shí)現

  Rabbit 3000 系列芯片是一種高性能8 位器件。由于其C 語(yǔ)言友好指令集和快速數字處理功能,因而受到矚目。Rabbit 結構以Zilog 公司的原始Z80 微處理器為基礎,但作了幾項改進(jìn):不像Z80指令集那樣使用16 位尋址覆蓋存儲空間,而用一個(gè)20 位或1MB 的實(shí)際存儲空間;采取直接與靜態(tài)存儲器件相連接的方式;有3 條存儲芯片選擇線(xiàn)路和2 組寫(xiě)入/輸出啟動(dòng)線(xiàn)路;片上外設包括4 個(gè)串行端口、l 個(gè)子端口、40 條p 線(xiàn)、7 個(gè)不同的定時(shí)器、精確脈沖發(fā)生硬件和電池支持的RTC。

  用戶(hù)只需對應添加相關(guān)芯片及輔助設施(如電源、用戶(hù)所需外設等)即可;而軟件的實(shí)現,由于 Rabbit 3000 系列芯片得到 Dynamic C 編譯器的支持以及實(shí)現TCP/IP 所需的庫文件dcrtcp.lib,因此只要會(huì )用C 語(yǔ)言就可以進(jìn)行開(kāi)發(fā)。用戶(hù)關(guān)注的重點(diǎn)也變?yōu)榫W(wǎng)絡(luò )通信實(shí)現以后的代碼編制及優(yōu)化,可以極大提高開(kāi)發(fā)進(jìn)度。

  以下是 Dynamic C 實(shí)現 TCP/IP 協(xié)議通信的程序主體框架。程序中起始宏定義為默認IP 配置信息;“memmap”句可使程序在芯片里面運行時(shí),如同在擴展代碼窗口下被編譯;“use”句使編譯器按照庫文件配置編譯代碼。

  #define TCPCONFIG 1
  #memmap xmem
  #use dcrtcp.lib
  main(){
  sock_init();
  for(;;) {
  tcp_tick(NULL);}
  }

  sock_init()和 tcp_tick()都是 TCP/IP 函數庫的基本函數,前者為初始化TCP/IP 協(xié)議棧函數,使協(xié)議棧開(kāi)始處理入棧數據報;后者主要有兩個(gè)用途:①支持后臺處理的最新信息;②測試 TCP/IP套接字的狀態(tài)。

  利用Dynamic C 提供的TCP/IP 協(xié)議包,用戶(hù)可以輕松建立起TCP/IP 通信。當通信建立以后,就可以在此基礎上進(jìn)行后續的進(jìn)一步功能擴展,開(kāi)展例如 HTTP、PPP 等應用層的協(xié)議實(shí)現。

  4、系統軟件部分實(shí)現

  本系統軟件部分主要包括4 個(gè)部分,l、GPRS 撥號部分2、TCP/IP 協(xié)議棧部分3、打印驅動(dòng)部分4、存儲部分。

  GPRS 撥號部分主要是采用PPP 協(xié)議向移動(dòng)服務(wù)中心發(fā)出一個(gè)使用其網(wǎng)絡(luò )的請求,并有服務(wù)中心驗證通過(guò),TCP/IP 協(xié)議棧是現在網(wǎng)絡(luò )傳輸數據所共同遵循的網(wǎng)絡(luò )傳輸與控制協(xié)議,打印驅動(dòng)部分主要是控制打印機把需要打印的憑證給打印出來(lái),存儲部分主要是對存儲器的控制以存儲數據等信息。

  5、結語(yǔ)

  本移動(dòng)支付系統充分考慮人們“一手交錢(qián),一手交貨”的消費心理,利用無(wú)線(xiàn)票據打印終端(無(wú)線(xiàn)POS 終端)打印收據,打印終端通過(guò)識別短消息的來(lái)源進(jìn)行身份驗證,依據客戶(hù)需要,打印客戶(hù)電話(huà)號碼(或客戶(hù)身份驗證代碼)、交易金額、交易時(shí)間、交易方打印POS 機器編號以及交易費用等詳細信息,并可實(shí)現多層紙的打印。

  無(wú)線(xiàn)POS 終端采用GPRS 方式通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò )連接到移動(dòng)局的GGSN,移動(dòng)局的GGSN 通過(guò)Internet 與支付系統連接,這樣無(wú)線(xiàn)POS 終端就可以與支付系統進(jìn)行TCP/IP 通信。 GPRS 無(wú)線(xiàn)數據傳輸具有設備成本低、數據傳輸安全可靠、使用靈活方便等特點(diǎn),非常適合在無(wú)線(xiàn)POS 終端上應用,因此無(wú)線(xiàn)票據打印終端具有接通速度快、傳輸速率高、配置靈活、建設成本低等優(yōu)點(diǎn)。雖然目前國內市場(chǎng)上已有移動(dòng)支付(利用手機支計小面額貨款), 但是用戶(hù)在使用的過(guò)程中;沒(méi)有一個(gè)憑證并且在出現問(wèn)題時(shí)(如手機中的錢(qián)被多扣除或者其他情況人用戶(hù)也沒(méi)有憑據與貨主進(jìn)行核實(shí),也就是說(shuō)目前移動(dòng)支付沒(méi)有形成一個(gè)閉環(huán)。這也是移動(dòng)支付推廣緩慢的一個(gè)原因。我們推出基于移動(dòng)支付的無(wú)線(xiàn)POS 打印終端正好解決了這個(gè)問(wèn)題,它將廣泛應用于連鎖便利店、藥店、報亭、自動(dòng)售貨亭等地方,這將大大地改善人們的生活水平,使人們的生活更加便利。

  參考文獻:

  [1] 王田苗.《嵌入式系統設計與實(shí)例開(kāi)發(fā)》[M]. 北京:清華大學(xué)出版社

  [2] Behrouz A. Forouzan. 《數據通信與網(wǎng)絡(luò )》[M].北京:機械工業(yè)出版社

  [3] Zdravkovic A. wireless point of sale terminal for credit and debit paymentsystems[J].IEEE Canadian Conference on Electrical and computer Engineering.Partvol.2,1998,pp.890-3 vol.2.New York ,NY,USA.

  4.Jean J Labrose.嵌入式系統構件[M].北京:機械工業(yè)出版社,2002.145-167.

  5.http://www.globalsources.com/gsol/i/POS-customer/a/9000000059885.htm
共 2 頁(yè):1 2 

中國一卡通網(wǎng)



相關(guān)閱讀:
NFC近距離無(wú)線(xiàn)通信技術(shù)研究 2011-04-26
號碼攜帶政策就是一把“雙刃劍” 2011-04-25
三大運營(yíng)商“抱團”進(jìn)軍移動(dòng)支付市場(chǎng) 2011-04-22
誰(shuí)在助推垃圾短信群發(fā)泛濫? 2011-04-19
智能手機的超性能語(yǔ)音識別技術(shù) 2011-04-07

熱點(diǎn)專(zhuān)題:  移動(dòng)增值   移動(dòng)支付
分類(lèi)信息:  移動(dòng)增值_與_移動(dòng)支付  移動(dòng)支付_與_移動(dòng)
相關(guān)頻道:  增值電信文摘    

亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 天水市| 玉田县| 嘉峪关市| 武平县| 东台市| 双江| 阿图什市| 天等县| 南安市| 隆德县| 淳安县| 承德县| 休宁县| 隆德县| 永安市| 内乡县| 江华| 赣州市| 怀化市| 旅游| 朝阳市| 黄山市| 务川| 忻城县| 开平市| 海门市| 伊金霍洛旗| 罗山县| 兰坪| 武陟县| 紫阳县| 景德镇市| 华安县| 日土县| 资溪县| 河源市| 河西区| 通城县| 柏乡县| 合肥市| 汕尾市| http://444 http://444 http://444 http://444 http://444 http://444