【问题标题】:Is there a way to use custom NFC-V commands?有没有办法使用自定义 NFC-V 命令?
【发布时间】:2019-01-30 11:58:41
【问题描述】:

我正在使用带有 RF430FRL 15xH IC 的传感器,我计划通过 NFC 从中获取数据。有没有办法编写和激活自定义 NFC 代码?

我尝试了单读 (0xC0) 和多读 (0xC3) 的自定义 16 位命令。 NFC 数据检索仍然没有扩展。我试过以下代码:

cmd = new byte[]{
                 (byte)0x00,  //Protocol_Extension_flag=1 // 
                 (byte)0xC0,  //READ multiple blocks
                 (byte)0x07,
                 (byte)0xE0,  // First block (offset)
                 (byte)0x00,  // Number of blocks
                 (byte)0x06,
                };

【问题讨论】:

    标签: android format nfc rfid iso-15693


    【解决方案1】:

    您的命令似乎完全搞砸了。 0xC0 是 CUSTOM READ SINGLE BLOCK 的代码,但您使用的参数表明您需要读取多个块。此外,user manual 建议块号的有效范围是 0x600 - 0xA00,因此您的块号 0x0E0 似乎超出范围。此外,块数可能仅在 0-2/0-5 范围内,具体取决于标签配置。最后,您可能希望在 Android 上使用寻址命令(因为某些设备似乎存在未寻址形式的问题)。 CUSTOM READ MULTIPLE BLOCKS 命令可能如下所示:

    NfcV nfcV = NfcV.get(tag);
    nfcV.connect();
    byte[] tagUid = tag.getId();  // store tag UID for use in addressed commands
    
    int blockAddress = 0x0600;
    int numberOfBlocks = 2;
    byte[] cmd = new byte[] {
        (byte)0x20,  // FLAGS (addressed)
        (byte)0xC3,  // CUSTOM_READ_MULTIPLE_BLOCKS
        (byte)0x07,  // MANUFACTURER CODE (TI)
        0, 0, 0, 0, 0, 0, 0, 0,  // Placeholder for UID (address), filled by arraycopy below
        (byte)(blockAddress & 0x0ff),
        (byte)((blockAddress >>> 8) & 0x0ff),
        (byte)(numberOfBlocks & 0x0ff),
    };
    System.arraycopy(tagUid, 0, cmd, 3, 8);
    
    byte[] response = nfcV.transceive(cmd);
    
    nfcV.close();
    

    【讨论】:

    • 我对编码真的很陌生,对于琐碎的疑问,我很抱歉。它说“nfcV”符号无法解析。另外,您能否详细说明已解决的命令?能否也解释一下代码中的“0,0,0,0,0,0,0,0”部分?
    • @CyndhiaVarshni 我已经更新了我的答案。由于您没有在问题中透露有关当前实现的更多详细信息,因此您需要使代码适应您已有的内容。 nfcV 是您在收发 cmd 数组时可能已经使用的 NfcV 处理程序的实例。
    • 好的。我会尝试更新的代码。所以,基本上,我试图从传感器(它有一个 RF430FRL 15xH IC)中检索所有 8KB 的数据,这将达到 14 天的数据。目前,手机的 NFC 只允许检索 2KB 的数据,只能提供大约 3 天的数据。
    • 你救了我的命。从字面上看。
    猜你喜欢
    • 1970-01-01
    • 2021-09-30
    • 2019-09-11
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    相关资源
    最近更新 更多