《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ARM的SIM卡檢測系統(tǒng)
基于ARM的SIM卡檢測系統(tǒng)
摘要: 隨著集成電路的發(fā)展,SIM卡在人們的生活中應(yīng)用的越來越廣泛,如在移動通信領(lǐng)域以及金融領(lǐng)域都有廣泛的應(yīng)用。因此對于SIM的檢測也成為供應(yīng)商和運營商所面臨的一個問題。文中給出了一種基于ARM的讀卡檢測系統(tǒng)平臺的設(shè)計與實現(xiàn)方案,闡述了硬件電路設(shè)計以及軟件設(shè)計流程,給出了硬件接口電路原理圖,完成硬件調(diào)試,通過測試表明該方案可行。
關(guān)鍵詞: ARM SIM卡
Abstract:
Key words :

隨著現(xiàn)代社會科學(xué)技術(shù)的發(fā)展,人們對于移動產(chǎn)品的便攜性和便利性和高效性的要求越來越高。SIM卡作為智能卡中特殊的一種,采用標(biāo)準(zhǔn)的接觸式IC卡,符合IS07816標(biāo)準(zhǔn)規(guī)范,它沿襲了智能卡在安全中的特色,在移動商務(wù)中扮演著很重要的角色。因此SIM卡的應(yīng)用范圍也變得越來越廣,可以應(yīng)用于金融、便捷支付等高端應(yīng)用領(lǐng)域。但是對于已經(jīng)投放到市場上的卡片,運營商對于鑒別是哪個供應(yīng)商供應(yīng)的產(chǎn)品比較困難,而且對于供應(yīng)商自己來說對于自己生產(chǎn)的卡片進(jìn)行質(zhì)量檢測也是十分必要的。鑒于ARM的高性價比,本文采用一種基于ARM7TDMI內(nèi)核的CPU STR711FR2作為處理器作為系統(tǒng)核心,設(shè)計一款SIM卡讀卡系統(tǒng),它可以兼容符合7816協(xié)議的A,B,C 3種卡片,用來讀出被芯片固化在芯片內(nèi)部的信息,以便來確認(rèn)芯片的生產(chǎn)商以及對芯片實現(xiàn)質(zhì)量檢測。

1 系統(tǒng)結(jié)構(gòu)
讀卡系統(tǒng)主要由讀卡模塊、串口通信模塊、USB通信模塊、JTAC下載調(diào)試模塊以及相應(yīng)的時鐘和復(fù)位電路模塊和上層軟件組成。主控電路由ST公司的STR711FR2及其外圍電路構(gòu)成,主要實現(xiàn)對命令的發(fā)送和對收到的數(shù)據(jù)進(jìn)行傳輸和處理。系統(tǒng)采用接觸式的工作方式,把芯片插入到接口插槽中,通過主控芯片發(fā)送指令完成對卡片數(shù)據(jù)的讀取,再把得到數(shù)據(jù)通過串口通信模塊把數(shù)據(jù)傳輸?shù)絇C機上,通過上層軟件對所接收到的數(shù)據(jù)進(jìn)行處理和判斷,再把結(jié)果在PC機上面顯示。系統(tǒng)結(jié)構(gòu)如圖1所示。

a.JPG



2 硬件平臺設(shè)計
2.1 平臺構(gòu)架
STR711FR2是ST公司的一款基于ARM7TDMI內(nèi)核、高性能、低成本、低功耗的微控制器。它內(nèi)嵌256+16 k的Flash以及64 k的RAM,具有豐富的外設(shè):如智能卡ISO-7816-3接口、USB 2.0接口以及UART接口和豐富的IO接口等。
本系統(tǒng)STR711FR2作為主處理器,使用USB接口用來給系統(tǒng)供電,同時作為備用數(shù)據(jù)通道;JTAG接口用來給系統(tǒng)進(jìn)行調(diào)試和下載固件;78 16智能卡接口作為插卡口;串口等用來傳輸讀到的數(shù)據(jù)。系統(tǒng)由USB接口供電;STR711FR2由外部提供4 M晶振提供時鐘,32.768 k晶振作為輔助時鐘同時提供給內(nèi)部的實時時鐘。STR711FR2與LTC1955之間通過串口發(fā)送不同的指令,來判斷插入卡片的類型,以便產(chǎn)生卡片相應(yīng)的電壓,然后發(fā)命令把數(shù)據(jù)讀出來,再通過串口通信模塊把數(shù)據(jù)傳輸?shù)絇C機上面顯示。硬件平臺構(gòu)架如圖2所示。

