复位应答ATR:
每个成功的复位操作都会导致I/O上的一个初始字符TS,TS后面最多跟32个字符
1,起始字符TS
TS是ATR的强制部分,总是必须送出的。此字节只允许有两种编码:3B为正向约定,3F为反向约定。使用反向逻辑约定时, I/O的低电平状态等效于逻辑1,且该数据字节的最高位在起始位之后首先发送。使用正向逻辑约定时, I/O的高电平状态等效于逻辑1,且该数据字节的最低位在起始位之后首先发送。
2,格式字符T0
格式字符T0含有一组位表明将要传送哪个接口字符,它同时也指出后继历史字符的个数。像TS一样,每个ATR中都必须有这个字节。
高半字节( b5-b8) 表示后续字符TA1到TD1是否存在。(b5对应TA1,b8对应TD1);
低半字节( b1-b4) 表明可选历史字符的数目( 0到15);
3,接口字符TA1,TB1,TC1,TD1,…
这些字节在ATR中是可选的,由格式字符T0的高半字节决定。
3.1 全局接口字符TA1
TA1高半字节 FI 用于确定 F 的值, F 为时钟速率转换因子。用于修改复位应答之后终端所提供的时钟频率。低半字节 DI 用于确定 D的值, D 为位速率调节因子。用于调整复位应答之后所使用的位持间。etu =F/D * (1/f)
3.2 全局接口字符TB1:
TB1传送PI1和II的值,PI1 在 b1 到 b5 位中定义,用于确定IC卡所需的编程电压 P 值;II 在 b6 和 b7位中定义,用于确定IC卡所需的最大编程电流I值。一般情况下ATR中必须包含TB1=00,表示IC卡不使用VPP
3.3 全局接口字符TC1
TC1传送N值,N为额外保护时间。N为TC1的b8~b1位的二进制码,其值表示了额外保护时间所增加的etu数,其值为0~255之间。N=255(TC1=“FF”)有特别的含义,它表明两相邻字符的起始位前沿之间的最短间隔时间: T=0为12etu;T=1为 11etu。
注意,TC1仅用于从终端送到IC卡的两相邻字符间的定时,它既不用于从IC卡送到终端的两相邻字符间的定时,也不用于反向传送的二字符间的定时(请参看传输协议一节中关于T=0或T=1的时序的叙述)。
• 基本响应: IC卡回送的TC1之值应在“00”至“FF”的范围内。
• 终端响应: 当IC卡不回送TC1(假定T0的b7位被置为“0”)时,终端不得拒绝,并续用卡过程的处理,就像回送了TC1=“00”一样。
建议在设计IC卡时,应把TC1置成IC卡可接受的最小值,较大的TC1值会导致终端和IC卡间的通信过慢,从而延长了交易时间。
3.2 全局接口字符TD1
TD1字符比较关键,看上面的ATR数据结构图可知,TD1的高4位决定了是否有TA2/TB2/TC2/TD2。
同理,TD2的高4位决定了是否有TA3/TB3/TC3/TD3。
4.历史字符
很长一段时间,没有任何标准对历史字符做出规定,结果是随操作系统生产者而不同,它们包含了变化广泛的数据。
5.校验字符TCK
TCK具有一个检验复位应答期间所发送数据完整性的值。TCK的值应使从T0到包括TCK在内的所有字节进行异或运算的结果为零。