我正在使用Raspberry Pi和RFID-RC522开发板进行Python项目。作为NFC标签,我使用NXP NTAG213。我现在的计划是在标签上存储链接。我可以对它们进行读写。但是我不明白如何为标签上存储的数据定义NDEF标头。

当我用智能手机在标签上写链接并用程序阅读时,标签上存储的数据如下所示:

URL“ http://www.gmx.at”的NDEF标头是

[3, 11, 209, 1, 7, 85, 1, ... (Data)]


我认识到,当我编写另一个链接时,其中一些参数会发生变化,但有些仍然保持不变。

我发现此tutorial描述了NDEF标头的不同字段,但是我仍然不知道如何设置它们来存储指向网站的链接。

如果有人可以描述我如何正确计算/定义链接的参数,我将非常高兴。

最佳答案

为了了解NDEF格式以及NDEF格式的数据如何存储在NFC论坛2型标签(由NTAG213实现的标签平台)上,我建议您阅读以下NFC论坛规范:


Type 2 Tag Operation Specification
NFC Data Exchange Format (NDEF)
URI Record Type Definition


从标记读取的数据是NDEF消息TLV对象,其中包含由一个URI记录组成的NDEF消息。


NDEF消息TLV:

0x03 TLV标签= NDEF消息TLV
  0x0B TLV长度= 11个字节
  0xD1 ... 0x74 TLV值= NDEF消息


这意味着标签包含长度为11个字节的NDEF消息。 NDEF消息为0xD1 ... 0x74
NDEF消息:

0xD1记录头
                   位7 = MB = 1:NDEF消息的第一条记录
                   位6 = ME = 1:NDEF消息的最后一条记录
                   位5 = CF = 0:链的最后一个或唯一记录
                   位4 = SR = 1:短记录长度字段
                   位3 = IL = 0:无ID / ID长度字段
                   位2..0 = TNF = 0x1:类型字段代表NFC论坛
                                         知名类型名称
  0x01类型长度= 1个字节
  0x07有效负载长度= 7个字节
  0x55类型字段=“ U”(以US-ASCII表示)=类型名称urn:nfc:wkt:U的二进制形式
  0x01 ... 0x74有效载荷字段= URI记录有效载荷


这意味着NDEF消息由一个URI记录类型定义之后的URI记录(类型名称urn:nfc:wkt:U)组成。
URI记录有效负载:

0x01标识符字节= URI前缀“ http:// www”。
0x67 ... 0x74 URI字段(编码为UTF-8)=“ gmx.at”


这意味着URI记录指向URI“ http://www.gmx.at”。

关于python - 定义NDEF消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35363563/

10-12 03:39