问题标签 [iso-15693]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1259 浏览

android - 访问超过 2kbytes 的 NFC 标签内存

我需要开发一个能够读取包含大约 8 kByte 二进制数据的 NfcV 标签的 Android 应用程序。单个标签块为 8 个字节。

我写了以下代码:

但这让我只能读取标签的前 2 kByte(256 个 8 字节块)。

如何读取所有 8 kByte?

不幸的是,我对标签的信息很少。我知道它是德州仪器制造的,Taginfo 应用程序说它与 ISO/IEC 15693-3 和 ISO/IEC 15693-2 兼容。

0 投票
1 回答
762 浏览

c# - Android NfcV 读取标签总是前置 0x00

我在读取 NFC-V 标签时遇到问题。标签类型为 Tag-it HF-I Plus (TMS37112)。这是我用来读取数据的代码:

用 c# 编写,但不是这里的目的(在 Xamarin 上工作)。

不管我使用什么作为第一个块号,我的数据前都有一个 0x00。这是正常的吗?

0 投票
1 回答
885 浏览

nfc - GoToTags - NFC 标签阅读器 ACR122U

我有一个 ACR122U 阅读器,它可以读取许多标签,但不能读取 ICODE SLIX SL2S2002 标签。为什么会这样?我已经在移动设备上尝试了该标签,并且可以识别它。

0 投票
0 回答
1100 浏览

android - TI NFC 使用 Android NfcV (ISO 15693) 写入单块

我正在编写 Android 应用程序以通过 ISO15693 与 RF430FRL152H 设备进行通信。此应用程序尝试复制使用 TRF7970A 与设备通信的现有 Qt C++ 可执行文件。

如果设置了选项标志,我始终无法编写单个块,从而导致 android.nfc.TagLostException。

TRF7970A 可执行文件遵循 TRF7960 评估模式文档,该文档指出写入单个块 (0x21) 必须设置选项标志 (0x40)。

我在自己的应用程序以及 TI 论坛的示例 Android 应用程序中观察到了这种行为:https ://e2e.ti.com/support/wireless_connectivity/nfc_rfid/f/667/p/469938/1688321#1688321

2011 年 Android 问题跟踪器中的一篇文章提到了 Android 的 nfcV 和常见芯片上的一些问题,包括 TI:https ://code.google.com/p/android/issues/detail?id=15608

在我的应用程序中,这确实阻止了 android.nfc.TagLostException 并且不返回错误标志。但是,稍后在固件通用控制寄存器中启用和设置中断字段时,我没有观察到预期的行为,所以我不确定这是一个完整的解决方案。

更复杂的是,从 TRF7970A 可执行文件的写入命令中删除选项标志仍然可以正常工作。

这是编写单个块的正确方法吗?Android 和 TI 设备之间是否存在已知问题,特别是 RF430FRL152H?

0 投票
1 回答
1612 浏览

android - TI RF430FRL152HEVM NFC NDEF 格式化

我们设计了一个基于 TI RF430FRL152HEVM 评估模块的电路板,具有 NFC 功能。当 Android 手机靠近电路板的天线时,NFC 允许处理器启动并开始读取数据。它将读取的数据放入内存。

然后手机必须使用 NFC(或者更确切地说是 ISO 15693)从设备中获取这些数据。

目前我们知道如何做到这一点的唯一方法是将其写入标准 NFC 内存块。

我们下载了一个名为 NFC TagInfo 的 Android 应用程序,这让我们可以扫描我们的传感器并收集传感器内存中的所有数据,即所有块。

我们正在将其写入芯片制造商所说的 FRAM 中的 NDEF 消息区域。我为另一个项目编写了一个读写器 NFC 应用程序,效果很好,但它拒绝在这里读取数据,尽管 NFC TagInfo 确实读取了数据。

我们假设 TI 芯片已被 NDEF 格式化,但我们找到的所有关于如何执行此操作的文档都非常不清楚。所以我们猜它没有。

有人可以解释如何正确准备内存内容,以便手机可以读取 NDEF 消息吗?

附加信息

我们从块 0 开始将数据写入 FRAM,并试图模仿在包含非常简单的 NDEF 消息的典型标签中看到的数据。例如,我们存储了消息“ABCD”并使用 NFC TagInfo 您在前几个块中看到了这一点:

41 42 43 44UTF-8 中的“ABCD”在哪里。

我们从另一个标签(使用 NFC TagInfo 读取)中获取此数据(NDEF 格式 + 标头)并将此数据复制到我们标签芯片的 FRAM 块中。我们在 NDEF 消息的末尾停止,而 FRAM 的其余部分是0x000xff

显然,我们从 (NXP) 复制数据的标签和我们的标签芯片 (TI) 来自不同的制造商,因此前几个块中的一些数据对我们的 TI 芯片无效,但假设 Android 不应该关心。

但是,当我们使用 NFC TagInfo 读取我们的 TI 标签时,它可以读取原始数据块,但它不会将标签识别为 NDEF 格式的标签。

  • 我们从另一个标签复制的 NDEF 格式是否对我们的标签无效,因为我们没有使用相同的标签内存大小等?

  • 如果一个人只是在正确的块中写入正确的字节,那么任何东西都可以作为 NDEF 被拾取,毕竟,在低级别有什么区别?

  • 如果是这种情况,在哪些块中使用字节的最明智的测试用例是什么,是否有更好的方法来测试这个概念?

  • 块锁定有什么不同吗?我们可以看到一些块被锁定在一个真实的标签中。

  • 为什么 NFC TagInfo 有时会看到块,然后在检测到 NDEF 时看到页面?块和页是一样的吗?

  • 其他一切都失败了,我们如何在 Android 简单块读取中进行编码,就像 NFC TagInfo 执行其十六进制转储一样?如果我们能做到这一点,那么 NDEF 就不是真的必要了。

