RFID-RC522模块
一.S50(M1)卡介绍
1.S50(M1)卡基础知识
- 每张卡有唯一的序列号,32位
- 卡的容量是8Kbit的EEPROM
- 分为16个扇区,每个扇区分为4块,每块16个字节,以块为存取单位
- 每个扇区都有独立的一组密码和访问控制
2.内部信息
扇区0的块0用来固化厂商代码;
每个扇区的块3作为控制块,存放:密码A(6字节)、存取控制(4字节)、密码B(6字节)
每个扇区的块0、1、2作为数据块,其作用如下:
1.作为一般的数据存储,可以对其中的数据进行读写操作
2.用作数据值,可以进行初始化值、加值、减值、读值操作
3.存取控制
- 每个扇区的密码和存取控制都是独立的,存取控制是4个字节,即32位(在块3中)。
- 每个块都有存取条件,存取条件是由密码和存取控制共同决定的。
- 每个块都有相应的三个控制位,这三个控制位存在于存取控制字节中,相应的控制位决定了该块的访问权限,控制位如图:
就是说,每个扇区的所有块的存取条件控制位,都放在了该扇区的块3中,如图:
4.数据块的存取控制
对数据块,与就是块0、1、2的存取控制是由对应块的控制位来决定的:
从表中得知:对数据块的存取控制,由于存取控制由三个控制位所决定,所以相应的访问条件就产生了9种。
要想对数据块进行操作,首先要看该数据块的控制位是否允许对数据块的操作,如果允许操作,再看需要验证什么密码,只有验证密码正确后才可以对该数据块执行相应操作。
一般密码A的初始值都是0xFF…
5.控制块的存取控
块3(控制块)的存取操作与数据块不同,如图:
6.工作原理
-
电气部分:
卡片的电气部分由一个天线和一个ASIC组成。 -
天线:就是几组绕线的线圈,体积小,已经封装在卡片内
-
ASIC:ASIC即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。 目前用CPLD(复杂可编程逻辑器件)和 FPGA(现场可编程逻辑阵列)来进行ASIC设计是最为流行的方式之一,它们的共性是都具有用户现场可编程特性,都支持边界扫描技术,但两者在集成度、速度以及编程方式上具有各自的特点,这样理解,ASIC就是卡片特点的一个集成电路。
卡片的ASIC包含了一个高速(106KB)的RF接口、一个控制单元、一个8K的EEPROM -
工作过程:
读卡器会向M1卡发送一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其工作频率与读卡器发送的电磁波频率相同,遂在电磁波的激励下,LC串联谐振电路会发生共振,从而使电容内产生电荷,在电容的另一端接有一个单向导电的电子泵,电子泵将产生的电荷转移到另一个电容中存储。当存储电容中的电荷达到2V的时候,此时电容就作为电源为其他电路提供工作电压,所以卡片就可以向读卡器发送数据,或者从读卡器接收数据,实现了读卡器与卡片的通信。
7.M1与读卡器的通信
通信的流程图如示:
-
复位应答(Request)
M1卡的通信协议和通信波特率是定义好的,当有卡片进入读卡器的工作范围时,读卡器要以特定的协议与卡片通信,从而确定卡片的卡型。 -
防冲突机制(Anticollision Loop)
当有多张卡片进入读写器操作范围时,会从中选择一张卡片进行操作,并返回选中卡片的序列号。 -
选择卡片(Select Tag)
选择被选中的卡的序列号,并同时返回卡的容量代码。 -
三次相互确认(3 Pass Authentication)
选定要处理的卡片后,读写器就要确定访问的扇区号,并且对扇区密码进行密码校验。在三次互相认证后就可以通过加密流进行通信。每次在选择扇区的时候都要进行扇区的密码校验。
对数据块的操作
读(Read):读一个块的数据;
写(Write):在一个块中写数据;
加(Increment):对数据块中的数值进行加值;
减(Decrement):对数据块中的数值进行减值;
传输(Transfer):将数据寄存器中的内容写入数据块中;
中止(Halt):暂停卡片的工作;
版权声明:本文为CSDN博主「Aspirant-GQ」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43743762/article/details/104207730