我有一个 NXP NTAG216,我想知道标签的存储大小。从规范中我读到数据区域的大小位于 Block 3
Byte 2
中,在我的例子中为 7F
,即 十进制 127
乘以 8 字节
就是 1016 字节
。来自 NXP 网站 它指出该标签只有 924 字节
NXP NTAG 213/215/216 .
[0] 04 : 91 : 52 : 4F
[1] 9A : 9A : 40 : 80
[2] C0 : 48 : 00 : 00
[3] E1 : 10 : 7F : 00
与 NXP NTAG215 类似,十进制的 3E
为 62
乘以 8 字节
为 496 字节
,其中网站显示 540 字节
。
[0] 04 : 34 : DB : 63
[1] 6A : 83 : 5C : 81
[2] 34 : 48 : 00 : 00
[3] E1 : 10 : 3E : 00
有人可以向我解释一下这个数字是如何计算的吗?
最佳答案
如果您阅读卡的数据表 https://www.nxp.com/docs/en/data-sheet/NTAG213_215_216.pdf
上面写着
NTAG216 EEPROM:
- 924 字节,分为 231 页,每页 4 字节。
- 为制造商和配置数据保留 26 个字节
- 37 位用于只读锁定机制
- 4 个字节可用作功能容器
- 888 字节用户可编程读/写存储器
来自 2 类卡的规范 http://apps4android.org/nfc-specifications/NFCForum-TS-Type-2-Tag_1.1.pdf
The Capability Container Byte 2 indicates the memory size of the data area of the Type 2 Tag Platform. The value of byte 2 multiplied by 8 is equal to the data area size measured in bytes
注意你的问题说乘以8Bits
(1字节),这是错误的,我确信这只是一个拼写错误,你的意思是8Bytes
因此,一些标题 924 字节实际上保留用于其他用途,并且永远不会包含在功能容器中列出的大小中,从而留下 888 字节供用户可用内存使用。
数据表称 中的值应为 6Dh
,即 109 * 8 = 872 字节。
我所有的 NTAG216 的值为 6Dh
我不确定为什么这个值 Capability Container 值小于实际可用内存大小,可能是因为规范的措辞不清楚,但它可能是 NDEF 消息的“可用数据区域”,并且可能不包括构成有效 NDEF 消息和记录的强制 header (TLV 等)。
因此,3Eh
的 NTAG215 示例值与数据表中所述的值完全相同,并且小于上面概述的总内存大小,因为某些内存页是为非 NDEF 数据等保留的。
下一个问题是为什么您的 NTAG216 示例没有正确的 6Dh
值
Type 2 卡的规范和 NTAG21x 卡的数据表显示:-
The Capability Container CC (page 3) is programmed during the IC production according to the NFC Forum Type 2 Tag specification (see Ref. 2). These bytes may be bit-wise modified by a WRITE or COMPATIBILITY_WRITE command. The parameter bytes of the WRITE command and the current contents of the CC bytes are bit-wise OR’ed. The result is the new CC byte contents. This process is irreversible and once a bit is set to logic 1, it cannot be changed back to logic 0.
能力容器的 4 个字节必须是可写的,因为只能以 4 字节为单位进行写入,而能力容器的字节 3 表示 2 类标签的数据区和 CC 区的读写访问能力因此可以合法地更改平台以使卡只读。
因此,对功能容器的错误写入可能已将 Byte 2 的值(大小值)增加到该特定卡上的无效值。
另一种可能性是,周围有很多假 NTAG21x 卡,这可能是假卡,实际上比正品 NXP 卡具有更多内存。
使用数据表中概述的原创性签名
方法来验证其真伪,或者恩智浦的Taginfo
智能手机应用程序也将验证其真伪。
关于nfc - NFC标签存储大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63945205/