CPU卡中T=0通讯协议的分析与实现

[09-12 17:52:26]   来源:http://www.88dzw.com  单片机学习   阅读:8570

文章摘要:采用上述的字符帧,终端与卡之间进行数据将交换,字符之间有严格的时序,时序是通过汇编程序语句的执行时间来控制的。从终端到卡发送的连续字符的起始位下降沿之间的最小时间间隔由复位应答信息通知终端,其值在12etu~266etu之间。从卡发送到终端的连续字符的起始位下降沿之间的最小时间间隔应为12etu。如果字符接收不正确或字符接收正确但校验位不正确,接收端需要在字符起始位下降沿后的(10.5±0.2个etu时刻将I/O线置为低电平约1~2个etu,见图4,用于向发送端指明错误;发送端在(11±0.2)个etu时刻检测I/O线。如为高电平则表示字符已经正确接收;如果发送端检测到错误,则在检测到错误那一

CPU卡中T=0通讯协议的分析与实现,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

采用上述的字符帧,终端与卡之间进行数据将交换,字符之间有严格的时序,时序是通过汇编程序语句的执行时间来控制的。从终端到卡发送的连续字符的起始位下降沿之间的最小时间间隔由复位应答信息通知终端,其值在12etu~266etu之间。从卡发送到终端的连续字符的起始位下降沿之间的最小时间间隔应为12etu。

如果字符接收不正确或字符接收正确但校验位不正确,接收端需要在字符起始位下降沿后的(10.5±0.2个etu时刻将I/O线置为低电平约1~2个etu,见图4,用于向发送端指明错误;发送端在(11±0.2)个etu时刻检测I/O线。如为高电平则表示字符已经正确接收;如果发送端检测到错误,则在检测到错误那一刻起,2个etu后重发该字符,但重复发送同一字符的次数不得超过3次。如果最后一次发送失败,当终端是接收端时,则终端应该在无效字符的起始位下降沿后的960个etu时间范围内启动释放序列;当终端是发送端时,在卡片检测到字符的偶校验错误后960个etu时间范围内,终端启动释放序列。

命令的执行总是由终端应用层(TAL)启动,通过终端传输层(TTL)送给卡片。TTL与卡片进行命令字节和数据字节交换时,要保证能够有序正确地进行。因此,在数据交换过程中,在任何时刻TTL和卡片都应该隐含地知道哪一方是发送者,哪一方是接收者。当卡片接收到5个字节的命令字节后,需要向TTL返回一个过程字节或两个字节的状态字节,具体含义如表1、表2所示。

表1 终端对过程字节的处理

过程字节 TTL执行的操作
与INS字节相同 TTL向卡片发送或从卡片接收所有数据
INS字节的补码 TTL向卡片发送或从卡片接收下一个字节
'60' TTL延长等待时间
'61' TTL等待第二个过程字节'xx'并根据'xx'发
GET RESPONSE命令取回数据
'6C' TTL等待第二个过程字节'xx'并根据'xx'重发上一条命令

表2 卡返回的状态字节编码

第一个状态字节值 TTL执行的操作
'6'或'9x'(除表1中的值外) TTL等待第二个过程字节SW2

当返回的过程字节或状态字节均不是表中规定的值时,终端在接收到的无效字符的起始位降沿开始的9600个etu时间范围内启动释放序列。

3 T=0协议的终端传输层和应用层的实现

数据链路层保证了TTL与卡片正常的数据交换。在此基础上,TTL定义了命令和响应APDU(Application Protocol Data Unit)通过TTL和卡片之间的数据传输机制,因此该层协议定义了APDU到TPDU(Transport Protocol Data Unit)的映射机制以及TPDU和卡片之间如何来完成数据的交换。根据命令和响应APDU包含的数据情况,共有四种不同的APDU,TTL应能够对四种情况进行处理,完成终端和卡之间的数据交换。由于T=0协议的特殊性,终端传输层和应用层并没有完全隔离开。为了便于说明问题,先简要描述一下应用层,然后将终端传输层和应用层结合起来进行说明。

应用层协议定义了C-APDU和R-APDU的具体结构。应用层之间的数据交换都是由一个命令-响应对完成的,TAL通过TTL将C-APDU送给集成电路卡(ICC),ICC处理完后将处理结果组成R-APDU通过TTL送给TAL。APDU由命令报文和响应报文共同组成,根据C-APDU和R-APDU是否包含数据域,APDU有四种情况,见表3。

上一页  [1] [2] [3] [4]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《CPU卡中T=0通讯协议的分析与实现》相关文章

分类导航
最新更新
热门排行