b.JPG


2.2 電源部分
USB接口部分電源電壓為5 V,最大電流可以達(dá)到500 mA,系統(tǒng)中的MCU和Reader是兩個主要的耗能元器件,其中STR711FR2滿負(fù)荷工作電流為200mA,LTC1955滿負(fù)荷工作電流不超過為100 mA。LTC1955以及STR711FR2額定電壓為3.3 V,因此需要將5 V轉(zhuǎn)換成3.3 V電壓,轉(zhuǎn)換芯片采用ASM1117S33。經(jīng)過轉(zhuǎn)換之后系統(tǒng)完全可以使用USB進(jìn)行供電。另外STR711FR2支持USB2.0傳輸協(xié)議,所以可以將USB的差分線用1.5kΩ的電阻進(jìn)行弱上托,分別與主MCU的42腳和43腳相連。以此來支持USB的高速傳輸模式,因此此部分也可以作為備用的數(shù)據(jù)傳輸通道。電路如圖3所示。

c.JPG


2.3 7816接口部分
SIM卡的引腳定義符合ISO7816帶觸電集成電路卡規(guī)范,它實際上是一個裝有微處理器的芯片卡,包括5個模塊并且具有機卡分離接口,通信安全可靠成本較低。其中C1腳是電源VCC、C2腳為復(fù)位RST、C3腳為時鐘CLK、C4腳不接、C5腳為接地GND、C6腳編程電壓VPP、C7腳為數(shù)據(jù)I/O口、C8腳不接。除了C4和C8腳已被國際標(biāo)準(zhǔn)組織擴展為新一代高速SIM卡接口,C6高壓編程引腳已經(jīng)失去作用,因為SIM卡可以不必外部提供VPP信號即可在內(nèi)部實現(xiàn)EEPROM的擦寫功能。
7816接口部分采用Linear公司的專用芯片LTC1955,LTC1955支持ISO7816-3協(xié)議,具有很好的電源管理和控制能力,具有串行數(shù)據(jù)接口,可以通過它進(jìn)行數(shù)據(jù)控制和狀態(tài)控制,能夠在出現(xiàn)電氣錯誤的時候?qū)崿F(xiàn)自動的掉電。內(nèi)置電壓崩,能夠產(chǎn)生1.8 V、3 V以及5 V電壓,因此能夠兼容7816的A,B,C3種卡??ㄆ涌谀軌蛲ㄟ^自動震蕩電路產(chǎn)生的偵測通道自動偵測卡片類型,串口根據(jù)偵測到的信息發(fā)送命令可以實現(xiàn)卡片類型的選擇,不同命令狀態(tài)位可以選擇不同類型的卡。本系統(tǒng)設(shè)計只采用了一個B卡插槽,芯片的32腳和31腳分別為同步和非同步引腳,分別于主控芯片的P1.8和P1.9腳連接.通過中控IO發(fā)送同步和非同步的命令,來選擇傳輸模式。數(shù)據(jù)腳DATA與主控芯片的P1.15腳相接,用來傳送接收到的數(shù)據(jù),RIN復(fù)位腳信息通過主控芯片的P1.14控制發(fā)送。電路設(shè)計如圖4所示。

d.JPG


2.4 UART部分
通信接口是系統(tǒng)與外界進(jìn)行信息交互的通道和橋梁,因此通信接口的設(shè)計在系統(tǒng)中是必不可少的,通過目前主流的兒種通信方式設(shè)計比較,本系統(tǒng)采用了UART方式。UART電路的關(guān)鍵是實現(xiàn)STR711FR2與PC電平匹配,PC機電平是12 V而STR711FR2的電平為3.3 V,這就需要進(jìn)行電平轉(zhuǎn)換,目前此類電平轉(zhuǎn)換芯片有很多,如MAX3232及ST3232等等,本系統(tǒng)采用MAX3232芯片進(jìn)行轉(zhuǎn)換,MAX3232不僅能保證主機需要,而且單一3.3 V供電,可以同時實現(xiàn)發(fā)送轉(zhuǎn)換和接受轉(zhuǎn)換功能。芯片提供了2個UART通道,可以接2個RS3232,本系統(tǒng)只采用一個UART,只用選擇第一個通道,另外一個不接。其電路設(shè)計如圖5。

