libnfc:从 NTAG 写和读回自定义数据
Posted
技术标签:
【中文标题】libnfc:从 NTAG 写和读回自定义数据【英文标题】:libnfc: Write and read back custom data from NTAG 【发布时间】:2016-02-27 21:05:17 【问题描述】:我很长一段时间以来一直在尝试从我的 NFC 卡写入和读取数据。这些卡是 NTAG216。我可以使用 libnfc 示例来读取制造商 ID,它工作正常。但我需要向每个标签写入一些自定义数据,例如字符串“abcdefg”并读回。
我已经阅读了我能找到的关于 libnfc 的几乎所有相关内容,但所有这些都没有谈到这个特定领域。我将不胜感激任何指导。代码示例将不胜感激。
我使用带有libnfc 1.7.1 from Github 的 ACRU122 NFC 读写器。
【问题讨论】:
感谢您编辑问题 【参考方案1】:枚举并激活标签后,您可以使用nfc_initiator_transceive_bytes()
方法向标签发送原始 NTAG 命令(例如 READ/WRITE)。由于 NTAG216 的命令集兼容 MIFARE Ultralight 命令集(包括 COMPATIBILITY WRITE 命令),您还可以使用 utils/mifare.h 中定义的 MIFARE 标签的便捷方法:
nfc_initiator_mifare_cmd(pnd, MC_WRITE, page, &mp)
nfc_initiator_mifare_cmd(pnd, MC_READ, page, &mp)
有关完整代码示例,请参阅 nfc-mfultralight 实用程序:nfc-mfultralight.c。
但是,您可能希望修改该代码以使用更高效的 MIFARE Ultralight/NTAG WRITE (0xA2) 命令,而不是 COMPATIBILITY WRITE(MC_WRITE
使用该命令)。
【讨论】:
感谢迈克。不管你写什么我都会去,然后回来。在事情上,这些命令是否允许重写,或者一旦你写了一切都变成只读的? @StefanoMtangoo 这取决于你写信的地方。 NTAG216 有一个一次性可编程页面(第 3 页)和可重写数据页面(只要您不为这些页面设置锁定位)。 这应该通过使用符合 ISO/IEC 14443 A 的 MIFARE 超轻卡来工作?以上是关于libnfc:从 NTAG 写和读回自定义数据的主要内容,如果未能解决你的问题,请参考以下文章