其他分享
首页 > 其他分享> > 关于Answer to ATTRIB command(ATA)配置问题

关于Answer to ATTRIB command(ATA)配置问题

作者:互联网

客户要求我们卡ATA返回
40 3B F9 11 00 00 91 81 31 46 45 02 02 00 11 59 38 5E 19 7A 87 90 00 54 EF
而我们实际返回
21 3B F9 11 00 00 91 81 31 46 45 02 02 00 11 59 38 5E 19 7A 87 90 00 EF BE

ISO1444-3中对ATA的说明如下图
在这里插入图片描述
MBL表示Maximum Buffer Length (MBL) = (PICC Maximum Frame Size) x 2^(MBLI – 1)
MBLI = 根号√( g_RFLIB_Context.BufferSize / g_RFLIB_ContextInternal.Fsc)+ 1;
即MBLI表示卡内部的最大缓存。
我们返回的21表示MBLI=2,CID存在。

我强制将MBLI设置为4,CID位设置为0然后实验,结果返回
40 3B F9 11 00 00 91 81 31 46 45 02 02 00 11 59 38 5E 19 7A 87 90 00 54 EF
但是通讯错误,原因是我们卡给的ATQB Response为
50 8B C1 88 F1 1D C4 15 00 00 81 71 A0 BD

ISO1444-3中对ATQB Response的说明如下图
在这里插入图片描述
其中Protocol Info说明如下图
在这里插入图片描述
结合我们的响应数据可知,我们返回的Protocol Info第三个字节为0x71,即我们的FO=0x01,表示卡片对外说明它支持CID,
所以如果我们将ATA响应强制设置成
40 3B F9 11 00 00 91 81 31 46 45 02 02 00 11 59 38 5E 19 7A 87 90 00 54 EF
那么就产生矛盾,40表示MBLI为4,不支持CID。所以应该修改卡片配置,将Protocol Info的第三个字节修改为0x70,即FO=0x00,表示卡片对外说明它不支持CID,然后就可以了。

标签:11,02,00,MBLI,ATA,CID,command,Answer,81
来源: https://blog.csdn.net/xjs38829890/article/details/113513591