打印
[其他ST产品]

基于STM32的RFID监控系统设计

[复制链接]
559|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Radio Frequency Identification技术,即RFID技术又称为射频识别技术和无线射频识别技术,是一项应用非常广泛的、发展中的技术,发展至今,其历史已临近百年。随着其发展,人们对与系统的安全性,以及标签体积样式和存储容量等方面都有了更高的要求。本文以STM32F103RCT6微处理器为核心,配合CR95HF射频芯片构成符合ISO/IEC 14443标准的便携读卡器。


使用特权

评论回复
评论
而服务器人 2022-12-27 16:03 回复TA
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_42625444/article/details/103261910 ———————————————— 版权声明:本文为CSDN博主「电子开发圈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_42625444/article/details/103261910 
沙发
而服务器人|  楼主 | 2022-12-27 16:00 | 只看该作者
系统终端硬件包含两部分:基于STM32103RCT6处理器的控制单元和基于RC522的射频单元。控制单元是整个终端的控制枢纽;控制板集成了USB了接口、RS232接口LCD触摸屏接口,方便了系统调试和二次开发。射频单元以RC522为核心,配置了低通滤波器电路和功率放大器电路,能够满足ISO/IEC14443A协议的标签。

使用特权

评论回复
板凳
而服务器人|  楼主 | 2022-12-27 16:01 | 只看该作者
RFID系统的构成

RFID系统是由读写器、电子标签两大部分组成的。在本论文中,读写器是很重要的一部分。系统中电子标签的作用是存储设备的信息等,是整个RFID系统的信息载体组成,电子标签内的数据由用户用读写器自行写入。读写器是RFID系统的核心,能够由它来完成对电子标签信息的读写,读写器与电子标签的通信必须要按照统一的协议标准,否则无法实现对标签信息的读写。

使用特权

评论回复
地板
而服务器人|  楼主 | 2022-12-27 16:02 | 只看该作者
阅读器由于使用的不一样的结构和技术能够分成读或者读/写装置,它是操控和处理RFID系统消息的重要部分。阅读器一般是由耦合模块、收发模块、控制模块和接口单元组合而来。阅读器和应答器之间通常使用半双工通信模式进行消息的互换,在这基础上阅读器利用耦合给无源应答器提供能量和时序。在正常使用过程中,能够更有效的利用Ethernet或WLAN等完成对物体识别信息的采集、处理及远程传送等管理功能。应答器承载着RFID系统的内部消息,应答器一般都是由耦合原件(线圈、微带天线等)和微芯片组成无源单元。

使用特权

评论回复
5
而服务器人|  楼主 | 2022-12-27 16:02 | 只看该作者
而电子标签分为两部分即电子芯片部分和天线部分,电子芯片主要用于存储数据,而天线主要作用为收发在标签和读取器之间的射频信号。RFID系统组成结构图如下图所示。

使用特权

评论回复
6
而服务器人|  楼主 | 2022-12-27 16:04 | 只看该作者
RFID读写器工作原理

RFID读写器的命令收发链路由发射机和接收机两部分组成,发射机部分主要功能是产生射频信号,让系统的前端天线发射出去。此部分主要由调制器、振荡器、上变频、带通滤波器和高频功率放大等组成。其结构图如图所示。

使用特权

评论回复
7
而服务器人|  楼主 | 2022-12-27 16:06 | 只看该作者
接收机部分的功能与发射机恰好相反。接收机主要是接收射频信号。天线接收标签向空间的反向散射信号,经过带通滤波器滤除高频信号后,然后低噪声放大器将接收到的信号进行放大,接着调制解调器对放大的信号进行解调,最后将射频信号变为数字基带信号。接收机的方框图如下图所示。

使用特权

评论回复
8
而服务器人|  楼主 | 2022-12-27 16:07 | 只看该作者

本设计采用ARM处理器和RFID射频处理单元相结合的方案。这种方案开发难度相对较低,开发周期较短,釆用ARM处理器能获得较高的性能和丰富的接口,很好满足功能需求。

使用特权

评论回复
9
而服务器人|  楼主 | 2022-12-27 16:08 | 只看该作者
设计中将控制单元和射频单元分开,做成两个电路板。巡检终端结构如下图所示。

使用特权

评论回复
10
而服务器人|  楼主 | 2022-12-27 16:08 | 只看该作者
控制单元总体结构

控制单元电路包括STM32F103RCT6处理器及其外部接口设计。重点包括GPRS接口电路设计,GPS电路接口设计,RFID接口电路设计。

使用特权

评论回复
11
而服务器人|  楼主 | 2022-12-27 16:11 | 只看该作者
STM32F103RCT6外部配置电路主要包括FLASH存储电路、SDRAM电路、RS232接口电路、触摸屏接口电路、USB接口电路,电源模块电路和JTAG调试接口电路等。控制单元硬件电路图如下图所示。

