单片机_MFRC522射频模块使用方法(含代码)

本文介绍MFRC522射频模块的基本使用方法,包括管脚解释、连接方法及实战应用等内容。重点讲解如何通过IIC读取IC卡UID,并给出详细代码示例。

MFRC522射频模块使用方法

本文只讲解MFRC522射频模块使用方法(下文简称522模块),不包含原理说明,原理下篇~

一、管脚解释

在这里插入图片描述
522模块总共有8个引脚,除去复位、GND接地、3.3V电源、NC端悬空、SCK时钟端,剩余3个引脚,起数据作用。

二、连接方法

在这里插入图片描述
这里主要使用IIC的方法,相信写过IIC的同学都很熟悉这段代码。不熟悉也没关系,后文会附上52单片机的LCD1602显示UID的实现代码,包含UART测试代码。
显而易见,通过总线办法读取数据只需要依照手册写代码就可以读出来,这里官方提供了函数代码。同样后文附上。
再附上IIC的数据传输规则。
在这里插入图片描述

三、实战

什么是UID?

   假设我们写522代码的目的是为了设计一个门禁系统,那提出的第一个问题一定是:我们需要从ic中读出什么数据?什么数据又是正确的数据?
   ic卡分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位。

在这里插入图片描述
第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
这样一个东西,叫做UID,这是一个存储在ic中的不可更改的数据,他是一个4字节16进制数,所以我们将他作为我们的判断依据。
幸运的是厂商给我们提供了参考代码,返回这个ic的UID。见后

读取数据流程

在这里插入图片描述
简单做个解释。1、检测是否有人打卡(寻卡),2、放冲突,3、选择这张卡(目的是确认写入卡片),4、进入三次相互验证(对于门禁系统来说仅涉及1,2步骤)

寻卡

卡片的电气部分只由一个天线和ASIC组成。
天线:卡片的天线是只有几组绕线的线圈,很适于封装到IS0卡片中。
工作原理:读写器向M1卡发一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可做为电源为其它电路提供工作电压,将卡内数据发射出去或接取读写器的数据。
了解原理了,来看看官方代码。

/////////////////////////////////////////////////////////////////////
// req_code[in]:寻卡方式
//         0x52:寻找感应区内所有符合14443A标准的卡(一般传入参数)
//         0x26:寻找进入休眠状态的卡
// pTagType[out]:卡片类型代码
/////////////////////////////////////////
char PcdRequest(unsigned char req_code,unsigned char *pTagType)
{
   
   
   char status;  
   unsigned int  unLen;
   unsigned char ucComMF522Buf[MAXRLEN]; 
   ClearBitMask(Status2Reg,0x08);
   WriteRawRC(BitFramingReg,0x07);

   SetBitMask(TxControlReg
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vigigo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值