RFID技术深度剖析:从原理、协议到S50卡与FM17550读写

article/2025/6/18 21:52:30

知识点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.hkcw.cn/article/smIiGjXjnE.shtml

相关文章

4-香豆酸:CoA连接酶晶体-文献精读138

Crystal structures of a Populus tomentosa 4-coumarate:CoA ligase shed light on its enzymatic mechanisms 杨树(Populus tomentosa)4-香豆酸:CoA连接酶的晶体结构揭示了其酶促机制 摘要 4-香豆酸:CoA连接酶(4CL…

VTK|实现类似CloundCompare的测量功能

文章目录 CloundCompare在点、线、面三种模式下的显示内容✅ 图1:点模式✅ 图2:线模式✅ 图3:面模式 增加控制菜单栏实现测量功能类如何调用项目git链接 CloundCompare在点、线、面三种模式下的显示内容 点 线 面 三张图展示了 CloudComp…

Android15 userdebug版本不能remount

背景描述: 最近调试Android Vendor Hal的时候发现一个奇怪的现象: android userdebug版本刷到设备中,执行adb root没提示错误,但是没有获取到root权限。 Android设备运行的系统版本有三种情况:user版本、userdebug版本和eng版本…

伊朗外长:将适当回应美方核谈判提案

△伊朗外交部长阿拉格齐(资料图)当地时间5月31日,伊朗外交部长阿拉格齐在社交平台表示,当天阿曼外交大臣巴德尔访问伊朗并向其介绍了美方有关核谈判的提案。阿拉格齐表示,伊朗将根据原则、国家利益和伊朗人民的权利对此作出适当的回应。白宫新闻秘书莱维特当地时间31日表示…

27 C 语言编程核心:main 主函数(基本形式、返回值、参数、命令行传参)、多文件编程实践

1 main 主函数 1.1 主函数的作用 在 C 语言中,main 主函数是程序的入口函数,所有 C 程序必须包含一个名为 main 的函数。程序总是从该函数开始执行,没有它程序就无法启动。 主函数可以调用其他函数。其他函数不能调用主函数。主函数不能调用…

GIS常见数据及主要应用综述:类型解析、应用案例与未来趋势全景解读

🌏 GIS常见数据及主要应用综述:类型解析、应用案例与未来趋势全景解读 地理信息系统(GIS)是支撑空间决策、资源管理、城市治理的重要技术体系。本文从常见数据类型入手,结合中国及国际资源,梳理典型GIS应用…

系统性学习C语言-第十二讲-深入理解指针(2)

系统性学习C语言-第十二讲-深入理解指针(2) 1. const 修饰指针1.1 const 修饰变量1.2 const 修饰指针变量 2. 野指针2.1 野指针成因2.2 如何规避野指针2.2.1 指针初始化2.2.2 小心指针越界2.2.3 指针变量不再使用时,及时置 NULL &…

Linux安装redis

Linux redis路径 https://download.redis.io/releases/解压安装Redis 解压 tar -zvxf redis-6.0.5.tar.gz 由于redis是c语言编写的,所以我们需要先安装gcc,安装的命令如下: yum install gcc-c安装 输入命令: make PREFIX/usr/…

NumPy 数组计算:广播机制

文章目录 NumPy 数组计算:广播机制一、广播机制简介二、广播机制的规则1. 广播机制示例 12. 广播机制示例 23. 广播机制示例 3 三、广播机制实战1. 数组的中心化2. 绘制二维函数 NumPy 数组计算:广播机制 我们在NumPy数组的计算:通用函数中看…

Codesys FOR 循环之轴控

关于多伺服的轴控,不管怎么写都会很复杂,要么编程的时候代码行数多,要么是后期检查时非常麻烦,目前还未找到一个两全其美的方法,今天介绍的是通过FOR循环的轴控,就属于后者,代码行数较少,控制的轴数也没有限制,不需要一个轴一个的复制FB块,但是想在调试的时候实时查看…

欧冠决赛杜埃梅开二度 新星闪耀赛场

北京时间6月1日,本赛季的欧冠决赛中,19岁的杜埃表现出色,梅开二度并送出一次助攻,帮助巴黎圣日耳曼在比赛进行到73分钟时以4-0领先国际米兰。据统计,杜埃成为自1964年国际米兰名宿桑德罗-马佐拉以来,首位在欧冠决赛中完成梅开二度并且送出助攻的球员。本赛季,杜埃代表巴…

使用VSCode在WSL和Docker中开发

通过WSL,开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需使用传统虚…

《汇编语言》第12章 内中断——实验12 编写0号中断的处理程序

编写0号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串"divide error!",然后返回到DOS。 要求:仔细跟踪调试,在理解整个过程之前,不要进行后面课程的学习。 ;sy12.asm …

黑马k8s(十八)

一:安全认证 1.安全认证-概述 2.安全认证-认证方式 认证管理 3.安全认证-授权管理 因为没有授予角色deployment的权限,所以不能查看 4.安全认证-准入控制 二:DashBoard 之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的…

python:PyMOL 使用教程 及实用示例

安装参阅:开源版PyMol安装保姆级教程 百度网盘下载 提取码:csub 简介: PyMOL是一个Python增强的分子图形工具。它擅长蛋白质、小分子、密度、表面和轨迹的3D可视化。它还包括分子编辑、射线追踪和动画。 PyMol的名字来源于“Py”表示该软件基于Python这…

第十二节:第三部分:集合框架:List系列集合:特点、方法、遍历方式、ArrayList集合的底层原理

List系列集合特点 List集合的特有方法 List集合支持的遍历方式 ArrayList集合的底层原理 ArrayList集合适合的应用场景 代码:List系列集合遍历方式 package com.itheima.day19_Collection_List;import java.util.ArrayList; import java.util.Iterator; import jav…

ZC-OFDM雷达通信一体化减小PAPR——SC-FDMA技术

文章目录 前言一、SC-FDMA 技术1、简介2、原理 二、MATLAB 仿真1、核心代码2、仿真结果 三、资源自取 前言 在 OFDM 雷达通信一体化系统中,信号的传输由多个子载波协同完成,多个载波信号相互叠加形成最终的发射信号。此叠加过程可能导致信号峰值显著高于…

【算法】贪心算法

一、贪心算法基本思想 贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从 整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。 我们希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不 能对所有问题都得到整体最优解(O…

通义灵码深度实战测评:从零构建智能家居控制中枢,体验AI编程新范式

一、项目背景:零基础挑战全栈智能家居系统 目标:开发具备设备控制、环境感知、用户习惯学习的智能家居控制中枢(PythonFlaskMQTTReact) 挑战点: 需集成硬件通信(MQTT)、Web服务(Flask)、前端交互(React) 调用天气AP…

C 语言开发中常见的开发环境

目录 1.Dev-C 2.Visual Studio Code 3.虚拟机 Linux 环境 4.嵌入式 MCU 专用开发环境 1.Dev-C 使用集成的 C/C 开发环境(注:较老旧方案,适合基础学习) 2.Visual Studio Code 结合 C/C 扩展 GCC/MinGW 编译器,配置…