0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RC522刷卡模块原理简介

武汉芯源半导体 来源:武汉芯源半导体 2023-11-21 09:12 次阅读

一、实验简介

1. RC522 刷卡模块是应用于13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员,是NXP 公司针对“三表”应用推出的一款低电压、低成本、体积小的非接触式读写卡芯片。

非接触式IC卡又称射频卡,由IC芯片、感应天线组成,常被用于智能仪表和便携式手持设备中,如“三表”(水表、电表、燃气表)应用。其射频卡技术,将射频识别技术和IC卡技术结合,结束了无源(卡中无电源)和免接触这一难题,为电子器件领域带来突破。卡片在一定距离范围(通常为5—10cm)靠近读写器表面,通过无线电波的传递来完成数据的读写操作。

二、实验器材

本实验使用到了CW32-48F大学计划开发板、TTS语音播报模块、RC522刷卡模块、IC钥匙扣卡及Keil5开发环境。

24fec1d0-8791-11ee-939d-92fbcf53809c.png
CW32-48F大学计划板

TTS语音播报模块
25223a5c-8791-11ee-939d-92fbcf53809c.png
RC522刷卡模块

IC钥匙扣卡
253a4ffc-8791-11ee-939d-92fbcf53809c.png
实物图


【RC522刷卡模块与单片机接线】:

3.3V -- 3.3V

RST -- PB15

GND -- GND

IRQ 悬空

MISO -- PB14

MOSI -- PB13

SCK -- PB12

SDA -- PA6

(注:采用SPI通信方式)

【TTS语音播报模块与单片机接线】:

黑线 -- GND

红线 -- 3.3V

黄线 -- PA9

白线 -- PA10

三、原理简介

RC522模块(射频读写器)向IC卡发一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,这样在电磁波激励下,LC谐振电路产生共振,从而使电容内有了电荷;在这个电荷的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内存储,当所积累的电荷达到2V时,此电容可作为电源为其它电路提供工作电压,将卡内数据发射出去或接受读写器的数据。

非接触性IC卡与读卡器之间通过无线电波来完成读写操作。二者之间的通讯频率为13.56MHZ。非接触性IC卡本身是无源卡,当读写器对卡进行读写操作时,读写器发出的信号由两部分叠加组成:一部分是电源信号,该信号由卡接收后,与本身的L/C产生一个瞬间能量来供给芯片工作。另一部分则是指令和数据信号,指挥芯片完成数据的读取、修改、储存等,并返回信号给读写器,完成一次读写操作。

四、核心代码

main.c:
#include "main.h"
#include "Uart.h"
#include "stdio.h"
#include "Delay.h"
#include "RC522.h"
#include "Buzzer.h"
#include "Lcd_Driver.h"
#include "LCD_calculate.h"


#define MONRY 100    //IC卡初始金额


uint8_t RecPcd[2]={0};  //存放IC卡类型
uint8_t uid[4]={0};     //存放IC唯一序列号
uint8_t read[16]={0};   //存放读出的数据
uint8_t write[16]={0};  //存放写入的数据
uint8_t DefaultKey[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};//密钥(出厂默认)


void Card_Refresh(void)     //刷新卡的余额,仅在第一次使用IC卡或者IC金额刷光后使用
{
  write[0]=MONRY;   //将初始金额存进要写入IC卡的数组中
  RC522_PcdWrite(0x01,write);//将数据写入块1
}


int main()
{
  char str[16]="";   //存放显示在屏幕上的字符串
  Lcd_Init();        //TFT屏幕初始化
  UART3_Init();      //串口3初始化,通过串口进行语音播报
  Buzzer_Init();     //初始化板载蜂鸣器
  RC522_Init();       //初始化RC522刷卡模块
  Gui_DrawFont_GBK16(0,0,BLUE,WHITE,"      BUS       ");  //显示界面
  TFTShowString(2,0,"price: 1 RMB  ");  //单次刷卡金额
  while(1)
  {  
    TFTShowString(4,0,"Waiting card...");
    if(RC522_PcdRequest(PICC_REQALL,RecPcd)==MI_OK) //寻卡,有卡就认
    {  
      GPIO_WritePin(CW_GPIOB,GPIO_PIN_3,GPIO_Pin_SET);  //寻卡成功则蜂鸣器发出“滴”的一声
      Delay_ms(100);
      GPIO_WritePin(CW_GPIOB,GPIO_PIN_3,GPIO_Pin_RESET);
      if(RC522_PcdAnticoll(uid)==MI_OK)//防冲突,应对同时有多张卡的情况,将被选中卡片的序列号保存到uid中
      {  
        if(RC522_PcdSelect(uid)==MI_OK) //选定序列号为uid的卡片
        {
          if(RC522_PcdAuthState(PICC_AUTHENT1A,0x01,DefaultKey,uid)==MI_OK)//验证该卡片第一扇区A密钥
          {      
//            Card_Refresh();  //刷新卡的余额        
            if(RC522_PcdRead(0x01,read)==MI_OK)     //1.读取块1(16字节)数据
            {
              write[0]=read[0]-1;                   //2.读出数据的第一字节减去(车)票价,存到写入数据的第一字节中
              if(RC522_PcdWrite(0x01,write)==MI_OK) //3.写入数据到块1
              {
                if(RC522_PcdRead(0x01,read)==MI_OK) //4.读出刷卡后块1的数据,进行播报和显示
                {  
                  printf("刷卡成功");//语音播报刷卡成功
                  TFTShowString(4,0,"Brushing card...");
                  sprintf(str,"  balance:%d",read[0]);
                  TFTShowString(6,0,str);//显示卡中余额  
                }
              }
            }
          }
        }
      }
    }
    Delay_s(1); //刷卡间隔
    TFTShowString(6,0,"                "); //覆盖余额显示
  }
}

