RFID技术深度剖析:从原理、协议到S50卡与FM17550读写
知识点1【RFID的概述】
学习目标是学习对这个卡片的读写
用已有的手册实现对卡片内数据的读写操作
RFID:(Radio Frequency Identification)无线射频识别
通过无线识别目标,并读写相关数据,而无需接触
位于感知层,物联网的最底层(边缘层)
这里补充一下:我们知道我们的运算中心是在中央处理器,所有的任务都交给它去做,因此需要我们大力的去发展网络传输速度,以将数据尽可能快的传递给中央处理器进行处理。这样中央处理器的负担较大,因此我们现在发展的方向是在感知层方面添加运算功能,也就是常说的边缘运算。即先进性初步计算,然后将关键数据传递给中央处理器,但是还未普及。
1、应用场合
门禁,图书管理,货物识别等场景。比如我们常用的NFC(RFID 的子集,阅读器和卡片一体式),常用于支付领域,如碰一碰,公交卡等。
2、RDID的选择判断
知识点2【RFID 的原理及应用】
阅读器:阅读器上有线圈,它直接与开发板相接,可以产生一个固定频率的电磁波。
卡片:也有线圈。
当两个线圈进行切割的时候,会产生感应电流,卡片中的电容就会积累电荷,电压升高,当阅读器离开后,电容就可以放电了,就可以将卡内数据发送出去 或者 卡片接收来自阅读器的数据了。
详细介绍
阅读器(PCD):读写标签信息的设备,可设计为手持式rfid读写器 或 固定式读写器
应答器(PICC):一般都是用标签作为应答器,每个标签具有唯一的电子编码,附着在物体上识别目标对象。
应用软件系统:应用层软件,主要是将收集到的数据进一步处理,并为人们所使用
补充:
NFC即使 应答器 也是 阅读器,它是一个动态角色切换的过程。
知识点3【RFID的协议】
RFID 的协议主要用来确认卡的类型
1、卡的分类
TypeA类:
MIFARE Std 1k:MF1 S50 我使用是S50卡
MIFARE Std 4k:MF1 S70
TypeB类:
我国第二代居民身份证:上海华虹、北京同方、THR9904、天津大塘和北京华大生产。
AT88RF020:美国爱特梅尔(ATMIL)生产,典型应用如广州地铁卡。
阅读器需要区分是A卡还是B卡
2、卡的状态
POWER OFF:缺少能量载波
IDLE:等待读写器发来的信号
READY:收到读写器发来的信号
ACTIVE:收到读写器发来的选择
HALT:读写器发来的停止命令
面试的时候 卡的状态问的很少,进程的状态问的较多
3、卡片的请求命令(重点)
REQA:请问未被HALT的TypeA卡——0x26
WAKE-UP:请求所有的TypeA卡——0x52
具体使用我们需要看详细的代码才能深刻理解
1、复位
阅读器通过特定协议验证卡片类型,切换 卡的状态为IDLE
2、寻卡
获取复位时确定的卡的类型数据,切换 卡的状态为READY
3、放冲突
多卡操作时,获取完整UID
4、选卡
根据完整UID,选择相应的卡片,切换 卡的状态为ACTIVE
5、HALT
挂起此卡,知道WAKE UP指令
6、验证密码
指定加密类型,指定密码块号,指定密码,指定卡号
7、读块内容
验证密码通过后,可读取指定块数据
8、写块内容
验证密码通过后,可写入指定块数据
解释
1、卡未充电处于POWER OFF状态,一旦阅读器对其充电(刷卡),就会处于IDLE状态
这一过程执行的操作:复位——阅读器对卡进行充电,并验证卡的类型
2、读卡器发送REQA命令,卡 切换为 READ状态
这一过程执行的操作:寻卡——阅读器获取复位时确定的卡的类型,但是此时读卡器不知道卡的张数
3、在READ状态,阅读器循环发出防冲撞(Anticollision)命令
这一过程执行的操作:防冲撞——每张卡根据其UID响应读卡器的Anticollision命令。最后 筛选并确定 出目标卡片的完整UID。
仅被选中卡片保持在Read状态,其他卡片则被忽略
4、发出SELECT命令,此命令包含 完整UID,卡 切换到 ACTIVE 状态
这一过程执行的操作:只有与UID匹配的卡片才会相应SELECT命令,并向阅读器发送其信息(SAK - Select Acknowledge),表明卡片所支持的应用协议
5、在ACTIVE状态,执行应用操作
就是我们上面介绍的验证密码,读,写操作了
6、停止卡片,阅读器发出 HALT 命令,卡片切换到HALT状态——低功耗
此时只相应WAKE-UP命令
知识点4【RFID应答器——卡片】
1、卡片的分类:ID IC卡
很好区分,ID卡内部没有芯片的,IC卡是有芯片的
(1)ID卡
不可写入的感应卡,含固定的编号。仅仅代表卡的编号,无任何保密功能,卡号是公开的,甚至是可以修改的
(2)IC卡
IC卡可以是接触式,也可以是非接触式。能对其内部的固有信息进行加密,便于携带。
2、S50卡特点介绍
(1)容量8K位EEPROM == 1024个字节
(2)分为16个扇区,每个扇区4块,每块16个字节
16 * 4 * 16 = 1024 个字节
(3)每个扇区有独立的一组密码及访问控制
(4)每张卡 都有唯一序列号(UID),为32位
(5)具有放冲突机制,支持多卡操作
(6)工作频率:13.56MHz——与阅读器的需求同频
知识点5【RFID阅读器——FM17550】
FM17550是复旦微电子的RFID阅读器,可以识别AB类卡。
我们这里使用的是USART类型的
1、引脚介绍
2、特点介绍
频率13.56MHz
串口波特率:9600,无奇偶校验,无流控,数据位为8Bit,1位停止位
FM17550是一个裸机(内部没有操作系统),因此想要操作FM17550,就需要操作其寄存器
通过页的方式管理相同功能的寄存器
0xmn 操作的是m页的第n个寄存器。如下是第0页的所哟寄存器,0x03 操作的就是DicEnReg寄存器
每个寄存器8位
3、工作配置要求
工作前需要一个硬件复位:**外部IO表示一定的低电平,**即我们上图中的RST引脚.
确定复位成功的方法
读地址位0x37 的版本寄存器的值
FM17550——0x88
MFRC522——0x92
结束
代码重在练习!
代码重在练习!
代码重在练习!
今天的分享就到此结束了,希望对你有所帮助,如果你喜欢我的分享,请点赞收藏加关注,谢谢大家!!!