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