近距離通信的SWP方案及在SIM卡中的實現(xiàn)方法
SIM卡需要單獨管理這兩個協(xié)議棧。SWP方案加入SIM卡系統(tǒng)后,不能影響ISO7816接口。舉個例子,SIM卡有8個引腳,RST引腳用于復(fù)位SIM卡的ISO7816接口,SWP方案加入SIM卡后,RST引腳的Reset信號對SWP接口沒有作用,SWP接口通過SWP引腳復(fù)位。
3 SWP連接方案在SIM卡中的設(shè)計
3.1 系統(tǒng)結(jié)構(gòu)
大容量SIM卡是一種支持大容量存儲、高速傳輸、具有新型應(yīng)用的智能卡。我們研發(fā)的大容量SIM卡項目基于ARM Secure Core SC100內(nèi)核,采用 AHB(高性能總線)+APB(高級外設(shè)總線)總線結(jié)構(gòu)。AHB總線提供高速的數(shù)據(jù)傳輸,它連接SIM卡內(nèi)部存儲器和高速外部接口(USB接口)。APB總線通過橋接器與AHB總線相連,SIM卡的低速接口(SWP接口、ISO7816接口)掛靠在外設(shè)總線上。
3.2 硬件設(shè)計
SWP硬件設(shè)計基于SWP標準,即ETSI(歐洲電信標準協(xié)會)制訂的的TS 102 613。SWP控制器和SWP接口共同組成了SWP方案的硬件設(shè)備。SWP控制器負責處理物理層和數(shù)據(jù)鏈路層邏輯。圖4為硬件實現(xiàn)數(shù)據(jù)鏈路層邏輯時SIM卡內(nèi)部SWP控制器的結(jié)構(gòu)圖。
圖4 SWP控制器結(jié)構(gòu)圖
3.2.1 接收數(shù)據(jù)設(shè)計
在SIM卡和NFC芯片通信期間,SWP控制器在激活、掛起、去激活三種狀態(tài)間切換。交換數(shù)據(jù)時,處于激活狀態(tài)。Rx 解碼器不停地檢測Si信號,并將來自NFC芯片的單位數(shù)據(jù)解析為字節(jié)輸出。Frame resolve分析接收到的每一字節(jié)的數(shù)據(jù),若為7E(幀頭),則繼續(xù)接收數(shù)據(jù),直到接收到7F(幀尾),表明SWPC接收到一幀完整的數(shù)據(jù)。Frame resolve進一步解析接收到的數(shù)據(jù)幀,首先根據(jù)MAC協(xié)議剝離幀頭和幀尾,然后根據(jù)接收方的生成多項式對數(shù)據(jù)幀進行校驗。如果數(shù)據(jù)正確,則識別出SHDLC數(shù)據(jù)幀的類型并作相應(yīng)處理;如果數(shù)據(jù)錯誤,則發(fā)送拒收幀,要求對方重新發(fā)送。對于正確的信息幀,SWP控制器提取信息幀的信息數(shù)據(jù)(包)寫入RX FIFO,并根據(jù)接收到的數(shù)據(jù)幀的字節(jié)個數(shù)設(shè)置控制器的狀態(tài)寄存器。SWP控制器每接收一幀數(shù)據(jù)就發(fā)起一個硬件中斷。
3.2.2 發(fā)送數(shù)據(jù)設(shè)計
SWP控制器發(fā)送數(shù)據(jù)和接收數(shù)據(jù)是相反的過程。如果上層應(yīng)用有數(shù)據(jù)要發(fā)送時,會把數(shù)據(jù)寫入TX FIFO。TX FIFO一旦檢測到FIFO有數(shù)據(jù),就啟動發(fā)送模塊把數(shù)據(jù)從TX FIFO中取出,經(jīng)Frame assemble按照SWP協(xié)議的SHDLC協(xié)議組裝信息幀,添加幀頭、幀尾、校驗碼。把生成的MAC幀數(shù)據(jù)交給Tx編碼器,完成輸出數(shù)據(jù)的物理層組裝,將數(shù)據(jù)轉(zhuǎn)換成單個位電平輸出。
3.3 軟件驅(qū)動設(shè)計
SWP軟件設(shè)計基于SWP標準和HCP(主機控制協(xié)議)標準。HCP標準是SWP協(xié)議之上的標準協(xié)議,定義了數(shù)據(jù)鏈路層之上的協(xié)議層――HCP路由層、HCP消息層以及應(yīng)用層[5]。底層SWP協(xié)議和上層HCP協(xié)議組成的協(xié)議棧共同完成NFC芯片與UICC通信的完整協(xié)議。
在大容量SIM卡中采用SWP方案,要實現(xiàn)ISO7816協(xié)議棧和SWP協(xié)議棧。SIM卡的操作系統(tǒng)使用μC/OS。μC/OS是一種結(jié)構(gòu)小巧、搶占式的實時操作系統(tǒng)。其內(nèi)核提供任務(wù)調(diào)度和管理、時間管理、任務(wù)同步和通信、內(nèi)存管理和中斷服務(wù)等功能。在軟件系統(tǒng)中,SWP軟件模塊是μC/OS的任務(wù)之一。
評論