stm32+RC522实现RFID功能
一、利用RC522实现读卡器的读写功能
1、工作原理
读写器向M1卡发一组固定频率的电磁波,卡片内有一个 LC串联谐振电路,其频
率与读写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而
使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容
内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可做为电
源为其它电路提供工作电压,将卡内数据发射出去或接取读写器的数据。
2、读卡器读效果图
3、使用流程
复位–>寻卡–>防冲突–>选卡–>认证–>读写卡
寻卡命令:0x52(WAKE_UP)或者0x26(REQUEST), 0x52是ALL模式,对天线范围
内的所有卡操作,0x26是IDLE模式,只选择天线范围内IDLE模式的卡。与卡的通信数据格式:data[0]=0x52,如果正常,卡会返回两个字节的卡类型,
0x04代表Mifare 1卡。
防冲突和选卡: 命令都是0x93,但后面所带的数据不同,防冲突的数据格式是:
data[0]=0x93,data[1]=0x20,如果正常,卡会返回卡的1字节卡的系类号位数和4
字节卡系列号,选卡的数据格式是:data[0]=0x93,data[1]=0x70,data[2]-data[6]
为读回的卡系列号,如果正常,卡会返回一字节的卡容量(0x08或0x88)。
对卡片的EEPROM进行读写操作,还需要经过密钥的三重认证,1、通过
LoadKeyE2或者LoadKey加载密钥到内部密钥缓冲器,2、启动
Authen1(0x0C),数据格式:data[0]=0x60(A认证方式)或0x61(B认证方
式),data[1]=扇区号,data[2]-data[5]为卡系列号,结束后,检查错误标志位判断
执行结果,3、启动Authen2(0x14)数据格式为空,结束后,检查错误标志位
以及CrtptolOn标志判断执行结果。
4、M1卡存储结构
1、M1卡分为16个扇区,每个扇区由4 块(块 0、块 1、块 2、块 3)组成,(我
们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:
5、三次验证
M1卡在选卡成功之后,会进行“三次互相验证”,CPU在进入目录后,进行外部
认证和内部认证。
5.1、M1卡的三次互相认证
5.2、复旦CPU卡的外部认证和内部认证
说明:文档与代码工程,我已发布在公众号‘漂流小江’中,有需要的可以关注公众号回复"RFID"获取。