当前位置: 首页 > ai >正文

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

 结束

代码重在练习!

代码重在练习!

代码重在练习!

今天的分享就到此结束了,希望对你有所帮助,如果你喜欢我的分享,请点赞收藏加关注,谢谢大家!!!

http://www.xdnf.cn/news/10191.html

相关文章:

  • 多类别分类中的宏平均和加权平均
  • SOC-ESP32S3部分:22-分区表
  • springMVC-9数据格式化
  • rtpinsertsound:语音注入攻击!全参数详细教程!Kali Linux教程!
  • CppCon 2014 学习:Multiplatform C++
  • 具有离散序列建模的统一多模态大语言模型【AnyGPT】
  • 可灵2.1 vs Veo 3:AI视频生成谁更胜一筹?
  • 【数据结构】——二叉树--链式结构
  • 定制开发开源AI智能名片S2B2C商城小程序:数字营销时代的话语权重构
  • elasticsearch低频字段优化
  • ubuntu/windows系统下如何让.desktop/.exe文件 在开机的时候自动运行
  • java程序从服务器端到Lambda函数的迁移与优化
  • 普中STM32F103ZET6开发攻略(一)
  • SAP学习笔记 - 开发15 - 前端Fiori开发 Boostrap,Controls,MVC(Model,View,Controller),Modules
  • Java 单例模式详解
  • Redis最佳实践——安全与稳定性保障之数据持久化详解
  • 2025-5-31-C++ 学习 字符串(终)
  • Springcloud Alibaba自定义负载均衡详解
  • 某航参数逆向及设备指纹分析
  • 告别硬编码!用工厂模式优雅构建可扩展的 Spring Boot 应用 [特殊字符]
  • STM32CubeMX定时器配置
  • 如何在 Ubuntu22.04 上安装并开始使用 RabbitMQ
  • QuickJS 在生物化学计算中的应用
  • MATLAB实战:实现数字调制解调仿真
  • 建造者模式:优雅构建复杂对象
  • Ubuntu下编译mininim游戏全攻略
  • 力扣HOT100之动态规划:139. 单词拆分
  • Spring之循环依赖源码解析
  • 现代数据湖架构全景解析:存储、表格式、计算引擎与元数据服务的协同生态
  • MySQL数据库复合查询