SIM卡与ME的协议交互过程分析.docx
- 文档编号:28150085
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:31
- 大小:448.55KB
SIM卡与ME的协议交互过程分析.docx
《SIM卡与ME的协议交互过程分析.docx》由会员分享,可在线阅读,更多相关《SIM卡与ME的协议交互过程分析.docx(31页珍藏版)》请在冰豆网上搜索。
SIM卡与ME的协议交互过程分析
SIM卡与ME的协议交互过程
责任人:
设计开发部文小明
报告提交日期:
2005-4-30
1前言3
2缩写和符号的说明3
3物理层上与项目相关的一些规范4
3.1SIM卡的两种规格4
3.2SIM卡的触点分配4
3.3SIM卡触点的电气特性4
3.3.1电源电压Vcc4
3.3.2复位RST5
3.3.3编程电压Vpp5
3.3.4时钟CLK5
3.3.5输入/输出I/O6
4数据链路层上SIM卡与ME的通信6
4.1SIM卡的连接和激活6
4.2SIM卡的复位6
4.2.1SIM卡的冷复位7
4.2.2SIM卡的热复位7
4.2.3字符帧传输7
4.2.4ATR过程8
4.2.5ATR过程的一个实例11
4.2.6PTS过程11
4.2.7PTS过程的一个实例12
4.3SIM卡与ME之间命令-响应过程12
4.4SIM卡与ME之间命令-响应过程的一个实例(SELECT)13
4.5SIM卡的释放14
5SIM卡的文件系统简介14
5.1文件的三种类型14
5.2文件标识15
5.3基本文件的三种结构15
5.4文件访问控制15
5.5SIM卡的文件系统示意图16
6SIM卡的命令系统简介18
6.1SELECT(命令+命令数据)18
6.2STATUS(命令+响应数据)20
6.3READBINARY(命令+响应数据)20
6.4UPDATEBINARY(命令+命令数据)20
6.5GETRESPONSE(命令+响应数据)21
6.6RUNGSMALGORITHM(命令+命令数据)21
7登陆GSM网络时SIM卡要执行的过程21
1前言
本报告完成的是“Elvis智能拨测设备”项目中的一个任务,目的是探讨怎样用单片机来模拟SIM卡的部分功能(使设备能登陆到GSM网络即可)。
报告主要参考了GSM11.11version5.5.0和GSM11.12version5.0.0规范,并同时参考了ISO7816-1,2,3规范中的相关内容。
2缩写和符号的说明
ACCAccessControlClass接入控制类别
ADAdministrativeData管理数据
APDUApplicationProtocolDataUnit应用协议数据单元
ATRAnswertoReset复位应答
BCCHBroadcastControlChannel广播控制信道
CBMIDCellBroadcastMessageIdentifierforDataDownload用于下载的小区广播信息标识
CHVCardHolderVerificationinformation卡支持器检验信息
DFDedicatedFile专用文件
EFElementaryFile基本文件
etuElementaryTimeUnit基本时间单元
FPLMNForbiddenPLMN禁止登陆的PLMN
GSMGlobalSystemforMobileCommunications全球移动通信系统
HPLMNHomePLMN归属PLMN
ICCIDIntegratedCircuitsCardIdentifier智能卡标识
IMSIInternationalMobileSubscriberIdentity国际移动用户识别码
KcCipheringkey密码本
Ki用户鉴权码
LOCILocationInformation位置信息
LPLanguagePreference语言选择
MEMobileEquipment移动设备,包括各种的GSM模块
MFMasterFile主文件
PLMNPublicLandMobileNetwork公众陆地移动电话网
PTSProtocolTypeSelection协议类型选择
SIMSubscriberIdentityModule用户识别模块
SSTSIMServiceTableSIM卡服务表
SRESSignedRESponse符号响应,鉴权的计算结果
‘XX’用单引号表示十六进制数,如’90’表示十六进制数Ox90
VOH最大输出电压,其他类似符号可类推
tRtF脉冲的上升时间和下降时间
3物理层上与项目相关的一些规范
SIM卡是智能卡的一种,除非在GSM应用中有特殊规定,否则应该符合智能卡的一般规范,即ISO7816-1,2,3。
本节介绍了SIM卡的规格以及SIM卡上触点的功能分配和电气特性。
3.1SIM卡的两种规格
早期使用的SIM属于ID-1型号,如卡片般大小。
近期使用的SIM一般属于Plug-in型号,尺寸是25mm×15mm。
Plug-in型号的SIM可以由ID-1SIM切去多余的塑料片后得到。
3.2SIM卡的触点分配
各触点在SIM上的位置可以参考ISO7816-2,下表是各个触点的编号以及功能分配。
触点编号
分配
触点编号
分配
C1
电源电压Vcc
C5
接地GND
C2
复位RST
C6
编程电压Vpp
C3
时钟CLK
C7
输入/输出I/O
C4
保留
C8
保留
表3.2.1SIM卡的触点分配
3.3SIM卡触点的电气特性
3.3.1电源电压Vcc
据GSM11.11规定,SIM卡应该工作在如下表所示的电压范围内。
符号
最小值
最大值
单位
Vcc
4,5
5,5
V
Icc
10
mA
注:
Icc是Vcc上的电流,下面相关定义与此同
表3.3.1.1+5V供电下Vcc的电气特性
另外,据GSM11.12补充规定,GSMPhase2的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卡(详见GSM11.12的规定)。
下面各个触点的电气参数均是在+3V供电时给出的,+5V供电的情况请参考GSM11.11。
3.3.2复位RST
ME会用如下参数范围内的RST信号去复位SIM卡。
符号
条件
最小值
最大值
单位
VOH
IOHmax=+20µA
0.8xVcc
Vcc
V
VOL
IOLmax=-200µA
0
0.2xVcc
V
tRtF
Cin=Cout=30pF
400
µs
表3.3.2.1RST的电气特性
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.7xVcc
Vcc
V
VOL
IOLmax=-20µA
0
0.2xVcc
V
tRtF
Cin=Cout=30pF
50
ns
表3.3.4.1CLK的电气特性
另外如果SIM卡在鉴权或执行ENVELOPE命令的过程中需要使用13/4MHz的时钟,应该在相关的信息位上置1来表示(详见SELECT命令的编码规定)。
GSMPhase2的SIM卡应该支持“时钟停止模式”,并在相关的信息位上置1来表示(详见SELECT命令的编码规定)。
在此模式下ME会在启动时钟后经过最少744个时钟周期才会发出第一条命令,并在接收最后一位应答字符后经过最少1860个时钟周期才会关闭时钟。
3.3.5输入/输出I/O
这个触点是SIM卡与ME之间通信的唯一通道。
它支持半双工串行通信,有发送和接收两种状态,并且应该在不传输数据时置为接收状态。
它的电气特性如下。
符号
条件
最小值
最大值
单位
VIH
IIHmax=±20µA
0.7xVcc
Vcc+0.3
V
VIL
IILmax=+1mA
-0.3
0.2xVcc
V
VOH
IOHmax=+20µA
0.7xVcc
Vcc
V
VOL
IOLmax=-1mA
0
0.4
V
tRtF
Cin=Cout=30pF
1
µs
表3.3.5.1I/O的电气特性
4数据链路层上SIM卡与ME的通信
ME和SIM卡之间的对话应按如下顺序操作:
♦SIM卡的连接和激活
♦SIM卡的复位
♦SIM卡与ME之间命令-响应过程
♦SIM卡的释放
4.1SIM卡的连接和激活
正确连接ME和SIM卡后(请参阅ME的说明),ME按如下顺序激活SIM卡:
♦置RST为低电平
♦给Vcc供电
♦ME和SIM卡的I/O口均置为接收状态
♦CLK上有稳定的时钟信号
4.2SIM卡的复位
在激活SIM卡后,ME会冷复位或热复位SIM卡。
随后,SIM卡应该复位内部数据并且发起ATR过程。
而ME根据ATR的信息,有可能发起PTS过程来进一步商议通信协议和波特率。
这些过程正常结束后,ME和SIM卡就可以开始各种命令-响应过程。
4.2.1SIM卡的冷复位
正确连接和激活SIM卡后,ME就会立刻对SIM卡进行冷复位,复位信号的时序如下图示:
注:
SIM卡应当在RST被拉高后400到40000个时钟周期内(t1)发起ATR过程。
T0与T1之间间隔40000个时钟周期。
图4.2.1.1SIM卡的冷复位
4.2.2SIM卡的热复位
ME可在SIM卡被激活后的任何时间里随时对SIM卡进行复位,这称为热复位。
热复位时,RST会先被拉低40000个时钟周期,然后再被拉高。
SIM卡的应答则跟冷复位相同。
热复位过程如下图示:
注:
SIM卡应当在RST被拉高后400到40000个时钟周期内(t1)发起ATR过程。
T0与T1之间间隔40000个时钟周期。
图4.2.2.1SIM卡的热复位
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+Netu
参数F,D和N可以在ATR和PTS过程中由SIM和ME商议确定。
在没有商定前,使用如下默认值:
F=372;D=1;N=0
4.2.3.3字符帧的差错控制
ISO7816-3规定了字符帧差错控制的机制,主要是错误检测和字符重发。
需要时请参阅。
4.2.4ATR过程
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)。
♦正向协议。
在I/O线上,高电平代表逻辑1(正逻辑),并且低位b0首先被传输。
这时TS字符帧设为:
L-HHLHHHLL-H。
在正向协议下TS的编码为’3B’。
♦反向协议。
在I/O线上,低电平代表逻辑1(负逻辑),并且高位b7首先被传输。
这时TS字符帧设为:
L-HHLLLLLL-H。
在反向协议下TS的编码为’3F’。
ME能支持上面的任何一种协议。
4.2.4.2格式字符T0
T0的8位有效数据被分成两部分。
高半字节代表参数Y1,它用每一位的逻辑1来表示其后TA1,TB1,TC1和TD1是否被传输,对应关系如下:
b4TA1;b5TB1;b6TC1;b7TD1
低半字节代表参数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
TC1上的8位有效数据是一个8位二进制数,取值从0到255。
它代表了额外保护时间N(见4.2.3.2)的值,GSM11.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。
最常用的传输协议如下:
♦T=0表示异步半双工字符传输协议
♦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=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。
4.2.5ATR过程的一个实例
名称值意义
TS3B正逻辑;低位b0先传输
T0F0接下来传输TA1,TB1,TC1,TD1;无历史字符
TA194F=512,D=8,1etu=64个时钟周期,最大时钟频率5MHz
TB100不需使用编程电压Vpp
TC100不需额外保护时间
TD140接下来传输TC2;使用T=0协议
TC2FF使用最大工作等待时间(大于250,000个etus)
4.2.6PTS过程
在协商模式下,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。
4.2.7PTS过程的一个实例
╔══╗复位╔═══╗
║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.3SIM卡与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’表示不明指令
其它一些编码请参阅GSM11.11的第9章
图4.3.2响应APDU的格式
为了更好的控制APDU的时序,ISO7816-3规定APDU是“分节”传输的。
ME首先发送5个字节的命令头(CLA,INS,P1,P2,P3),然后等待SIM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SIM ME 协议 交互 过程 分析