一、RFID介绍
RFID(Radio Frequency IDentification)称为射频设备技术或无线射频识别,属于通信方式的一种。可通过无线电信号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。
一套完整的RFID系统, 是由阅读器(PCD)与电子标签(TAG)也就是所谓的应答器(PICC)及应用软件系统三个部份所组成,其工作原理是Reader发射一特定频率的无线电波能量给Transponder,用以驱动应答器(Transponder)电路将内部的数据送出,此时阅读器(Reader)便依序接收解读数据,送给应用程序做相应的处理。
RFID的识别原理:
S50卡内置了几组线圈,读写器向卡发一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可做为电源为其它电路提供工作电压,将卡内数据发射出去或接取读写器的数据。
RFID频段分类:
①低频(LF):
典型工作频段:125KHZ ~ 134.2KHZ
读写距离 :常见小于10cm 可实现小于1m
应用场景 :门禁控制 动物标签
②高频(HF):
典型工作频段:13.56MHZ 速度快
读写距离 :常见小于10cm 可实现小于1m
应用场景 :智能卡(公交卡,身份证,一卡通)、门禁控制、图书馆、货架
③超高频(UHF):
典型工作频段:433MHZ
读写距离 :几百米至2公里
应用场景 :遥控遥测、传感器数据采集、点菜机
④微波(MW):
典型工作频段:2.45GHZ
读写距离 :100m左右
应用场景 :收费站 集装箱
说明:
LC串联谐振电路
LC串联谐振电路是指将电感(L)和电容(C)串联在一起,形成一个谐振回路,使得回路中的电流和电压在特定的频率下达到最大值。
工作原理:LC串联谐振电路的原理基于电感和电容的互补作用。在谐振频率下,电感和电容的阻抗大小相等,方向相反,形成共振,此时谐振回路中的电流和电压达到最大值。当电路中的电源施加一个交流信号时,电感和电容会对信号产生阻抗。当频率偏离谐振频率时,电感和电容的阻抗大小不一致,电流会受到阻碍,导致谐振回路中的电压和电流减小。
阻抗特性:在LC串联谐振电路中,阻抗特性随频率的变化而变化。当输入信号频率等于谐振频率时,电路发生谐振,此时电路的阻抗最小,且可等效为一只纯电阻。此时流过整个谐振电路的信号电流最大。而当输入信号频率高于或低于谐振频率时,电路处于失谐状态,阻抗增大。
二、射频卡
1、概述
射频卡,也称为RF卡或非接触式IC卡,是一种通过无线方式传送数据的集成电路卡片。
2、组成
射频卡由IC芯片和感应天线组成,这些组件被封装在一个标准的PVC卡片内,确保芯片及天线无任何外露部分。这种封装方式不仅保护了内部组件,还使得射频卡具有耐用性和便携性。
3、工作原理
射频卡的工作原理基于射频识别技术(RFID),这是一种利用射频信号通过空间耦合(交变磁场或电磁场)实现无接触信息传递的技术。当射频卡进入射频识别系统的磁场后,它会接收来自读写器的射频信号。这些信号被射频卡内的天线接收并转化为电能,为卡内的电路供电。然后,射频卡利用这些能量发送存储在芯片中的信息给读写器,完成数据的读写操作。
4、射频卡类型
按功能分:ID卡(磁卡)和IC卡(接触式(银行卡)和非接触式)
按协议分:国际标准ISO 14443定义了两种信号接口,分别是TypeA和TypeB且互不兼容。
TypeA类卡:
MIFARE Std 1k(MF1 IC S50): 国内常称:MF1 S50
MIFARE Std 4k(MF1 IC S70): 国内常称:MF1 S70
卡号ID:4字节:一般公交卡、饭卡、一卡通
TypeB类卡:
我国第二代居民身份证:上海华虹、北京同方THR9904、天津大塘和北京华大生产。
5、S50射频卡参数
- 其内置容量为1K字节EEPROM,把内部的存储区分成16个扇区(每个扇区64Byte),同时把每个扇区为4个块,每块16个字节。并且S50射频卡是以块为存取单位。(一卡通每个扇区都有自己的使用场景)绝对地址是:块编号0~63
- 每个扇区有独立的两组密码和访问控制权限。
- 每张卡有唯一序列号,为32位(4 Bytes)。
- 工作频率:13.56MHz,通信速率:106KBps。
- S50射频卡读写距离为10 cm以内(与读写器有关)。
- 数据保存期为10年,可改写10万次,读无限次。
6、S50射频卡存储结构
1.S50卡分为16个扇区(扇区编号0~15),每个扇区由4块(块编号为0~3,每块16个字节)组成(16个扇区的64个块按绝对地址编号为0~63)
块0 | 厂商标记块 | 数据块 | 0 | |
扇区0 | 块1 | wet | 数据块 | 1 |
块2 | 数据块 | 2 | ||
块3 | 密码A 存取控制 密码B | 控制块 | 3 | |
块0 | 数据块 | 4 | ||
扇区1 | 块1 | 数据块 | 5 | |
块2 | 数据块 | 6 | ||
块3 | 密码A 存取控制 密码B | 控制块 | 7 | |
∶ ∶ ∶ | ||||
| 0 | 数据块 | 60 | |
扇区15 | 1 | 数据块 | 61 | |
2 | 数据块 | 62 | ||
3 | 密码A 存取控制 密码B | 控制块 | 63 |
2.第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
3.第一扇区的第1、2块以及第二扇区到第63扇区的第0、1、2块为数据块,一般用于存储数据使用。数据块可以用于数据存储(可以进行读、写操作)以及用作数据值(初始化值、加值、减值、读值)。
4.对数据块的操作分为:读(读取一个块的数据)、写(写一个块的数据)、加(对数值进行加值)、减(对数据进行减值)、存储(将块中的内容存储到数据寄存器中)、传输(将数据寄存器的内容写入块中)以及中止(将卡置于暂停工作状态)。
5.每个扇区的块3为控制块,块3中的内容包括了密码A、存取控制权限、密码B
三、读写器(PCD)
1、MFRC522与主控MCU通信协议
RC522模块提供了三种通信接口,分别是I2C串行通信、SPI串行通信,串口通信。数据传输顺序为先传高位,再传低位。在I2C串行通信模式下,支持快速模式(400Kbit/s)和高速模式(3400Kbit/s)。在SPI串行通信模式下,最大的传输速度为10Mbit/s,数据与时钟相位关系满足“空闲态时钟为低电平,在时钟上升沿同步接收和发送数据,在下降沿数据转换”的约束关系。 MODE3 – MODE0
由于S50射频卡的频率是13.56MHZ,故采取SPI通信
管脚编号 | 管脚符号 | 管脚功能描述 |
1 | SDA | I2C通信串行数据输出管脚 |
2 | SCK | 串行时钟输入管脚 |
3 | MOSI | SPI通信串行数据输入管脚 |
4 | MISO | SPI通信串行数据输出管脚 |
5 | IRQ | 卡接触中断输出管脚,有效电平低电平(此读卡器不需要) |
6、8 | GND、VDD | 模块工作电源负极和电源正极 |
7 | RST | 模块硬件复位管脚,有效电平低电平。 |
2、读写操作流程
①RC522模块写操作流程
②RC522模块读操作流程
四、程序设计
1、SPI相关程序
SPI 所用IO初始化配置
SPI IO口模拟传输一字节数据函数 MODE3
2、RC522相关程序
RFID初始化函数
SPI初始化
复位:PcdReset函数 (软复位 硬复位(给复位引脚低电平一段时间))
关闭天线
开启天线
PCD的ISO14443_X(typeA或typeB)协议配置
RC522识别卡片函数
寻卡-->防冲撞-->选卡--->睡眠
RC522写数据到卡片函数
寻卡-->防冲撞-->选卡-->验证密码-->写数据-->睡眠
RC522从卡片读取数据函数
寻卡-->防冲撞-->选卡-->验证密码-->读数据-->睡眠
应用:将数据写入一张射频卡中,然后将这张射频卡存储到数据再写入到另一张射频卡中。
首先写入数据到第一张射频卡中,此时这张射频卡内存储数据;然后将射频卡内存储到数据通过读卡器写入到数组中;换另一张卡片,将数组存储的数据写入卡片内即可