【问题标题】:Cannot read/write mifare tag with PN532无法用 PN532 读/写 mifare 标签
【发布时间】:2013-12-14 13:14:56
【问题描述】:

我从 seeedstudio 为我的 arduino 单板购买了 NFC shield v2.0。我将屏蔽连接到 arduino,在断路器板上我有两个 LED 和一个 lcd,它们似乎工作得很好。我已经下载了官方库 (http://www.seeedstudio.com/wiki/File:PN532_SPI_V2.zip),并尝试启动示例 readAllMemoryBlocks(以及所有其他示例......),当程序开始运行时,我得到的是:

Found chip PN532, Firmware ver. 1.6, Supports 7

很好....现在,当我尝试输入我的标签(mifare 1k 卡或 nfc 论坛类型 2 标签)时,我得到了

Found 1 tags, Sens Response: 0x4, Sel Response: 0x8, 0x94 0x6F 0xFB 0xA6, Read card #2490366886

# 旁边的数字是标签的 id。一切都很好,除非它不读或写任何东西(没有一个例子)。经过一些基本调试后,我发现问题出在函数上

nfc.authenticateBlock(1, id ,blockn,KEY_A,keys)

其中blockn从0到63,根据库的cpp文件;在另一个示例(readMemoryBlock)中,block 是 0x08,以及在 readMemoryBlock 函数中 它永远不会返回 true....所以我试图避免使用该函数,并放一个

nfc.readMemoryBlock(1,0x8,block)

但它也总是返回错误......所以图书馆本身似乎在使通信正常工作方面存在问题。示例代码可以在这里找到:https://github.com/5v3n/Seeedstudio-PN532-RFID-NFC-Shield/blob/master/examples/readAllMemoryBlocks/readAllMemoryBlocks.pde

有人知道发生了什么吗?我是否必须安装某种我缺少的驱动程序(不要想,但是......)?有人用过这个盾吗?只是想得到,至少,样品工作......

提前致谢! :)

Ps:所有标签都可以正常工作,我可以用我的智能手机应用程序读取写入擦除等...

编辑:对小错误感到抱歉..

【问题讨论】:

    标签: arduino nfc mifare


    【解决方案1】:

    我在不同的防护罩上使用了 PN532。您必须让 authenticateBlock() 成功,因为没有该步骤,卡将无法读取或写入。

    您可能会按照 NDEF 标准格式化标签,因为您说您正在使用手机应用程序阅读。您没有显示密钥的值。目录和数据记录的标准键 A 是:

    /**
     * @brief MAD directory standard key A
     */
    uint8_t NdefReadWrite::keyDirA[6] = { 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5 };
    
    /**
     * @brief NFC application standard key A
     */
    uint8_t NdefReadWrite::keyAppA[6] = { 0xD3, 0xF7, 0xD3, 0xF7, 0xD3, 0xF7 };
    

    每个 NDEF 格式标记上的键 A 将是这些值。你在用那些键吗?

    此外,密钥是 6 个字节。 authenticateBlock() 调用中的 8 是什么?

    【讨论】:

    • 首先,谢谢!我忘了说我对 arduino 和 pn532 都是新手;至于键,我有uint8_t keys[]= { 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF };// default key of a fresh card (这是sdk示例代码)。现在我已更改为您的,但它没有通过身份验证块。对于 authenticateblock 8(见编辑),在我的 sdk 示例代码中:nfc.authenticateBlock(1, id ,blockn,KEY_A,keys) ,其中 blockn 从 0 变为 63(在 cicle 外部)。在库的头文件中,写着该数字必须在0到63之间:(
    • 好的,jdr5ca 是对的!这是标签格式的问题......因为我已经用手机编写和读取标签,它们被格式化为 ndef 格式,所以这个例子不起作用。我尝试使用一张新的新卡(从未使用移动应用程序写入或读取)并且它确实有效!:) 所以现在的问题是我不知道我必须为 ndef 格式的卡使用哪些密钥(密钥答案不适合我:();但我认为为此我会提出另一个问题....谢谢你这么多jdr5ca!
    • 我使用的 Android 标签应用是 NFC Research Lab Hagenberg 的 NFC Taginfo。此应用程序将读取整个标签内存并显示为文本和十六进制。您会发现该应用程序或类似应用程序对于调试此类事情非常有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-30
    • 2023-04-02
    • 1970-01-01
    • 2021-07-12
    • 2015-07-19
    相关资源
    最近更新 更多