当前位置:   article > 正文

arduino rc522模块使用_arduinorc522 模块的读写操作

arduinorc522 模块的读写操作

rfid IC卡

先了解IC卡一些前置知识。

首先我们会有一张ic卡(M1类型IC卡,一般买到的都是1K存储空间),在rc522代码中会出现这个,就是对IC卡进行检查PICC_TYPE_MIFARE_4KPICC_TYPE_MIFARE_1K就是一种卡片类型不同大小

    //检查兼容性
    if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && piccType != MFRC522::PICC_TYPE_MIFARE_1K && piccType != MFRC522::PICC_TYPE_MIFARE_4K)
    {
        Serial.println("无效卡!");
        return;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

RC522模块就是阅读器天线以及处理器和寄存器,这些不是写代码关注的重点。

在使用arduinoIDE+esp32 的MFrc522库中,尽管他没有写支持esp32,但是在MFrc522 V2库中SPI的连线可以作用在MFrc522中

SPI的连线是根据ESP32引脚功能来设置的,但是有文章说可以通过SPI来自己自定义设置(库作者没有提供定义的功能),读者可以自行设置

IC卡内部空间

在这里插入图片描述

一个ic的存储结构就是上面的样子,而我们在读取ic卡会选取一个扇区,这个扇区中设置的密钥可以用于ic卡的验证,而ic卡总共有16个,这样可以为一个IC卡提供多个功能,实现一卡多用

同时每个扇区还有其他存储尚未使用,这些存储区可以为IC卡功能分类提供有利的标识,以及权限的标识

读取扇区代码分析

1.读取指定扇区的内容

status = (MFRC522::StatusCode)mfrc522.MIFARE_Read(blockAddr, buffer, &size);
  • 1

三个参数:1.blockAddr,要读取扇区号
2.buffer,自行设置缓冲区(将IC卡扇区中读取的数据放入的地方)
3.size,读取数据大小

返回值:status,操作状态码,判断条件可以看内容3

2.将内容写入扇区

status = mfrc522.MIFARE_Write(blockAddr, buffer, 16);
  • 1

三个参数:1.blockAddr,要写入扇区号
2.buffer,自行设置缓冲区
3.size,读取数据大小
返回值:status,操作状态码,判断条件可以看内容3

3.判断写入或者读取操作是否成功

if (status != MFRC522::STATUS_OK)
    {
        Serial.print("写入失败:");
        Serial.println(mfrc522.GetStatusCodeName(status)); //打印错误码
        return;
    } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.用密钥进行卡片验证

    status= (MFRC522::StatusCode)mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, blockAddr, &keyA, &(mfrc522.uid)); 
  • 1

三个参数:1.PICC_CMD_MF_AUTH_KEY_A,使用密钥A位置进行验证
2.blockAddr,扇区号
3.keyA,密钥A
4.mfrc522.uid,uid号UID是用户身份证明(User Identification)的缩写,是每一个卡片的唯一有效识别编码。

返回值:status,操作状态码

卡片密钥(可以自行搜索):

//准备卡片密钥A,B
MFRC522::MIFARE_Key keyA;
MFRC522::MIFARE_Key keyB;

byte KEYA[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; //密钥A
byte KEYB[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //密钥B 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果这个扇区没有经过密钥的解锁是没办法读取的,有兴趣的可以了解一下IC卡的破译(比如说水卡,一些门禁的验证)。

大致上面的函数就能完成我们的基本的需求了,一些功能的完成,使用这三个函数就足够了

整体代码以及其他内容,可以参考这个作者的其他文章,他的内容比较详细一点

会飞的豹豹豹 https://www.bilibili.com/read/cv18457914?spm_id_from=…0.0
出处:bilibili

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/67748
推荐阅读
相关标签
  

闽ICP备14008679号