保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

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


=0传输层的格式,然后通过TTL传送给卡片,卡片返回的数据和状态先返回给TTL,再映射成R-APDU返回给TAL。这里根据四种不同的情况,分析了C-APDU到C-TPDU以及R-APDU到R-TPDU的映射方法,并对情况2和情况4时,如何使用GET RESPONSE命令进行了说明。C-APDU到C-TPDU的映射根据命令的情况决定,卡片返回的数据和状态到R-APDU的映射要根据返回数据的长度来判断。对于卡片返回的过程字节“61xx”和“6Cxx”,将用于TTL和卡片之间进行数据交换,当卡片返回“61xx”时,表示命令没有结束,TTL不将过程字节返回给TAL,而是从TTL直接向卡片发出GET RESPONSE命令,取回上一条命令应该返回的数据。并返回给TAL。当卡片返回“6Cxx”时,TTL将根据“xx”的值调整并重发上一条命令。下面分别对四种命令情况进行分析。

(1)当C-APDU和R-APDU均不含有数据时,将C-APDU的CLA、INS、P1、P2映射为C-TPDU的CLA、INS、P1、P2、C-TPDU的P3置为“00”,卡片接收到C-TPDU后,根据命令头决定该命令所含数据的情况。TTL接收到卡片返回的状态后,该命令完成,TTL将状态字节强制性地加到R-APDU的尾部。

(2)当C-APDU不含有数据而R-APDU含有数据时,将C-APDU的CLA、INS、P1、P2、Le映射为C-TPDU的CLA、INS、P1、P2、P3,其中P3可以置为“00”,也可以置为需要返回的数据字节数,卡片接收到C-TPDU后,如果命令处理失败,卡片直接将状态代码通过TTL返回给TAL;当命令能够正常处理时,如果P3指定的字节数能够正确返回,待卡片内部应用数据处理完成后,这时卡片首先返回给TTL该命令的过程字节,通知TTL准备接收卡片数据缓冲区中的数据,然后卡片直接将P3字节的数据和状态字节通过TTL返回给TAL,否则,卡片只将过程字节“6Cxx”或“61xx”返回给TTL这一层。当过程字节为“6Cxx”时,TTL根据xx重发命令取回数据,当过程字节为“61xx”时,TTL发GET RESPONSE命令取回数据。

(3)当C-APDU含有数据而R-APDU不含数据时,将C-APDU的CLA、INS、P1、PS、Lc映射为C-TPDU的CLA、INS、P1、P2、P3,待卡片对C-TPDU检查通过后,卡片直接将过程字节返回给TTL,TTL根据返回的过程字节继续向卡片发送P3字节的后续数据。待数据接收完后,卡片对应用数据进行处理,然后将处理结果以状态字节的方式通过TTL返回给TAL。

(4)当C-APDU和R-APDU均含有数据时,将C-APDU的CLA、P1、P2、Lc映射为C-TPDU的CLA、INS,P1、P2、P3,待卡片对C-TPDU检查通过后,卡片直接将过程字节返回给TTL,TTL根据返回的过程字节继续向卡片发送P3字节的后续数据。待数据接收完后,卡片对应用数据进行处理,如果命令处理失败,卡片直接将状态代码返回给TTL。当命令正常处理时,卡片返回给TTL过程字节“6Cxx”或“61xx”,当为“6Cxx”时,TTL根据xx重发命令取回数据。当过程字节为“61xx”时,TTL发GET RESPONSE命令取回数据。

(1)由于T=0协议字符级检错重发,与面向块的传输协议T=1相比,在出现传输错误时,T=0协议可以不必整个数据报文全部重发,节省了时间。

(2)在编程过程中,对位帧进行采样时,采用了三次采样判决的方式,避免了由于采样时的偶然误差而造成误码。

(3)T=0协议是应用于智能卡中的第一个接触式通讯协议,但该协议并没有考虑传输中断和检测到传输错误码后卡和读写器的再同步问题。唯一的检错机制就是奇偶位校验。对错误的处理就是对出错的字节重新发送一次,这样极有可能导致无限次的循环状态。

(4)T=0协议并没有与应用层完全分割开,应用层的命令解释器必须告诉传输层当前命令是接收还是发送数据。由于这个原因,这两个模块在命令处理过程中需要交互操作,在程序中能够提取出一个通用的传输层,供应用层调用来负责完成数据的传输。这种情况给编程和调试带来了不便。同时造成模块的可重用性较差。

    (5)对于命令报文中包含数据域,同时又需要卡片返回数据

《CPU卡中T=0通讯协议的分析与实现(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/177020.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。