智能卡数据传输T=0传输协议
出处:jackxie 发布于:2008-11-20 11:11:45
这个传输协议在智能卡发展之初首先用于法国,它也是第1个智能卡协议的国际标准。它开创于智能卡技术 的早期,因而它的设计使用了少量的并具有简单性。这项协议被在世界范围内用于GSM卡,并在所 有的智能卡协议中享有广泛的流行。T=0协议在ISO/IEC 7816-3中被标准化,另外的相容规范被包含在 CSM 11.11和EMV规范中。
T=0协议是面向字节的,这就是说协议所处理的单位是单个字节。传送的数据单元中含有一个头标、类 字节、命令字节和三个参数字节构成。它可能跟随着一个可选的数据部分,和被ISO/IEC 7816-4标准化的 APDU相反,长度信息仅由参数P3提供。它或是指明命令数据或是应答的长度,它也由ISO/IEC 7816-3标准中 规定,参见图1
图1 T=0的一条命令的结构
由于T=0协议是面向字节的,如果检测到一个传输错误,则对错误字节的重传必须立即请求。而字组协议 则相反,如果发现了差错则整个字组(一系列字节)都必须重传。
T=0差错检测采用附在每一被传送的字节后的奇偶校验位。
如果接收方检测出一个传输差错,它必须从出错字节的保护时间的第1位区间的中间开始,把I/0线在一个 etu持续期内置为低电平。这样向通信的另一方表示近的一个字节必须重新传送。这种字节重复的机制是 十分简单的,而其好处在于它的选择性,只有不正确的字节才被重复。遗憾地是,这个方法也存在一个严重 的缺'点,大多数IC卡把etu区间当做是的可检测单元,所以它们不能识别从停止位中间设定的I/0 线上的低电平。因此,标准的IC卡接口不适于T=0协议。然而,如果每1位用软件分别接收,就不会有这个问 题。图2和图3分别表明了用T=0传输协议,在无差错和有差错时,I/0接口的信号时序图。
图2 用T=0传输协议(一字节无差错地经I/0接口传送)
图3 T=0传输协议(一个数据传输差错,在保护时间用I/0接口的低电平来指示)
T=0协议也允许EEPROM或EPROM的外部可编程电压接通或断开。这可用在接收的命令字节附加个“1”并把它 作为确认字节回送给终端。这就是为什么只允许偶数值的命令字节,否则这个机制就无法工作。然而,接通 一外部可编程电压现在技术上已经废弃,所有现代的智能卡都在芯片上自己产生编程电压,因此我 们无需更深人讨论这一主题。
保护时间的主要作用是在传输时把各个字节分开,使得发送者和接收者双方有充裕的时间去执行传输协议 的功能。
为了解释T=0命令-应答序列,让我们假定终端发送给卡一条带有数据部分的命令,而卡则应答以数据和 回送代码。终端首先发送给卡以5字节的命令头标、类字节、命令字节和Pl、P2以及P3组成。如果它们被正 确地接收了,则卡送回一个为过程字节PB(Procedure Byte)形式的确认ACK(ACKnowledge),确认的编码 和收到的命令字节是相同的。收到过程字节后,终端送出由"字节表明准确数量的数据字节。至此,卡已收 到了完整的命令,它可以处理它并产生一应答。
如果应答中含有2字节回送代码之外的数据,卡用一特殊的回送代码通知终端,由SW2来表明数据量。接收 到此应答后,终端向卡发出GET RESPONSE命令,它仅包括了具有要传送的数据量的头标。于是卡向终端传送 由第1条命令所产生的具有所请求的长度和相应的回送代码的数据,这样就完成了一条命令序列。
如果一条命令发送给卡,而卡仅产生没有数据部分的回送代码。则图4中的GETRESPONSE部分就不会发生。 因为要完成这些作用(馈送和前一条命令有关的数据)才需要应用层的额外的命令。当然,这里不再有协议 各层之间的严格界限。一条应用层命令(GETRESPONSE)必须用在这里以支持数据链路层,它对正谈到的应 用层有着某些影响。乍看起来,这些似乎有点复杂,所以再用图5来表明。
图4 在命令和应答中都有数据的典型的T=0通信过程(例如MUTUAL AUTHENTICATE命令)
T=0协议允许卡在标后接收数据部分的单个字节。为此,卡只需要把反相的命令字节作为过程字节传 送给终端,于是终端就传送一个单独的数据字节,第2个数据字节是接着由卡发出的第2个过程字节。这种字 节方式的传送可一直继续到卡接收了数据部分的所有字节,或者直到卡送出非反相的命令字节,终端则将所 有剩余的字节传送给卡,使之接收到完整的命令。单字节的传输过程如图6所示。
至于对传输协议的考虑,用户的根本兴趣所在仅是数据传输率和差错检测与校正机制。传送一个包括了8位 的字节,需要传送12位,其中还有1开始位,1奇偶校验位和2 etu保护时间,假定时钟频率为3,5712MHz而 分频值为372,传送1字节要占用13etu或1.25ms,表1夕列出了某些典型的命令的传送时间。
表1 T=0的某些典型命令的传送时间,时钟频率为3.5712MHz,分频值为372
每条命令有2位停止位和8位数据字节(c=命令,R=应答)
如果发生了差错数据传输率当然下降,不过,单字节重复机制在这里仍有很大的优点,因为只有所接收的不正确的字节才需要重传。
T=0协议的差错检测仅仅是每1字节末尾的奇偶校验。这使它能够可靠地识别单独一位的差错,但无法检测两位的差错。此外,如果在从终端向卡传输时丢失了一字节,这将导致在卡中的无尽循环(死锁),因为它在等待特定数量的字节而没有可能暂时停止。惟一使终端脱出这种通信死胡同的实际出路是使卡复位并重新从头开始。
在正常的通信中,对链路层和传输层的不适当的分开不会引起任何特殊困难。CSM的平稳操作是这一点的证明。然而,如果采用了安全报文问题就很快出现了。具有部分加密的头标和全部加密的数据部分,用前面所叙述的方法就不可能再支持T=0协议而不会引起大量的开销。这是因为在T=0协议中必须使用不加密的命令字节来作为过程字节。
由于不存在层次的划分以及在不良连接时的明显问题,T=o协议经常被认为是过时了的。但另一方面,在卡和终端之间几乎从未发生过传输差错。T=0协议的主要优点是其优良的平均传输率,很小的实现代价以及广泛的市场渗透。
图5 T=0通信过程的智能卡通信处理状态机(没有差错校正)
图6 T=0时的单字节接收(例如tTPDATE BINARY)
上一篇:ISA总线存储器周期的注意事项
下一篇:接触卡与其他卡之间的差异
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//tgdrjb.cn,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 什么是树莓派?一文快速了解树莓派基础知识2025/6/18 16:30:52
- 什么是有机液分析与有机液知识介绍2025/6/7 16:31:44
- FPGA中的双线性插值算法2025/5/29 17:16:30
- keil4和keil5的区别,哪个好?2025/5/22 17:03:33
- MOLEX 441331000高密度板对板连接器技术解析2025/4/24 11:24:50