我正在使用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/