ISO7816-3标准ATR解析

ISO7816-3标准ATR解析

ATR基本应答数据如下:
ATR格式

  1. TS 起始字符
  2. T0 格式字符
  3. TA1,TB1,TC1,TD1,… 接口字符
  4. T1,T2,… ,TK 历史字符
  5. TCK 校验字符

标准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
  1. 格式字符T0:95
    格式字符T0含有一组位表明将要传送哪个接口字符,它同时也指出后继历史字符的个数。像TS一样,每个ATR中都必须有这个字节。
    高半字节( b5-b8) 表示后续字符TA1到TD1是否存在。(b5对应TA1,b8对应TD1);
    低半字节( b1-b4) 表明可选历史字符的数目( 0到15);
高半字节( b5-b8) 表示后续字符TA1到TD1是否存在。(b5对应TA1,b8对应TD1);
T0 = 951001 01011001代表TA1和TD1存在,TA1=11,TD1=81
低半字节( b1-b4) 表明可选历史字符的数目, 历史字符为5
  1. TD1字符比较关键, TD1的高4位决定了是否有TA2/TB2/TC2/TD2。
    同理,TD2的高4位决定了是否有TA3/TB3/TC3/TD3,一直到TDx不存在。
	TD1 =81(1000 0001)   高四位1000代表TD2存在。TD2 = 11
	TD2 = 11     TA3 =11 , TD3不存在,循环结束。
  1. 很长一段时间,没有任何标准对历史字符做出规定,结果是随操作系统生产者而不同,它们包含了变化广泛的数据。
历史字符为: 56 20 31 2E 50
  1. 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

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值