我目前正在尝试创建一个 android 应用程序来编辑 rfid 标签。我要写的标签是 NXP SL2 ICS53。(数据表http://www.nxp.com/documents/data_sheet/SL113730.pdf)
它尊重标准 ISO-156933。(http://www.nxp.com/documents/data_sheet/SL113730.pdf)
这是一个 NfcV 标签。(谷歌“android NfcV”,声誉限制......--')
正如标题所说,我目前的问题是我无法在标签上写内容。我可以使用 android.nfc.tech.NfcV.transceive() 读取标签,将以下命令传递给标签。
22:20:36:F5:A0:03:00:02:04:E0:00 -> in addressed mode
22 -> Addressed, fast data rate
20 -> Read command
36:F5:A0:03:00:02:04:E0 -> UID of the chip (addressed mode requires it)
00 -> Block 0 to read
标签回答:00:41:4C:46:49,00 表示没有错误,41:4C:46:49 是第一个块的内容。
我也可以使用非寻址模式读取它:
02:20:00 -> in non-addressed mode
02 -> Fast data rate
20 -> Read command
00 -> Block 0 to read
有了这个,我得到了同样的答案。
但是一旦我想写,我就发送了以下内容,它应该在第一个块(00)中写入 00:00:00:00。
02:21:00:00:00:00:00 -> in non-addressed mode
02 -> Fast data rate
21 -> Write command
00 -> Block 0 to write
00:00:00:00 -> Data 00:00:00:00 to write
22:21:36:F5:A0:03:00:02:04:E0:00:00:00:00:00 -> in addressed mode
22 -> Addressed, fast data rate
21 -> Write command
36:F5:A0:03:00:02:04:E0 -> UID of the chip (addressed mode requires it)
00 -> Block 0 to write
00:00:00:00 -> Data 00:00:00:00 to write
但是根据第一个pdf文档的第8.4节“错误处理”,芯片在寻址模式下回答01:0F,对应“01->错误|0F->未知错误”,在非-寻址模式。它没有写在标签上,因为当我再次阅读时,内容并没有改变。我还使用带有选项标志的读取命令来验证这些块是否受到保护,正如 NXP Tag Reader 应用程序所说,它们都是“公共的”。我做错了什么 ?为什么我会收到此错误?
提前致谢。