[DNFM0005] IC卡复位应答ATR

一、ATR是什么

ATR也叫复位应答,是一个字节的序列,这些字节是由卡作为对复位命令的响应发送给读卡器的。在I/O电路上,每个成功的复位操作都会导致I/O上的一个由初始字符TS开始,后跟最多32个字符的复位应答。ATR的作用是告诉读卡器,我是一张什么样的卡片,以便读卡器知道接下来该以什么样的方式和卡片通信。

二、ATR的基本数据结构


三、起始字符——TS 

初始字符定义了所有后继字符的解码协议。它只有两种可能:3B-正向约定,3F反向约定。

四、格式字符——T0


(一)TA1(重要)

  • 高半字节 FI 用于确定 F 的值, F 为时钟速率转换因子。用于修改复位应答之后终端所提供的时钟频率。
  • 低半字节 DI 用于确定 D 的值, D 为位速率调节因子。用于调整复位应答之后所使用的位持续时间。etu =F/D * (1/f)

(二)TC1

TC1为0时,表示不需要额外的保护时间。

N、ATR分析示例

ATR : 3B 70 13 00 00 
Protocol : SCARD_PROTOCOL_T0
  + TS  = 3B --> Direct Convention
  + T0  = 70, Y1=0111, K=0 (historical bytes)
  + TA1 = 13 --> Fi=372, Di=4
  + TB1 = 00 --> Vpp not connected
  + TC1 = 00 --> EGT=0

其中TA1的高4位为1,低4位为3,分别在下面两个表中查询,所以得出:Fi=372, Di=4。

Fi的编码

FI

0000

0001

0010

0011

0100

0101

0110

0111

F

372

372

558

744

1116

1488

1860

RFU

FI

1000

1001

1010

1011

1100

1101

1110

1111

F

RFU

512

768

1024

1536

2048

RFU

RFU

Di的编码

DI

0000

0001

0010

0011

0100

0101

0110

0111

D

RFU

1

2

4

8

16

32

RFU

DI

1000

1001

1010

1011

1100

1101

1110

1111

D

12

20

RFU

RFU

RFU

RFU

RFU

RFU

DNFM0005(5)

猜你喜欢

转载自blog.csdn.net/hanjing_csdn/article/details/79391797