发布时间:2026/8/22 12:55:37
104.无源门禁卡一贴就用?RC522射频识别原理与完整代码实现 一、为什么门禁卡没有电池也能工作日常使用的门禁卡大多是无源RFID卡本质上是一种被动式射频识别标签本身没有内置电池。当你把它靠近门禁读卡器时背后其实发生了一套精密的能量耦合与数据交互过程。1.1 核心原理读卡器隔空供电门禁读卡器的核心是RC522芯片它会通过板载天线持续产生13.56MHz的射频场。当门禁卡靠近这个射频场时卡内部的线圈天线会感应出交变电流经过整流电路后为卡内的芯片供电——这相当于读卡器在“隔空送电”让原本没电的卡片瞬间获得工作能量。1.2 通信流程从能量获取到数据交互整个交互过程分为4个关键阶段能量激活卡片线圈感应电流整流后为芯片供电卡片进入工作状态指令发送RC522通过射频场向卡片发送寻卡指令请求返回卡号负载调制卡片没有主动发射信号的能力它会快速改变内部线圈的负载让读卡器周围的射频场产生细微变化数据还原RC522捕捉这些射频场变化还原出卡片返回的卡号数据再交给主控MCU判断是否开门。二、RC522模块硬件与通信协议RC522是基于NXP MFRC522芯片的高集成度RFID读写模块工作在13.56MHz频段支持ISO14443A协议可识别常见的M1S50门禁卡、校园卡等。2.1 模块引脚与接线RC522模块支持SPI、I2C、UART三种通信方式最常用的是SPI接口引脚定义如下引脚名称功能说明Arduino连接示例VCC电源正极3.3V不可接5VGND电源负极GNDRST复位引脚D5SDA/SS片选信号D10MOSI主输出从输入D11MISO主输入从输出D12SCK串行时钟D132.2 通信协议SPI总线SPI通信采用四线制通信时序如下主控拉低SDA引脚选中RC522设备主控通过MOSI发送地址读写标志位主控与RC522通过MOSI/MISO交换数据主控拉高SDA引脚释放总线。三、Arduino完整代码实现以下代码基于Arduino平台实现了RC522模块的初始化、卡片检测、UID读取和门禁控制功能可直接复制使用。3.1 安装依赖库打开Arduino IDE通过“项目→管理库”搜索并安装MFRC522库。3.2 完整代码#include SPI.h #include MFRC522.h // 引脚定义 #define SS_PIN 10 // RC522 SDA/SS引脚 #define RST_PIN 5 // RC522复位引脚 #define GREEN_LED 7 // 合法卡指示灯 #define RED_LED 8 // 非法卡指示灯 // 合法卡号列表示例 const String VALID_UIDS[] {A1B2C3D4, E5F6G7H8}; const int VALID_COUNT sizeof(VALID_UIDS)/sizeof(VALID_UIDS[0]); // 创建RC522实例 MFRC522 mfrc522(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); // 初始化SPI总线 mfrc522.PCD_Init(); // 初始化RC522模块 // 初始化LED引脚 pinMode(GREEN_LED, OUTPUT); pinMode(RED_LED, OUTPUT); digitalWrite(GREEN_LED, LOW); digitalWrite(RED_LED, LOW); Serial.println(RC522门禁系统启动成功等待刷卡...); } void loop() { // 1. 检测是否有新卡片 if (!mfrc522.PICC_IsNewCardPresent()) { return; } // 2. 读取卡片序列号 if (!mfrc522.PICC_ReadCardSerial()) { return; } // 3. 格式化UID为字符串 String uidStr ; for (byte i 0; i mfrc522.uid.size; i) { if (mfrc522.uid.uidByte[i] 0x10) { uidStr 0; } uidStr String(mfrc522.uid.uidByte[i], HEX); } uidStr.toUpperCase(); Serial.print(检测到卡片UID: ); Serial.println(uidStr); // 4. 验证卡号合法性 bool isAuthorized false; for (int i 0; i VALID_COUNT; i) { if (uidStr VALID_UIDS[i]) { isAuthorized true; break; } } // 5. 控制指示灯 if (isAuthorized) { Serial.println(卡号合法开门); digitalWrite(GREEN_LED, HIGH); delay(1000); digitalWrite(GREEN_LED, LOW); } else { Serial.println(卡号非法拒绝访问); digitalWrite(RED_LED, HIGH); delay(1000); digitalWrite(RED_LED, LOW); } // 6. 挂起当前卡片准备下一次检测 mfrc522.PICC_HaltA(); mfrc522.PCD_StopCrypto1(); }3.3 代码说明初始化阶段完成SPI总线、RC522模块和LED引脚的初始化卡片检测通过PICC_IsNewCardPresent()检测是否有卡片进入射频场UID读取通过PICC_ReadCardSerial()读取卡片唯一标识符合法性验证将读取到的UID与合法列表对比控制指示灯输出卡片挂起完成一次交互后挂起卡片避免重复检测。四、扩展功能卡片数据读写除了读取UIDRC522还支持对M1卡的扇区进行读写操作。以下是读取指定扇区数据的示例代码// 认证指定扇区默认密钥A为0xFFFFFFFFFFFF MFRC522::MIFARE_Key key; for (byte i 0; i 6; i) { key.keyByte[i] 0xFF; } byte blockAddr 4; // 扇区0的第一个数据块 byte buffer[18]; byte size sizeof(buffer); // 认证扇区 MFRC522::StatusCode status mfrc522.PCD_Authenticate( MFRC522::PICC_CMD_MF_AUTH_KEY_A, blockAddr, key, mfrc522.uid ); if (status ! MFRC522::STATUS_OK) { Serial.print(认证失败); Serial.println(mfrc522.GetStatusCodeName(status)); return; } // 读取数据块 status mfrc522.MIFARE_Read(blockAddr, buffer, size); if (status ! MFRC522::STATUS_OK) { Serial.print(读取失败); Serial.println(mfrc522.GetStatusCodeName(status)); return; } // 打印数据 Serial.print(扇区数据); for (byte i 0; i 16; i) { if (buffer[i] 0x10) Serial.print(0); Serial.print(buffer[i], HEX); Serial.print( ); } Serial.println();五、常见问题与调试技巧模块不工作检查VCC是否接3.3VRC522不支持5V供电无法读取卡片确认卡片是13.56MHz的M1卡排除125kHz低频卡通信不稳定检查SPI接线是否正确SDA引脚必须为输出模式串口输出乱码确认串口波特率设置为9600与代码一致。六、总结RC522模块通过射频场能量耦合和负载调制技术实现了无源卡片的非接触式识别是智能门禁、身份验证等场景的核心技术。本文从原理到代码完整讲解了RC522的工作流程和实现方法你可以基于此扩展更多功能如添加电磁锁控制、卡号存储、远程授权等。如果你需要进一步优化代码或解决调试问题欢迎在评论区留言交流。

相关新闻

2026/8/22 14:15:40

基于编排轨迹与强化学习的LLM多智能体协作优化

1. 项目概述:当大语言模型智能体学会“复盘”最近在折腾多智能体系统,特别是基于大语言模型(LLM)的那一类,发现一个挺有意思的瓶颈。我们费劲心思设计提示词、编排工作流,让几个AI智能体分工协作去完成一个…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 20:14:07

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/22 1:39:53

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…