微波EDA网,见证研发工程师的成长!
首页 > 微波射频 > 射频工程师文库 > 基于FPGA的915MHz射频读卡器设计

基于FPGA的915MHz射频读卡器设计

时间:04-25 来源:电子技术应用 点击:

射频识别(RFID)技术是一种非接触式的自动识别技术,通过射频信号自动识别目标对象并获取相关信息。通常RFID系统主要由应用软件、射频卡以及读卡器三部分构成[1]。相对于低频段的RFID系统,工作在860 MHz~960 MHz的超高频段(UHF)RFID系统有着读取距离远、阅读速度快等优点,是目前国际上RFID技术发展的热点[2]。读卡器的设计是RFID系统设计中的关键部分,设计方案有很多种。FPGA[3]具有开发简单、静态可重复编程和动态在线编程的特点,已经成为当今应用最广泛的可编程专用集成电路。目前生产RFID产品的很多公司都使用自己的标准,可供射频卡使用的几种标准有ISO/IEC 11784、ISO/IEC 14443、ISO/IEC 15693和ISO/IEC 18000等。其中应用最多的是ISO/IEC 14443、ISO/IEC 15693和ISO/IEC 18000这三个标准[4]。本文基于ISO/IEC 18000-6 Type B协议设计了一款工作频率为915 MHz的读卡器。
1 读卡器的硬件设计
读卡器的硬件可以分为三大模块:FPGA数字信号处理模块、MCU及人机接口模块和射频收发模块,其结构框图如图1所示。FPGA数字信号处理模块用来实现ISO/IEC 18000-6 Type B 协议中规定的基带数据编解码,MCU及人机接口模块用来实现指令的跳转控制和返回数据的显示等一些操作接口,射频收发模块用来处理前端的超高频信号。

\

1.1 FPGA数字信号处理模块
FPGA数字信号处理模块包含时钟分频模块、FIFO、曼彻斯特编码器、CRC生成校验、FM0解码器、串并变换电路及对应的帧发送接收控制器,其结构框图如图2所示。

\

该模块的内部工作流程如下:
(1)发送部分
①数据通信接口8 bit并行接收来自MCU的命令数 据,数据在FIFO中缓冲。
②数据做并行到串行的转换。
③在发送控制器的控制下,串行数据通过CRC模块,生成16 bit的CRC校验值,并附加在原数据的后面。
④根据ISO/IEC 18000-6 Type B协议规定,把上述的数据进行曼彻斯特编码。
⑤把已经过曼彻斯特编码的数据引向一个已预置帧头的移位寄存器,数据一到便启动移位寄存器,然后把输出数据传送给射频收发模块。
(2)接收部分
①从射频收发模块接收一帧基带信号,用移位寄存器来检测帧头。若检测到帧头,则发一个收到帧头的信号给接收控制器。
②若接收控制器接收到帧头的信号,则马上启动FM0解码。
③解码后的数据传送给串/并行的转换电路,转换后的数据暂存在FIFO。
④同时解码后的数据也送给CRC模块进行校验,若校验结果错误,则清除存于FIFO中的数据,通知MCU其接收的数据错误;若校验结果正确,则把FIFO中的数据传送给MCU。
1.2 MCU及人机接口模块
MCU及人机接口模块以C8051F020单片机[5]为核心,由FPGA接口、LCD、PS/2键盘、UART接口以及JTAG接口等外围电路组成,其结构框图如图3所示。

\

该模块实现的功能有:(1)C8051F020负责整个读卡器内各部分的协调工作(包括与计算机的数据通信);(2)在启动时向FPGA传送配置数据,初始化FPGA;(3)在读卡过程中向FPGA传送读卡命令,然后通过INT1中断启动接收FPGA信号;(4)处理接收回来的射频卡信息(卡号、密码等);(5)实现二进制树形防碰撞功能;(6)驱动LCD,显示系统的提示信息;(7)扩展一个PS/2键盘,可以输入数据及命令;(8)控制 TR1000芯片,设置OOK发射方式或ASK接收方式;(9)控制发射功率大小;(10)扩展EEPROM,存储读出的射频卡的信息。
1.3 射频收发模块
超高频段射频收发模块的开发一般可以采用两种方案:一是采用分立元件搭建射频电路;二是采用无线射频收发模块以实现基带信号的调制解调[6]。由于第一种方法的电路调试比较麻烦,而且会占用很长的开发时间,所以本设计采取第二种方案。
ISO/IEC 18000-6 Type B 协议规定读卡器到射频卡端的射频调制方式为调制深度为99%的ASK调制,也就是可以近似看作为OOK调制;而射频卡到读卡器端的射频调制方式为反向散射调制,其调制方式与ASK调制类似,所以在解调端可以按照ASK方式解调。射频收发模块的核心芯片采用RFM公司的TR1000芯片。TR1000是一款单片OOK/ASK通用无线射频收发器芯片,适合高稳定、小尺寸、低功率、低价格的短距离无线数据通信和无线控制应用。
2 读卡器的软件系统设计
软件设计采用模块化和结构化的编程思想,在初始化的时候由单片机配置FPGA。考虑到C语言可读性强,移植性好以及MCU的实际情况,本设计采用C语言对C8051F020进行编程。读卡器的软件系统大致可以分为:读写卡操作程序、防冲突程序和串行通信程序。
2.1 读写卡操作程序
读写卡操作程序完成基于ISO/IEC 18000-6 Type B协议的基带信号编解码,其程序设计流程图如图4所示。
具体工作过程如下:(1)上电复位,系统初始化,包括单片机时钟、端口、LCD、定时器的初始化,配置FPGA和开中断。(2)等待接收上位机或键盘发送的指令。(3)对指令进行判断,如果为多卡操作,则进入防冲突子程序;如果为单卡操作,则直接进行读卡、写卡、值操作和中止操作。(4)若操作成功,所得数据回传给上位机,同时驱动LCD显示操作成功信息;若操作失败,则驱动LCD显示操作失败信息。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top