问题标签 [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.
android - 访问超过 2kbytes 的 NFC 标签内存
我需要开发一个能够读取包含大约 8 kByte 二进制数据的 NfcV 标签的 Android 应用程序。单个标签块为 8 个字节。
我写了以下代码:
但这让我只能读取标签的前 2 kByte(256 个 8 字节块)。
如何读取所有 8 kByte?
不幸的是,我对标签的信息很少。我知道它是德州仪器制造的,Taginfo 应用程序说它与 ISO/IEC 15693-3 和 ISO/IEC 15693-2 兼容。
c# - Android NfcV 读取标签总是前置 0x00
我在读取 NFC-V 标签时遇到问题。标签类型为 Tag-it HF-I Plus (TMS37112)。这是我用来读取数据的代码:
用 c# 编写,但不是这里的目的(在 Xamarin 上工作)。
不管我使用什么作为第一个块号,我的数据前都有一个 0x00。这是正常的吗?
nfc - GoToTags - NFC 标签阅读器 ACR122U
我有一个 ACR122U 阅读器,它可以读取许多标签,但不能读取 ICODE SLIX SL2S2002 标签。为什么会这样?我已经在移动设备上尝试了该标签,并且可以识别它。
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?
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 44
UTF-8 中的“ABCD”在哪里。
我们从另一个标签(使用 NFC TagInfo 读取)中获取此数据(NDEF 格式 + 标头)并将此数据复制到我们标签芯片的 FRAM 块中。我们在 NDEF 消息的末尾停止,而 FRAM 的其余部分是0x00
或0xff
。
显然,我们从 (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 开始准确地看到块中的上述数据。
因此,我尝试将更多数据从块 0 写入 TAG 以尝试模拟序列号、配置、应用程序区域颁发者块。然后我将 NDEF 消息 ABCD 放在以下部分之后:
我使用了 NFC TagInfo,但我也无法检测到 NDEF 消息。但是,使用数据十六进制显示,我可以验证数据是否已正确读取,如上所述。
所以我的问题是:
- 是否配置了 4 字节或 8 字节块模式以及最有可能在哪里定义此模式是否相关?我可以在 4 字节块模式下工作吗?
- TAG 5 序列号是否相关?根据规范,似乎不会影响 NDEF 检查。
- TAG 5 应用领域的发行人是否相关?似乎与 NDEF 验证无关。
- 我放置在正确区域的 NDEF 消息是否正确?
- 对于 16 位值,它是高字节低字节还是低字节高字节排序?
- 任何想法出了什么问题?
附加信息 3
事实证明,TI 需要提供补丁才能让 NDEF 与该芯片 (FRL152H) 一起工作。基本上,该芯片旨在支持通过 NFC 使用内部固件应用程序对传感器功能进行高级控制。需要禁用此应用程序并更改某些设置。
以下内存配置结果是有效的:
java - Android - 写入 ISO15693 标签
我目前正在尝试将几个字节写入特定块。我的读取命令工作正常,我可以使用以下代码读取我的标签的任何块:
当我尝试使用下面的代码编写时,我的应用程序崩溃了。
我在 AsyncTask 中执行此操作并获得java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
异常。
有小费吗?标签是 STMicroelectronics M24LR04E-R
android - Android NfcV 获取信息命令只返回一个字节
我正在编写一个用于读取 NFC 标签的二进制信息的应用程序。下面是 NFC 意图处理函数的代码:
如果我在 Samsung S3 Neo 上运行此函数读取 NFC 标签一切正常,则 answer 变量将填充预期数据:
但是,如果我在华为 P8lite 上运行相同的函数读取相同的 NFC 标签,则答案变量仅填充一个字节:
如果出现错误,ISO 15693-3 标准说我应该收到类似的东西
即至少两个字节,其中第二个字节是错误代码。所以我实际上得到的答案在理论上是不可能的。
我究竟做错了什么?它取决于移动硬件吗?我该如何解决?
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标签吗?
有没有人测试过这个并给出任何链接,它确认它是可能的?
android - 记录所有对 .tranceive() 的调用
有没有办法记录发送到 NFC 标签的 tranceive 方法的二进制数据?https://developer.android.com/reference/android/nfc/tech/NfcV.html#transceive(byte[])
我正在尝试找到协议中最后几个缺失的部分,如果我能听到发送的数据会有所帮助。
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 上。