采用SO7816标准规范的SIM卡读卡器的研究

1 sim卡(subscriber identity module)
即用户识别模块,是一张符合gsm规范的“智慧卡”。sim卡可以插入任何一部符合gsm规范的移动电话中,“实现电话号码随卡不随机的功能”,而通话费则自动计入持卡用户的帐单上,与手机无关。
sim卡作为智能卡中特殊的一类卡,采用标准的接触式ic卡。他受到iso7816标准(接触式集成电路ic卡的规定)和etsi(欧洲电信标准委员会)的gsm11.11等标准的规范。他沿袭了智能卡在安全中的特色,并在移动用户认证和移动商务中扮演重要的角色。
目前手机用户将一些重要的电话号码都储存在手机的sim卡上。如果手机失窃,用户可以买一部新的,但是储存的号码怎么办呢?如果用户能事先将储存在sim卡上的电话号码做一份电子拷贝,这样就算手机丢失了,用户还是可以很容易地将保存的号码写入到新的sim卡里。为此,研究并设计了sim卡读卡器,通过他可以将手机sim卡中信息读取到电脑中,方便地实现电话簿和短消息的编辑、备份和管理。为经常使用手机的用户提供了一个经济、便捷的信息备份管理解决方案。
2 sim卡常识
sim卡是一张符合gsm规范“智能卡”,他实际上是一个装有微处理器的芯片卡,内部有5个模块,且每个模块都对应一个功能:cpu(8位)、程序存储器(3~8 kb)、工作存储器(6~16 kb)、数据存储器(128~256 kb)和串行通信单元。sim卡能实现存储数据(电话本、短消息等)和在安全条件下(个人身份号码pin、鉴权钥ki正确)完成客户身份鉴权和客户信息加密算法的全过程。这些功能都是由sim卡内的一部具有操作系统的微处理机完成。sim卡具有机卡分离(sim-me接口)、通信安全可靠、成本低等特点。
(1) sim卡的物理特征:可以分尺寸为54 mm×84 mmid-1 sim(大卡)和尺寸为25 mm×15 mmplug-in sim(小卡)两种。
(2) sim卡的存储容量:一般sim卡有8 kb的存储容量,另外还有容量分别为16 k和32 k的sim卡,即stk sim卡。
(3) sim卡的使用温度:标准温度-25~+70℃,极限温度-35~85℃,极限情况下每次使用不得超过4小时,总共使用不得超过100次。
(4) sim卡的使用寿命:物理寿命是取决于客户的插拔次数,约在1万次左右;而集成电路芯片的寿命取决于数据存储器的写入次数,不同厂家
其指标有所不同,就mo-torola经试验室试验约5万次左右。平均寿命约为4年。
3 sim卡与移动台设备的接口
sim卡芯片有8个触点,与移动台设备相互接通:
(1) 电源vcc(触点c1):4.5~5.5 v,icc《10 ma;
(2) 复位rst(触点c2);
(3) 时钟clk(触点c3):卡时钟3.25 mhz;
(4) 不提供(触点c4);
(5) 接地端gnd(触点c5);
(6) 编程电压vpp(触点c6);
(7) 数据i/o口(触点c7);
(8) 不提供(触点c8)。
sim卡同移动台设备连接时至少需5个连接线:数据i/o口(data)、复位(rst)、接地端(gnd)、电源(vcc)、时钟(clk)。他与基带单元的接口电路如图1所示。其中sim cd为sim卡检测脚,用于检测sim卡的拔插;sim clk为me提供的读/写sim卡的参考时钟;simrst为sim卡复位信号;sim io为串行数据输入/输出线,由20 kω上拉电阻上拉至高电平;sim rnw为读/写控制信号,用以指示当前sim_io线上数据传输的方向;sim pwctrl为功率控制信号,可在空闲方式时控制sim卡上的电源关闭,从而降低功耗,延长待机时间。
4 sim卡内部数据结构
sim卡共有3类数据文件:主文件(master file,mf)、专用文件(dedicate file,df)、基本文件(elementfile,ef)。组织结构规定如下:
0x3f00代表根目录,0x2fxx代表根目录下的基本文件;
0x7fxx代表一级子目录,0x6fxx代表一级子目录下的基本文件;
0x5fxx代表二级子目录,0x4fxx代表二级子目录下的基本文件。
5 sim卡上电复位流程
sim卡符合国际标准iso7816的要求,按照协议中的规定,sim应有8个触点,包括电源接口、复位控制接口、时钟输入接口、数据输入输出接口,sim卡工作时整体电流消耗小于10 ma。sim卡的时钟频率可由外部提供,在指定时问内运行鉴权过程时至少需要13/4 mhz的时钟频率,其他情况下,使用最小为13/8 mhz的时钟频率。i/o端口的数据传输波特率为时钟频率的1/372。
5.1 触点接通与冷复位时序(activation and cold reset)
初始时,所有端口皆处于低电平(l)态,电压范围0~0.4 v;vcc电源电压先上电(h态),后提供vpp编程电压,在智能sim卡中,vpp端无用,电压范围5 v±0.4 v;vcc电源端稳定一段时间后,将io端口置为接收方式(h态),并提供稳定的clk时钟信号(注:io口需在提供clk信号前或在提供clk信号后200个时钟周期内(ta)置为接收方式);rst复位信号需在提供clk信号后400个时钟周期内(tb)保持l态,之后才可置为h态;提供复位信号后400~40 000个时钟周期内(tc),i/o口有复位应答。
5.2 热复位时序(warm reset)
热复位在冷复位失败情况下使用,过程中保持vcc为h态,且有稳定的clk时钟信号;热复位时需保持rst端为l态的时间至少为400个时钟周期(te);在rst端置l态之前或之后200个时钟周期时间内(td),io口应置为接收方式;在rst置为h态后的400~40 000个时钟周期内,i/o口有复位应答。
5.3 时钟停止时序(clock stop)
外部控制停止时钟,可使sim卡通信暂时中断,过程中保持vcc端与复位端rst为h态;要停止时钟,需在i/o口输出最后一个字符之后等待至少1 860个时钟周期(tg);恢复时钟后至少等待700个时钟周期(th),i/o开始有字符输出。
5.4 触点释放时序(deactivation)
将rst端置为l态;结束clk输入并将i/o口置为l态;最后将vcc端置为l态。
5.5 sim卡的复位应答
sim卡的触点被激活之后,终端启动一个冷复位。如果sim卡在冷复位后回送的字节数不符,或在19 200个初始etu之内复位应答未完成,终端不立即终止卡片操作过程,而是再发一个热复位信号。如果仍然得到同样的结果,那么,接口没备应释放触点,否则卡将继续进行后续操作。流程如图6所示。
复位应答最多为32个字节(包括历史字符,不包括初始字符),其中历史字符最多为15个字符,协议分为t=o与t=1两种,一张sim卡只支持其中的一种协议。位持续时间:在io上的位持续时间被定义为一个基本时间单元etu。复位应答期间的位持续时间称为“初始etu”。初始etu=372/fs=372个时钟周期。复位应答之后的位持续时间称为“当前etu”,当前etu=f/d/fs。f为时钟频率变换因数,d为比特率调整因数,均在sim卡复位应答的接口字符ta1中给出,缺省值为f=372,d=1,即复位应答之后的当前etu=初始etu。复位应答过程中相连两字符起始位前沿之间的最小时间间隔为12个初始etu,最大时间间隔为9 600个初始etu,所有应答字符在19 200个初始etu的时间内传送完,即从第一个字符的起始位前沿到最后一个字符起始位前沿后的12个初始etu结束)。
复位应答格式:
ts 初始字符(强制性的),确定后续字符传送顺序(高位先送还是低位先送);
to 格式字符(强制性的);
ta1/tb1/tc1/td1~tai/tbi/tci/tdi 接口字符(选择性的);
t1~tk历史字符(选择性的);
tck 校验字符(有条件的)t=0时不出现。
6 sim卡信息交互规程
6.1 sim卡信息交互指令格式
6.1.1 命令格式
6.1.2 应答格式
data:响应数据; sw1/sw2:返回命令状态。
6.1.3 通用错误返回代码表
6.2 常用的基本指令
6.2.1 目录或文件选择指令(select)
选择一个文件,选择成功后,对线性固定型文件,记录指针不确定。对循环型文件,记录指针指向最近更新或增加的一条记录。
0x9f代表命令正确执行,xx为sim卡返回的数据长度;返回0x94/0x04,代表给出的目录地址是错误的。在复位应答之后(atr),主要文件(mf)被默认为选中,成为当前目录。然后,可采用符合下列原则的select功能来选择每种文件:
① 选择df或mf设为当前目录;df是在选择任何他的ef之前被先选择出来
② 选择ef设为当前文件,df或mf是ef的上层。当前ef总是当前目录的下层。
可选择的文件包括:属于当前目录的直接子文件;属于当前df的父文件的直接子df;当前月录的上层;当前df;mf。
6.2.2 取前一命令应答数据指令(get response)
length(r):响应数据最大长度。
全部命令响应为:
0x90/0x00代表命令正确执行。
6.2.3 从透明的数据文件中读取以二进制形式存储的字节串指令(read binary)
0x90/0x00代表命令正确执行;返回0x94/0x00,代表没有数据文件被选中,即当前被选中的可能是目录而不是文件;返回0x94/0x08,代表当前目录或数据文件与指令不一致,即当前数据不是以二进制形式存储的;返回0x98/0x04,代表本次操作不满足存取安全规则,密码认证未通过。
7 sim卡数据读写测试
sim卡数据读写测试的具体步骤及其结果如下:
step1 sim卡首先上电复位,原则是先接通触点,后启动冷复位,若冷复位失败,启动热复位,若热复位也不成功,则释放触点并报错。冷复位或热复位成功后,sim卡应输出复位应答。
实验测试中取得的复位应答信号如下:
0x22代表指令返回数据最大为34个字节;
sim卡返回:
step5:发送取命令响应数据指令:
0x00代表数据偏移地址为0,即从第一个字节开始读数据;0x09表示imsi信息有9个字节;
sim卡返回:
0xb0代表响应数据对应的指令为read binary;0x08代表imsi号有8个字节数据;0x90/0x00代表命令正确执行。按照协议,该sim卡imsi号即为:
460 00 0104559542,符合国际移动用户识别码imsi(international mobile subscriber identification number)的编码规则,即imsi(国际移动用户识别码)=mcc(移动国家号)+mnc(移动网号)+msisdn(移动用户号码)。
8 结 语
sim卡符合gsm规范,采用标准的接触式ic卡,受到iso7816标准的规范。本文在研究接触式集成电路ic卡国际标准iso7816的基础之上,提出了一种sim卡读卡器的设计方案,针对sim卡信息交互规程给出了具体的测试步骤,测试结果证明了该设计的可行性,读卡器能够稳定可靠地工作。

工业显示器品牌排行与种类
如何辨别色环电感器的好坏
Win10越升越卡怎么办
智慧城市面临哪些掣肘
国产工业机器人的弱势究竟在哪?
采用SO7816标准规范的SIM卡读卡器的研究
英飞凌收购赛普拉斯跻身成为全球第八大芯片制造商
机器鱼以假乱真骗过真实鱼类
解析云原生技术发展趋势及实践应用
蜗轮蜗杆的工作原理
华晨中华V3三代正式在北京上市啦!共推11款车型,售价区间为6.57-10.27万元
年终盘点物联网背景下最具潜力的十大半导体并购案
康尼精机喜获舍弗勒技术创新奖
马斯克“够狂” 宣称发布了世界上最好的自动驾驶芯片
东方集成荣获“2010年中关村中小创新企业—十佳年度企业”
中国移动针对5G三大难题开出三副药方
学习嵌入式系统C语言编程的关键点
NI收购SET GmbH,加速功率半导体和航空航天测试系统的开发
哪些因素对会影响到企业制定自己的融合CDN战略
USB接口是如何进行通信的?