近距離通信的SWP方案及在SIM卡中的實現方法
SIM卡需要單獨管理這兩個協議棧。SWP方案加入SIM卡系統后,不能影響ISO7816接口。舉個例子,SIM卡有8個引腳,RST引腳用于復位SIM卡的ISO7816接口,SWP方案加入SIM卡后,RST引腳的Reset信號對SWP接口沒有作用,SWP接口通過SWP引腳復位。
3 SWP連接方案在SIM卡中的設計
3.1 系統結構
大容量SIM卡是一種支持大容量存儲、高速傳輸、具有新型應用的智能卡。我們研發的大容量SIM卡項目基于ARM Secure Core SC100內核,采用 AHB(高性能總線)+APB(高級外設總線)總線結構。AHB總線提供高速的數據傳輸,它連接SIM卡內部存儲器和高速外部接口(USB接口)。APB總線通過橋接器與AHB總線相連,SIM卡的低速接口(SWP接口、ISO7816接口)掛靠在外設總線上。
3.2 硬件設計
SWP硬件設計基于SWP標準,即ETSI(歐洲電信標準協會)制訂的的TS 102 613。SWP控制器和SWP接口共同組成了SWP方案的硬件設備。SWP控制器負責處理物理層和數據鏈路層邏輯。圖4為硬件實現數據鏈路層邏輯時SIM卡內部SWP控制器的結構圖。

圖4 SWP控制器結構圖
3.2.1 接收數據設計
在SIM卡和NFC芯片通信期間,SWP控制器在激活、掛起、去激活三種狀態間切換。交換數據時,處于激活狀態。Rx 解碼器不停地檢測Si信號,并將來自NFC芯片的單位數據解析為字節輸出。Frame resolve分析接收到的每一字節的數據,若為7E(幀頭),則繼續接收數據,直到接收到7F(幀尾),表明SWPC接收到一幀完整的數據。Frame resolve進一步解析接收到的數據幀,首先根據MAC協議剝離幀頭和幀尾,然后根據接收方的生成多項式對數據幀進行校驗。如果數據正確,則識別出SHDLC數據幀的類型并作相應處理;如果數據錯誤,則發送拒收幀,要求對方重新發送。對于正確的信息幀,SWP控制器提取信息幀的信息數據(包)寫入RX FIFO,并根據接收到的數據幀的字節個數設置控制器的狀態寄存器。SWP控制器每接收一幀數據就發起一個硬件中斷。
3.2.2 發送數據設計
SWP控制器發送數據和接收數據是相反的過程。如果上層應用有數據要發送時,會把數據寫入TX FIFO。TX FIFO一旦檢測到FIFO有數據,就啟動發送模塊把數據從TX FIFO中取出,經Frame assemble按照SWP協議的SHDLC協議組裝信息幀,添加幀頭、幀尾、校驗碼。把生成的MAC幀數據交給Tx編碼器,完成輸出數據的物理層組裝,將數據轉換成單個位電平輸出。
3.3 軟件驅動設計
SWP軟件設計基于SWP標準和HCP(主機控制協議)標準。HCP標準是SWP協議之上的標準協議,定義了數據鏈路層之上的協議層――HCP路由層、HCP消息層以及應用層[5]。底層SWP協議和上層HCP協議組成的協議棧共同完成NFC芯片與UICC通信的完整協議。
在大容量SIM卡中采用SWP方案,要實現ISO7816協議棧和SWP協議棧。SIM卡的操作系統使用μC/OS。μC/OS是一種結構小巧、搶占式的實時操作系統。其內核提供任務調度和管理、時間管理、任務同步和通信、內存管理和中斷服務等功能。在軟件系統中,SWP軟件模塊是μC/OS的任務之一。
評論