我正在使用以下命令从Mifare Ultralight标签读取二进制块:FF B0 00 01 04
但是现在我想使用ACR1252 NFC阅读器来精确存储在该Mifare Ultralight标签中的NDEF消息。我必须使用哪个命令来获取完整的NDEF消息? NDEF消息存储在标签的哪个位置?
最佳答案
MIFARE Ultralight标签映射到NFC Forum Type 2 Tag Operation specification(断开的链接,here is an alternative。因此,为了从此类标签中提取NDEF消息,您需要遵循该规范定义的读取过程。
您已经为阅读器找到了read命令:
FF B0 00 BLOCK_NUMBER 10
使用该命令(注意length字段的值为0x10),您将读取从BLOCK_NUMBER
开始的4个连续块。
然后,您将首先阅读功能容器(位于块3):
FF B0 00 03 10
前4个字节(1个块)是功能容器:
字节0设置为“魔术”值0xE1
,以指示标签遵循NFC论坛2类标签操作规范使用NDEF映射。
字节1指示映射版本。
字节2指示标签的存储器大小。
字节3表示访问限制。
一旦确认标签符合NDEF映射规范,就可以从块4开始读取数据(您已经使用上述命令读取了块4-6)。这些块在TLV结构中包含带有标签0x03的NDEF消息。有关TLV结构的详细信息,请参见Writing NDEF data to NTAG216 tag using low-level NFC communication methods。