SIM卡与ME的协议交互过程.docx

上传人:b****8 文档编号:29414865 上传时间:2023-07-23 格式:DOCX 页数:30 大小:448.45KB
下载 相关 举报
SIM卡与ME的协议交互过程.docx_第1页
第1页 / 共30页
SIM卡与ME的协议交互过程.docx_第2页
第2页 / 共30页
SIM卡与ME的协议交互过程.docx_第3页
第3页 / 共30页
SIM卡与ME的协议交互过程.docx_第4页
第4页 / 共30页
SIM卡与ME的协议交互过程.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

SIM卡与ME的协议交互过程.docx

《SIM卡与ME的协议交互过程.docx》由会员分享,可在线阅读,更多相关《SIM卡与ME的协议交互过程.docx(30页珍藏版)》请在冰豆网上搜索。

SIM卡与ME的协议交互过程.docx

SIM卡与ME的协议交互过程

 

SIM卡与ME的协议交互过程

责任人:

设计开发部文小明

报告提交日期:

2005-4-30

 

 

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回应一个字节的响应(通常就是APDU中的INS字节)。

SIM卡回应的这个字节的意义如下表:

定义

ME的动作

ACK

INS

ME将发送所有剩余的数据或者ME将准备接收SIM卡发送的所有数据。

ACK

INS取反

ME将发送下一个字节的数据或者ME将准备接收SIM卡发送的下一个字节的数据。

NULL

0x60

ME延长一个工作等待时间

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已知其长度)

_______________________________________________________________________________

|CLA|INS|P1|P2|P3|INS|DATA|SW1|SW2|

情况4:

命令+命令数据+响应数据

___________

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1