移動(dòng)支付NFC-SWP方案在SIM卡中的實(shí)現方法
引言
本文引用地址:http://dyxdggzs.com/article/201710/367283.htm近幾年,手機已經(jīng)不再是簡(jiǎn)單的通信工具,它已經(jīng)成為便攜的娛樂(lè )工具,將來(lái)有望發(fā)展為可信賴(lài)的支付工具,在消費、購物、交通等領(lǐng)域通過(guò)手機方便、快捷地完成支付?;谑謾C的新需求,移動(dòng)支付應運而生,并逐漸成為移動(dòng)運營(yíng)商、手機制造商、SIM卡制造商研究的熱點(diǎn)問(wèn)題。移動(dòng)支付的解決方案比較多,其中雙界面SIM卡方案和近距離通信(Near Field Communication,NFC)方案比較可行。雙界面SIM卡方案已經(jīng)有產(chǎn)品面世,近距離通信方案正在研發(fā)階段。
雙界面SIM卡方案通過(guò)在SIM卡中增加非接觸IC卡界面進(jìn)行非接觸通信。天線(xiàn)連接在SIM卡尚未使用的C4和C8這兩個(gè)接口上。雙界面SIM卡在手機中增加了非接觸IC卡的功能,但沒(méi)有實(shí)現閱讀器和點(diǎn)對點(diǎn)通信功能。NFC是由NXP公司和索尼公司提出的超短距離無(wú)線(xiàn)通信技術(shù),它使得兩臺兼容NFC的設備之間可以直觀(guān)、便捷、安全地通信。NFC的主要應用是移動(dòng)小額支付,還可以應用于門(mén)禁、公交等領(lǐng)域。
與雙界面SIM卡方案相比,NFC方案的優(yōu)勢體現在以下方面:
?、?NFC方案可以實(shí)現更多的應用;
?、?在NFC芯片與SIM卡的連接使用C6(SWP)觸點(diǎn),并不影響SIM卡高速空中數據下載;
?、?NFC方案是一套完善的解決方案,可以提供可靠、安全、便捷的通信;
?、?NFC方案完全兼容現有的讀寫(xiě)器,不需要對讀寫(xiě)器進(jìn)行任何更改。
綜上所述,近距離通信NFC是移動(dòng)非接觸支付業(yè)務(wù)最可行的解決方案,而SWP連接方案則是NFC技術(shù)的一部分。
1 近距離通信概述
近距離通信是短距離非接觸式的一種,工作于13.56 MHz頻帶,傳輸距離在10 cm以?xún)?;傳輸速度目前可以達到106 kbps、212 kbps、424 kbps,理想速率可以達到1 Mbps左右。NFC所使用的頻率與目前流行的非接觸智能卡相同,同時(shí)兼容以ISO14443 A/B為基礎的感應式非接觸通信,以及Philips公司的MIFARE技術(shù)和索尼公司的FeliCa技術(shù)。
1.1 近距離通信原理
根據ISO18092標準,近距離通信可以工作在主動(dòng)模式和被動(dòng)模式。進(jìn)行通信之前,可以選擇傳輸速率106 kbps、212 kbps、424 kbps中的一種,并可以在這三者間任意切換。
1.1.1 被動(dòng)模式通信原理
在被動(dòng)模式下,近距離通信的通信原理與RFID一樣,都是依靠電磁感應耦合原理完成通信。NFC手機有一塊NFC芯片,內置有天線(xiàn),用來(lái)接收和發(fā)送無(wú)線(xiàn)數據。
NFC工作在被動(dòng)模式時(shí),閱讀器啟動(dòng)NFC通信,稱(chēng)為NFC發(fā)起設備(主設備),在整個(gè)通信過(guò)程中提供射頻域。NFC發(fā)起設備選擇3種速率的一種傳輸數據,ISO18092標準規定了每種傳輸速率使用的調制、編碼技術(shù)。NFC目標設備(從設備)不必產(chǎn)生射頻域,而使用負載調制(load modulation)技術(shù),以相同的速度將數據傳回發(fā)起設備。此通信機制與基于ISO14443 A/B、Mifare和FeliCa的非接觸式智能卡兼容,因此,在被動(dòng)模式下,NFC發(fā)起設備可以用相同的連接和初始化過(guò)程檢測非接觸式智能卡或NFC目標設備,并與之建立聯(lián)系。
就近距離通信應用的角度而言,其應用模式分為3種:標簽模式、閱讀器模式、點(diǎn)對點(diǎn)模式。標簽模式,即NFC芯片作為被動(dòng)設備使用,其作用相當于應答器。為了保證數據的安全性,在更換手機后不至于重新設置密鑰信息,需要在SIM卡中保存移動(dòng)支付的密鑰信息。通信設備包括閱讀器、NFC芯片和SIM卡。此時(shí),NFC芯片提供射頻接口,負責轉發(fā)射頻數據給SIM卡。對SIM卡而言,不需要像雙界面SIM卡那樣增加非接觸接口,而使用SWP接口實(shí)現與NFC芯片的連接。在標簽模式下,NFC芯片類(lèi)似于橋接器,在閱讀器和SIM卡之間轉發(fā)數據。
NFC芯片是嵌入手機中的芯片,由手機的電源系統供電。為了保證手機沒(méi)電時(shí)移動(dòng)支付的正常進(jìn)行,標簽模式需要支持無(wú)源工作,其工作原理基于電磁感應。閱讀器的天線(xiàn)線(xiàn)圈產(chǎn)生高頻的強電磁場(chǎng),這種磁場(chǎng)穿過(guò)線(xiàn)圈橫截面和線(xiàn)圈周?chē)目臻g。發(fā)射磁場(chǎng)的一部分磁力線(xiàn)穿過(guò)距閱讀器線(xiàn)圈有一定距離的應答器的天線(xiàn)線(xiàn)圈。通過(guò)感應在天線(xiàn)線(xiàn)圈上產(chǎn)生電壓,將其整流后作為電源提供給NFC芯片和SIM卡。
1.1.2 主動(dòng)模式通信原理
在主動(dòng)模式下,NFC發(fā)起設備要發(fā)送數據給目標設備時(shí),必須產(chǎn)生自己的射頻場(chǎng);被讀NFC設備發(fā)送響應給發(fā)起設備時(shí),也要產(chǎn)生自己的射頻場(chǎng)。發(fā)起設備和目標設備都要產(chǎn)生自己的射頻場(chǎng),這是對等網(wǎng)絡(luò )通信的標準模式,可以獲得非??焖俚倪B接設置。
移動(dòng)設備主要工作在被動(dòng)模式,可以大幅降低功耗,并延長(cháng)電池壽命。主動(dòng)模式主要是針對點(diǎn)對點(diǎn)模式,用于筆記本、手機、數碼相機之間的數據交換。
1.2 近距離通信與RFID的關(guān)系
NFC是一種基于RFID的無(wú)線(xiàn)通信技術(shù),二者都工作在13.56 MHz頻帶。在標簽模式下,NFC利用RFID的通信原理,都基于無(wú)線(xiàn)頻率的電磁感應耦合原理。
但是NFC技術(shù)是無(wú)線(xiàn)通信的新技術(shù),與RFID還是有區別的:NFC技術(shù)增加了點(diǎn)對點(diǎn)通信功能,可以快速建立藍牙設備之間的P2P(點(diǎn)對點(diǎn))無(wú)線(xiàn)通信,NFC設備彼此尋找對方并建立通信連接。P2P通信的雙方設備是對等的,而RFID通信的雙方設備是主從關(guān)系。
2 SWP標準及連接方案
2.1 SWP標準
SWP連接方案基于ETSI(歐洲電信標準協(xié)會(huì ))的SWP標準,該標準規定了SIM卡和NFC芯片之間的通信接口。
SWP(單線(xiàn)協(xié)議)是在一根單線(xiàn)上實(shí)現全雙工通信,即S1和S2這兩個(gè)方向的信號,如圖1所示。通信的雙方是UICC(Universal Integrated Circuit Card,通用集成芯片卡)和CLF(Contactless Front?end,非接觸前端)。S1是電壓信號,SIM卡通過(guò)電壓表檢測S1信號的高低電平,采用電平寬度調制;S2信號是電流信號,采用負載調制方式。S2信號必須在S1信號為高電平時(shí)才有效,S1信號為高電平時(shí)導通其內部的一個(gè)三極管,S2信號才可以傳輸。S1信號和S2信號疊加在一起,在一條單線(xiàn)上實(shí)現全雙工通信。
圖1 SWP信號定義
圖2 S1信號的編碼
S1信號的編碼如圖2所示,邏輯1在3/4周期(3/4T)內為高電平,邏輯0在1/4周期(1/4T)內為高電平。S2信號在S1信號為高時(shí)有效,在S1信號為低時(shí)才能進(jìn)行由低電平到高電平的切換。SWP有3種傳輸速率:212 kbps、424 kbps、848 kbps,對數據位進(jìn)行擴展之后,傳輸速率可以達到1 696 kbps。
SWP協(xié)議是關(guān)于物理層和數據鏈路層的協(xié)議。物理層負責UICC和CLF之間物理鏈路的激活、保持、解除工作。SWP協(xié)議要求UICC的工作電壓為1.8~3.3 V。
與OSI協(xié)議類(lèi)似,數據鏈路層分為MAC(媒介訪(fǎng)問(wèn)控制)層和鏈路控制層。在MAC層采用位填充的成幀方法。鏈路控制層包括3種類(lèi)型的幀協(xié)議:ACT協(xié)議、SHDLC協(xié)議以及CLT(非接觸通道)協(xié)議。在SWP接口的設計中,使用了前兩種協(xié)議。
ACT協(xié)議是接口激活協(xié)議,用于激活SWP接口。在沒(méi)有射頻場(chǎng)時(shí),SWP接口處于去激活狀態(tài)。在標簽模式下,感應到外界存在射頻場(chǎng)后,NFC芯片被激活,UICC收到NFC芯片的高電平信號后,使用ACT幀建立物理鏈路的連接。
SHDLC協(xié)議是ISO制定的高級數據鏈路控制規范的簡(jiǎn)單版本,也是面向位的同步鏈路。該協(xié)議主要用來(lái)傳輸交互的數據信息,其信息幀承載上層HCP(主機控制協(xié)議)的包數據。此外,SHDLC協(xié)議還具有流控管理、錯誤檢查、出錯后數據重傳等功能。為了保證數據的正確發(fā)送與接收,兼容NFC芯片與UICC不同速率傳輸的通信能力,在使用SHDLC協(xié)議通信前,首先要建立數據鏈路,雙方協(xié)商滑動(dòng)窗口的大小。
2.2 SWP連接方案
本文中,CLF嵌入在手機內部,UICC使用的是SIM卡,手機通過(guò)SIM卡與NFC芯片通信。NFC芯片與SIM卡的連接方案有多種,本文提出的是基于C6引腳的SWP(單線(xiàn)協(xié)議)方案。SWP協(xié)議連接手機NFC芯片與SIM卡,規定兩者之間的通信接口。圖3是SWP連接方案的示意圖。
圖3 SWP連接方案示意圖
本方案使用了SIM卡的3個(gè)引腳連接NFC芯片:C1(VCC)、C5(GND)、C6(SWP)。其中,SWP引腳在一根單線(xiàn)上基于電壓和負載調制原理實(shí)現全雙工通信。SIM卡支持ISO7816和SWP兩個(gè)接口,在大容量卡項目中還支持高速下載接口,通過(guò)預留的C4和C8接口來(lái)實(shí)現。支持SWP的SIM卡必須同時(shí)支持兩個(gè)協(xié)議棧——ISO7816和SWP協(xié)議棧,這需要SIM卡的COS(片上操作系統)是多任務(wù)系統。
SIM卡需要單獨管理這兩個(gè)協(xié)議棧。SWP方案加入SIM卡系統后,不能影響ISO7816接口。舉個(gè)例子,SIM卡有8個(gè)引腳,RST引腳用于復位SIM卡的ISO7816接口,SWP方案加入SIM卡后,RST引腳的Reset信號對SWP接口沒(méi)有作用,SWP接口通過(guò)SWP引腳復位。
3 SWP連接方案在SIM卡中的設計
3.1 系統結構
大容量SIM卡是一種支持大容量存儲、高速傳輸、具有新型應用的智能卡。我們研發(fā)的大容量SIM卡項目基于A(yíng)RM Secure Core SC100($1.0813)內核,采用 AHB(高性能總線(xiàn))+APB(高級外設總線(xiàn))總線(xiàn)結構。AHB總線(xiàn)提供高速的數據傳輸,它連接SIM卡內部存儲器和高速外部接口(USB接口)。APB總線(xiàn)通過(guò)橋接器與AHB總線(xiàn)相連,SIM卡的低速接口(SWP接口、ISO7816接口)掛靠在外設總線(xiàn)上。
3.2 硬件設計
SWP硬件設計基于SWP標準,即ETSI(歐洲電信標準協(xié)會(huì ))制訂的的TS 102 613。SWP控制器和SWP接口共同組成了SWP方案的硬件設備。SWP控制器負責處理物理層和數據鏈路層邏輯。圖4為硬件實(shí)現數據鏈路層邏輯時(shí)SIM卡內部SWP控制器的結構圖。
圖4 SWP控制器結構圖
3.2.1 接收數據設計
在SIM卡和NFC芯片通信期間,SWP控制器在激活、掛起、去激活三種狀態(tài)間切換。交換數據時(shí),處于激活狀態(tài)。Rx 解碼器不停地檢測Si信號,并將來(lái)自NFC芯片的單位數據解析為字節輸出。Frame resolve分析接收到的每一字節的數據,若為7E(幀頭),則繼續接收數據,直到接收到7F(幀尾),表明SWPC接收到一幀完整的數據。Frame resolve進(jìn)一步解析接收到的數據幀,首先根據MAC協(xié)議剝離幀頭和幀尾,然后根據接收方的生成多項式對數據幀進(jìn)行校驗。如果數據正確,則識別出SHDLC數據幀的類(lèi)型并作相應處理;如果數據錯誤,則發(fā)送拒收幀,要求對方重新發(fā)送。對于正確的信息幀,SWP控制器提取信息幀的信息數據(包)寫(xiě)入RX FIFO,并根據接收到的數據幀的字節個(gè)數設置控制器的狀態(tài)寄存器。SWP控制器每接收一幀數據就發(fā)起一個(gè)硬件中斷。
3.2.2 發(fā)送數據設計
SWP控制器發(fā)送數據和接收數據是相反的過(guò)程。如果上層應用有數據要發(fā)送時(shí),會(huì )把數據寫(xiě)入TX FIFO。TX FIFO一旦檢測到FIFO有數據,就啟動(dòng)發(fā)送模塊把數據從TX FIFO中取出,經(jīng)Frame assemble按照SWP協(xié)議的SHDLC協(xié)議組裝信息幀,添加幀頭、幀尾、校驗碼。把生成的MAC幀數據交給Tx編碼器,完成輸出數據的物理層組裝,將數據轉換成單個(gè)位電平輸出。
3.3 軟件驅動(dòng)設計
SWP軟件設計基于SWP標準和HCP(主機控制協(xié)議)標準。HCP標準是SWP協(xié)議之上的標準協(xié)議,定義了數據鏈路層之上的協(xié)議層——HCP路由層、HCP消息層以及應用層。底層SWP協(xié)議和上層HCP協(xié)議組成的協(xié)議棧共同完成NFC芯片與UICC通信的完整協(xié)議。
在大容量SIM卡中采用SWP方案,要實(shí)現ISO7816協(xié)議棧和SWP協(xié)議棧。SIM卡的操作系統使用μC/OS。μC/OS是一種結構小巧、搶占式的實(shí)時(shí)操作系統。其內核提供任務(wù)調度和管理、時(shí)間管理、任務(wù)同步和通信、內存管理和中斷服務(wù)等功能。在軟件系統中,SWP軟件模塊是μC/OS的任務(wù)之一。
SWP任務(wù)依靠硬件中斷驅動(dòng),SWP任務(wù)沒(méi)有被激活前,一直處于等待中斷的狀態(tài)。通過(guò)SWP接口通信時(shí),一旦檢測到存在射頻場(chǎng),NFC芯片便被激活。NFC芯片發(fā)送Si信號給SIM卡,SIM卡檢測到Si電壓信號后,觸發(fā)si_act中斷通知軟件做好準備通信。此時(shí),軟件設置通信參數,然后等待硬件建立物理鏈路成功的中斷。如果接收到init_sync中斷,軟件開(kāi)始設置SHDLC協(xié)議的滑動(dòng)窗口大小M,等待建立SHDLC鏈路的中斷。這個(gè)中斷帶有NFC芯片SHDLC層的滑動(dòng)窗口的參數N。若M≥N,則SWP任務(wù)修改自己的滑動(dòng)窗口大小為N,然后發(fā)送確認幀,這樣便建立了SHDLC鏈路;若M<N,SWP任務(wù)發(fā)送帶有自己窗口參數的RESET幀給NFC芯片,繼續協(xié)商滑動(dòng)窗口大小。
SHDLC鏈路建立成功后,SWP任務(wù)等待信息幀中斷。接收到信息幀中斷,根據硬件寫(xiě)入的狀態(tài)寄存器的接收字節數從RX FIFO中讀取數據,然后由軟件解析收到的數據包;通過(guò)HCP的路由層把數據包遞交給應用層,應用層根據消息的類(lèi)型進(jìn)行相應的處理。
結語(yǔ)
本文提出一種SWP連接方案,并在大容量SIM卡中加以實(shí)現。SWP接口的硬件和軟件設計方法,對于近距離通信技術(shù)應用于其他移動(dòng)支付具有一定借鑒意義;同時(shí),在SIM卡中實(shí)現SWP接口,也促進(jìn)了SIM卡技術(shù)的發(fā)展。
評論