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 字节,定时器装初值

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

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

相关文章
|
安全 物联网 数据安全/隐私保护
uboot解决重定位后链接地址和运行地址不一致的方法
uboot解决重定位后链接地址和运行地址不一致的方法
398 0
|
物联网 开发者
演示读取TypeA TypeB nfc卡号|学习笔记
快速学习演示读取TypeA TypeB nfc卡号
演示读取TypeA TypeB nfc卡号|学习笔记
|
传感器 IDE Linux
RT-Thread ADC设备学习笔记
RT-Thread ADC设备学习笔记
679 0
【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(论文)
【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(论文)
3056 0
|
JSON Prometheus 监控
Spring Boot Actuator 健康检查、度量、指标收集、监控,一文搞定!
前言 去年我们项目做了微服务1.0的架构转型,但是服务监控这块却没有跟上。这不,最近我就被分配了要将我们核心的微服务应用全部监控起来的任务。我们的微服务应用都是SpringBoot 应用,因此就自然而然的想到了借助Spring Boot 的Actuator 模块。(没吃过猪肉总听过猪叫见过猪跑吧🤪)。
Spring Boot Actuator 健康检查、度量、指标收集、监控,一文搞定!
|
人工智能 前端开发 Java
一文彻底明白三极管
三极管,全称半导体三极管,是电子电路的核心元件,具有电流放大和开关功能。它由三个区域组成:基区、发射区和集电区,分为PNP和NPN两种类型。三极管的关键特性包括电流放大倍数(β)、输入和输出特性曲线。根据用途可分为小功率、大功率和高频三极管。其主要应用包括信号放大、开关控制和振荡电路。关注我,一起学习更多电子知识!
2438 0
一文彻底明白三极管
|
JavaScript
vue 3 element组件el-image的坑
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃ 发现了这个坑,立马来发个文章水一水
890 0
|
传感器 芯片 内存技术
超低功耗研发-STM32L151C8T6芯片(一)时钟系统概述
超低功耗研发-STM32L151C8T6芯片(一)时钟系统概述
554 0

热门文章

最新文章