移動(dòng)支付NFC-SWP方案在SIM卡中的實(shí)現方法(三)
3 SWP連接方案在SIM卡中的設計
3.1 系統結構
大容量SIM卡是一種支持大容量存儲、高速傳輸、具有新型應用的智能卡。我們研發(fā)的大容量SIM卡項目基于A(yíng)RM Secure Core SC100內核,采用 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)窗口大小。

評論