使用特权

评论回复
12
而服务器人|  楼主 | 2022-12-27 16:11 | 只看该作者

主处理器STM32F103RCT6:整个电路的控制中心,实现与RFID模块命令交和信息处理;串口、JTAG接口主要实现软件调试,为未来功能拓展预留调试接口;USB接口提供多种方式的信息传输;电源管理模块、FLASH存储模块是STM32F103RCT6正常工作的必要电路;LCD触摸屏和按键接口为整个终端提供了良好的人机接口,方便操作使用。

使用特权

评论回复
13
而服务器人|  楼主 | 2022-12-27 16:12 | 只看该作者
编程的总体思路

本RFID系统的目的是通过终端扫描设备标签的RFID编号,将设备的编号、记录时间及设备的状态信息传送到处理器中,总体的变成思路如图所示,所以本系统的编程需要两个部分,一个是阅读器判断标签是否注册的介绍,另一个是Key0判断卡片是否上锁的介绍。使用的是MDK5.10对STM32103RCT6进行编程,上位机用的是C#进行编程。

使用特权

评论回复
14
而服务器人|  楼主 | 2022-12-27 16:13 | 只看该作者

使用特权

评论回复
15
而服务器人|  楼主 | 2022-12-27 16:13 | 只看该作者
Stm32与M1卡通信的流程图如图所示:

使用特权

评论回复
16
而服务器人|  楼主 | 2022-12-27 16:14 | 只看该作者
寻卡

M1射频卡的通讯协议和通讯波特率是定义好的,当有卡片进入读写器的操作范围时,读写器以特定的协议与它通讯,从而确定该卡是否为M1射频卡,即验证卡片的卡型。调用的函数及参数解释如下所示:

参数说明: req_code[IN]:寻卡方式

使用特权

评论回复
17
而服务器人|  楼主 | 2022-12-27 16:23 | 只看该作者
0x52 = 寻感应区内所有符合14443A标准的卡

0x26 = 寻未进入休眠状态的卡

pTagType[OUT]:卡片类型代码

0x4400 = Mifare_UltraLight

0x0400 = Mifare_One(S50)

0x0200 = Mifare_One(S70)

0x0800 = Mifare_Pro(X)

0x4403 = Mifare_DESFire

返回: 成功返回MI_OK

char PcdRequest(u8 req_code,u8 *pTagType)

向 FIFO 中写入 PICC_REQIDL 命令,通过 PCD_TRANSCEIVE 命令将 FIFO 中数据通过天线发送出去,此时若有卡在天线作用范围内,将识别命令,并返回卡类型;由于本次采用的是M1卡,所以返回的值是0x0400,具体程序请参考附录。

使用特权

评论回复
18
而服务器人|  楼主 | 2022-12-27 16:27 | 只看该作者
防冲突机制

当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作,未选中的则处于空闲模式等待下一次选卡,该过程会返回被选卡的序列号。调用的函数及参数解释如下所示:

参数说明: pSnr[OUT]:卡片序列号,4字节

返回: 成功返回MI_OK

char PcdAnticoll(u8 *pSnr)

使用特权

评论回复
19
而服务器人|  楼主 | 2022-12-27 16:28 | 只看该作者
选择卡片

选择被选中的卡的序列号,并同时返回卡的容量代码。调用的函数及参数解释如下所示:

参数说明: pSnr[IN]:卡片序列号,4字节

返回: 成功返回MI_OK

char PcdSelect(u8 *pSnr)

向 FIFO 中写入 PICC_SElECTTAG+0x70+卡序列号,通过 PCD_TRANSCEIVE 命令将 FIFO中数据通过天线发送出去,卡返回卡容量(对于 MIFARE 1 卡来说,可能为 88H 或08H ),具体程序请参考附录。

使用特权

评论回复
20
而服务器人|  楼主 | 2022-12-27 16:28 | 只看该作者
三次互相确认(验证卡片密码)

选定要处理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进行密码校验,在三次相互认证之后就可以通过加密流进行通讯。(在选择另一扇区时,则必须进行另一扇区密码校验),具体程序请参考附录。调用的函数及参数解释如下所示:

功能:验证卡片密码

参数说明: auth_mode[IN]: 密码验证模式

0x60 = 验证A密钥

0x61 = 验证B密钥

addr[IN]:块地址

pKey[IN]:密码

pSnr[IN]:卡片序列号,4字节

返回: 成功返回MI_OK

char PcdAuthState(u8 auth_mode,

u8 addr,u8 *pKey,u8 *pSnr)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

335

帖子

0

粉丝