【科普贴】SIM卡接口协议(ISO7816-3)详解

一、 SIM卡介绍

SIM(Subscriber Identity Module)卡是GSM系统的移动用户所持有的IC卡,称为身份识别卡。SIM卡内部含有微处理器,它由CPU(8位)、RAM(工作存储器,6-16KB)、ROM(程序存储器,3-8 KB)、EPROM或EEPROM(数据存储器,128~256 KB)及串行通信单元等5个部分组成,这5个模块集成在一块集成电路中,以防止非法存取和盗用,因为芯片间的连线可能成为非法存取和盗用SIM卡的重要线索。
SIM卡发展经历了尺寸上的从大到小的历程,现在市面上,手机里常用是Nano SIM,物联网设备中常用的是eSIM,eSIM卡是将传统的SIM卡通过封装成芯片的样式,方便单板在进行SMT的时候进行焊接,节省SIM卡座,功能上和传统的SIM卡没有差别,Micro SIM也有少量终端设备在使用,Mini SIM因为其体积较大,基本已经无人在使用。
除了尺寸上的变化,SIM卡的工作电压也在变化,这部分在ISO7816-3协议中明确将其分为三种。1)Class A 5V供电;2)Class B 3V供电; 3)Class C 1.8V供电。当前市面上以Class B和Class C 的类型居多,或者即支持Class B也支持Class C(后面会详述)。
在这里插入图片描述

二、 ISO/IEC 7816-3协议简介

ISO(International Standards Organization)国际标准化组织和IEC(International Electrotechnical Commisson)国际电工委员会。这两个国际组织是专门制定世界范围内标准化的组织。在信息技术领域,ISO和IEC共同建立了一个联合技术委员会,叫做ISO/IEC JTC1。ISO/IEC 7816-3就是由ISO/IEC JTC1中的分技术委员会SC17(识别卡和相关设备)制定的
ISO/IEC 7816其中总过包含15个部分,总的标题是识别卡和集成电路卡,本文主要描述是硬件方面的协议内容,所以会重点描述ISO/IEC 7816-3部分。其他的部分见下,如果有小伙伴感兴趣,可以自行去学习。
Part 1(ISO/IEC 7816-1):带触点的卡片——物理特性
Part 2(ISO/IEC 7816-2):带触点的卡片——触点的尺寸和位置
Part 3(ISO/IEC 7816-3):带触点的卡——异步卡的电接口和传输协议
Part 4(ISO/IEC 7816-4):交换的组织、安全性和命令
Part 5(ISO/IEC 7816-5):应用程序提供者的注册
Part 6(ISO/IEC 7816-6):用于交换的行业间数据元素
Part 7(ISO/IEC 7816-7):结构化卡片查询语言(SCQL)的跨行业命令
Part 8(ISO/IEC 7816-8):安全操作的命令
Part 9(ISO/IEC 7816-9):卡片管理命令
Part 10(ISO/IEC 7816-10):带触点的卡片 ——同步卡片的电子信号和复位应答
Part 11(ISO/IEC 7816-11):通过生物识别方法进行个人验证
Part 12(ISO/IEC 7816-12):带触点的卡 ——USB电接口和操作程序
Part 13(ISO/IEC 7816-13):多应用程序环境中应用程序管理的命令
Part 15(ISO/IEC 7816-15):加密信息应用
ISO/IEC 7816-3部分协议规定了SIM卡的电源、信号结构以及与终端接口设别的信息交换,这部分还包含信号速率、电压电平、电流数值、奇偶约定、操作流程、传输机制等。

三、SIM卡(ISO/IEC 7816-3)的电气特性

1、接口定义

C1:电源输入(VCC)
C2:复位信号输入(RST)
C3:时钟信号输入(CLK)
C5:地(GND)
C6:标准或自动定义用法(SPU)
C7:串行输入输出数据(I/O)
Note:协议不支持C6触电作为程序设计。因为从1990年开始,已经在卡内安装了程序设计
协议规定了三类操作状态,这三种状态都是基于接口设备VCC给SIM卡提供额定电压。分别是:
1)5V:Class A
2)3V:Class B
3)1.8V:Class C
SIM卡可以支持多种类型(Class)的供电方式,但是这些类型需要按照顺序彼此是连续的
接口设备可以支持多种类型(Class)方式,这些设备的应用的类型顺序不在协议所给出的范围。
SIM卡即使使用了不支持的类型(Class)的接口设备,SIM卡也不会损坏。
在这里插入图片描述
在这里插入图片描述

2、触点C1(VCC)电源

