目录第一章IC卡通信过程整体归纳 (1)第二章IC卡的电气特性 (3)1.IC卡的触点分配 (3)2.IC卡的电气特性 (3)2.1 VCC (3)2.2 I/O (3)2.3 CLK (3)2.4 RST (3)2.2 VPP (3)第三章IC卡的操作过程 (4)1、IC卡操作的一般过程 (4)2、卡激活 (4)3、冷复位 (4)4、热复位 (5)5、时钟停止 (6)6、去激活 (6)第四章复位应答 (8)1、异步字符 (8)1.1 字符结构 (8)1.2 错误信号和字符副本 (8)2、复位应答 (9)2.1 复位应答的序列配置 (9)2.2 复位应答的结构和内容 (11)第五章协议和参数选择 (14)1.PPS协议 (14)2.PPS请求的结构和内容 (14)3.成功的PPS交换 (14)第六章异步半双工字符传输协议 (16)1、命令的结构和处理 (16)2、过程字节 (16)3、NULL字节 (16)4、确认字节 (16)5、状态字节 (17)第七章异步半双工块传输 (18)1.数据块块帧结构 (18)2.起始域 (18)3.信息域 (18)4.终止域 (19)5.信息域尺寸 (19)6.等待时间 (19)7.数据链路层字符成分 (20)8.数据链路层块成分 (20)9.链接 (20)第一章IC卡通信过程整体归纳根据协议,IC卡的操作信息交互流程大概为(见图1):(1)接口设备能够控制IC卡各IO引脚使其激活。
(2)接口设备给卡发送复位信号使卡复位启动。
(3)卡要向接口设备发送复位应答信号,将通信中必要的相关信息告知接口设备。
(4)接口设备对卡进行一次热复位,卡进行复位应答。
(5)接口设备发起一个PPS交互指令,选择要与卡通信的协议和相关参数。
(6)根据选择的协议(T=0或T=1)进行数据的通信。
以后各章节将根据此流程,对IC卡协议的各部分主要内容进行归纳总结。
第二章IC卡的电气特性1.IC卡的触点分配根据ISO7816-2的规定,IC卡至少应该分配下面的几个引脚:I/O—串行输入输出CLK—时钟信号RST—复位信号VCC—供电电压,5VGND—接地引脚,电压参考点VPP—编程电压输入,可选2.IC卡的电气特性2.1 VCC在A类工作条件下,VCC的取值范围为4.5V—5.5V,最大允许电流为60mA。
在B类工作条件下,VCC的取值范围为2.7V—3.3V,最大允许电流为50mA。
当时钟信号停止时,电流为0.5mA。
2.2 I/O此引脚有两种逻辑电平状态:state A(低电平)和state Z(高电平)。
State Z——当卡和接口设备都处于接收模式时处于此态,或是由传输方所施加的State A——是由传输方所施加的当卡和接口设备都处于接收模式时,数据线应该保持为Z态;当卡和接口设备处于不匹配模式时,数据线的状态为未知;卡和接口设备不能同时处于发送模式。
2.3 CLK在A类工作条件下,时钟信号频率范围为1-5MHz;在B类工作条件下,时钟信号频率范围为1-4MHz;在稳定操作期间,时钟信号的占空比为40%到60%。
在没有信息交互时,可以改变时钟信号的频率,建议在以下两种时间段改变时钟频率:——复位应答后——在一个成功的PPS交互之后2.4 RST此引脚用于对卡进行复位操作(冷复位和热复位)。
2.2 VPP在B类操作条件下,此引脚不可用。
在A类操作条件下,此引脚被用于提供写和擦出卡内部非易失性存储器的编程电压。
有两种状态:停止状态和编程状态。
除非卡需要编程电压,否则接口设备应该保持此引脚在停止状态。
第三章IC卡的操作过程1、IC卡操作的一般过程当卡的触点物理的连接到接口设备的触点时,电路才能运行。
卡和接口设备之间的交互有一下步骤:——接口设备要激活IC卡——卡和接口设备之间的信息交互由卡的冷复位应答所发起——接口设备对卡去激活,即停用在由接口设备发起的去激活动作结束之后,才能断开卡和接口设备之间的物理连接。
2、卡激活为了与一个已经物理的连接的卡发起交互,接口设备需要通过下面的操作激活卡。
——RST置成L——VCC上电——接口设备上I/O置成接收模式——在A类操作条件下,VPP应该置为停止状态;在B类操作条件下,不接VPP——CLK将要被给一个时钟信号。
3、冷复位图2激活结束后(RST在L状态,VCC上电,接口设备I/O在接收模式,CLK有一个适合的并且稳定的时钟信号),卡已经准备好冷复位。
在冷启动之前,卡的内部状态没有定义。
接口设备将发出一个冷复位信号,并从IC卡得到一个复位应答,过程如下:从T a时刻起,接口设备施加CLK。
●在T a后不超过200个时钟周期内,IC卡必须将其I/O线置为接收方式。
由于接口设备也必须在这段期限内置其I/O线驱动器为接收方式,所以I/O线在T a后最迟不超过200个时钟周期的时间内置为高电平。
为此,接口设备的I/O触点应经过一个上拉电阻接到V CC。
●接口设备应从T a开始保持RST端为低电平状态至少400个时钟周期,并在T b将其置为高电平;●IC卡上I/O的复位应答将在T b时刻后的400至40,000个时钟周期内开始;●如果IC卡在RST被拉高后的40000个时钟周期内没有应答,则RST将被拉低并且卡将被去激活。
4、热复位图3IC卡对终端的复位应答有着规定的规格和内容(详见后述),如果终端收到的复位应答不符合规定要求时,终端将启动一个热复位并从IC卡获得复位信号。
过程如下:●在VCC和CLK信号保持稳定后,接口设备通过拉低RST发起热复位,RST低电平至少要持续400个时钟周期;●在Tc之后的最多200周期内,IC卡和接口设备都必须置I/O为接收方式,即I/O线在Tc后最迟不超过200个时钟周期内置为高电平;●接口设备在RST保持低电平大于400个时钟周期后,将其拉高;●IC卡上I/O的复位应答将在T后的400至40,000个时钟周期内开始;如果IC卡在RST被拉高后的40000个时钟周期内没有应答,RST将被拉低并且卡将被去激活;5、时钟停止图4对于支持时钟停止的卡,当接口设备认为没有来自卡的传输并当I/O已经保持在H至少1860时钟周期(延时tg),在VCC上电并且RST在H时,接口设备可以对于CLK(Te)进行时钟停止。
当时钟停止时(在Te~Tf),根据已被确定好的时钟指示器X ,CLK将要继续保持在在H或是在L。
时钟指示器X的值应在复位应答序列TA(i)当中设置。
在Tf,接口设备重启时钟,在至少700时钟延时后(th),在I/O的信息交换可以继续。
6、去激活图5当信息交换被完成或者被终止(例如卡没有应答,或检测到卡的移动),接口设备将按照下面的序列停用IC卡:——将RST 置L——将CLK置L(除非时钟停止在L状态)——将VPP去激活——将I/O置L——将VCC去激活第四章 复位应答1、异步字符1.1 字符结构在字符传输之前,I/O 应该处于高电平。
一个字符由10个连续的时段组成,每一个时段为高电平或低电平。
图6——第一个时段m1为低电平,为起始时段——中间8个时段(2到9)为要发送的一个字符 ——最后一个时段m10为奇偶校验位每一个时段持续时间为一个etu 。
如果在一个时段mn 的结尾状态改变,那么这个字符的起始边沿到mn 的结束边沿之间的延时为(n ±0.2)etu 。
接受方对I/O 进行定期采样,采样时间不少于0.2etu 。
接收方必须在((n-1)+0.5±0.2)个etu 内确认相应的时段mn 。
两个连续字符的起始边沿之间的延时至少为12etu 。
这包括一个字符的持续时间和保护时间。
在保护时间内卡和接口设备都处于接收模式,即高电平状态。
在复位应答期间,两个被卡发送的连续字符的起始边沿之间的延时不能超过9600etu 。
这个最大值被称为是初始等待时间。
1.2 错误信号和字符副本图7当奇偶校验不正确时,接收方会在接收时间的第(10.5±0.2)etu 通过拉低I/O 线发送错误信号,错误低电平信号会持续1到2个etu 的时间。
然后接收方将等待着这个字符的重发。
发送方会在发送时间的第(11±0.2)etu 检测I/O 状态: ——如果I/O 为高电平,则认为字符已被正确接受——如果I/O 为低电平,则认为接受不正确。
在检测到错误后至少两个etu 的延时后,发送方将重发这个字符。
如果卡中没有可提供的副本,重发将被忽略并且卡不会因为接口设备所发的错误信号而遭到损坏。
接口设H LDelay between consecutive characters备应该发起一个全局的复位。
2、复位应答2.1 复位应答的序列配置IC卡被接口设备复位后,用一串称之为复位应答(A TR-Answer To Resest)的字节序列应答。
这些字节传达给接口设备的信息规定了IC卡和接口设备之间要建立的通讯的某种特性图8每一个成功的复位应答信号都由一个起始字符跟随最多32个字符序列构成:TS——起始字符用于设置其后各字符的解码规则T0——格式字符用于指明接口字符的出现与历史字符的数目TA(i) TB(i) TC(i) TD(i)——接口字符用于设置与接口设备通信的相关参数T1 T2…TK——历史字符用以指示一些通用的信息,如IC卡生产厂商、嵌入的芯片、文件状态等TCK——校验字符用于检测复位应答信号的正确性。
2.2 复位应答的结构和内容下面将对各字符所要表示的内容进行详细归纳:2.2.1 TS——起始字符TS执行两项功能:●向终端提供了一个已知的位组合模型,以便于同步;●提示所用逻辑约定,以便对后继的字符进行解释。
IC卡必须以下列二值之一来回送TS反向约定(H)LHHLLLLLLH,其值为“3F”。
用1表示低电平,m2为最高有效位;正向约定(H)LHHLHHHLLH,其值为“3B”。
用1表示高电平,m2为最低有效位;2.2.2 T0——格式字符T0由两部分组成:——高四位(b5-b8)称之为Y1,用来指示后继字符TA1至TD1是否存在,b5-b8位被置为逻辑“1“状态者,相应地表明TA1至TD1的存在。
——低四位组(b1-b4)称之为K,则表明历史字节存在的数量(0-15)。
2.2.3TAi、TBi、TCi、TDi(i=1、2、3……)——接口字符TAi、TBi、TCi(i=1、2、3……)指明了协议参数。
2.2.3.1TDiTD(i)指明协议类型和是否存在后续接口字符,TDi包括Yi+1和T两部分。
——Yi+1为高四位组,分别表示后续接口字符TAi+1、TBi+1、TCi+1、TDi+1是否存在。
——T为低四位组,表示后续发送的协议类型。
TA1、TB1、TC1、TB2是全局性接口字符,其余的TAi、TBi、和Tci是专用接口字符,它们的解释取决于TDi-1中的T所指明的协议类型。