胡海瑞 王兵 郭立君
【摘要】 本文設(shè)計了一種應(yīng)用于移動支付的智能卡雙接口調(diào)度方法,可以完全滿足智能卡應(yīng)用于移動支付領(lǐng)域的技術(shù)要求。該方法與智能卡硬件無關(guān),且運行效率高,有廣泛的應(yīng)用前景。
【關(guān)鍵詞】 7816 SWP 移動支付 雙接口
一、引言
移動支付,又稱手機支付,是以手機等手持終端為載體,與各類讀卡器近距離進行身份識別,信息交互,從而完成支付過程。作為一種新興的支付方式,其具有安全、快捷、方便等優(yōu)點,移動支付已經(jīng)成為我國支付領(lǐng)域的重要組成部分。
在眾多移動支付實現(xiàn)方案中, SWP定制終端方案是移動支付業(yè)務(wù)發(fā)展的重要方向。SWP定制終端方案是將CLF(contactless Front end,非接觸前端)芯片預(yù)置在定制手機終端內(nèi),智能卡通過SWP協(xié)議與終端CLF芯片通信,CLF芯片通過14443協(xié)議,實現(xiàn)與外界讀卡器的通信。同時,智能卡為了完成用于移動通信的SIM卡功能,還必須通過7816接口與移動終端通信。
二、雙接口調(diào)度技術(shù)概述
在使用手機進行移動支付時,會出現(xiàn)同時進行語音通話或上網(wǎng)的情景。這就要求智能卡卡平臺具有對移動通信接口(7816接口)和支付通信數(shù)據(jù)接口(SWP接口)進行并行調(diào)度的能力,使兩個接口既能夠分別單獨工作,又能夠同時并行工作。
智能卡規(guī)范規(guī)定,卡片在雙接口同時通信時,一個接口的掉電或復(fù)位,只對該接口產(chǎn)生影響,不應(yīng)影響另一接口正在進行的會話。
由于平臺只能順序的處理I/O接口的APDU指令,所以I/O接口調(diào)度模塊必須能同時接收兩個接口的指令,然后順序的分發(fā)給平臺去處理。
三、雙接口調(diào)度設(shè)計與實現(xiàn)
在本文設(shè)計的雙接口調(diào)度方案中,7816協(xié)議棧和SWP協(xié)議棧獨立實現(xiàn),由雙接口調(diào)度主程序進行指令的分發(fā)。7816接口被激活時,中斷程序自動初始化接口,完成發(fā)送ATR和PPS過程。當CLF檢測到RF 磁場,SWP接口被激活,SWP接口的初始化工作也自動完成。7816接口的通信是由終端首先發(fā)起的,卡接收到全部命令頭以后就可以發(fā)送過程字節(jié),用來指示終端的下一步動作。
如果智能卡在接收全部命令頭以后,發(fā)送等候協(xié)議字節(jié)0x60,就是通知終端“卡現(xiàn)在正忙,暫時無法處理命令”。終端收到此字節(jié)后就不會進行下一步動作,而是繼續(xù)等待下一個過程字節(jié)。下面進行詳細介紹。
7816 接口中斷處理:如果該中斷是7816復(fù)位中斷,則復(fù)位7816并發(fā)送ATR,打開7816接收中斷及復(fù)位中斷。如果該中斷是接收FIFO非空中斷則接收APDU命令頭5字節(jié),置7816命令頭完成接收標志,啟動定時器,周期發(fā)0x60,然后退出。此時APDU數(shù)據(jù)域還沒有被接收。
SWP接口中斷處理:進入中斷后首先檢查7816接口是否正在定時發(fā)0x60。如果正在發(fā)送,說明7816接口正在等待接收數(shù)據(jù)域,為了防止7816接口等待超時,立即在7816接口發(fā)送0x60,然后接收完整的SWP數(shù)據(jù),并存至緩存。
中斷程序會判斷事件類型,如果事件是EVT_CARD_ DEACTIVATED 或 EVT_FIEL- D_OFF指令,則將信號有效標志位清零,表示該接口處于去激活態(tài);如果是 EVT_ CARD_ACTIVATED 指令,則將信號有效標志位置位;如果是EVT_SEND _DATA 指令且信號有效,則將緩存數(shù)據(jù)拷貝至專用緩存。處理完畢后,退出中斷。
雙接口調(diào)度主程序處理:進入主程序后,首先對硬件平臺和I/O接口進行初始化,然后就進入到一個無法退出的While循環(huán)中。如果兩個接口收到的命令都已經(jīng)處理完畢,又沒有收到新的命令,則主程序一直處于等待狀態(tài),等待I/O口接收中斷的到來。
在等待狀態(tài)下,如果只有7816命令頭接收標志置位,則接收7816數(shù)據(jù)域,并處理該條命令,并且將處理后response 通過7816接口發(fā)送。如果只有SWP數(shù)據(jù)接收完成標志置位,則處理該條命令,并且將處理后response 通過SWP接口發(fā)送。
如果7816命令頭接收標志和SWP數(shù)據(jù)接收完成標志同時置位,則處理SWP指令,處理完成后重新進行標志判斷。所以如果每次進行標志位判斷時,SWP數(shù)據(jù)接收完成標志都置位,則一直處理SWP指令。這種設(shè)計模式可以保證SWP接口的數(shù)據(jù)被優(yōu)先執(zhí)行。
四、總結(jié)
本設(shè)計可以適用的應(yīng)用場景有:單獨7816接口通信,如手機終端進行正常語音通信等;單獨的SWP 接口通信,如終端關(guān)機狀態(tài)下進行支付業(yè)務(wù);雙接口同時通信,如終端進行語音通信的過程中進行移動支付。
參 考 文 獻
[1] UNI CEI EN .ISO/IEC 7816-4 1997
[2] ETSI TS .102 613 V8.0.0 (Release 8) 2009-10
[3] 胡漢才. 單片機原理及其接口技術(shù). 清華大學(xué)出版社.