RFID 阅读器介绍 | 学习笔记

简介: 快速学习 RFID 阅读器介绍

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:RFID 阅读器介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11117


RFID 阅读器介绍

RFID 阅读器

阅读器 PCD

RFID 消费电子一块,要求不高,使用国产 FM17550,要求较高使用 MFRC522,二者是兼容的,国产较为便宜

1、读写器:

(1)通信频率,固定 13.56MHz

(2)支持协议,TypeA 类或 TypeB 类、ISO/IEC 14443 协议,阅读器只要是13.56MHz 都可以完成,如 NFC 等

(3)读写距离,10cm 以内

(4)通信速率

(5)寄存器配置,所有开发者可发的寄配器,SDK、inf 等都是厂商提供,不需要自己写自己写较为困难,需要长时间调试稳定,一般使用官方接口完成所有寄配器配置,只需要粗略了解

天线发送,接收

系统复位

调制方式

缓存区操作

(5)常见的有 FM17550,FM17522,MFRC523,MFRC522

17550 兼容 522,17522 国产

17550 有官方数据手册,英文翻译为中文

image.png

官方数据手册内容较多,多是寄存器介绍,

支持三种通讯接口

2、软件通信接口,手册都有详细介绍

SPI,I2C,UART。UART 简单,没有时间改造卡片硬件功能,改造充放电电路后可以直接连接到电脑使用,相当于不要要 MC u 采集,直接连接上位机,是窗口的优势。如果原先使用单片机使用 I2C、SPI 都是可以的

3、数据流

上位机<-->读写器<-->射频卡

整个流程为射频卡通过读写器,读写器为 17550 或 552,,射频卡是白色的 s50卡,上位机是单片机 MCU,另一个上位机的服务器 service,是基本流程

4、软件架构

(1)软件通信接口初始化

(2)读写器初始化

(3)根据相应射频协议组包,通过读写器与射频卡通信

5、对于 FM17550 串口配置

(1)FM17550 等读写器默认复位后串口配置为:

波特率为 9600(默认配置)

无奇偶校验位

无硬/软流控

数据位为 8bit

1 位停止位

(2)在 linux 下配置串口应按上述配置,尤其注意我们需要将串口配置成原始输出模式,以及关闭软流控

linux 下系统配置串口方法较多,在网上可以查询到,有 40 多年的历史

image.png

绿色板是卡片外形,有核心芯片,各种器件构成一个系统,背面是一个线圈,线圈涉及到 PCD 板,早期使用过一堆线圈绕在上面,容易损坏,这个不容易坏。使用串口,将 RX 引出,接到开发板接口,五根线,有电源线、地线、2 个数据收发、RST是一个复位信号线,让设备工作之前,提供信号

6、硬件复位

(1)外部 I0,保持低电平一定时间

使用射频之前,提供低电平,提供脉冲,大约 50 毫秒,提供脉冲后,恢复高电平,相当于复位正常工作,可以通过硬件电路做,提供脉冲希望设备可控,电路板接死是不可控

7、确认复位成功

(1)读地址为 0x37h 的版本寄存器的值

(2)mfrc522——Ox92

(3)fm17550————0x88

8、接下来步骤:寻卡、防冲突,选卡,操作卡

9、软件复位

向 CommIEnReg 寄存器写复位命令

10、发送部分

TxModeReg 寄存器,根据 A 类,B 类设置相应 bit

以上操作都是对寄存器的操作

image.png

绿色是卡片,一面是线圈,一面是芯片,白线连接的是串口,黑线是控制线,引出控制器,去掉黑线可以直接通过电脑控制

10、接收部分

RxModeReg 寄存器,根据 A 类,B 类设置相应 bit

11、天线

TxControlReg 寄存器

12、特征参数

(1)Status2Reg 寄存器,关闭加密传输

(2)ModeReg 寄存器,根据 A 类,B 类设置相应的 CRC 校验值(3)TReloadRegL、TReloadRegH、TModeReg、TPrescalerReg 寄存器用于设置定时器

(4)TxASKReg 寄存器设置调制方式,A 类 100%ASK,B 类无需 100%ASK

image.png

13、上位机主动借助读写器与卡片通信

14、读写器内部有 64 字节的 FIFO 缓存区

(1)FIFOLEVELREG: 该寄存器表示缓存区内的待读取数据字节数

(2)FIFODATAREG: 64 字节的 FIFO 缓存区,上位机将要发送给射频卡的数据写入该寄存器,或上位机根据 FIFOLEVELREG 得到可用数据字节数N,连续读取 N 它节该寄存器得到读写器接收到射频卡的回应

通讯过程要下指令读取数据

