SIM卡與ME的協議交互過程
1 前言....................................................................................................................................................................... 3
2 縮寫和符號的說明........................................................................................................................................... 3
3 物理層上與項目相關的一些規范............................................................................................................... 4
3.1 SIM卡的兩種規格....................................................................................................................................... 4
3.2 SIM卡的觸點分配....................................................................................................................................... 4
3.3 SIM卡觸點的電氣特性.............................................................................................................................. 4
3.3.1 電源電壓Vcc................................................................................................................................... 4
3.3.2 復位RST............................................................................................................................................ 5
3.3.3 編程電壓Vpp................................................................................................................................... 5
3.3.4 時鐘CLK............................................................................................................................................ 5
3.3.5 輸入/輸出I/O................................................................................................................................. 6
4 數據鏈路層上SIM卡與ME的通信.......................................................................................................... 6
4.1 SIM卡的連接和激活.................................................................................................................................. 6
4.2 SIM卡的復位............................................................................................................................................... 6
4.2.1 SIM卡的冷復位.............................................................................................................................. 7
4.2.2 SIM卡的熱復位.............................................................................................................................. 7
4.2.3 字符幀傳輸...................................................................................................................................... 7
4.2.4 ATR過程............................................................................................................................................ 8
4.2.5 ATR過程的一個實例................................................................................................................... 11
4.2.6 PTS過程.......................................................................................................................................... 11
4.2.7 PTS過程的一個實例......................................................................................................................... 12
4.3 SIM卡與ME之間命令-響應過程......................................................................................................... 12
4.4 SIM卡與ME之間命令-響應過程的一個實例(SELECT)................................................................. 13
4.5 SIM卡的釋放............................................................................................................................................. 14
5 SIM卡的文件系統簡介................................................................................................................................. 14
5.1文件的三種類型......................................................................................................................................... 14
5.2文件標識...................................................................................................................................................... 15
5.3基本文件的三種結構................................................................................................................................ 15
5.4文件訪問控制............................................................................................................................................. 15
5.5 SIM卡的文件系統示意圖....................................................................................................................... 16
6 SIM卡的命令系統簡介................................................................................................................................. 18
6.1 SELECT(命令+命令數據).................................................................................................................. 18
6.2 STATUS(命令+響應數據)................................................................................................................... 20
6.3 READ BINARY(命令+響應數據)..................................................................................................... 20
6.4 UPDATE BINARY(命令+命令數據)................................................................................................. 20
6.5 GET RESPONSE(命令+響應數據).................................................................................................... 21
6.6 RUN GSM ALGORITHM(命令+命令數據).................................................................................... 21
7登陸GSM網絡時SIM卡要執行的過程.................................................................................................. 21
1 前言
本報告完成的是“Elvis智能撥測設備”項目中的一個任務,目的是探討怎樣用單片機來模擬SIM卡的部分功能(使設備能登陸到GSM網絡即可)。報告主要參考了GSM 11.11 version 5.5.0和GSM 11.12 version 5.0.0規范,并同時參考了ISO7816-1,2,3規范中的相關內容。
2 縮寫和符號的說明
ACC Access Control Class 接入控制類別
AD Administrative Data 管理數據
APDU Application Protocol Data Unit 應用協議數據單元
ATR Answer to Reset 復位應答
BCCH Broadcast Control Channel 廣播控制信道
CBMID Cell Broadcast Message Identifier for Data Download用于下載的小區廣播信息標識
CHV Card Holder Verification information 卡支持器檢驗信息
DF Dedicated File 專用文件
EF Elementary File 基本文件
etu Elementary Time Unit 基本時間單元
FPLMN Forbidden PLMN 禁止登陸的PLMN
GSM Global System for Mobile Communications 全球移動通信系統
HPLMN Home PLMN 歸屬PLMN
ICCID Integrated Circuits Card Identifier 智能卡標識
IMSI International Mobile Subscriber Identity 國際移動用戶識別碼
Kc Ciphering key 密碼本
Ki 用戶鑒權碼
LOCI Location Information 位置信息
LP Language Preference 語言選擇
ME Mobile Equipment 移動設備,包括各種的GSM模塊
MF Master File 主文件
PLMN Public Land Mobile Network 公眾陸地移動電話網
PTS Protocol Type Selection 協議類型選擇
SIM Subscriber Identity Module 用戶識別模塊
SST SIM Service Table SIM卡服務表
SRES Signed RESponse 符號響應,鑒權的計算結果
‘XX’ 用單引號表示十六進制數,如’90’表示十六進制數Ox90
VOH 最大輸出電壓,其他類似符號可類推
tR tF 脈沖的上升時間和下降時間
3 物理層上與項目相關的一些規范
SIM卡是智能卡的一種,除非在GSM應用中有特殊規定,否則應該符合智能卡的一般規范,即ISO7816-1,2,3。本節介紹了SIM卡的規格以及SIM卡上觸點的功能分配和電氣特性。
3.1 SIM卡的兩種規格
早期使用的SIM屬于ID-1型號,如卡片般大小。近期使用的SIM一般屬于Plug-in型號,尺寸是25mm×15mm。Plug-in型號的SIM可以由ID-1 SIM切去多余的塑料片后得到。
3.2 SIM卡的觸點分配
各觸點在SIM上的位置可以參考ISO7816-2,下表是各個觸點的編號以及功能分配。
觸點編號 | 分配 | 觸點編號 | 分配 |
C1 | 電源電壓Vcc | C5 | 接地GND |
C2 | 復位RST | C6 | 編程電壓Vpp |
C3 | 時鐘CLK | C7 | 輸入/輸出I/O |
C4 | 保留 | C8 | 保留 |
表3.2.1 SIM卡的觸點分配
3.3 SIM卡觸點的電氣特性
3.3.1 電源電壓Vcc
據GSM 11.11規定,SIM卡應該工作在如下表所示的電壓范圍內。
符號 | 最小值 | 最大值 | 單位 |
Vcc | 4,5 | 5,5 | V |
Icc |
| 10 | mA |
注:Icc是Vcc上的電流,下面相關定義與此同
表3.3.1.1 +5V供電下Vcc的電氣特性
另外,據GSM 11.12補充規定,GSM Phase 2的SIM卡應該同時支持+5V和+3V供電電壓。在+3V供電時SIM卡的工作范圍如下:
符號 | 最小值 | 最大值 | 單位 |
Vcc | 2.7 | 3.3 | V |
Icc |
| 6 | mA |
表3.3.1.2 +3V供電下Vcc的電氣特性
支持+3V和+5V供電技術的ME會先用+5V給SIM卡供電。如果SIM卡在相關的信息位上置1表明支持+3V供電技術(詳見SELECT命令的編碼規定),ME就可以切換到+3V供電。但是如果ME只支持+3V供電,它會拒絕只支持+5V供電的SIM卡(詳見GSM 11.12的規定)。
下面各個觸點的電氣參數均是在+3V供電時給出的,+5V供電的情況請參考GSM 11.11。
3.3.2 復位RST
ME會用如下參數范圍內的RST信號去復位SIM卡。
符號 | 條件 | 最小值 | 最大值 | 單位 |
VOH | IOHmax = + 20 μA | 0.8 x Vcc | Vcc | V |
VOL | IOLmax = -200 μA | 0 | 0.2 x Vcc | V |
tR tF | Cin = Cout = 30 pF |
| 400 | μs |
表3.3.2.1 RST的電氣特性
SIM卡詳細的復位和復位應答過程(ATR)見4.2.3節
3.3.3 編程電壓Vpp
SIM卡不使用Vpp。
3.3.4 時鐘CLK
SIM卡應該使用在CLK上提供的1到5MHz的外部時鐘,不應使用自己的內部時鐘。CLK信號的電氣特性如下。
符號 | 條件 | 最小值 | 最大值 | 單位 |
VOH | IOHmax = + 20 μA | 0.7 x Vcc | Vcc | V |
VOL | IOLmax = - 20 μA | 0 | 0.2 x Vcc | V |
tR tF | Cin = Cout = 30 pF |
| 50 | ns |
表3.3.4.1 CLK的電氣特性
另外如果SIM卡在鑒權或執行ENVELOPE命令的過程中需要使用13/4MHz的時鐘,應該在相關的信息位上置1來表示(詳見SELECT命令的編碼規定)。
GSM Phase 2的SIM卡應該支持“時鐘停止模式”,并在相關的信息位上置1來表示(詳見SELECT命令的編碼規定)。在此模式下ME會在啟動時鐘后經過最少744個時鐘周期才會發出第一條命令,并在接收最后一位應答字符后經過最少1860個時鐘周期才會關閉時鐘。
3.3.5 輸入/輸出I/O
這個觸點是SIM卡與ME之間通信的唯一通道。它支持半雙工串行通信,有發送和接收兩種狀態,并且應該在不傳輸數據時置為接收狀態。它的電氣特性如下。
符號 | 條件 | 最小值 | 最大值 | 單位 |
VIH | IIHmax = ± 20 μA | 0.7 x Vcc | Vcc+0.3 | V |
VIL | IILmax = + 1 mA | - 0.3 | 0.2 x Vcc | V |
VOH | IOHmax = + 20 μA | 0.7 x Vcc | Vcc | V |
VOL | IOLmax = - 1mA | 0 | 0.4 | V |
tR tF | Cin = Cout = 30 pF |
| 1 | μs |
表3.3.5.1 I/O的電氣特性
4 數據鏈路層上SIM卡與ME的通信
ME和SIM卡之間的對話應按如下順序操作:
s SIM 卡的連接和激活
s SIM卡的復位
s SIM卡與ME之間命令-響應過程
s SIM卡的釋放
4.1 SIM卡的連接和激活
正確連接ME和SIM卡后(請參閱ME的說明),ME按如下順序激活SIM卡:
s 置RST為低電平
s 給Vcc供電
s ME和SIM卡的I/O口均置為接收狀態
s CLK上有穩定的時鐘信號
4.2 SIM卡的復位
在激活SIM卡后,ME會冷復位或熱復位SIM卡。隨后,SIM卡應該復位內部數據并且發起ATR過程。而ME根據ATR的信息,有可能發起PTS過程來進一步商議通信協議和波特率。這些過程正常結束后,ME和SIM卡就可以開始各種命令-響應過程。
4.2.1 SIM卡的冷復位
正確連接和激活SIM卡后,ME就會立刻對SIM卡進行冷復位,復位信號的時序如下圖示:
注:SIM卡應當在RST被拉高后400到40000個時鐘周期內(t1)發起ATR過程。
T0與T1之間間隔40000個時鐘周期。
圖4.2.1.1 SIM卡的冷復位
4.2.2 SIM卡的熱復位
ME可在SIM卡被激活后的任何時間里隨時對SIM卡進行復位,這稱為熱復位。熱復位時,RST會先被拉低40000個時鐘周期,然后再被拉高。SIM卡的應答則跟冷復位相同。熱復位過程如下圖示:
注:SIM卡應當在RST被拉高后400到40000個時鐘周期內(t1)發起ATR過程。
T0與T1之間間隔40000個時鐘周期。
圖 4.2.2.1 SIM卡的熱復位
4.2.3 字符幀傳輸
SIM卡與ME之間使用I/O進行半雙工串行通信(一般是異步的)。I/O口上的信息被打包為字符幀來傳輸,這種字符幀是SIM卡與ME之間通信的基礎,在隨后的ATR過程,PTS過程和命令-響應過程中同樣要使用。
4.2.3.1 字符幀的結構
字符幀一共有10位,它的結構如下圖示:
注: S是開始位,低電平。
Bi是第i字節的8位有效數據。到底是字節中的低位還是高位先傳輸見4.2.4.1。
C是偶奇偶校驗位,它可以通過將Bi的每一邏輯位進行異或求得。
P是保護時間,一般設定為2位
圖 4.2.3.1.1字符幀的結構
4.2.3.2 字符幀的時序
字符幀內每一位所持續的時間定義為基本時間單元(etu),它依賴于時鐘頻率(f),時鐘轉換因子(F)和比特調整因子(D)。有如下計算公式:
1etu = F / (D*f) 秒
另外,保護時間P一般為2etu,如果有特殊需要,可以設定額外保護時間(N),那么保護時間P有如下計算公式:
P=2+N etu
參數F,D和N可以在ATR和PTS過程中由SIM和ME商議確定。在沒有商定前,使用如下默認值:
F=372;D=1;N=0
4.2.3.3 字符幀的差錯控制
ISO7816-3規定了字符幀差錯控制的機制,主要是錯誤檢測和字符重發。需要時請參閱。
4.2.4 ATR過程
ATR是英文Answer to Reset的縮寫,即復位應答。
ATR過程使用默認參數F=372;D=1;N=0,etu=372/f秒。例如若CLK上是3.579MHz的時鐘,那么etu=372/3.579MHz,此時波特率=1/etu=9600bps。
ATR過程包含如下信息:傳輸協議的類型,控制參數和識別信息。ATR過程由一系列字符組成,應該遵循如下所示的格式:
___________________________________________ _____ _________
| | | | | | | | | | | | | | | |
| TS | T0 |TA1 |TB1 |TC1 |TD1 |TA2 |TB2 |TC2 |TD2 | ......... | T1 | ... | TK|TCK|
|___|____|____|____|____|____|____|____|____|____|_ _|___|_ _|___|___|
注:
TS :初始字符 (必須傳輸)
TO :格式字符 [含參數Y1和K] (必須傳輸)
TAi :接口字符 [含參數FI,DI ] (可選傳輸)
TBi :接口字符 [含參數 I1,PI1 ] (可選傳輸)
TCi :接口字符 [含參數N ] (可選傳輸)
TDi :接口字符 [含參數 Yi+1, T ] (可選傳輸)
T1, ... , TK :歷史字符 (K小于等于15) (可選傳輸)
TCK :奇偶校驗字符 (是否傳輸視情況而定)
圖 4.2.4.1 ATR過程的格式
4.2.4.1 初始字符TS
TS后的字符要傳輸的8位有效數據Bi(見4.2.3.1),先作如下約定:
數據是|b7|b6|b5|b4|b3|b2|b1|b0|,那么b7是高位,b0是低位。b7-b4是高半字節,b3-b0是低半字節。
如何將這一個字節的數據裝入字符幀呢?這就要看TS規定了哪一種協議。
初始字符TS定義了其后字符編碼的兩種協議:正向協議(Direct Convention)和反向協議(Inverse Convention)。
s 正向協議。在I/O線上,高電平代表邏輯1(正邏輯),并且低位b0首先被傳輸。這時TS字符幀設為:L-HHLHHHLL-H。在正向協議下TS的編碼為’3B’。
s 反向協議。在I/O線上,低電平代表邏輯1(負邏輯),并且高位b7首先被傳輸。這時TS字符幀設為:L-HHLLLLLL-H。在反向協議下TS的編碼為’3F’。
ME能支持上面的任何一種協議。
4.2.4.2 格式字符T0
T0的8位有效數據被分成兩部分。
高半字節代表參數Y1,它用每一位的邏輯1來表示其后TA1,TB1,TC1和TD1是否被傳輸,對應關系如下:
b4àTA1;b5àTB1;b6àTC1;b7àTD1
低半字節代表參數K, 它是一個4位二進制數,取值從0到15。它代表了將要傳輸的歷史字符T1,T2,…TK的數目。
4.2.4.2 接口字符TA1
它的高半字節代表參數FI,低半字節代表參數DI。它們是用來表示SIM卡能支持的時鐘轉換因子F和比特調整因子D,還表示了SIM卡能支持的最高時鐘頻率f。它們的對應關系如下:
圖4.2.4.2.1 接口字符TA1的意義
GSM Phase 2的SIM卡和ME除了支持F=372,D=1外還應該支持F=512,D=8。
GSM 11.11規定,如果TA1不等于’11’,那么ME就會啟動PTS過程。
4.2.4.3 接口字符TB1,TB2
TB1,TB2。這兩個字符主要是對編程電壓Vpp和編程電流Ipp的要求進行編碼。因為SIM卡不應該需要使用編程電壓Vpp,GSM 11.11 規定:TB1 =’00’;TB2不予傳輸。如果TB1不等于’00’,那么ME設備會拒絕SIM卡。
4.2.4.4 接口字符 TC1
TC1上的8位有效數據是一個8位二進制數,取值從0到255。它代表了額外保護時間N(見4.2.3.2)的值,GSM 11.11規定,N=0或255,否則SIM卡會被拒絕。而當N=255時,表示接收和發送時的保護時間是相同的,都是2etu(即額外保護時間N=0)。
如果SIM卡沒有發送TA1,TB1,TC1那么ME就會使用默認值:
F=372;D=1;N=0
4.2.4.5 接口字符 TD1
這個字符的高半字節表示Y2,它的含義與T0字符中的Y1類似,表示其后TA2,TB2,TC2和TD2是否被傳輸。
低半字節表示協議類型T,它是一個四位二進制數,取值從0到15。最常用的傳輸協議如下:
s T=0表示異步半雙工字符傳輸協議
s T=1表示異步半雙工塊傳輸協議
ME與SIM卡的通信,一般使用T=0協議,其字符幀結構和時序和4.2.3節描述的一樣。
如果TD1沒有被傳輸,那么默認使用T=0協議。
如果SIM卡除了支持T=0協議,還支持其他協議,那么在TD1字符,也應該優先表明
支持T=0協議,再在后面TD2,TD3表示支持其他協議。TD1表示的協議會作為默認的協議使用。
4.2.4.6 接口字符TA2
這個字符主要用來指明是否使用專用模式,詳見ISO7816-3。
SIM卡與ME通信一般使用協商模式,不需要傳輸這個字符。
4.2.4.7 接口字符TC2
這個字符用于在T=0協議下指明工作等待時間整型參數(WI),取值從0到255。工作等待時間(W)是指從SIM卡發出的任何一個字符的開始上升沿和從ME或SIM卡發出的前一個字符的開始上升沿之間的最大延遲時間。有如下計算公式:
W=960 x D x WI (etu)
如果不傳輸TC2,而使用WI的默認值10。
4.2.4.8 其他接口字符
余下的一些接口字符一般在T=1協議下使用,在此不再詳述。
4.2.4.9 歷史字符T1-TK
這些字符主要用于表示SIM卡的標識等文本信息,在此不再詳述。
4.2.4.10 校驗字符TCK
TCK的值等于從字符T0到TK的作異或運算后的值。
如果SIM卡在ATR過程中表示只支持T=0協議,則不需要傳輸TCK。
4.2.5 ATR過程的一個實例
名稱 值 意義
TS 3B 正邏輯;低位b0先傳輸
T0 F0 接下來傳輸TA1,TB1,TC1,TD1;無歷史字符
TA1 94 F=512,D=8,1etu=64個時鐘周期,最大時鐘頻率5MHz
TB1 00 不需使用編程電壓Vpp
TC1 00 不需額外保護時間
TD1 40 接下來傳輸TC2;使用T=0協議
TC2 FF 使用最大工作等待時間(大于250,000個etus)
4.2.6 PTS過程
在協商模式下,ATR過程默認使用的參數F=372,D=1和TD1所表明的協議將會一直使用下去,直到一個成功的PTS過程完成。GSM 11.11規定,如果TA1不等于’11’,那么ME就會發起PTS過程。
PTS過程包括ME的PTS請求和SIM卡的PTS應答。在GSM應用中,它們一般都由以下4個字符組成。如下圖示:
PTSS 初始字符 總為’FF’
|
PTS0 格式字符 高4位分別表示后面字符的存在,低半字節表示協議類型T
|
PTS1 參數字符 高半字節代表FI,低半字節代表DI(應與TA1匹配)
|
PCK 校驗字符 PTSS,PTS0和PTS1作異或運算
圖4.2.6.1 PTS過程
如果SIM卡一直不響應PTS請求,則ME就會一直使用默認值F=372,D=1,N=0和協議T=0。
4.2.7 PTS過程的一個實例
╔══╗ 復位 ╔═══╗
║ME║ ──────────────────────────-──────────────> ║SIM║
╚══╝ ╚═══╝
ATR
<─────────────────────────────────────── TA1 = '94'
┌─────┬────┐
│PTSS=│'FF'│ PTS 請求
│PTS0=│'10'├─────────────────────────────>
│PTS1=│'94'│
│PCK =│'7B'│
└─────┴────┘
┌─────┬────┐
PTS 響應 │PTSS=│'FF'│
<────────────────────────┤PTS0=│'10'│
│PTS1=│'94'│
│PCK =│'7B'│
└─────┴────┘
圖4.2.3.5.1提速到F=512,D=8的PTS過程
4.3 SIM卡與ME之間命令-響應過程
SIM卡在復位,ATR過程,PTS過程正常結束后就可以正式接受ME的各種命令,并對其作出響應。命令和響應都是用應用協議數據單元(APDU)來承載的。
APDU應該使用T=0協議來傳輸,它分為命令APDU和響應APDU。
命令APDU從ME發出,由5個字符的報頭組成,有時還帶有數據,格式如下:
| CLA | INS | P1 | P2 | P3 | DATA1 |
注:CLA 是命令類別,在GSM應用中固定使用’A0’
INS 是命令代碼, 視不同的命令而定
P1,P2 是命令參數,視不同的命令而定
P3 是數據長度 表示命令期間傳輸數據字符的數目(可以是ME向SIM輸入數據的長度DATA1,也可以是SIM向ME返回的數據的長度DATA2)。當數據從SIM卡發出時,P3=’00’代表數據長度為256個字符。當數據從ME發出時,P3=’00’代表無數據傳輸。
圖4.3.1. 命令APDU的格式
響應APDU從SIM卡發出,包含兩個字符的報尾,有時之前還帶有數據,格式如下:
| DATA2 | SW1 | SW2 |
注:SW1,SW2 是狀態字,表示命令是否成功執行
SW1,SW2=’90’,’00’表示命令正常結束
SW1,SW2=’91’,’XX’表示SIM卡要傳送命令給ME
SW1,SW2=’9F’,’XX’表示有XX長度的響應數據
SW1,SW2=’94’,’04’表示找不到文件,或參數錯誤
SW1,SW2=’6D’,’00’表示不明指令
其它一些編碼請參閱GSM 11.11的第9章
圖4.3.2 響應APDU的格式
為了更好的控制APDU的時序,ISO7816-3規定APDU是“分節”傳輸的。ME首先發送5個字節的命令頭(CLA,INS,P1,P2,P3),然后等待SIM回應一個字節的響應(通常就是APDU中的INS字節)。SIM卡回應的這個字節的意義如下表:
定義 | 值 | ME的動作 |
ACK | INS | ME將發送所有剩余的數據或者ME將準備接收SIM卡發送的所有數據。 |
ACK | INS取反 | ME將發送下一個字節的數據或者ME將準備接收SIM卡發送的下一個字節的數據。 |
NULL | 0x60 | ME延長一個工作等待時間 |
SW1 | 0x6x或0x9x | ME 接收下一個狀態字SW2 |
表4.3.1 SIM卡的響應字節
綜上,下圖列舉了ME和SIM命令響應過程的4種情況:
情況1:命令+命令數據
_______________________________________________________________________________
| CLA | INS | P1 | P2 | P3 | INS | DATA | SW1 | SW2 |
情況2:只有命令
_______________________________________________________________________________
| CLA | INS | P1 | P2 | 00 | SW1 | SW2 |
情況3:命令+響應數據(ME已知其長度)
_______________________________________________________________________________
| CLA | INS | P1 | P2 | P3 | INS | DATA | SW1 | SW2 |
情況4:命令+命令數據+響應數據
_______________________________________________________________________________
| CLA | INS | P1 | P2 | P3 | INS | DATA | INS | L | DATA | SW1 | SW2 |
注:1. 紅色表示由ME發出,藍色表示由SIM卡發出。
2. 情況4 中“L”是SIM發出的響應數據的長度。
圖4.3.3 ME和SIM的命令響應過程
4.4 SIM卡與ME之間命令-響應過程的一個實例(SELECT)
請參考第6節內容。
下面以SELECT命令的執行為例(它的完整執行還需要另外一個輔助命令GET RESPONSE)。
ME先發出SELECT命令,選擇專用文件DFGSM (文件標識’7F20’),然后等待SIM卡的第一次響應,得知SIM卡將有長度為23字節的數據(十六進制為’17’)要返回。ME再發出第二條命令GET RESPONSE(帶數據長度參數’17’),SIM卡則在這時把SELECT命令應該返回的數據返回給ME,并表示命令正常結束。過程如下:
ME發送SELECT命令(屬于命令+命令數據):
_______________________________________________________________________________
| A0 | A4 | 00 | 00 | 02 | A4 | 7F | 20 | 9F | 17 |
ME發送GET RESPONSE命令(屬于命令+響應數據):
_______________________________________________________________________________
| A0 | C0 | 00 | 00 | 17 | C0 | DFGSM的信息(共23個字節) | 90 | 00 |
注:紅色表示由ME發出,藍色表示由SIM卡發出。
表4.4.1 SELECT命令實例
4.5 SIM卡的釋放
當正常結束會話或遇到異常時(如SIM卡被抽出),ME會按以下順序釋放SIM卡:
s RST 置低電平
s CLK 置低電平
s I/O 置低電平
s Vcc 置低電平
5 SIM卡的文件系統簡介
為了完成模擬SIM卡部分功能的任務,有必要先了解一下SIM卡的文件系統。
5.1文件的三種類型
SIM卡中的文件分三種類型,它們是主文件MF(Master File),專用文件DF(Dedicated File)和基本文件EF(Elementary File)。其中,MF的作用相當于根目錄,只有一個;DF相當于子目錄,可以有多個;真正儲存有用信息的是EF。在SIM卡中,用’01’代表MF,用’02’代表DF,用‘04’代表EF。用它們的關系如下圖所示:
圖5.1.1 SIM卡的文件系統
5.2文件標識
SIM卡中的文件用2個字節(4位16進制數)來標識,如’3F00’就是MF的標識。其中標識中的第一個字節有特別含義,它表示了文件的類型:
s ‘3F’ 代表根目錄MF
s ‘7F’ 代表第一層子目錄DF
s ‘5F’ 代表第二層子目錄DF
s ‘2F’ 代表根目錄下的基本文件EF
s ‘6F’ 代表第一層子目錄下的基本文件EF
s ‘4F’ 代表第二層子目錄下的基本文件EF
5.3基本文件的三種結構
基本文件EF在SIM卡中針對要存儲的不同信息,又分別有三種存儲結構。它們是:
s 通透的(Transparent)結構 用’00’編碼
s 線性固定的(Linear Fixed)結構 用’01’編碼
s 循環的(Cyclic)結構 用’03’編碼
通透結構的EF由一個文件頭和一個由字節序列組成的文件體構成。在讀寫和更新時,
我們可以通過給出字節的偏移地址和字節數目來找到要操作的字節序列。文件體第一個字節的偏移地址是’0000’。文件頭指示了文件體的字節數目。這種文件多用于存儲GSM網絡的相關參數。
線性固定結構的EF由一個文件頭和一個由一筆筆有固定長度的記錄組成的文件體構成。第一筆記錄是一號記錄。文件頭指示了每一筆記錄的長度和文件體的總長度。這種文件多用于存儲各種應用信息,如短信內容,電話號碼等。
循環結構的EF與線性固定結構的EF類似,也是主要由一筆筆記錄構成。所不同的是,由于它的容量N固定,所以第N+1筆記錄會覆蓋第1筆記錄,如此循環。這種文件也是用于存儲各種應用信息,如已撥電話號碼,已接聽電話號碼等。
5.4文件訪問控制
SIM卡的一個主要作用是保證信息安全。SIM卡內的每一個文件對不同的命令(參見第6節的介紹)設置了不同的訪問級別:
s 第0級 總是允許訪問(ALWAYs)
s 第1級 需要CHV1認證
s 第2級 需要CHV2認證
s 第3級 保留以備將來使用
s 第4到14級 管理權限(ADM)
s 第15級 禁止訪問(NEVer)
當在某個基本文件EF上執行某命令時,它需要CHV1認證,那么必須滿足如下條件
之一:
s 1. 輸入了正確的CHV1認證碼。
s 2. CHV1認證功能被設定為“不執行”(disabled)。
s 3. UNBLOCK?。茫龋郑泵睿ㄓ糜诮怄i已被鎖死的SIM卡)成功執行。
CHV2認證類似。
ADM的權限設定以及它們的訪問條件一般由SIM卡的發行者來負責。
5.5 SIM卡的文件系統示意圖
下圖是SIM卡的文件系統示意圖,各個文件的作用請參見相關文件的說明。在這里針對這個項目的應用,簡要說明幾個文件:
s EFICCID ‘2FE2’ 通透結構 10字節 SIM卡的唯一標識號碼
s EFLP ‘6F05’ 通透結構 1到n字節 SIM卡支持的語言
s EFIMSI ‘6F07’ 通透結構 9字節 國際移動用戶識別碼(IMSI)
s EFKc ‘6F20’ 通透結構 9字節 密鑰Kc,經常更新
s EFHPLMN ‘6F31’ 通透結構 1字節 歸屬PLMN搜尋間隔
s EFSST ‘6F38’ 通透結構 大于2字節 SIM支持的服務種類
s EFBCCH ‘6F74’ 通透結構 16字節 廣播控制信道的信息,經常更新
s EFACC ‘6F78’ 通透結構 2字節 接入控制類別的信息
s EFFPLMN ‘6F7B’ 通透結構 12字節 禁止登陸的PLMN
s EFLOCI ‘6F7E’ 通透結構 11字節 位置區域信息,經常更新
s EFAD ‘6FAD’ 通透結構 大于3字節 SIM卡運作類型,如“測試卡”
s EFPhase ‘6FAE’ 通透結構 1字節 SIM卡所屬階段
s EFCBMID ‘6F48’ 通透結構 2n字節 SIM要存儲的小區廣播信息