附加信息 2

我已经修改了固件,以便从块 0 开始的 FRAM 包含您提到的数据:

但是我似乎无法将 TI 芯片置于 8 字节块模式。似乎没有与此相关的控制寄存器。

从我的低级角度来看,以 4 或 8 字节写入块不是问题,也就是说,我按字节顺序将上述数据写入 FRAM 存储器。

当我运行 NFC TagInfo 时,它会做两件事,但没有检测到 NDEF 消息:

  • 它确实可以正确检测到 UID,并且 RF 技术是 5 类(ISO 15693 / Vicinity)
  • 它还可以正确读取块,并且在选择 Data HEX 显示时,我可以从块 0 开始准确地看到块中的上述数据。

我已经查阅了从http://open-nfc.org/documents/STS_NFC_0707-001%20NFC%20Tag%20Type%205%20Specification.pdf获得的 NFC Tag Type 5 Specification

因此,我尝试将更多数据从块 0 写入 TAG 以尝试模拟序列号、配置、应用程序区域颁发者块。然后我将 NDEF 消息 ABCD 放在以下部分之后:

我使用了 NFC TagInfo,但我也无法检测到 NDEF 消息。但是,使用数据十六进制显示,我可以验证数据是否已正确读取,如上所述。

所以我的问题是:

  • 是否配置了 4 字节或 8 字节块模式以及最有可能在哪里定义此模式是否相关?我可以在 4 字节块模式下工作吗?
  • TAG 5 序列号是否相关?根据规范,似乎不会影响 NDEF 检查。
  • TAG 5 应用领域的发行人是否相关?似乎与 NDEF 验证无关。
  • 我放置在正确区域的 NDEF 消息是否正确?
  • 对于 16 位值,它是高字节低字节还是低字节高字节排序?
  • 任何想法出了什么问题?

附加信息 3

事实证明,TI 需要提供补丁才能让 NDEF 与该芯片 (FRL152H) 一起工作。基本上,该芯片旨在支持通过 NFC 使用内部固件应用程序对传感器功能进行高级控制。需要禁用此应用程序并更改某些设置。

以下内存配置结果是有效的:

0 投票
1 回答
1009 浏览

java - Android - 写入 ISO15693 标签

我目前正在尝试将几个字节写入特定块。我的读取命令工作正常,我可以使用以下代码读取我的标签的任何块:

当我尝试使用下面的代码编写时,我的应用程序崩溃了。

我在 AsyncTask 中执行此操作并获得java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()异常。

有小费吗?标签是 STMicroelectronics M24LR04E-R

0 投票
1 回答
1647 浏览

android - Android NfcV 获取信息命令只返回一个字节

我正在编写一个用于读取 NFC 标签的二进制信息的应用程序。下面是 NFC 意图处理函数的代码:

如果我在 Samsung S3 Neo 上运行此函数读取 NFC 标签一切正常,则 answer 变量将填充预期数据:

但是,如果我在华为 P8lite 上运行相同的函数读取相同的 NFC 标签,则答案变量仅填充一个字节:

如果出现错误,ISO 15693-3 标准说我应该收到类似的东西

即至少两个字节,其中第二个字节是错误代码。所以我实际上得到的答案在理论上是不可能的。

我究竟做错了什么?它取决于移动硬件吗?我该如何解决?

0 投票
1 回答
9261 浏览

android - HF-RFID 与 NFC - 支持 NFC 的手机能否读取高频 RFID 标签?

我看到很多论坛都说 RFID 与 NFC 不同。我完全同意这一点,因为两者都有不同的标准并在不同的频率上运行。

经过进一步研究,我发现一些 RFID 标准(HF-RFID)存在于 13.56 MHz 频段,与 NFC 使用的频率相同(见此处)。但是,我没有找到任何明确说明 NFC 设备和 HF-RFID 可互操作的内容。此外,我还看到一个在线视频,有人正在使用支持三星 NFC 的手机读取 HF-RFID 标签。

我了解 NFC 和 RFID 都使用射频。

我的问题是,HF-RFID (13.56 MHz) 标签可以用支持 NFC 的手机读取吗?

而且,HF-RFID阅读器也可以用来读取NFC标签吗?

有没有人测试过这个并给出任何链接,它确认它是可能的?

0 投票
1 回答
123 浏览

android - 记录所有对 .tranceive() 的调用

有没有办法记录发送到 NFC 标签的 tranceive 方法的二进制数据?https://developer.android.com/reference/android/nfc/tech/NfcV.html#transceive(byte[])

我正在尝试找到协议中最后几个缺失的部分,如果我能听到发送的数据会有所帮助。

0 投票
1 回答
1490 浏览

uwp - 在 Win10 通用 Windows 应用程序中使用 NFC 读取 HF RFID 标签

下面是使用 NFC 读取 HF RFID 标签的示例 Universal Win10 应用程序代码。设备读取 RFID 标签时不会触发“ReadTag”方法。我尝试将 Messagetype 从 NDEF 更改为 Windows,结果相同。如何在 Universal Windows 应用程序中使用 NFC 读取 RFID 标签?任何帮助将不胜感激。

我使用启用了 NFC 并指定 ISO 15693 标签的 Android 应用程序成功读取了相同的 RFID 标签。

win10 代码是使用 VS2015 更新 3 编译的,启用了“接近”功能,并部署在启用了 Microsoft Phone 950 NFC 上。