ATR基本应答数据如下:

标准ATR格式为:
TS T0 TA1 TB1 TC1 TD1 TA2 TB2 TC2 TD2 TA3 TB3 TC3 TD3 …… T1 T2…TK TCK
以3B 95 11 81 11 FE 56 20 31 2E 50 D3为例:
1.起始字符TS
TS是ATR的强制部分,总是必须送出的。此字节只允许有两种编码:3B为正向约定,3F为反向约定。使用反向逻辑约定时, I/O的低电平状态等效于逻辑1,且该数据字节的最高位在起始位之后首先发送。使用正向逻辑约定时, I/O的高电平状态等效于逻辑1,且该数据字节的最低位在起始位之后首先发送。
起始字符:3B
高半字节( b5-b8) 表示后续字符TA1到TD1是否存在。(b5对应TA1,b8对应TD1);
T0 = 95(1001 0101)1001代表TA1和TD1存在,TA1=11,TD1=81
低半字节( b1-b4) 表明可选历史字符的数目, 历史字符为5;
TD1 =81(1000 0001) 高四位1000代表TD2存在。TD2 = 11
TD2 = 11 TA3 =11 , TD3不存在,循环结束。
历史字符为: 56 20 31 2E 50
TCK具有一个检验复位应答期间所发送数据完整性的值。TCK的值应使从T0到包括TCK在内的所有字节进行异或运算的结果为零。
当没有TD1时,T=0,则TCK不存在。
如果在ATR中仅指出了T=0协议,TCK校验和可以不在ATR的尾部出现。在这种情况下,完全没有发送它,因为用奇偶校验已经知道了差错字节而在T=0协议中重复发送出错字节又是强制性的。相反,在T=1协议中,TCK字节必须出现,校验和的计算从字节T0开始,结束于最后的接口字符,如果有则是最后的历史字符。
TCK = D3
原文链接:https://blog.csdn.net/creator_ly/article/details/79622197