C1(VCC)触点是用来给SIM卡提供电源的,在正常工作状态下的电气特性要求如下。需要注意要保证最大电流的情况下,电源电压不能出现跌落的情况。在设计上这个地方需要多留一些设计裕量,防止瞬间大电流导致电压跌落。
在这里插入图片描述

3、触点C2(RST)复位信号

C2(RST)触点是用来给SIM提供复位信号,如下是正常工作状态下复位信号的电气特性要求。PS:tR: 上升时间,信号振幅的10%-90%。tF:下降时间,信号振幅的10%~90%。

在这里插入图片描述

4、触点C3(CLK)时钟信号

C3(CLK)触点是用来给SIM卡提供时钟信号的,时钟信号的实际频率通常被记作f,时钟信号最小值可以设置成1MHz。在激活和冷复位期间,时钟信号最大可以设置成5MHz。
除非有其他特殊规定,不然在稳定运行期间,时钟的占空比应该在时钟周期的40%到60%之间。当时钟频率从一个值切换到另一个值的时候,也需要确保时钟脉冲的占空比不能低于最短时钟周期的40%。进行时钟频率切换的时候,不能传递数据。建议在两个不同时间内进行时钟频率切换。
1) 当SIM在等待字符时,复位应答完成后进行时钟频率切换
2) 当SIM卡在等在字符时,成功完成PPS后进行时钟频率切换
如下是时钟信号在正常工作状态下的电气特性要求。PS:tR: 上升时间,信号振幅的10%-90%。tF:下降时间,信号振幅的10%~90%。

在这里插入图片描述

5、触点C5(GND)地

C5(GND)触点是用来将SIM的地与设备的地连接到一起

6、触点C6(SPU)标准或自动定义用法

C6(SPU)触点是ISO/IEC JTC1中的分技术委员会SC17为将来保留,以供使用的,当前使用的过程中,SIM卡pin脚通常作悬空处理。

7、触点C7(I/O)串行输入输出数据

C7(I/O)触点是SIM卡被用来作为输入(接收模式)或输出(发送模式)的。信号传输有接下来两种电路状态。
1) 状态“H”:当接口设备和SIM都处于接收模式,或被发送设备强制成这个状态。
2) 状态“L”:被发送设备强制成这个状态。
当SIM卡和接口设备都处于接收模式,电路状态将被设置成“H”。当SIM卡和接口设备处于不确定的传输状态,电路状态可以不确定。在正常工作时,SIM卡和接口设备不能同时处于发送模式。
如下是串行输入输出(I/O)数据在正常工作状态下的电气特性要求。PS:tR: 上升时间,信号振幅的10%-90%。tF:下降时间,信号振幅的10%~90%。
在这里插入图片描述

四、 SIM卡操作流程

在SIM卡的触点连接到接口设备的触点之前,电路应保持不活动状态。接口设备与SIM卡之间的交互,应通过以下操作顺序进行。
1)接口设备应对SIM卡施加一个类(Class)的操作条件,即激活、冷复位和可能的一个或多个热复位。如果SIM卡支持该类(Class),则会复位应答。接口设备以一个完整有效的复位应答和一个类(Class)操作条件结束。接口设备应能重复整个操作。
2)为了交换信息,SIM卡和接口设备应就传输协议和传输参数值需要达成一致。即以接口设备为主机的字符半双工传输。当卡不需要传输时(例如,在处理完一个命令响应对之后,在启动下一个命令响应对之前),如果卡支持时钟停止,接口设备可以停止时钟信号。
3)接口设备应该支持执行去激活操作。应在SIM卡的触点与接口设备的触点机械断开之前完成去激活操作。

1、“激活”操作

为了启动与机械连接的SIM卡的交互,接口设备应该按照A、B或C类的顺序激活SIM卡
1) RST 需要被拉低
2) VCC需要上电
3) 需要将接口设备的I/O设置成接收模式,在激活期间,接口设备忽略I/O上的状态
4) CLK需要被提供时钟信号
Note 1 电源上电、将I/O设置成接收模式、CLK被提供时钟信号,三者之间的延时没有被定义。
Note 2 接口设备允许在短路的时候执行去激活操作
如下图,在Ta之前是“激活”操作,在Ta之后是冷复位
在这里插入图片描述

2、“冷复位”操作