e.JPG



3 軟件檢測系統(tǒng)的實現(xiàn)
SIM卡符合國際標(biāo)準(zhǔn)7816協(xié)議規(guī)范,因此本檢測系統(tǒng)分為兩個部分,第一部分是對于7816協(xié)議通信的固件部分,第二部分是上層軟件部分。對于固件部分的操作應(yīng)該包括接口設(shè)備激活電路,冷復(fù)位啟動卡片應(yīng)答、卡片與接口設(shè)備進(jìn)行信息交換和接口設(shè)備釋放電路卡片下電3個過程。
當(dāng)卡片和接口設(shè)備物理連接以后,為啟動機械連接的卡的互操作,接口設(shè)備需要激活卡片,初始時,所有端口皆處于低電平(L)態(tài),電壓范圍0~0.4 V;VCC電源電壓先上電(H態(tài)),VCC電源端穩(wěn)定一段時間后,將IO端口置為接收方式(H態(tài)),電路的激活順序結(jié)束,卡片進(jìn)入復(fù)位過程。在Ta時間CLK開始提供時鐘信號;卡應(yīng)在時鐘信號開始后至少200個時鐘周期之內(nèi)(延時時間為Ta)置IO口狀態(tài)為接受狀態(tài)。同時,從Ta開始,RST至少保持400個時鐘周期(延時時間為Tb))的L態(tài),即保持到時間Tb后RST置狀態(tài)H,為了保證卡片正常復(fù)位,卡片要在400~40 000個時鐘周期之內(nèi)(延時時間為Tc)作出應(yīng)答,即從IO口返回ATR。復(fù)位過程結(jié)束。時序如圖6所示。

f.JPG


上電后,接口設(shè)備可根據(jù)卡片返回的ATR來選擇工作模式,如果ATR中規(guī)定了TA2,則接口設(shè)備根據(jù)新的參數(shù)啟動與卡片信息交換方式;如果ATR中沒有規(guī)定TA2,則接口設(shè)備和卡之間可進(jìn)行PPS過程或者接口設(shè)備根據(jù)TD1中的參數(shù)(T)選擇采用哪種通信協(xié)議。如果接口設(shè)備與卡片停止數(shù)據(jù)交換,并且IO口保持H狀態(tài)至少1 860(Tg)個clock,則接口設(shè)備可在Te時刻停止時鐘,此時VCC保持供電,RST保持高電平。時鐘停止時序如圖7所示。

g.JPG


信息交互完畢卡片進(jìn)行釋放,RST置狀態(tài)L:CLK置狀態(tài)L(除非時鐘已經(jīng)停止在狀態(tài)L上)IO置狀態(tài)L:VCC被釋放。
上層軟件采用C++進(jìn)行設(shè)計,由于卡片在剛剛出廠還沒有交付給運營商使用的時候,ATR中有時候也會被寫入生產(chǎn)商的相關(guān)信息,可以根據(jù)此信息來檢測芯片,但是一旦被運營商投入市場,那么就會被下載運營商的cos,此時ATR也變成了運營商的了,那么就無法根據(jù)ATR來進(jìn)行檢測。但是卡片出廠的時候卡商會將自己的cos下載到NVR中,其中包含了卡片生產(chǎn)商的標(biāo)志信息,例如卡片的商業(yè)代碼、生產(chǎn)時間、lot號以及坐標(biāo)等等。而這些內(nèi)容一旦下載進(jìn)去就不能被修改,因此可以據(jù)此來檢測。檢測流程如圖8所示。

h.JPG



4 結(jié)束語
文中給出了一種基于ARM7內(nèi)核的SIM卡檢測系統(tǒng),通過測試可以順利的實現(xiàn)檢測功能,本系統(tǒng)采用標(biāo)準(zhǔn)接觸式卡片設(shè)計,兼容7816的A、B、C 3種卡,為接觸和以后升級的非接觸式卡片讀取信息提供了可行的平臺。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。