看了《SIM卡基础技术规范》不形象,下面用两个ATR来说明一下:
上图截取自《sim卡基础技术规范》
1. 第1个atr
这个atr是网上广泛流传的解析,不过对于我等菜鸟来说还是不够详细,在这儿补充一下:
3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 31 96
3B: TS( The Initial character )
FA: T0( The Format character )
高4位 = f( 1 1 1 1 )表示后续字符中存在TA1(bit5) TB1(bit6) TC1(bit7) TD1(bit8)
低4位 = A(1010) 表示历史字节存在的数量=10个字节
13: TA1 表示增强的波特率,公式 3571200 / ( Fi / Di )
Fi由TA1的高4位(F)查表得出, 1--> 372
Di由TA1的低4位(D)查表得出, 3-->4
3571200/(372/4)= 38400
00:TB1 表示编程电流 I /电压 P,高2位表示电流I,低6位表示电压P
00: TC1 表示额外保护时间N = 0
81: TD1 指明了协议类型,以及是否存在后继接口字符
高4位=8(1000) 代表后续的TAi,TBi,TCi,TDi是否存在, 8说明后面接个TD2
低4位=1(0001) 代表协议类型是1
31: TD2 指明了协议类型,以及是否存在后继接口字符
高4位=3(0011) 代表后续的TAi,TBi,TCi,TDi是否存在, 3说明后面接个TA3与TB3
低4位=1(0001)代表协议类型是1
FE: TA3
45: TB3
4A 43 4F 50 34 31 56 32 32 31: 10个历史字节(T0:FA中的A)
96: 异或校验的结果,其中3B不参与运算: ?是ubuntu计算器中的异或表示符
fa?13?00?00?81?31?fe?45?4a?43?4f?50?34?31?56?32?32?31=96
2. 第2个atr
3B 9F 94 80 1F C7 80 31 E0 73 FE 21 1B 64 40 90 61 00 82 90 00 72 3B: TS( The Initial character )
3B: TS Using Direct Convention
9F: T0( The Format character )
高4位 = 9( 1 0 0 1 )表示后续字符中存在TA1(bit5) TD1(bit8)
低4位 = F(1111) 表示历史字节存在的数量=15个字节
94:TA1 表示增强的波特率,公式 3571200 / ( Fi / Di )
Fi由TA1的高4位(F)查表得出, 9--> 512
Di由TA1的低4位(D)查表得出, 4-->8
3571200/(512/8)= 55800
80:TD1 指明了协议类型,以及是否存在后继接口字符
高4位=8(1000) 代表后续的TAi,TBi,TCi,TDi是否存在,8说明后面接个TD2
低4位=0(0000) 代表协议类型是0
1F: TD2 指明了协议类型,以及是否存在后继接口字符
高4位=1(0001) 代表后续的TAi,TBi,TCi,TDi是否存在,1说明后面接个TA3
低4位=F(1111) 代表协议类型是F
C7:TA3
- Clock stop indicator (X) = 3, class indicator (Y) = 7
-- Clock stop supported. No preference on the CLK when clock is stopped
- Class Support: A(5V) B(3V) C(1.8V)
Historical bytes: 80 31 E0 73 FE 21 1B 64 40 90 61 00 82 90 00
80 31 e0 73 fe 21 13 57 17 ae 11 00 01 00 00: 15个历史字节(T0:9F中的F)
Check Byte: TCK = 72
CE:是校验位,其中3B不参与运算: ?是ubuntu计算器中的异或表示符
9f?94?80?1f?c7?80?31?e0?73?fe?21?13?57?17?ae?11?00?01?00?00=43
附TA1的表:
| F | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| Fi | 372 | 372 | 558 | 744 | 1116 | 1488 | 1860 | RFU |RFU | 512 | 768 | 1024 | 1536 | 2048 | RFU | RFU |
| D | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 |1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
| Di | RFU | 1 | 2 | 4 | 8 | 16 | 1860 | RFU | RFU | 512 | 768 | 1024 | 1536 | 2048 | RFU | RFU |
附modem与sim的交互流程
-
a. 复位
-
ME-->SIM发送复位
-
SIM-->ME发复位应答ATR
-
b. PPS过程
-
如果在复位应答中TA1的值不等于缺省值则进行PPS过程
-
ME-->SIM发送PPS(F=512,D=8时发FF 10 94 7b)
-
SIM-->ME回应PPS(F=512,D=8时回FF 10 94 7b) -->控制变波特率与不变波特率
-
c.APDU
-
ME-->SIM发送APDU(00 a4 00 04 02)
-
SIM-->ME回应APDU(a4)
-
ME-->SIM发送APDU(3f 02)
-
SIM-->ME回应APDU(a4)
-
ME-->SIM发送APDU(61 29)
阅读(2028) | 评论(0) | 转发(0) |