(3)由于在通信过程中,数据接收可能存在非全字节,即可能为 5bit,而非完整的 8bit,出现非全字节的情况发生在按收数据的最后一个字节,所以我们需要对最后一字节内的比特数进行判断

(4)CONTROLREG: 寄存器内的 rxlastbits 位,该标志位表明最后一字节内的比特数

(5)实际接收到的数据比特位总数为:

假设 FIFOLEVELREG 读的值 N,N 字节

实际接收的数据比特位总数=(N-1)*8 +rxlastbits

读取数据的完整性如何保证

15、COMMANDRE G,该命令寄存器里的 command 位,可以写入相应的值代表相应的命令:

(1)(RESETPHASE)1111 代表读写器立即软复位命令

(2)(TRANSCEIVE)1100 代表读写器准备发送并接收射频卡的数据。

(3)读写器执行 TRANSCEIVE 命令收发数据前,需要将 BITFRAMINGREG 寄存器内的 startsend 位置 1 来开启信号发射。

(4)由于指令寄存器不会自动清空,所以最好在发指令前,通过写入 PCD_IDLE 指令来终止上一条指令

有什么命令、命令如何启动、停止

16、根据 14443 协议规定读卡器发送数据后,在 25ms 内阅读器必须接收到射频卡的响应,否则该次通信失效。

17、实现 25ms 定时:

(1)上位机可以启动定时器或通过软件延时

(2)也可以利用阅读器内部的定时器:

TMODEREG: 内部的 Tauto 位可以在读写器无线数据通信时,自动开启定时器

TPRESCLALERREG: 与 TMODEREG 的低两位组成一个 10 位的分频器

TRELOADHIREG,TRELOADLOREG: 共 2 字节,定时器装初值

芯片内部自带的定时器使用

有关阅读器,寄存器只有一边阅读代码才能够一边去理解。

相关文章
【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(论文)
【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(论文)
2321 0
|
网络协议
移远EC600N 4G模块连接步骤
移远EC600N 4G模块连接步骤
1201 0
|
并行计算 PyTorch 算法框架/工具
anaconda+pytorch+opencv安装及环境配置
anaconda+pytorch+opencv安装及环境配置
1183 0
|
开发框架 算法 安全
RFID 卡片型号及卡号获取 | 学习笔记
快速学习 RFID 卡片型号及卡号获取
RFID 卡片型号及卡号获取 | 学习笔记
|
4月前
|
云安全 弹性计算 安全
高危预警:用友 U8 Cloud 漏洞成勒索攻击新入口
近期,用友U8 Cloud多个高危漏洞遭 exploited,导致阿里云客户遭遇勒索攻击。涉及反序列化、远程命令执行及文件上传漏洞,影响2.0至5.1全系列版本。攻击者可任意执行代码、加密数据勒索。建议立即修补、备份并启用安全防护措施。
|
5月前
|
机器学习/深度学习 存储 自然语言处理
NLP参数高效迁移学习:Adapter方法——论文简读
本研究深入探讨了自然语言处理中参数高效的迁移学习方法——Adapter。通过在预训练模型中引入小型可训练模块,仅调整少量额外参数即可完成模型适配。理论分析表明,该方法在初始化时保持网络行为稳定,并通过瓶颈结构大幅压缩参数规模。实验结果显示,Adapter在GLUE基准上仅用3.6%的参数便达到接近全微调的性能,且对学习率具有更强的鲁棒性。相比传统微调和其他参数高效方法,Adapter在多任务场景下展现出更优的存储效率与泛化能力,为大规模模型的实际部署提供了高效可行的解决方案。
372 7
|
7月前
|
Web App开发 Linux API
模拟微信内置浏览器,微信UA生成器,支持指纹代理IP
该实现包含完整的微信浏览器模拟功能,支持UA生成、指纹伪装和代理IP管理。使用时需要安装sele
|
传感器 存储 Ubuntu
一步一步学会蓝牙开发之 ESP-IDF GATT Server 示例解析
学习蓝牙的 GATT 开发,我们从示例代码,一段代码一段代码进行详细分析说明
3206 2
一步一步学会蓝牙开发之 ESP-IDF GATT Server 示例解析
|
JavaScript
vue 3 element组件el-image的坑
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃ 发现了这个坑,立马来发个文章水一水
712 0
|
Shell Linux Windows
忘掉Iterm2,试试这款跨平台终端工具
Mac用户最多的用的就是Iterm2了,windows之前因为丑陋的终端也开发了新的终端工具,很神奇的是,很长一段时间里,都没有一款真正好用的能跨平台的终端工具,直到我发现了hyper。无论Windows、Mac、Debian、Fedora还是其他Linux系统,hyper都能支持。
1444 0
忘掉Iterm2,试试这款跨平台终端工具