SIM卡通信過程分為4個步驟
- SIM卡連接和激活
- SIM卡復位
- SIM卡和ME之間的命令和響應過程
- SIM卡釋放
1 SIM卡的連接和激活
正確連接ME和SIM卡后,ME按照如下的順序激活SIM卡
- 置RST為低電平
- 給Vcc供電
- ME和SIM卡的IO口均設置為接收狀態
- CLK上有穩定的時鍾信號
2 SIM卡的復位
在激活SIM卡后,ME會冷復位和熱復位SIM卡。隨后,SIM卡應該復位內部數據並且發起ATR過程。ME根據ATR的信息,有可能發起PTS過程來進一步商議通信協議和波特率。這些都成功后,ME和SIM卡就可以進行APDU交互過程。
2.1 SIM卡冷復位
正確連接SIM卡后,ME就會立刻對SIM卡進行冷復位,復位時序如下
注:SIM卡應當在RST被拉高后的400到40000個時鍾周期內發起ATR過程。
2.2 SIM卡熱復位
ME可以在SIM卡被激活后的任何時間里隨時對SIM卡進行復位,這叫熱復位。熱復位時,RST會仙貝拉低40000個時鍾周期,然后被拉高,SIM卡應答跟冷復位相同。
注:SIM卡應當在RST被拉高后的400到40000個時鍾周期內發起ATR過程。
2.3 字符幀傳輸
1.SIM卡和ME之間使用IO的半雙工通信(一般為異步),IO上的信息被打包成字符幀來傳輸。PTS和APDU都是這種方式。
2.字符幀的結構如下圖
S是開始位,低電平。
Bi是i字節的有效數據據。
C 是奇偶校驗位。
P是保護時間
S是停止位。
3.字符幀的時序
字符幀內每一位的持續時間定義為基本時間單元(etu),他依賴與時鍾頻率(f),時鍾轉換因子(f),比特調整因子(D),
etu = F/(f*D)秒
保護時間P一般為2+N etu
參數F,D,N可以在ATR和PTS過程中由SIM和ME商榷確定。默認值為F=372,D=1,N=0。
2.4 ATR過程
ATR過程使用默認參數F=372,D=1,N=0,若CLK上是3.579HZ 那么etu = 372/2.579波特率為1/etu=9600bps。
ATR 過程包含如下信息:傳輸協議的類型,控制參數,和識別信息。ATR過程由一系列字符組成。應該遵循如下格式
TS :初始字符(必須傳輸)
TO :格式字符(必須傳輸)
TAi~TBi : 接口字符(可選)
TCK :奇偶校字符
字符具體含義和編碼參考GSM11.11文檔
2.5 PTS過程
在協商模式下,ATR過程默認使用的參數所表明的協議會一直用下去,直到一個成功的PTS過程完成。GSM11.11規定,如果TA1不等於‘11’那么ME就會發起PTS過程。
PTS過程包括ME的PTS請求和SIM卡的PTS應答。他們一般由4個字符組成。
- PTSS初始字符 總為FF
- PTS0格式字符 高四位分別表示后面字符的存在,低4位表示協議類型
- PTS1參數字符 高半字節代表FI,低半字節代表DI.(與TA1匹配)
- PCK校驗字符
SIM卡和ME之間的APDU交互過程。
SIM卡在復位,ATR過程,PTS過程正常結束后就可以正式接收ME的各種命令APDU應該使用T=0來傳輸,正常的APDU分為命令和響應兩部分,響應的編碼如下
APDU命令格式
APDU響應格式
詳細狀態參考GSM11.11第9章。