<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 如何設計ST7267單片機與SIM卡的接口?

如何設計ST7267單片機與SIM卡的接口?

作者: 時(shí)間:2018-08-02 來(lái)源:網(wǎng)絡(luò ) 收藏

隨著(zhù)信息技術(shù)的不斷發(fā)展,手機逐漸成為現代社會(huì )必不可少的工具。但是,一旦手機丟失,存在SIM卡內的資料也就丟失了,因而造成了很多不必要的麻煩。為了保存這些重要的資料,在電腦上做必要的備份顯得十分重要了。本文利用單片機的GPIO端口,實(shí)現了對SIM卡的讀寫(xiě)。

本文引用地址:http://dyxdggzs.com/article/201808/384964.htm

1 硬件電路的設計

1.1 單片機概述

具有USB2.O的硬件接口,大容量存儲控制接口可以支持各種類(lèi)型的NAND Flash。具有54 KB的ROM和4KB的RAM空間。

1.2 電路

SIM卡引腳功能的定義如表1所列。

ST7267單片機與SIM卡的接口電路如圖1所示。該電路主要由外圍有源晶體Y2提供4MHz、穩定的時(shí)鐘頻率給SIM卡,電源由一顆LDO輸出3.3V、純凈的直流電到SIM卡的Cl_VCC上。這里選擇ST7267的PE2腳作為I/O引腳,通過(guò)一個(gè)4.7kΩ的上拉電阻與SIM卡實(shí)現通訊;選擇PE3腳作為SIM卡的復位控制引腳。

2 底層軟件設計

SIM卡的數據傳輸方式與其他存儲卡不同,它遵循ISO7816標準。因此在進(jìn)行SIM卡讀寫(xiě)設計時(shí)應該注意數據傳輸時(shí)每一個(gè)數據位的寬度,然后按照ISO7816的標準編寫(xiě)程序。首先是接收到正確的復位應答信號(ATR),其次是向SIM卡發(fā)送命令,得到正確的返回數據和狀態(tài)標志。

2.1 ETU的計算

ETU(基本時(shí)間單位)就是SIM卡I/O腳上輸入/輸出每一位數據的時(shí)間,計算公式是;

其中:參數F和D分別是時(shí)鐘頻率轉換因子和波特率調整因子,這里使用默認的速率,即F=372,D=1;使用的時(shí)鐘頻率f是4MHz??梢杂嬎愠龌緯r(shí)間單位是93μs。

2.2 基本數據幀結構

通信使用的協(xié)議是ISO7816-3所規定的T=0的異步半雙工字符傳輸協(xié)議?;镜臄祿怯?個(gè)起始位(低電平)、8個(gè)數據位和1個(gè)奇偶校驗位組成的,如圖2所示。其中,校驗位是將8個(gè)數據位與其自身做偶校驗,也就是其中1的個(gè)數必須足偶數。起始位不做校驗運算。在保護時(shí)間內SIM卡和單片機都要處于高電平(即I/O口是高電平)。在T=O協(xié)議里,如果SIM卡或者單片機檢測到奇偶校驗結果不正確,則在保護時(shí)間內把I/O端口拉低,以示出錯。

2.3 SIM卡的APDU結構

應用協(xié)議數據單元APDU(ApplicatiON Protocol Data Units)包括了命令APDU以及應答APDU,其結構如下:

其中:CLA是指令的類(lèi)別,A0被制定為GSM的應用;INS是指令代碼;Pl、P2、P3是指令參數,P3指示的是數據的長(cháng)度;Data就是要傳輸的數據;SWl和SW2就是命令處理后返回的狀態(tài)。

2.4 基本程序模塊的設計

設myBit為從I/O端口采樣的存儲變量,設Parity為奇偶校驗變量,Parlty的初始化值為0。每次從I/O口采樣后,myBit都要與Parity進(jìn)行一次“異或”,結果放入Parity。這樣采樣9次后,如果Parity的最終值是0,就說(shuō)明奇偶校驗正確;如果不是0,就說(shuō)明讀取數據失敗,返回錯誤信息,要求發(fā)送者重發(fā)。

按照以上接收一個(gè)字節程序的框架,可以很方便地設計出發(fā)送一個(gè)字節的程序。只是在發(fā)送字節時(shí),在發(fā)送完奇偶校驗位后,一定要轉為接收模式。如果在接下來(lái)的一個(gè)ETU里,I/O端口保持高電平,則說(shuō)明發(fā)送數據正確;如果I/O端口被拉低,為低電平,就說(shuō)明發(fā)送數據錯誤,要重發(fā)。

結語(yǔ)

本文介紹了基于ST7267讀寫(xiě)SIM卡的方法。相對于其他硬件讀卡芯片,這種用軟件實(shí)現的方法更加靈活,而且可以實(shí)現多種設備(例如U盤(pán)和SIM卡讀卡器)的整合,這樣可以降低產(chǎn)品的成本。



關(guān)鍵詞: ST7267 SIM卡接口

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>