ACS ACR122U 使用 Python NFC 工具库在屏幕上显示标签

Posted

技术标签:

【中文标题】ACS ACR122U 使用 Python NFC 工具库在屏幕上显示标签【英文标题】:ACS ACR122U Tag display on screen using Python NFC tool library 【发布时间】:2021-08-23 18:30:31 【问题描述】:

我有一个 NFC 读取器设备 ACS ACR122U,我想使用 NFC NDEF 应用程序从我的 android 手机发送数据我正在使用三个不同的应用程序:TagWriter、NDEF 标签仿真器和 NFC 工具,我写了像我的名字这样的简单文本“NAME”并将其放在阅读器附近以显示它。我运行 python tagtool.py 代码,由 https://nfcpy.readthedocs.io/en/latest/examples/tagtool.html#load

当我运行这段代码时,它看起来像这样:

[nfc.clf] searching for reader on path usb
[nfc.clf] using ACS ACR122U PN532v1.6 at usb:001:040

等待标签似乎工作正常。 然后我把手机放到阅读器上,出现如下错误:

[nfc.tag.tt4] ACS ACR122U on usb:001:040 does not support fsd 256
[nfc.tag.tt4] ACS ACR122U on usb:001:040 does not support fsc 256

有没有人知道为什么会出现错误而不是显示显示不支持数据的文本?

【问题讨论】:

【参考方案1】:

这是不可能的。

NFC 有InitiatorTarget 的概念,初始的NFC 通信和通信控制必须是InitiatorTarget,读卡器硬件是Initiator 和@987654329 @ 是 NFC 标签。

目前,您正尝试使用您正在使用的 2 个 NFC 阅读器应用程序(代码)让 Initiator 与另一个 Initiator 交谈,但这是行不通的。

幸运的是,如果编程正确,很多(但不是全部)NFC 阅读器硬件通常也支持成为Target。这通常称为主机卡仿真 (HCE),或者也有对等模式。

Android 支持 HCE,但您通常必须编写自己的 Android 应用程序才能做到这一点(我不知道有任何现成的应用程序可以做到这一点,但 GitHub 上有一些示例),Android 具有点对点支持但它在 Android 10 中被删除了

在 Python 方面,https://nfcpy.readthedocs.io/en/latest/examples/beam.html 用于点对点,https://nfcpy.readthedocs.io/en/latest/examples/listen.html 用于 HCE

但是您选择的阅读器对标签仿真或 Python 代码 https://nfcpy.readthedocs.io/en/latest/overview.html#functional-support 的点对点的 NFC 支持较差

ACR122U 可以做很多这样的事情,但有一些限制,只是您需要自己在低级别对其进行编程。

【讨论】:

非常感谢您的回复,您对有能力做到这一点的NFC或任何可以做到这一点的开源应用程序有什么建议吗?

以上是关于ACS ACR122U 使用 Python NFC 工具库在屏幕上显示标签的主要内容,如果未能解决你的问题,请参考以下文章

无法验证具有 7 字节 UID ACR122U 的 NFC 标签

acr122U NFC 标签读取

acr122U NFC标签读取

带有JewelTopaz512 NFC标签的ACR122U读写器发出 "超时,目标未应答"

智能卡与 ACR122U 交互

ACR122U 发送直接命令返回 -2 和分段错误