在激活结束时(RST处于“L”状态,VCC上电,接口设备中的I/O处于接收模式,CLK被提供时钟信号),SIM卡准备进行冷复位。在冷复位之前,SIM卡的内部状态没有被定义。
由上图可知,CLK时钟信号在Ta时被提供。在200个时钟周期(延时ta)内,SIM卡将I/O置为状态“H”。在时钟信号被施加到CLK(时间为Ta + tb)后,在400个时钟周期(延迟tb)内,RST保持在状态“L”,从而导致冷复位。当RST处于“L”状态时,接口设备忽略l/O状态。
在时间Tb, RST被置于状态“H”。在RST信号上升沿之后(时间Tb +tc),I/O上的应答将在400到40000个时钟周期(延迟tc)之间开始。如果在40000时钟周期内没有应答,并且RST处于“H”状态时,接口设备将执行去激活操作。
Note : 上面所提到的时间都是以时钟频率f作为时间的参考源,所以不同的CLK频率,对应的各个时间节点是不一样的。不能笼统的认为是固定的时间。

3、“热复位”操作

热复位的应答与之前的冷复位的应答不同,接口设备可以在任何时候热复位SIM卡,甚至在复位的应答期间,但不是在接收到强制字符TS和T0之前。在字符T0的前缘之后,热复位不能少于4464 (=12x 372)时钟周期。
警告:在复位应答期间启动热复位,可能会损坏与先前版本兼容的SIM卡(ISO / IEC 7816 - 3:1997)
根据下图,接口设备通过将RST置于状态“L”,至少400个时钟周期(延迟te)来启动热复位(时间Tc),这个时候电源VCC保持供电状态,CLK提供合适且稳定的时钟信号。在RST被设置成“L”后,SIM卡需要在200个时钟周期(延迟td)内将I/O设置为状态“H”。当RST处于“L”状态时,接口设备忽略I/O上的状态。
在Td时, RST被置于状态“H”。在RST信号上升沿之后(时间Td +tf),I/O上的应答将在400到40000个时钟周期(延迟tf)之间开始。如果在40000时钟周期内没有应答,并且RST处于“H”状态时,接口设备将执行去激活操作。
在这里插入图片描述

4、“类(Class)选择”操作

下图阐述了“类选择”的操作条件。
1) 如果应答复位带有类的指示,指示了所应用的类,可以继续正常操作。或者,接口设备可以执行去激活,并在延迟至少10ms后,应用该SIM卡支持的另一个类。
2) 如果应答复位没有类的指示,则接口设备保持当前的类。如果完成应答复位后,SIM卡不工作,则接口设备应执行一个去激活操作,延迟至少10ms后,可以应用另一个类。
3) 如果卡没有应答复位,则接口设备应执行去激活。①或者延迟至少10ms后,应用另一个类(如果有的话),②或者中止选择过程。在中止一个选择过程后,接口设备可以启动另一个选择过程。
一旦选定,在正常工作过程中不得更改等级。如果要更改,接口设备应执行去激活操作,并在延迟至少10ms后应用另一个类。
在这里插入图片描述

5、信息交互操作

完成复位应答后,SIM卡等待来自接口设备的字符,其传输由传输参数控制,它们的解释由一个协议规定。下图给出了传输参数和协议的选择原则。
如果应答复位(特定模式的卡)中存在TA2,则接口设备应使用特定的传输参数值启动特定的传输协议。
否则(卡处于可协商模式),对于传输参数,应答复位时使用的值(即传输参数的默认值)继续适用如下。
1) 如果卡接收到的第一个字符的值是’FF’,则接口设备应该已经启动了PPS交换;传输参数的默认值将继续应用,直到成功完成PPS交换,之后接口设备将使用传输参数的协商值启动协商后的传输协议。
2) 否则,接口设备应启动“第一个提供的传输协议”。当卡只提供一种传输协议时,接口设备应该这样做传输参数的默认值。这种卡不需要支持PPS交换。
在这里插入图片描述

6、“时钟停止”操作

对于支持时钟停止的SIM卡,当接口设备认为没有来自SIM卡的传输,并且当l/O保持在状态“H”至少1860个时钟周期(延迟tg)时,根据下图,接口设备可以在CLK上停止时钟(时间为Te),这个期间VCC保持供电,RST处于状态“H”。
当时钟停止时(从时间Te到时间Tf), CLK根据时钟停止指示器X的要求,保持在状态“H”或状态“L”。
在Tf时,接口设备重启时钟,在至少700个时钟周期(Tf+th时刻)之后,l/O上的信息交换可以继续进行。
在这里插入图片描述

7、“去激活”操作

当信息交换完成或终止(如SIM卡无响应、检测到卡被取走)时,接口设备按以下顺序断开电路,见下图。
1) RST状态设为“L”
2) CLK应置于状态“L”(除非时钟已停止在状态“L”)
3) I/O应置于状态“L”
4) VCC应停止供电。
在这里插入图片描述

  • 4
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值