在物联网项目中,成本与开发效率同样重要。AirRC522_1000方案凭借其开源、轻量级的特性,成为了极具竞争力的高性价比RFID解决方案。本文将分析该方案的源码架构,重点介绍其对ISO14443A协议的精简实现,以及对MIFARE Classic 1K卡片的高效支持。无论你是用于制作智能门锁还是资产标签,该方案都能提供稳定可靠的数据通信保障。

门禁系统自动识别员工卡,公交地铁刷卡秒过闸机,仓储物流中的包裹快速分拣——这些便利的RFID技术应用背后,都需要稳定可靠的读卡模块支持。

对于嵌入式开发者而言,集成RFID功能往往意味着复杂的射频电路设计和繁琐的协议调试。

AirRC522_1000模块化方案,配合低功耗系列模组与LuatOS系统,让RFID功能集成变得前所未有地简单。

一、AirRC522_1000简介

AirRC522_1000是基于恩智浦经典RC522芯片开发的模块化RFID读写方案,工作在13.56MHz频段,支持ISO 14443A协议,可直接读取MIFARE Classic等常见IC卡。

1.1  典型应用场景

门禁系统、考勤机(读取员工卡UID验证身份);

公交卡、校园卡、消费机(读写卡内金额 / 数据块);

嵌入式设备外接RFID功能;

小型仓储、物流的电子标签识别。

1.2  与普通RFID模块的区别

AirRC522_1000配件板是模块化产品,即把RC522核心芯片 + 外围电路(天线、电容电阻)封装好的成品,无需自己焊接射频电路,直接接线即可使用。

1)主要特性

容量为8K位EEPROM。

分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位。

每个扇区有独立的一组密码及访问控制。

每张卡有唯一序列号,为32位。

具有防冲突机制,支持多卡操作。

无电源,自带天线,内含加密控制逻辑和通讯逻辑电路。

数据保存期为10年,可改写10万次,读无限次。

2)储存结构

M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成;我们也将16个扇区的64个块按绝对地址编号为 0~63。

其中第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改;

其他每个扇区的块0、块1、块2为数据块,可用于存贮数据。

存储结构如下图所示:

3)数据块可作两种应用:

用作一般的数据保存,可以进行读、写操作。

用作数据值,可以进行初始化值、加值、减值、读值操作。

4)每个扇区的块3为控制块:包括了密码A、存取控制、密码B。

具体结构如下:

每个扇区的密码和存取控制都是独立的:

可以根据实际需要,设定各自的密码及存取控制。存取控制为4个字节,共32 位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的。

在存取控制中每个块都有相应的三个控制位,定义如下:

二、最新应用示例demo

目前,AirRC522_1000已支持LuatOS系列主流产品,可根据项目实际需求搭配使用。

Air700ECH;

Air780EPM、Air780EHMAir780EHV、Air780EGH

Air780EHN、Air780EHU…

Air8101及Air8000全系。

以Air780EHV核心板为例:

示例基于Air780EHV核心板与LuatOS开发环境,通过SPI接口驱动AirRC522_1000模块,实现对13.56MHz IC卡(如MIFARE卡)的数据读取与写入功能。

核心逻辑:

初始化并启用SPI,如果初始化失败,退出程序;

初始化RC522模块,如果初始化失败,退出程序;

循环检测卡片;

向卡片指定块号写入数据,并读取数据验证一致性;

读取卡片所有数据。

核心代码:

如下图示,完整demo详见源码仓库最新文件。

今天的内容就分享到这里了~

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