五、效果演示

25478488-8791-11ee-939d-92fbcf53809c.png
等待刷卡
256649a4-8791-11ee-939d-92fbcf53809c.png
正在刷卡

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2666

    浏览量

    47326
  • 射频
    +关注

    关注

    104

    文章

    5545

    浏览量

    167521
  • 天线
    +关注

    关注

    68

    文章

    3178

    浏览量

    140695
  • 智能仪表
    +关注

    关注

    1

    文章

    160

    浏览量

    23869
  • CW32
    +关注

    关注

    1

    文章

    183

    浏览量

    575

原文标题:基于CW32的RC522 刷卡模块的应用

文章出处:【微信号:武汉芯源半导体,微信公众号:武汉芯源半导体】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    红外遥控RC522芯片RFID公交卡、饭卡刷卡系统应用(附源码)

    库液晶3.RFID读卡模块RC522,+ S50卡4.红外遥控038接收头,CARMP3遥控器,不同遥控器键值不同,若用不同品牌遥控器需修改键值5.LED指示灯(或为蜂鸣器)RC522接法
    发表于 06-16 12:46

    求大神帮忙通过SPI总线和RC522模块进行通信,实现RFID刷卡

    求大神帮忙做下这个题目,实在不会通过SPI总线和RC522模块进行通信,实现RFID刷卡 功能要求: 1、学习RC522的电路图、工作原理、工作方式。 2、​ 学习SPI通信协议和ST
    发表于 12-23 14:49

    请问怎么用Arduino控制RC522刷卡生成坐标?

    我有一个RC522模块,用Arduino做控制器,怎样实现刷卡就能自动生成一个坐标,坐标的生成可以随机不定。
    发表于 04-02 19:14

    RC522刷卡如果实现贴一次刷一次?

    原来用的是韦根协议, 第一次用RC522刷卡识别,识别倒是没问题,但卡放上去会一直识别,很占资源。看了下RC522的手册命令,也没有看到关于此类的介绍和方法,参考了网友的办法,读卡模式改为0x26
    发表于 08-06 16:42

    如何通过Arduino对RC522刷卡控制舵机转动开门?

    如何通过Arduino对RC522刷卡控制舵机转动开门?
    发表于 01-24 07:06

    RC522速成教程

    RFID RC522速成教程,简单易学,实测可用。
    发表于 03-28 16:00 58次下载

    rc522举例程序

    快速应用rc522
    发表于 01-05 14:42 36次下载

    RC522读卡器模块的PCB文件

    RC522读卡器模块的PCB文件
    发表于 11-28 14:57 0次下载

    RFID模块RC522的程序和电路图等详细资料合集免费下载

    本文档的主要内容详细介绍的是RFID模块RC522的程序和电路图等详细资料合集免费下载,里面有相关的STM32,51单片机,Na1000的源程序,RC522 mini 尺寸图,RC522
    发表于 03-10 08:00 123次下载
    RFID<b class='flag-5'>模块</b><b class='flag-5'>RC522</b>的程序和电路图等详细资料合集免费下载

    RC522 RFID 射频模块原厂代码免费下载

    这是关于RC522飞利浦的原厂代码,由于其他内容较大,所以只能分开来上传,需要的小伙伴可以发的其他资料,包含RC522 RFID 射频模块的硬件电路部分和相关参考资料,以及天线计算工具。
    发表于 11-03 11:49 95次下载
    <b class='flag-5'>RC522</b> RFID 射频<b class='flag-5'>模块</b>原厂代码免费下载

    RC522 RFID 射频模块天线计算工具

    这是RC522 RFID 射频模块的参考设计资料
    发表于 11-03 14:01 169次下载
    <b class='flag-5'>RC522</b> RFID 射频<b class='flag-5'>模块</b>天线计算工具

    Arduino使用RFID模块来储存卡信息实现智能门锁(MF RC522

    Arduino的RFID模块的使用(MF RC522)文章目录Arduino的RFID模块的使用(MF RC522)前言一、RFID是什么?1.RFID
    发表于 12-16 16:47 26次下载
    Arduino使用RFID<b class='flag-5'>模块</b>来储存卡信息实现智能门锁(MF <b class='flag-5'>RC522</b>)

    基于MF RC522的RFID读写器的设计

    本设计采用 STM32F103ZET6 为微控制器,结合 MIAFER 1 卡、MF RC522 模块、LCD 等部分设计并实现了基于 MF RC522 的 RFID 读写器的设计。其主要 功能
    发表于 03-06 10:57 8次下载

    基于CW32的RC522刷卡模块的应用

    基于CW32的RC522刷卡模块的应用
    的头像 发表于 11-02 14:53 1043次阅读
    基于CW32的<b class='flag-5'>RC522</b><b class='flag-5'>刷卡</b><b class='flag-5'>模块</b>的应用

    rc522射频模块的工作原理

    RC522射频模块是一种基于射频识别技术的读卡器模块,广泛应用于门禁系统、智能家居、智能卡类应用等领域。它具备快速、稳定、安全的特点,能够读取和写入射频卡上的信息。下面将详细介绍RC522
    的头像 发表于 12-28 16:27 5185次阅读