IC卡通信协议详解.pdf
- 文档编号:3437323
- 上传时间:2023-05-05
- 格式:PDF
- 页数:22
- 大小:777.85KB
IC卡通信协议详解.pdf
《IC卡通信协议详解.pdf》由会员分享,可在线阅读,更多相关《IC卡通信协议详解.pdf(22页珍藏版)》请在冰点文库上搜索。
目录目录第一章第一章IC卡通信过程整体归纳卡通信过程整体归纳.1第二章第二章IC卡的电气特性卡的电气特性.31IC卡的触点分配卡的触点分配.32IC卡的电气特性卡的电气特性.32.1VCC.32.2I/O.32.3CLK.32.4RST.32.2VPP.3第三章第三章IC卡的操作过程卡的操作过程.41、IC卡操作的一般过程卡操作的一般过程.42、卡激活、卡激活.43、冷复位、冷复位.44、热复位、热复位.55、时钟停止、时钟停止.66、去激活、去激活.6第四章第四章复位应答复位应答.81、异步字符、异步字符.81.1字符结构字符结构.81.2错误信号和字符副本错误信号和字符副本.82、复位应答、复位应答.92.1复位应答的序列配置复位应答的序列配置.92.2复位应答的结构和内容复位应答的结构和内容.11第五章第五章协议和参数选择协议和参数选择.141.PPS协议协议.142.PPS请求的结构和内容请求的结构和内容.143成功的成功的PPS交换交换.14第六章第六章异步半双工字符传输协议异步半双工字符传输协议.161、命令的结构和处理、命令的结构和处理.162、过程字节、过程字节.163、NULL字节字节.164、确认字节、确认字节.165、状态字节、状态字节.17第七章第七章异步半双工块传输异步半双工块传输.181.数据块块帧结构数据块块帧结构.182.起始域起始域.183.信息域信息域.184.终止域终止域.195.信息域尺寸信息域尺寸.196.等待时间等待时间.197.数据链路层字符成分数据链路层字符成分.208.数据链路层块成分数据链路层块成分.209.链接链接.201第一章第一章IC卡通信过程卡通信过程整体归纳整体归纳根据协议,IC卡的操作信息交互流程大概为(见图1):
(1)接口设备能够控制IC卡各IO引脚使其激活。
(2)接口设备给卡发送复位信号使卡复位启动。
(3)卡要向接口设备发送复位应答信号,将通信中必要的相关信息告知接口设备。
(4)接口设备对卡进行一次热复位,卡进行复位应答。
(5)接口设备发起一个PPS交互指令,选择要与卡通信的协议和相关参数。
(6)根据选择的协议(T=0或T=1)进行数据的通信。
2图图1以后各章节将根据此流程,对IC卡协议的各部分主要内容进行归纳总结。
3第二第二章章IC卡的电气特性卡的电气特性1IC卡的触点分配卡的触点分配根据ISO7816-2的规定,IC卡至少应该分配下面的几个引脚:
I/O串行输入输出CLK时钟信号RST复位信号VCC供电电压,5VGND接地引脚,电压参考点VPP编程电压输入,可选2IC卡的电气特性卡的电气特性2.1VCC在A类工作条件下,VCC的取值范围为4.5V5.5V,最大允许电流为60mA。
在B类工作条件下,VCC的取值范围为2.7V3.3V,最大允许电流为50mA。
当时钟信号停止时,电流为0.5mA。
2.2I/O此引脚有两种逻辑电平状态:
stateA(低电平)和stateZ(高电平)。
StateZ当卡和接口设备都处于接收模式时处于此态,或是由传输方所施加的StateA是由传输方所施加的当卡和接口设备都处于接收模式时,数据线应该保持为Z态;当卡和接口设备处于不匹配模式时,数据线的状态为未知;卡和接口设备不能同时处于发送模式。
2.3CLK在A类工作条件下,时钟信号频率范围为1-5MHz;在B类工作条件下,时钟信号频率范围为1-4MHz;在稳定操作期间,时钟信号的占空比为40%到60%。
在没有信息交互时,可以改变时钟信号的频率,建议在以下两种时间段改变时钟频率:
复位应答后在一个成功的PPS交互之后2.4RST此引脚用于对卡进行复位操作(冷复位和热复位)。
2.2VPP在B类操作条件下,此引脚不可用。
在A类操作条件下,此引脚被用于提供写和擦出卡内部非易失性存储器的编程电压。
有两种状态:
停止状态和编程状态。
除非卡需要编程电压,否则接口设备应该保持此引脚在停止状态。
4第三第三章章IC卡的操作过程卡的操作过程1、IC卡操作的一般过程卡操作的一般过程当卡的触点物理的连接到接口设备的触点时,电路才能运行。
卡和接口设备之间的交互有一下步骤:
接口设备要激活IC卡卡和接口设备之间的信息交互由卡的冷复位应答所发起接口设备对卡去激活,即停用在由接口设备发起的去激活动作结束之后,才能断开卡和接口设备之间的物理连接。
2、卡激活卡激活为了与一个已经物理的连接的卡发起交互,接口设备需要通过下面的操作激活卡。
RST置成LVCC上电接口设备上I/O置成接收模式在A类操作条件下,VPP应该置为停止状态;在B类操作条件下,不接VPPCLK将要被给一个时钟信号。
3、冷复位冷复位图图2激活结束后(RST在L状态,VCC上电,接口设备I/O在接收模式,CLK有一个适合的并且稳定的时钟信号),卡已经准备好冷复位。
在冷启动之前,卡的内部状态没有定义。
接口设备将发出一个冷复位信号,并从IC卡得到一个复位应答,过程如下:
从Ta时刻起,接口设备施加CLK。
5在Ta后不超过200个时钟周期内,IC卡必须将其I/O线置为接收方式。
由于接口设备也必须在这段期限内置其I/O线驱动器为接收方式,所以I/O线在Ta后最迟不超过200个时钟周期的时间内置为高电平。
为此,接口设备的I/O触点应经过一个上拉电阻接到VCC。
接口设备应从Ta开始保持RST端为低电平状态至少400个时钟周期,并在Tb将其置为高电平;IC卡上I/O的复位应答将在Tb时刻后的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个时钟周期内开始;6如果IC卡在RST被拉高后的40000个时钟周期内没有应答,RST将被拉低并且卡将被去激活;5、时钟停止时钟停止图图4对于支持时钟停止的卡,当接口设备认为没有来自卡的传输并当I/O已经保持在H至少1860时钟周期(延时tg),在VCC上电并且RST在H时,接口设备可以对于CLK(Te)进行时钟停止。
当时钟停止时(在TeTf),根据已被确定好的时钟指示器X,CLK将要继续保持在在H或是在L。
时钟指示器X的值应在复位应答序列TA(i)当中设置。
在Tf,接口设备重启时钟,在至少700时钟延时后(th),在I/O的信息交换可以继续。
6、去激活去激活图图57当信息交换被完成或者被终止(例如卡没有应答,或检测到卡的移动),接口设备将按照下面的序列停用IC卡:
将RST置L将CLK置L(除非时钟停止在L状态)将VPP去激活将I/O置L将VCC去激活8第四章第四章复位应答复位应答1、异步字符异步字符1.1字符结构字符结构在字符传输之前,I/O应该处于高电平。
一个字符由10个连续的时段组成,每一个时段为高电平或低电平。
图图6第一个时段m1为低电平,为起始时段中间8个时段(2到9)为要发送的一个字符最后一个时段m10为奇偶校验位每一个时段持续时间为一个etu。
如果在一个时段mn的结尾状态改变,那么这个字符的起始边沿到mn的结束边沿之间的延时为(n0.2)etu。
接受方对I/O进行定期采样,采样时间不少于0.2etu。
接收方必须在(n-1)+0.50.2)个etu内确认相应的时段mn。
两个连续字符的起始边沿之间的延时至少为12etu。
这包括一个字符的持续时间和保护时间。
在保护时间内卡和接口设备都处于接收模式,即高电平状态。
在复位应答期间,两个被卡发送的连续字符的起始边沿之间的延时不能超过9600etu。
这个最大值被称为是初始等待时间。
1.2错误信号和字符副本错误信号和字符副本图图7当奇偶校验不正确时,接收方会在接收时间的第(10.50.2)etu通过拉低I/O线发送错误信号,错误低电平信号会持续1到2个etu的时间。
然后接收方将等待着这个字符的重发。
发送方会在发送时间的第(110.2)etu检测I/O状态:
如果I/O为高电平,则认为字符已被正确接受如果I/O为低电平,则认为接受不正确。
在检测到错误后至少两个etu的延时后,发送方将重发这个字符。
如果卡中没有可提供的副本,重发将被忽略并且卡不会因为接口设备所发的错误信号而遭到损坏。
接口设Start12345678910PauseHLByteDelaybetweenconsecutivecharactersParityStart9备应该发起一个全局的复位。
2、复位应答复位应答2.1复位应答复位应答的的序列配置序列配置IC卡被接口设备复位后,用一串称之为复位应答(ATR-AnswerToResest)的字节序列应答。
这些字节传达给接口设备的信息规定了IC卡和接口设备之间要建立的通讯的某种特性10图图8每一个成功的复位应答信号都由一个起始字符跟随最多32个字符序列构成:
TS起始字符用于设置其后各字符的解码规则T0格式字符用于指明接口字符的出现与历史字符的数目TA(i)TB(i)TC(i)TD(i)接口字符用于设置与接口设备通信的相关参数T1T2TK历史字符用以指示一些通用的信息,如IC卡生产厂商、嵌入的芯片、文件状态等TCK校验字符用于检测复位应答信号的正确性。
112.2复位应答的结构和内容复位应答的结构和内容下面将对各字符所要表示的内容进行详细归纳:
2.2.1TS起始起始字符字符TS执行两项功能:
向终端提供了一个已知的位组合模型,以便于同步;提示所用逻辑约定,以便对后继的字符进行解释。
IC卡必须以下列二值之一来回送TS反向约定(H)LHHLLLLLLH,其值为“3F”。
用1表示低电平,m2为最高有效位;正向约定(H)LHHLHHHLLH,其值为“3B”。
用1表示高电平,m2为最低有效位;2.2.2T0格式格式字符字符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所指明的协议类型。
2.2.3.2TA1TA1传达FI和DI的数值,其中:
FI用来确定F的数值,F为时钟频率转换因子,用于修改继复位应答之后由终端所提供的时钟频率。
DI用来确定D的数值,称为比特率调节因子,用于调整复位应答之后所使用的位持续时间。
12复位应答期间使用的缺省值为:
FI=1和DI=1,表示:
F=372和D=12.2.3.3TB1TB1传送PI1和I1之值,其中:
PI1在b1b5位中定义,用于确定IC卡所需的最大编程电压P值。
PI1=0表示IC卡不使用Vpp。
I1在b6b7位中定义,用于确定IC卡所需的最大编程电流I值。
PI1=0表示不使用参数。
b8位不使用,并设置为逻辑“0”。
2.2.3.4TC1TC1传送N之值,N为额外保护时间。
N为TC1的b8b1位的二进制码,其值表示了额外保护时间所增加的etu数,其值为0255之间。
N=255(TC1=“FF”)有特别的含义,它表明两相邻字符的起始位前沿之间的最短间隔时间:
T=0,为12etuT=1,为11etuTC1仅用于从终端送到IC卡的两相邻字符间的定时,它既不用于从IC卡送到终端的两相邻字符间的定时,也不用于反向传送的二字符间的定时。
2.2.3.5TA2字符TA2的存在与否相应地表示IC卡是以特定模式或是交互模式工作。
2.2.3.6TB2TB2传送PI2,PI2用于确定IC卡所需编程电压P的值。
当它存在时,它就取代由TB1中回送的PI1的值。
2.2.3.7TC2TC2是T=0型协议所特有的,它传达了用来决定由IC卡发送的任意一个字符起始位上升沿与由IC卡或终端传送的前一字符的起始位上升沿之间的最大间隔的工作等待时间(WI)。
工作等待时间为:
960DWI。
2.2.3.8TA3TA3回送信息域长度整数(IFSI),它决定了IC卡信息字段长度(IFSC),并规定了IC卡能够接收的字组的最大长度。
它以字节形式表示IFSC的长度,取值范围为“01”至“FE”之间的任何值,“00”和“FF”二值留作备用。
2.2.3.9TB3TB3表明了用来计算CWT和BWT的CWI和BWI之值,TB3由两部分组成,低半字(b1b4)用13来表示CWI之值,而高半字节(b5b8)用来表示BWI之值。
2.2.3.10TC3TC3指明了所用的块错误检测代码的类型,类型由b1位表示,而b2至b8未用。
2.2.4T1T2TK历史字符历史字符历史字符指明了一些通用的信息,如卡的制造商,卡中被嵌入的芯片,卡的文件状态等等。
2.2.5TCK校验字符校验字符TCK具有一个检验复位应答期间所发送数据完整性的值,TCK的值应使从T0至TCK(包括TCK)的所有字节的异或操作结果为0。
14第五第五章章协议和参数选择协议和参数选择接口设备可以发送协议和参数选择指令(PPS),选择要和IC卡进行通信的协议和相关的参数。
1.PPS协议协议IFD发送一个PPS请求给ICC如果ICC收到一个错误的请求,则不响应。
如果ICC受到一个正确的请求,则返回一个PPS响应,否则将超过初始等待时间如果ICC超出初始等待时间,则IFD复位或者拒绝ICC如果IFD收到一个错误的应答,则复位或者拒绝ICC如果PPS交换失败,则IFD复位或者拒绝ICC2.PPS请求的结构和内容请求的结构和内容PPS请求和应答的结构如下:
图图9PPS识别PPS请求或响应并等于“FF”。
PPS0通过位b5、b6、b7分别指明可选字节PPS1、PPS2、PPS3的存在。
位b4到b1指明传输参数T的值以提出协议。
位b8留作未来使用并设定为0。
PPS1允许IFD对卡提出F和D的值。
如果IFD不发送PPS1,它应该继续使用Fd和Dd。
ICC通过响应PPS1确认这两个值(此时使用的Fn和Dn),或者不响应PPS1而继续使用默认值Fd和Dd。
PPS2和PPS3保留将来使用。
PCK的值应使从PPSS至PCK(包括PCK)的所有字节的异或操作结果为0。
3成功的成功的PPS交换交换PPSSPPSSPPS0PPS1PPS2PPS3PCK初始字符格式字符参数字符效验字符15如果PPS应答精确的回送PPS请求,那么PPS交互成功。
而当PPS响应为下列情况之一时,该PPS交换也是成功的:
1)PPSS响应=PPSS请求2)PPS0的响应应回送B1到B4回送B5或将其置为0如果B5=1,则PPS1响应=PPS1请求。
若B5=0,则无PPS1,则使用Fd和Dd。
回送B6或者将其置为0如果B6=1,则PPS2响应=PPS2请求。
若B6=0,则PPS2请求和相应都不存在。
会送B7或者将其置为0如果B7=1,则PPS3响应=PPS3请求。
若B7=0,则PPS3请求和相应都不存在)。
PPS交换的其它情况都应被解释为不成功。
16第六第六章章异步半双工字符传输协议异步半双工字符传输协议1、命令的结构和处理、命令的结构和处理命令由接口设备启动,它是以5个字节的报头通知卡做什么,并且允许在卡发出的过程字节的控制下传输数据字节。
接口设备通过5个连续的字节为包头,这5个字节指定为CLA,INS,P1、P2、P3。
1)CLA为指令类别,值FF保留。
2)INS为指令类别中的指令代码。
3)P1、P2是一个完成指令代码的参考符4)P3对指令期间被传输的数据字节(D1Dn)的数目n编码。
在一个5个字节的包头传输之后,接口设备等待一个过程字节。
2、过程字节、过程字节过程字节的值将指明接口设备请求的动作。
有三种类型的过程字节:
1)NULL的值为60。
2)在ACK中,除了6X和9X以外,在ACK字节中的七个最高有效位(B8到B2)全部等于INS字节中的相应位或者与之补位。
3)SW1的值为6X或9X但不包括60在每一个过程字节中,卡可以用一个ACK或NULL字节来把这个命令继续进行下去,或以适当的不应答表示不赞同,或用结束序列SW1-SW2结束这个命令。
字节值有效的数据传输接受NULL60无一个过程字节ACKINS所有剩余的数据字节一个过程字节INSFF下一个数据字节一个过程字节SW16X,9X(不包含60)无一个过程字节表表13、NULL字节字节NULL请求不影响数据传出,仅等待一个过程字节。
4、确认字节、确认字节ACK被用作数据字节传输的控制。
1)如果ACK与INS的异或等于00或FF,VPP应该设置并保持在停止状态。
2)如果ACK与INS异或等于01或FE,VPP应该设置并保持在编程状态。
3)假如ACK的b8到b2位等于INS的相应位,所有剩余的字节将随后传送。
174)如果ACK的b8到b2位等于INS的相应位的补码,那么仅下一个字节将被传输。
5、状态字节、状态字节接受到SW1以后,接口设备将等待一个SW2字节的传输。
对SW2的至无限制。
结束命令SW1SW2在命令的结尾给出卡的状态。
置为9000只是处理正常完成。
SW1的有效位的高4位等于6时,SW1的含义与应用无关。
18第七第七章章异步半双工块传输异步半双工块传输协议协议1.数据块数据块帧帧结构结构一个块由一串字符组成,每个字符以异步字符的形式传输。
块由下列域构成(下表)起始域信息域终止域NADPCBLENINFEDC一字节一字节一字节0至254个字节1或2个字节(LRC或CRC)表表2协议定义了三种基本的块:
1)信息块(I):
用于传送应用层信息。
另外他传送可定与否定的确认信息。
2)接受准备块(R):
用于发送肯定或否定的信息,他没有信息域。
3)管理块(S):
用于IFD和ICC交换控制信息。
(S块的信息域存在与否取决于S块控制功能的需要)。
2.起始域起始域起始域由三部分组成:
节点地址(NAD),协议控制字(PCB)和长度(LEN)每个部分占一个字节。
1)节点地址:
B1到B3指明源节点地址(SAD),B5到B7指明目的节点地址(DAD)。
B4和B8用于VPP状态控制。
由IFD发送的第一个块的NAD确定了SAD和DAD地址的逻辑连接关系。
在随后的NAD中也包含相同的SAD/DAD的块,都具有相同的逻辑连接关系。
在后续的信息交换期间,另外的逻辑连接也可以由相应的SAD/DAD对所建立。
2)协议控制字(PCB)节用于表示控制传输所需要的信息。
它的定义因不同的块而不同:
在信息块中,b8被置为0。
B7表示发送序列号。
B6用于链传输,表示后面有无数据块。
B5到b7保留将来使用,均被置为0。
3)长度(LEN)指示其块的信息域中被传输字节数。
编码格式如下:
00表示信息域是空的。
从01到FE的值表示在信息域中要传输的字节数。
从1到254。
FF保留将来使用。
3.信息域信息域信息域因不同种类的数据块而不同:
191)I块中的信息域用于应用信息2)R块中无信息域3)S块中的信息域传递应用信息:
INF应与S块中的一个单独字节一起存在,负责调整IFS和WTX。
在一个VPP状态出错或者管理连接中止,或者同步的S块中不存在INF。
4.终止域终止域它是差错检测编码。
共有两种差错编码方式LRC和CRC,占一个字节。
或者CRC占两个字节。
纵向冗余校验(LRC)占一个字节,它的值应该使数据块当中所有字节的异或为0。
循环冗余校验(CRC)占两个字节。
5.信息域尺寸信息域尺寸1)卡的信息域尺寸(IFSC):
它是卡能接受的数据块中信息域的最大长度,在第一TA(i)中声明,缺省值为322)接口设备信息域尺度(IFSD):
它是接口设备能接受的数据块中信息域的最大长度,缺省值为32。
6.等待时间等待时间1)字符等待时间(CWT):
定义为同一块中两个连续字符起始沿之间的最长时间。
第一TB(i)的最低有效半字节(b4至b1)编码为字符等待时间整数值(CWI),其范围为015,CWT的计算公式为CWT=(2CWI+11)etu图图102)块等待时间(BWT):
定义为被卡接受数据块的最后一个字符的起始沿与由卡发送出的下一个数据块的第一个字符的起始沿之间的最长时间。
BWT用来检测无响应的卡。
图图11第一TB(i)的最高有效半字节(b8至b5)编码为块等待时间BWI整数值,其范围为0-9,10-15留待将来使用。
Tcwt当前字符下一字符IFD发送的块的最后一个字符ICC发送的下一个块的第一个字符BGTtBWT20BWI的缺省值为4。
BWT的计算公式为:
BWT=2BWI960372/fs+11etu3)块保护时间(BGT)块保护时间被定义为为两个相反方向发送的连续字符的起始沿之间的最短时间。
BGT的值应为22etu。
因此一个已接收块的最后一个字符与一个被传输块的第一个字符之间的迟延至少应为BGT但小于BWT。
7.数据链路层数据链路层字符成分字符成分VPP状态有NAD的B8和B4控制:
如果为00,VPP被设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IC 卡通 协议 详解