【问题标题】:Why is the length byte of this ATS so large?为什么这个 ATS 的长度字节这么大?
【发布时间】:2019-02-12 21:56:02
【问题描述】:
使用 DESFire 进行测试,我选择了以下 ATS:0x75 0x77 0x81 0x02 0x80。
据我所知,ISO/IEC 14443-4 说第一个字节应该是“长度字节”并且应该指示作为 ATS 的一部分发送的字节总数。那么,为什么第一个字节是0x75?如果您忽略第一个半字节,则该值是正确的,但是有什么理由我实际上应该这样做,还是该字节与长度值之间没有关系?
注意:ATS 是通过 libnfc 通过nfc_initiator_select_passive_target 获得的。
【问题讨论】:
标签:
nfc
rfid
mifare
contactless-smartcard
lib-nfc
【解决方案1】:
ATS 非常好。 libnfc 不包括存储在nt.nti.nai.abtAts 中的值中的长度字节。相反,ATS 的长度存储在nt.nti.nai.szAtsLen 中。因此,第一个字节不是长度字节而是格式字节。它表示存在 TA(1)、TB(1) 和 TC(1)(Y(1) = 7h),并且 FSC 为 64 字节(FSCI = 5h)。剩下的字节然后解码为:
- TA(1) = 77h:双向支持所有三个除数
- TB(1) = 81h:FWT = 256 * 16 / f_c * 2^8 = 77 ms,SFGT = 256 * 16 / f_c * 2^1 = 600 us
- TC(1) = 02h:支持 CID,不支持 NAD
- 历史字节数:80h