基于CW32的RC522刷卡模块的应用实验分享
一、实验简介
1. RC522 刷卡模块是应用于13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员,是NXP 公司针对“三表”应用推出的一款低电压、低成本、体积小的非接触式读写卡芯片。
非接触式IC卡又称射频卡,由IC芯片、感应天线组成,常被用于智能仪表和便携式手持设备中,如“三表”(水表、电表、燃气表)应用。其射频卡技术,将射频识别技术和IC卡技术结合,结束了无源(卡中无电源)和免接触这一难题,为电子器件领域带来突破。卡片在一定距离范围(通常为5—10cm)靠近读写器表面,通过无线电波的传递来完成数据的读写操作。
二、实验器材
本实验使用到了CW32-48F大学计划开发板、TTS语音播报模块、RC522刷卡模块、IC钥匙扣卡及Keil5开发环境。
【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," "); //覆盖余额显示
}
}
五、效果演示
- |
- +1 赞 0
- 收藏
- 评论 0
本文由出山转载自武汉芯源( CW32生态社区公众号),原文标题为:基于CW32的RC522 刷卡模块的应用,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【经验】基于CW32的AS608指纹模块的应用
AS608是一款集成了指纹图像采集和指纹比对算法的指纹识别模块。它采用了高质量的光学传感器,能够实时采集人体指纹图像,并通过指纹比对算法进行指纹识别。AS608具有高精度、快速、可靠的特点,广泛应用于各种指纹识别场景,如门禁系统、安防系统、考勤系统等。本实验用到了CW32-48F大学计划板、0.96寸OLED显示屏模块、AS608指纹模块及Keil5开发环境。
设计经验 发布时间 : 2023-09-26
【经验】芯源CW32系列单片机低功耗模式介绍及UART深度休眠模式示例
CW32单片机低功耗模式介绍及UART深度休眠模式示例。
设计经验 发布时间 : 2023-05-31
使用JLink烧录CW32程序
本篇主要介绍使用JLink烧录CW32程序。
设计经验 发布时间 : 2024-03-15
CW32 is a Low-power 32-bit Microcontroller, Using Arm Cortex-m0+core, Very Suitable for Intelligent Temperature Controllers with Low Power Consumption Requirements
The CW32 designed by Wuhan Xinyuan Semiconductor Co., Ltd. using ARM Cortex-M0+core is a low-power 32-bit microcontroller, currently used in temperature controllers such as air conditioning, floor heating, water heating, and electric heating.
应用方案 发布时间 : 2024-11-08
武汉芯源半导体邀您相约CITE2024中国电子信息博览会
CITE2024第十二届中国电子信息博览会将于2024年4月9-11日在深圳福田会展中心隆重开展,武汉芯源半导体将为电子行业参观者展示智能指纹锁、麦克风、燃气表、LED调光板、可燃气体报警器、筋膜枪、角磨机、血氧仪、温控器、BLDC无刷电机、永磁同步电机无感FOC控制方案等多款CW32单片机典型应用方案,诚邀您莅临9B122武汉芯源半导体展位参观交流!
原厂动态 发布时间 : 2024-04-05
基于CW32F003E4P7的便携指夹式血氧仪全套解决方案,实现0.2%的弱灌注检测能力
武汉芯源半导体作为国内优秀的半导体设计厂商,可提供基于CW32F003E4P7的便携指夹式血氧仪全套解决方案,实现0.2%的弱灌注检测能力。
应用方案 发布时间 : 2024-11-07
基于CW32的无刷直流空心杯电机有感控制驱动方案
空心杯电机(Hollow-Cup Motor)是一种特殊类型的微型无刷直流电机,具有空心的旋转部分。它通常由外部固定的外壳和内部旋转的空心杯组成。空心杯电机具有较高的功率密度和扭矩输出,适用于一些特定的应用场景,如精密仪器、机器人、医疗设备等。空心杯电机的工作原理是基于无刷直流电机的原理。它采用无刷电机的结构,包括定子(固定部分)和转子(旋转部分)。
应用方案 发布时间 : 2024-05-16
【应用】基于CW32的无刷水泵控制系统,使水泵更加节能、高效
本课题研究的目的是设计一套基于CW32的无位置传感器无刷直流电机控制系统,既可以改进水泵的工作模式,使水泵工作点最优;又可以使水泵电机结构简单,控制方式更为灵活。以此将整个系统加入各个不同场景中,让CW32低功耗优点,能让水泵共更加节能,高效。
应用方案 发布时间 : 2023-09-15
Application of CW32F003F4P7 Series Products on Level Switches
This intelligent tuning fork material level switch uses CW32F003F4P7 from Wuhan Core Source Semiconductor as the main control chip. As the main control unit of the material level switch, CW32F003F4P7 drives the vibration components to generate a certain oscillation frequency. When there is a change in liquid level, it causes a change in oscillation frequency. CW32F003F4P7 detects this change, outputs a switch signal to the equipment main control unit, and then senses the liquid level situation.
应用方案 发布时间 : 2024-11-07
武汉芯源CW32系列单片机数字电压电流表产品硬件设计指南
本文基于武汉芯源CW32系列单片机,介绍数字电压电流表产品硬件设计指南,希望对各位工程师有所帮助。
设计经验 发布时间 : 2024-06-20
【技术】武汉芯源CW32单片机UART基本数据收发功能介绍
通用异步收发器是一种通用串行数据总线,常用于系统内各子模块间的数据交换。本文将以武汉芯源推出的CW32系列单片机的CW32L083为例,介绍UART基本数据收发功能。
技术探讨 发布时间 : 2023-04-25
授人以渔,24电赛H题完赛资料开源,思想开源——(3)控制思想讲解
本文主要为2024电赛智能小车基于CW32单片机控制器的小车云控制平台的控制思想讲解,并简单介绍了调试过程中的挑战和解决思路。
设计经验 发布时间 : 2024-10-09
基于CW32的无刷直流空心杯电机无感方波控制驱动方案
本方案采用CW32F030C8T6作为主控芯片,采用无感方波控制算法控制无刷直流空心杯电机。CW32F030C8T6是一款高性能、低功耗的32位微控制器,具有丰富的片上外设资源,可以适合用于电机控制。无感方波控制算法是一种简单有效的电机控制算法,不需要使用霍尔传感器,可以降低硬件成本。
应用方案 发布时间 : 2024-04-23
【经验】芯源CW32系列MCU电容式触摸按键设计指南
芯源半导体的CW32系列MCU电容式触摸按键设计指南向客户提供利用CW32内部资源结合软件编程实现电容式触摸按键有效触摸检测的方法。本指南内容重点在于工作原理、软件检测过程以及调试指引。通过本文可了解到如何利用内置电压比较器和内置定时器及软件配合,实现灵活方便的按键检测。在介绍标准演示板和演示软件的性能参数同时,还会给出详细的调试建议以及设计参数选择倾向分析,帮助客户快速自信地完成设计并实施调试。
设计经验 发布时间 : 2023-07-27
深化客户认知,增强市场影响力:台州CW32芯片应用交流会圆满结束
活动现场,CW32生态社区李工通过简单的电击实验,向客户直观展示了CW32芯片超强的抗干扰性能,参会人员对CW32的表现赞不绝口,极大增强了客户使用CW32的信心。无刷电机这一市场的应用一直备受关注,李芳老师对CW32无刷水泵方案的介绍与Demo演示为活动增添了新的亮点。
原厂动态 发布时间 : 2024-09-25
电子商城
登录 | 立即注册
提交评论