
在智能门禁、校园一卡通、设备身份识别、仓储标签管理和自动化签到系统中,RFID 是非常常见的近场识别技术。它的价值不只是“刷一下卡”,而是让程序可以读取真实卡片的身份信息,并在安全的数据块中完成数据写入、读取和校验。对于硬件编程入门而言,RFID 实验比普通 LED 实验更接近实际项目,因为它同时涉及外设通信、协议指令、数据块管理和业务流程控制。本实验使用 CanMV K210 开发板连接 MFRC522 RFID 模块,通过 SPI 通信完成 Mifare 卡片检测、UID 读取、卡片选择、数据块认证、16 字节数据写入、写入后读取校验等完整流程。程序默认使用0x12数据块,也就是十进制 18 号块,避开了 0 号厂商信息块和每个扇区的控制块,降低误写关键区域的风险。学习目标说明理解 RFID 识别流程掌握卡片检测、UID 读取、选卡、认证、读块和写块的基本流程掌握 SPI 通信连接理解 SCK、MOSI、MISO、CS 在 K210 与 MFRC522 通信中的作用理解数据块读写知道 Mifare 卡片数据块以 16 字节为单位进行读写建立安全写卡意识避免写入 0 号厂商块和每个扇区的控制块完成写入校验闭环写入数据后立即读取并比对,确认数据是否真正写入成功实验运行后,终端会提示靠近 RFID 卡片。卡片进入感应区后,程序读取卡片类型和 UID,选择卡片并对目标块进行认证。认证通过后,程序把"K210 RFID DEMO"转换成 16 字节数据写入卡片,再立即读取同一块内容进行比对。如果读取结果和写入数据一致,终端会输出Verify : PASS。为了避免同一张卡停留在感应区时反复写入,程序在处理完成后会等待卡片移开,再允许下一轮触发。文章目录理论基础硬件设施软件代码扩展应用总结理论基础RFID 可以理解成一种近距离无线身份识别方式。卡片本身不需要像普通串口模块那样直接接线到开发板,而是通过 MFRC522 读写模块和卡片之间的射频交互完成识别。CanMV K210 不直接读取卡片,而是通过 SPI 总线控制 MFRC522;MFRC522 再负责和 RFID 卡片完成检测、防冲突、认证、读写等底层动作。SPI 通信由 SCK、MOSI、MISO 和 CS 几类信号组成。SCK 提供通信时钟,MOSI 表示主控向外设发送数据,MISO 表示外设向主控返回数据,CS 用于选择当前要通信的外设。当前实验中,CanMV K210 是 SPI 主机,MFRC522 是 SPI 外设。程序通过拉低 CS 进入通信,通过拉高 CS 结束通信。Mifare Classic 兼容卡片内部以数据块形式组织内容。常见 1K 卡片包含多个扇区,每个扇区包含 4 个块,每个块为 16 字节。其中 0 号块通常保存厂商信息,不应写入;每个扇区最后一个块是控制块,保存密钥和访问控制信息,也不应随意写入。本实验默认使用0x12数据块,即十进制 18 号块,属于普通数据块,更适合做教学写入实验。下面这张流程图从电路通信和业务流程两个角度展示本实验。K210 通过 SPI 访问 MFRC522,MFRC522 负责和 RFID 卡片交互,程序再把底层读写结果组织成检测、认证、写入、读取、校验的完整流程。