CPU卡中T=0通讯协议的分析与实现
[09-12 17:52:26] 来源:http://www.88dzw.com 单片机学习 阅读:8570次
文章摘要:表3 APDU包含数据的情况命令APDU数据域响应APDU数据域1无无2无有3有无4有有C-APDU由一个强制性的四字节命令头CLA、INS、P1、P2和一个可变长度的条件体组成。CLA为命令类型字节;INS为命令代码字节;P1和P2为命令参数;条件体包括命令数据域长度字节Lc,命令数据域和响应返回的最大长度字节Le。根据不同的命令,条件体的组成也不相同,C-APDU有四种情况,见表4。表4 C-APDU的结构情 况C-APDU结构1CLA INS P1 P22CLA INS P1 P2 Le3CLA INS P1 P2 Lc Data4CLA INS P1 P2 Lc Data LeR-AP
CPU卡中T=0通讯协议的分析与实现,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com表3 APDU包含数据的情况
命令APDU数据域 | 响应APDU数据域 | |
1 | 无 | 无 |
2 | 无 | 有 |
3 | 有 | 无 |
4 | 有 | 有 |
C-APDU由一个强制性的四字节命令头CLA、INS、P1、P2和一个可变长度的条件体组成。CLA为命令类型字节;INS为命令代码字节;P1和P2为命令参数;条件体包括命令数据域长度字节Lc,命令数据域和响应返回的最大长度字节Le。根据不同的命令,条件体的组成也不相同,C-APDU有四种情况,见表4。
表4 C-APDU的结构
情 况 | C-APDU结构 |
1 | CLA INS P1 P2 |
2 | CLA INS P1 P2 Le |
3 | CLA INS P1 P2 Lc Data |
4 | CLA INS P1 P2 Lc Data Le |
R-APDU由一个最大长度为Le的数据域和一个强制性的两字节状态代码组成,状态代码给出了IC卡对当前命令的处理结果。
对于C-APDU,终端先将其映射成T=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命令取回数据。
《CPU卡中T=0通讯协议的分析与实现》相关文章
- › CPU卡中T=0通讯协议的分析与实现
- › CPU卡的迁移及城市通卡综合业务平台打造
- › 什么是cpu卡
- 在百度中搜索相关文章:CPU卡中T=0通讯协议的分析与实现
- 在谷歌中搜索相关文章:CPU卡中T=0通讯协议的分析与实现
- 在soso中搜索相关文章:CPU卡中T=0通讯协议的分析与实现
- 在搜狗中搜索相关文章:CPU卡中T=0通讯协议的分析与实现