周彥明
(廣西科技大學(xué) 鹿山學(xué)院 電子信息教研室,廣西 柳州545005)
基于嵌入式的移動公交一卡通POS機(jī)的設(shè)計與實現(xiàn)
周彥明
(廣西科技大學(xué) 鹿山學(xué)院 電子信息教研室,廣西 柳州545005)
為了實現(xiàn)IC卡在不同領(lǐng)域的消費(fèi),促進(jìn)電子支付行業(yè)的發(fā)展,本文對一卡通消費(fèi)的POS機(jī)的實現(xiàn)機(jī)理進(jìn)行研究,提出基于嵌入式的移動公交一卡通POS機(jī)的解決方案。對開發(fā)過程中的關(guān)鍵技術(shù)如無線射頻識別技術(shù)、移動網(wǎng)絡(luò)通訊技術(shù)進(jìn)行了深入研究,在硬件上集成無線射頻芯片、GPRS通信模塊及熱敏打印機(jī),在移動POS機(jī)上實現(xiàn)公交一卡通消費(fèi)、賬戶余額查詢、交易數(shù)據(jù)上傳以及交易憑證的打印。經(jīng)過測試,功能上達(dá)到設(shè)計目標(biāo)。
嵌入式;公交一卡通;POS機(jī);移動支付
近年來,隨著移動支付技術(shù)的高速發(fā)展及支付標(biāo)準(zhǔn)的革新,越來越多的商家開始接入移動支付平臺,同時IC技術(shù)的發(fā)展也促進(jìn)了移動支付平臺的發(fā)展。傳統(tǒng)的公交卡如今已擴(kuò)展到一些小額支付,給用戶帶來使用上的便利,真正意義上的實現(xiàn)一卡多用。為了促進(jìn)一卡通在各行各業(yè)中的應(yīng)用,探究一卡通消費(fèi)的核心技術(shù),并以此為基礎(chǔ)開發(fā)出高性能低成本的一卡通終端具有重要意義[1-4]。當(dāng)今市場對無線IC卡手持POS機(jī)的要求比較高,不光要滿足基本的功能,對運(yùn)行的可靠性、安全性及運(yùn)行速度要求也越來越高[5-8],文中以嵌入式系統(tǒng)為基礎(chǔ)研究設(shè)計了移動公交一卡通POS機(jī),在移動POS機(jī)上實現(xiàn)公交一卡通消費(fèi)、賬戶余額查詢、交易數(shù)據(jù)上傳以及交易憑證的打印。經(jīng)過測試,功能上達(dá)到設(shè)計目標(biāo)。
該系統(tǒng)硬件部分分為讀寫模塊、顯示模塊、傳輸模塊、數(shù)據(jù)交換通道、電源和存儲設(shè)備。顯示部分主要體現(xiàn)終端與消費(fèi)者之間的人機(jī)交互,主要顯示一些消費(fèi)信息,如卡余額、交易成功與否的提示。讀寫模塊完成IC卡內(nèi)部數(shù)據(jù)的讀取,需要配合天線完成不接觸讀取數(shù)據(jù)的功能。數(shù)據(jù)交換通道用于終端與系統(tǒng)之間的數(shù)據(jù)交換,利用該通道,終端可以讀取用戶信息并上傳交易記錄。在硬件設(shè)計方面,中央處理器同外圍設(shè)備通過電路相連,作為一個整體,其中處理器為系統(tǒng)核心部件,直接決定終端性能,此次處理器選用STM32F103ZE新芯片,該芯片基于Cortex-M3結(jié)構(gòu),執(zhí)行代碼效率高。終端整體硬件結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
無線射頻模塊采用RC522射頻卡,由于射頻卡為無緣器件,所以需要通過外圍震蕩電路實現(xiàn)數(shù)據(jù)的接收和發(fā)送[9]。RC522射頻芯片內(nèi)部由指令控制器、寄存器、中斷控制器、計數(shù)器等構(gòu)成,內(nèi)部電路協(xié)調(diào)工作,通過外部引腳提供可操作的接口,RC522的外圍電路原理圖如圖2所示。
圖2 無線射頻芯片接線圖
本系統(tǒng)采用SPI的通信模式,在程序中需要對個管腳做相應(yīng)的配置操作。代碼如下:
RC522的功能主要依賴于指令的解析,驅(qū)動程序通過向RC522發(fā)送不同的指令完成尋卡、驗卡及校驗。
此次終端選用SIM900無線網(wǎng)絡(luò)芯片作為無線通信的解決方案。該芯片內(nèi)部集成多個功能模塊,且支持AT命令集,對外提供UART接口方便與外界進(jìn)行數(shù)據(jù)交換[10-12]。與處理器之間的通信通過串口通信實現(xiàn),通信時相應(yīng)的引腳連接關(guān)系如表1所示。
SIM900驅(qū)動程序的設(shè)計主要涉及對串口的讀寫和AT指令的發(fā)送,使用串口時要根據(jù)具體的項目需求,確定串口參數(shù)。當(dāng)串口初始化完成時打開相應(yīng)的中斷響應(yīng)函數(shù)。AT指令是以AT為首的一系列字符串指令,當(dāng)接收方接收到AT指令后會將AT數(shù)據(jù)包返回給發(fā)送方,每個AT響應(yīng)包中包含指令執(zhí)行后的狀態(tài),常用的AT指令表如表2所示。
表1 SIM900硬件接口標(biāo)識表
表2 SIM900指令列表
當(dāng)使用GSM方式進(jìn)行遠(yuǎn)程訪問時,首先需要進(jìn)行聯(lián)網(wǎng),在連接過程中包括對PIN碼的設(shè)置、監(jiān)測天線信號質(zhì)量、查詢模塊是否有注冊網(wǎng)絡(luò)和查詢模塊是否接入GPRS網(wǎng)絡(luò)。每個操作都是通過AT指令來完成的。
熱敏打印機(jī)模塊選擇FTP-628型號的打印機(jī),該打印機(jī)實質(zhì)上為一種嵌入式設(shè)備,包括核心控制器、通信模塊、電源模塊、熱敏打印頭及驅(qū)動模塊[13]。熱敏打印頭負(fù)責(zé)對熱敏紙進(jìn)行加熱、驅(qū)動模塊負(fù)責(zé)帶動電機(jī)的運(yùn)轉(zhuǎn),監(jiān)測模塊監(jiān)測是否有熱敏紙。
對于熱敏打印機(jī)的驅(qū)動程序設(shè)計流程為,電源供電之后,待打印的數(shù)據(jù)由中央處理器經(jīng)過打印模塊將數(shù)據(jù)傳輸?shù)揭莆患拇嫫髦校撕髮⒓訜崾鼓芤_設(shè)置為高電平,根據(jù)移位寄存器中的數(shù)據(jù)選擇加熱的針頭,加熱到一定程度后在熱敏紙上進(jìn)行打印。代碼如下:
使用IC卡在本次設(shè)計的移動POS機(jī)上消費(fèi)時,終端設(shè)備首先對設(shè)備進(jìn)行監(jiān)測,判斷是否合法,當(dāng)讀取卡內(nèi)有黑名單標(biāo)志位時,判定該卡為無效,如果卡片有效,則需要讀取卡內(nèi)余額判斷是否足以支付此次消費(fèi),并給出相應(yīng)的提示消息,當(dāng)產(chǎn)生消費(fèi)時,通過PSAM生成密鑰對用戶的信息進(jìn)行安全保護(hù),并生成MACI,具體的流程如圖3所示。
此次開發(fā)的終端會將消費(fèi)產(chǎn)生的消費(fèi)記錄上傳至結(jié)算中心服務(wù)器,終端采用非接觸的RFID卡片,本身具有一定的安全性,讀卡器在對卡片進(jìn)行讀寫之前首先會校驗密碼,密碼正確時才能進(jìn)行讀寫操作,密鑰的算法是通過SAM進(jìn)行相關(guān)指令操作完成。SAM安全存儲模塊具備密鑰存儲和密鑰提取功能,密鑰通常分為身份認(rèn)證、充值、消費(fèi)。根據(jù)公交車智能卡的規(guī)法[14-15],PASM在參與密鑰運(yùn)算之前,需要驗證合法性,且驗證的過程為雙向的,校驗的過程為:卡片隨機(jī)生成一個8字節(jié)的數(shù)據(jù)發(fā)給讀卡器,同時保留卡內(nèi),讀卡器受到數(shù)據(jù)之后進(jìn)行加密再將加密的數(shù)據(jù)傳給卡片,卡片通過解密運(yùn)算計算出收到的數(shù)據(jù),然后對比自身存儲的數(shù)據(jù),如果一直則認(rèn)為認(rèn)證成功,反之則認(rèn)證失敗。PSAM隨機(jī)生成一個8字節(jié)的數(shù)據(jù)發(fā)給讀卡器,讀卡器受到數(shù)據(jù)之后發(fā)送給射頻卡,卡片通過解密運(yùn)算計算出收到的數(shù)據(jù),讀卡器從卡中讀取密文傳送給PASM,PASM對其進(jìn)行解密,傳給卡片,讀卡器將得到的密文與原始數(shù)據(jù)進(jìn)行對比,如果一直則認(rèn)為認(rèn)證成功,反之則認(rèn)證失敗。流程圖如圖4所示。
圖3 一卡通交易流程圖
圖4 終端雙向驗證圖
為了進(jìn)一步對應(yīng)用程序展開測試,確保系統(tǒng)的可靠性,專門開發(fā)了運(yùn)行在電腦上的測試
終端應(yīng)用程序的工具軟件,測試過程及步驟為:
將公交一卡通放置在設(shè)備感應(yīng)區(qū)內(nèi),通過測試工具軟件的串口向終端發(fā)送交易請求,通過測試流程表的測試內(nèi)容,滿足了設(shè)計的要求。
表3 測試流程表
文中以嵌入式為基礎(chǔ),采用模塊化的思想將各個模塊有機(jī)結(jié)合起來,實現(xiàn)了公交一卡通的消費(fèi),余額查詢,卡歷史交易查詢,交易憑證打印等功能,同時采用終端雙向驗證對交易進(jìn)行加密,提高消費(fèi)的安全性,并通過測試軟件驗證,終端滿足設(shè)計要求。
[1]闕凡博.基于stm32的程序遠(yuǎn)程升級設(shè)計[J].儀器儀表用戶,2013(5):12-13.
[2]黃俊祥,陶維青.基于MFRC522的RFID讀卡器模塊設(shè)計[J].微型機(jī)與應(yīng)用,2010(22):131-135.
[3]單瑩,劉旭儒,史儀凱.非接觸式13.56MHz讀卡器的設(shè)計[J].工業(yè)儀表與自動化裝置,2010(3):8-18.
[4]許文杰,丁志剛,張泉.基于ARM處理器的IAP設(shè)計及應(yīng)用[J].計算機(jī)應(yīng)用與軟件,2009(3):927-936.
[5]徐飛,曹奇英.PBOC2.0新型金融IC卡讀卡器的設(shè)計與開發(fā)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(1):69-73.
[6]林惠鵬.POS行業(yè)轉(zhuǎn)型發(fā)展的探討[J].信息與電腦,2012(3):157-160.
[7]郭明超,饒增仁.射頻IC卡POS機(jī)軟件設(shè)計[J].甘肅科技,2009(21):215-219.
[8]韋余紅.無線POS機(jī)數(shù)據(jù)傳輸安全控制策略研究[J].通信技術(shù),2009(2):155-159.
[9]徐艷東.無線POS機(jī)的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2013.
[10]朱文瑞.基于工行POS機(jī)的寧波市自來水抄表系統(tǒng)的設(shè)計與實現(xiàn)[D].長春:吉林大學(xué),2014.
[11]隆婷.基于ARM的嵌入式POS系統(tǒng)研究與實現(xiàn)[D].長沙:中南大學(xué),2011.
[12]劉琛.基于GPRS的嵌入式POS系統(tǒng)研究與應(yīng)用[D].長沙:中南大學(xué),2013.
[13]馬姍姍.移動支付讀卡器的研究與設(shè)計[D].武漢:武漢理工大學(xué),2012.
[14]文先仕.基于ARM Cortex-M3的智能監(jiān)控器的設(shè)計[D].成都:西華大學(xué),2010.
[15]張洋,劉軍,嚴(yán)汗宇,編著.原子教你玩STM32[M].北京:北京航空航天大學(xué)出版社,2013.
Design and implementation of mobile public transport card POS machine based on embedded system
ZHOU Yan-ming
(Department of Electronic Information,Guangxi University of Science and Technology,Liuzhou 545005,China)
For the realization of the IC card in different areas of consumption,and promote the development of the electronic payment industry,this paper on consumer card POS machine realization mechanism research,puts forward the solution based on embedded mobile bus card POS machines.The development process in the key technologies such as radio frequency identification,mobile network communication technology were in-depth study,integrated radio frequency chip in the hardware,GPRS communication module and a thermal printer,in the mobile POS machine to achieve bus card consumption,check account balances,upload data and documents of the transaction of print.After testing,function to design goals.
embedded; public transportation card; POS;mobile payment
TN915
A
1674-6236(2017)16-0134-04
2016-06-01稿件編號:201606012
周彥明(1968—),男,廣西恭城人,高級工程師。研究方向:單片機(jī)技術(shù)應(yīng)用。