为什么这个ATS的长度字节这么大?
Why is the length byte of this ATS so large?
使用 DESFire 进行测试,我选择了以下 ATS:0x75 0x77 0x81 0x02 0x80
。
据我所知,ISO/IEC 14443-4 说第一个字节应该是 "length byte" 并且应该指示作为 ATS 的一部分发送的字节总数。那么,为什么第一个字节是0x75
呢?如果您忽略第一个半字节,则该值是正确的,但是有什么理由我实际上必须这样做,或者这个字节与长度值之间没有关系吗?
注:ATS是通过nfc_initiator_select_passive_target
.
通过libnfc获取的
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 毫秒,SFGT = 256 * 16 / f_c * 2^1 = 600 us
- TC(1) = 02h:支持 CID,不支持 NAD
- 历史字节数:80h
使用 DESFire 进行测试,我选择了以下 ATS:0x75 0x77 0x81 0x02 0x80
。
据我所知,ISO/IEC 14443-4 说第一个字节应该是 "length byte" 并且应该指示作为 ATS 的一部分发送的字节总数。那么,为什么第一个字节是0x75
呢?如果您忽略第一个半字节,则该值是正确的,但是有什么理由我实际上必须这样做,或者这个字节与长度值之间没有关系吗?
注:ATS是通过nfc_initiator_select_passive_target
.
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 毫秒,SFGT = 256 * 16 / f_c * 2^1 = 600 us
- TC(1) = 02h:支持 CID,不支持 NAD
- 历史字节数:80h