基于FPGA的RFID读写器设计
摘要:设计并提出一种高频射频识别系统读写器设计的新方案。读写器采用MF RC500射频读写芯片,以FPGA作为处理器,符合ISO/IECl4-443标准,工作频率为13.56MHz,读写距离为10cm左右。给出了读写器硬件系统的组成和软件工作流程,对同时读取多张卡的情况进行了分析,实现了防冲突算法。
关键词:射频识别;改进米勒编码;曼彻斯特解码;现场可编程门阵列
O 引言
射频识别技术(RFID)是一种非接触的自动识别技术,通过无线射频的方式进行非接触双向数据通信,对目标加以识别并获取相关数据,可用来追踪和管理几乎所有物理对象。与条形码识别技术、光学符号识别技术、生物识别技术、IC卡识别技术等自动识别技术相比,RFID以它特有的无接触、抗干扰能力强、可同时识别多个物体等优点而逐渐成为自动识别中最优秀和应用最广泛的技术之一。在工业自动化、商业自动化、交通运输控制管理、防伪等众多领域,甚至军事用途都具有广泛的应用前景。RFID系统一般包括应用系统(PC主机)、读写器和电子标签三个部分。RFID电子标签(Tag)由微芯片与天线组成,每个标签具有唯一的电子编码。标签附在物体上以标识目标对象。读写器(Reader)控制射频模块向标签发射读写信号,接收标签的应答,并将信息传输到主机以供处理。用户可以通过相关控制主机或者本地终端发布命令以改变或者定制其工作模式以适应具体应用的需求。本文重点介绍读写器的开发。
1 读写器硬件结构设计
其设计以现场可编程门阵列(FPGA)作为处理器,MF RC500收发芯片作为射频模块,通过RS232串行通信模块和电平转换接口MAX232与上位机相连。系统硬件原理见图1。
1.1 射频模块
读写器对标签的读写是通过发送射频能量和对回波的接收实现的。射频模块一方面将数字模块送来的信息完成调制放大并发送,另一方面接收回波信号将其解调成基带信号,送到数字模块。读写器的RF前端子系统主要负责对电子标签数据的读取与写入。核心芯片MF RC500由飞利浦公司生产,主要应用于13.56MHz射频信号的产生、调制、解调等功能。它支持ISO14443A所有的层,适用于各种基于ISO/IEC 14443A标准并且要求低成本、小尺寸、高性能以及单电源的非接触式通信的应用场合。MF RC500负责与电子标签的射频通信,通过并行数字接口直接连接到处理器。内部的发送器部分不需要增加有源电路就能直接驱动近距离操作的天线(可达10cm)。接收器部分提供一个坚固而有效的解调电路,用于ISOl4443A兼容的应答器信号。
射频接口MF RC500芯片上带有A0、A1、A2三根地址线,用于对内部寄存器的寻址,同时DO~D7八根数据线支持地址线、数据线复用。在本设计中不采用数据线、地址线复用的接法,采用独立的数据线、地址线的接法。芯片内有64个寄存器,由处理器向芯片相应的寄存器位配置数据;由处理器读取寄存器的相应状态标志来监控芯片当前所处的状态,从而决定下一步的操作。由于片内的64个寄存器寻址需要6根地址线,当采用独立的地址线时,由于地址线只有3根,支持不了64个寄存器的寻址,为此芯片采用了分页机制。64个寄存器被分成8页,每页8个,3根地址线恰好可以实现对每一页内的8个寄存器寻址,而对于寄存器页的选择,需要配置Page寄存器的0、l、2位。Page寄存器的第7位用来选择是否采用独立的地址线,芯片复位后,Page寄存器的默认值为80H,即默认采用独立的地址线寻址方式,Page寄存器的0、l、2位仅
当第7位为1时才有效。芯片上的双向数据线DO~D7同处理器的I/O口直接相连,用来实现芯片间数据的双向并行传输。
1.2 天线
天线在整个系统中起着重要的作用,在非接触式卡与读写器之间的能量与数据传递要通过天线线圈产生的磁通量实现。可以选择2种不同的天线连接到读卡器上:50 Ω匹配的天线或者直接匹配的天线。本方案中采用的是YW-300天线,工作距离可以达到10cm。
1.3 数字模块
数字模块由处理器、存储器组成。处理器的功能有:实现与PC机通信,接收PC机命令并完成解析;将送来的EPC卡号加算CRC校验上传PC机;解决多卡碰撞,实现多卡读取;实现对射频模块的锁相环频率控制以及功率控制。
FPGA的工作过程:上电复位后,接收上位机初始化配置命令和数据,进行相应配置;若有命令传送过来,则通过接口模块接收上位机传送过来的命令;命令接收完后,进入指令分析状态,对接收到的命令进行分析判断。
在主控状态机的控制下,发送模块将把命令和内容组成数据块,进行基带编码、循环冗余校验生成,并打包成符合协议规定的数据帧,传送给射频收发模块,由其完成对信号的调制、放大、发射。电子标签根据接收的数据帧,进行指令分析,根据指令执行相应的功能。接收模块检测回波数据,当检测到回波数据的帧头有效时接收数据。同时将接收到的数据送CRC校验模块校验,校验成功即产生CRC OK=‘1’表示读卡成功。
1.3.1 发送编码模块
在ISO/IECl4443 Type A协议中,读写器到标签的通信采用改进的Miller编码方式,其标准中定义了三种序列:(A)经64个时钟后应有一个凹槽;(B)1个位内(128个时钟)没有调制;(c)1个位起始时有一个凹槽。这三种序列用于进一步编码。逻辑1用序列(A)表示。逻辑0通常用序列(B)表示,但在a.有两个或两个以上连续的0时,从第二个0开始要用序列(c)来表示所有相连的0;b.直接与起始帧相连的所有0用序列(c)表示。通信开始用序列(c)表示。通信结束用逻辑0跟序列(B)表示。无信息用至少两个序列(B)表示。如图2所示改进的Miller编码波形。
- 基于FPGA的短波通信接收机(11-19)
- FPGA的低功耗设计(07-06)
- EDA环境衔接测量软件(06-25)
- Altera 28nm FPGA助力NEC提升LTE基站性能(11-19)
- 基于FPGA的BPSK信号载频估计单元设计(09-02)
- FPGA推动5G异构无线网络(09-28)