SIM卡池(SIMPOOL)应用随身WiFi解决方案
1、全球/4G高速上网;
3、全球免漫游收发短信;
1、无需插卡:采用先进云SIM卡技术,无需插卡、无需借助其它任何设备,开机即可提供优质WiFi上网服务;
2、全球通用:支持全球3G/4G主流频段,云端SIM服务器根据用户位置信息自动分配当地流量卡,一台设备全球通用,去多个国家也无需更换WiFi设备;
3、SIM卡集中管理、灵活调度:通过云端SIM服务器对所有流量卡进行集中管理,并可根据每台WiFi设备使用情况灵活调度分配流量卡,有效避免流量资源闲置和浪费,从而极大程度上降低管理和运营成本;
6、计费方式更灵活:提供多种计费方式,可根据用户情况灵活选择;
7、简单易用的Web管理系统:配备简单易用的Web管理系统,无需专业人士即可轻松维护管理;
8、完善的数据备份方案:多套数据备份方案同时运行,数据安全更有保障!
本方案适用于出国随身WiFi设备、国内随身WiFi设备、智能手机全球漫游服务及等领域。
SIM卡与ME的协议交互过程
1前言
ACCAccessControlClass接入控制类别
ADAdministrativeData管理数据
APDUApplicationProtocolDataUnit应用协议数据单元
ATRAnswertoReset复位应答
BCCHBroadcastControlChannel广播控制信道
CBMIDCellBroadcastMessageIdentifierforDataDownload用于下载的小区广播信息标识
CHVCardHolderVerificationinformation卡支持器检验信息
DFDedicatedFile专用文件
EFElementaryFile基本文件
FPLMNForbiddenPLMN禁止登陆的PLMN
GSMGlobalSystemforMobileCommunications全球移动通信系统
HPLMNHomePLMN归属PLMN
ICCIDIntegratedCircuitsCardIdentifier智能卡标识
IMSIInternationalMobileSubscriberIdentity国际移动用户识别码
KcCipheringkey密码本
Ki用户鉴权码
LOCILocationInformation位置信息
LPLanguagePreference语言选择
MEMobileEquipment移动设备,包括各种的GSM模块
MFMasterFile主文件
PTSProtocolTypeSelection协议类型选择
SIMSubscriberIdentityModule用户识别模块
SSTSIMServiceTableSIM卡服务表
SRESSignedRESponse符号响应,鉴权的计算结果
‘XX’用单引号表示十六进制数,如’90’表示十六进制数Ox90
VOH最大输出电压,其他类似符号可类推
SIM卡是智能卡的一种,除非在GSM应用中有特殊规定,否则应该符合智能卡的一般规范,即ISO7816-1,2,3。本节介绍了SIM卡的规格以及SIM卡上触点的功能分配和电气特性。
早期使用的SIM属于ID-1型号,如卡片般大小。近期使用的SIM一般属于Plug-in型号,尺寸是25mm×15mm。Plug-in型号的SIM可以由ID-1SIM切去多余的塑料片后得到。
各触点在SIM上的位置可以参考ISO7816-2,下表是各个触点的编号以及功能分配。
触点编号
分配
C1
电源电压Vcc
C5
接地GND
C2
复位RST
C6
编程电压Vpp
C3
时钟CLK
C7
输入/输出I/O
C4
保留
C8
表3.2.1SIM卡的触点分配
据GSM11.11规定,SIM卡应该工作在如下表所示的电压范围内。
符号
最小值
最大值
单位
Vcc
4,5
5,5
V
Icc
10
mA
表3.3.1.1+5V供电下Vcc的电气特性
另外,据GSM11.12补充规定,GSMPhase2的SIM卡应该同时支持+5V和+3V供电电压。在+3V供电时SIM卡的工作范围如下:
2.7
3.3
6
表3.3.1.2+3V供电下Vcc的电气特性
下面各个触点的电气参数均是在+3V供电时给出的,+5V供电的情况请参考GSM11.11。
ME会用如下参数范围内的RST信号去复位SIM卡。
条件
VOH
IOHmax=+20μA
0.8xVcc
VOL
IOLmax=-200μA
0
0.2xVcc
tRtF
Cin=Cout=30pF
400
μs
表3.3.2.1RST的电气特性
SIM卡详细的复位和复位应答过程(ATR)见4.2.3节
SIM卡不使用Vpp。
SIM卡应该使用在CLK上提供的1到5MHz的外部时钟,不应使用自己的内部时钟。CLK信号的电气特性如下。
0.7xVcc
IOLmax=-20μA
50
ns
表3.3.4.1CLK的电气特性
这个触点是SIM卡与ME之间通信的唯一通道。它支持半双工串行通信,有发送和接收两种状态,并且应该在不传输数据时置为接收状态。它的电气特性如下。
VIH
IIHmax=±20μA
Vcc+0.3
VIL
IILmax=+1mA
-0.3
IOLmax=-1mA
0.4
1
表3.3.5.1I/O的电气特性
ME和SIM卡之间的对话应按如下顺序操作:
sSIM卡的连接和激活
sSIM卡的复位
sSIM卡与ME之间命令-响应过程
sSIM卡的释放
正确连接ME和SIM卡后(请参阅ME的说明),ME按如下顺序激活SIM卡:
s置RST为低电平
s给Vcc供电
sME和SIM卡的I/O口均置为接收状态
sCLK上有稳定的时钟信号
在激活SIM卡后,ME会冷复位或热复位SIM卡。随后,SIM卡应该复位内部数据并且发起ATR过程。而ME根据ATR的信息,有可能发起PTS过程来进一步商议通信协议和波特率。这些过程正常结束后,ME和SIM卡就可以开始各种命令-响应过程。
正确连接和激活SIM卡后,ME就会立刻对SIM卡进行冷复位,复位信号的时序如下图示:
注:SIM卡应当在RST被拉高后400到40000个时钟周期内(t1)发起ATR过程。
T0与T1之间间隔40000个时钟周期。
图4.2.1.1SIM卡的冷复位
图4.2.2.1SIM卡的热复位
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的每一逻辑位进行异或求得。
图4.2.3.1.1字符帧的结构
4.2.3.2字符帧的时序
1etu=F/(D*f)秒
P=2+Netu
参数F,D和N可以在ATR和PTS过程中由SIM和ME商议确定。在没有商定前,使用如下默认值:
F=372;D=1;N=0
4.2.3.3字符帧的差错控制
ISO7816-3规定了字符帧差错控制的机制,主要是错误检测和字符重发。需要时请参阅。
ATR是英文AnswertoReset的缩写,即复位应答。
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.1ATR过程的格式
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定义了其后字符编码的两种协议:正向协议(DirectConvention)和反向协议(InverseConvention)。
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的意义
GSMPhase2的SIM卡和ME除了支持F=372,D=1外还应该支持F=512,D=8。
GSM11.11规定,如果TA1不等于’11’,那么ME就会启动PTS过程。
4.2.4.3接口字符TB1,TB2
TB1,TB2。这两个字符主要是对编程电压Vpp和编程电流Ipp的要求进行编码。因为SIM卡不应该需要使用编程电压Vpp,GSM11.11规定:TB1=’00’;TB2不予传输。如果TB1不等于’00’,那么ME设备会拒绝SIM卡。
4.2.4.4接口字符TC1
如果SIM卡没有发送TA1,TB1,TC1那么ME就会使用默认值:
4.2.4.5接口字符TD1
这个字符的高半字节表示Y2,它的含义与T0字符中的Y1类似,表示其后TA2,TB2,TC2和TD2是否被传输。
低半字节表示协议类型T,它是一个四位二进制数,取值从0到15。最常用的传输协议如下:
sT=0表示异步半双工字符传输协议
sT=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
W=960xDxWI(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。
名称值意义
TS3B正逻辑;低位b0先传输
T0F0接下来传输TA1,TB1,TC1,TD1;无历史字符
TA194F=512,D=8,1etu=64个时钟周期,最大时钟频率5MHz
TB100不需使用编程电压Vpp
在协商模式下,ATR过程默认使用的参数F=372,D=1和TD1所表明的协议将会一直使用下去,直到一个成功的PTS过程完成。GSM11.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.1PTS过程
如果SIM卡一直不响应PTS请求,则ME就会一直使用默认值F=372,D=1,N=0和协议T=0。
╔══╗复位╔═══╗
║ME║──────────────────────────-──────────────>║SIM║
╚══╝╚═══╝
ATR
┌─────┬────┐
└─────┴────┘
图4.2.3.5.1提速到F=512,D=8的PTS过程
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’表示不明指令
其它一些编码请参阅GSM11.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卡发送的所有数据。
INS取反
ME将发送下一个字节的数据或者ME将准备接收SIM卡发送的下一个字节的数据。
NULL
0x60
SW1
0x6x或0x9x
ME接收下一个状态字SW2
表4.3.1SIM卡的响应字节
综上,下图列举了ME和SIM命令响应过程的4种情况:
情况1:命令+命令数据
_______________________________________________________________________________
|CLA|INS|P1|P2|P3|INS|DATA|SW1|SW2|
情况2:只有命令
|CLA|INS|P1|P2|00|SW1|SW2|
情况3:命令+响应数据(ME已知其长度)
情况4:命令+命令数据+响应数据
|CLA|INS|P1|P2|P3|INS|DATA|INS|L|DATA|SW1|SW2|
注:1.红色表示由ME发出,蓝色表示由SIM卡发出。
2.情况4中“L”是SIM发出的响应数据的长度。
图4.3.3ME和SIM的命令响应过程
请参考第6节内容。
下面以SELECT命令的执行为例(它的完整执行还需要另外一个辅助命令GETRESPONSE)。
ME先发出SELECT命令,选择专用文件DFGSM(文件标识’7F20’),然后等待SIM卡的第一次响应,得知SIM卡将有长度为23字节的数据(十六进制为’17’)要返回。ME再发出第二条命令GETRESPONSE(带数据长度参数’17’),SIM卡则在这时把SELECT命令应该返回的数据返回给ME,并表示命令正常结束。过程如下:
ME发送SELECT命令(属于命令+命令数据):
|A0|A4|00|00|02|A4|7F|20|9F|17|
ME发送GETRESPONSE命令(属于命令+响应数据):
|A0|C0|00|00|17|C0|DFGSM的信息(共23个字节)|90|00|
注:红色表示由ME发出,蓝色表示由SIM卡发出。
表4.4.1SELECT命令实例
当正常结束会话或遇到异常时(如SIM卡被抽出),ME会按以下顺序释放SIM卡:
sRST置低电平
sCLK置低电平
sI/O置低电平
sVcc置低电平
为了完成模拟SIM卡部分功能的任务,有必要先了解一下SIM卡的文件系统。
SIM卡中的文件分三种类型,它们是主文件MF(MasterFile),专用文件DF(DedicatedFile)和基本文件EF(ElementaryFile)。其中,MF的作用相当于根目录,只有一个;DF相当于子目录,可以有多个;真正储存有用信息的是EF。在SIM卡中,用’01’代表MF,用’02’代表DF,用‘04’代表EF。用它们的关系如下图所示:
图5.1.1SIM卡的文件系统
SIM卡中的文件用2个字节(4位16进制数)来标识,如’3F00’就是MF的标识。其中标识中的第一个字节有特别含义,它表示了文件的类型:
s‘3F’代表根目录MF
s‘7F’代表第一层子目录DF
s‘5F’代表第二层子目录DF
s‘2F’代表根目录下的基本文件EF
s‘6F’代表第一层子目录下的基本文件EF
s‘4F’代表第二层子目录下的基本文件EF
基本文件EF在SIM卡中针对要存储的不同信息,又分别有三种存储结构。它们是:
s通透的(Transparent)结构用’00’编码
s线性固定的(LinearFixed)结构用’01’编码
s循环的(Cyclic)结构用’03’编码
通透结构的EF由一个文件头和一个由字节序列组成的文件体构成。在读写和更新时,
SIM卡的一个主要作用是保证信息安全。SIM卡内的每一个文件对不同的命令(参见第6节的介绍)设置了不同的访问级别:
s第0级总是允许访问(ALWAYs)
s第1级需要CHV1认证
s第2级需要CHV2认证
s第3级保留以备将来使用
s第4到14级管理权限(ADM)
s第15级禁止访问(NEVer)
当在某个基本文件EF上执行某命令时,它需要CHV1认证,那么必须满足如下条件
之一:
s1.输入了正确的CHV1认证码。
s2.CHV1认证功能被设定为“不执行”(disabled)。
s3.UNBLOCKCHV1命令(用于解锁已被锁死的SIM卡)成功执行。
CHV2认证类似。
ADM的权限设定以及它们的访问条件一般由SIM卡的发行者来负责。
sEFICCID‘2FE2’通透结构10字节SIM卡的唯一标识号码
sEFLP‘6F05’通透结构1到n字节SIM卡支持的语言
sEFIMSI‘6F07’通透结构9字节国际移动用户识别码(IMSI)
sEFKc‘6F20’通透结构9字节密钥Kc,经常更新
sEFHPLMN‘6F31’通透结构1字节归属PLMN搜寻间隔
sEFSST‘6F38’通透结构大于2字节SIM支持的服务种类
sEFBCCH‘6F74’通透结构16字节广播控制信道的信息,经常更新
sEFACC‘6F78’通透结构2字节接入控制类别的信息
sEFFPLMN‘6F7B’通透结构12字节禁止登陆的PLMN
sEFLOCI‘6F7E’通透结构11字节位置区域信息,经常更新
sEFAD‘6FAD’通透结构大于3字节SIM卡运作类型,如“测试卡”