应用

技术

物联网世界 >> 解决方案 >> 物联网方案
企业注册个人注册登录

基于FPGA的RFID无线通信系统的实现

  随着计算机技术的迅速发展,电子信息技术越来越快地普及到各行各业的应用中去。传统的物流信息采集工作方式是通过工作人员将票物进行核对,然后将票上的数据输入到计算机中。这一过程费时费力,并且可能由于各种人为过失造成各种各样错误数据的存在,影响所采集信息的可靠性。而自动识别技术利用计算机进行自动识别,增加了输入的灵活性与准确性,使人们摆脱繁杂的统计识别工作,并且大大提高了物流信息采集的工作效率。目前,由沃尔玛、麦德隆等大超市一手推动的RFID应用,为零售业带来包括降低劳动力成本、商品的可视度提高,降低因商品断货造成的损失,减少商品偷窃现象等好处。其可应用的过程包括:商品的销售数据实时统计,补货,防盗等。本文利用RFID技术,用FPGA芯片与NRF905搭建了无线通信系统,成功的实现了无线收发数据。

  1 系统设计

  1.1 RFID简介

  RFID(Radio Frequency Identification,射频识别技术)是利用无线电波对记录媒体进行读/写。射频识别的距离可达几十厘米至几米,且根据读/写的方式,可以输入数千字节的信息,同时,还具有极高的保密性。射频识别技术适用的领域:物料跟踪、运载工具和货架识别等要求非接触数据采集和交换的场合,要求频繁改变数据内容的场合尤为适用。如香港的车辆自动识别系统驾易通,采用的主要技术就是射频技术。射频技术在其他物品的识别自动化管理方面也得到了较广泛的应用。

  如图1所示即为本无线系统的整个构架,由控制模块,SPI模块以及天线模块构成。其中对SPI模块的配置由控制模块通过Wishbone总线来完成,并且对天线模块的配置,模式转换,收发数据等操作均由控制模块通过SPI总线来完成。下面将就各个部分进行说明。

   基于FPGA的RFID无线通信系统的实现

  1.2 天线模块(NRF905收发模块)

  1.2.1 NRF905介绍

  NRF905是挪威Nordic公司推出的单片射频发射器芯片,工作电压为1.9~3.6 V,32引脚QFN封装,工作于433/868/915MHz三个ISM频道。可以自动完成处理字头和CRC(循环冗余码校验)的工作,可由片内硬件自动完成曼彻斯特编码/解码,使用SPI接口与微控制器通信,配置方便,功耗低,以-10 dBm的输出功率发射时电流只有11 mA,在接收模式时电流为12.5 mA。

  NRF905有ShockBurst接收与ShockBurst发送两种工作模式;掉电和SPI编程与Standby和SPI编程两种节电模式。其ShoekBurst工作模式的特点是自动产生前导码和CRC,可以通过SPI接口进行编程配置。NRF905的工作模式由对TRX_CE,TX_EN,PWR_UP的设置来设置,见表1。

   基于FPGA的RFID无线通信系统的实现

  1.2.2 NRF905配置与工作过程

  nRF905的所有配置都通过SPI接口进行。SPI接口由5个寄存器组成,一条SPI指令用来决定进行什么操作。SPI接口只有在掉电模式和Standby"模式是激活的。

  其中SPI接口的5个寄存器分别为:

  (1)状态寄存器:寄存器包含数据就绪DR和地址匹配AM状态。

  (2)RF配置寄存器:寄存器包含收发器的频率、输出功率等配置信息。

  (3)发送地址:寄存器包含目标器件地址,字节长度由配置寄存器设置。

  (4)发送有效数据:寄存器包含发送的有效Shock Burst数据包数据,字节长度由配置寄存器设置。

  (5)接收有效数据:寄存器包含接收到的有效ShockBurst数据包数据,字节长度由配置寄存器设置。在寄存器中的有效数据由数据准备就绪DR指示。

  ShoekBurst技术使nRF905能够提供高速的数据传输,而不需要高速控制器来进行数据处理或时钟覆盖。通过将与RF协议有关的高速信号处理放到芯片内,nRF905提供给应用控制器一个SPI接口,速率由微控制器自己设定的接口速度决定。nRF905通过ShockBurst工作模式在RF以最大速率进行连接时降低数字应用部分的速度来降低在应用中的平均电流消耗。在ShockBurst RX(接收)模式中,地址匹配AM和数据准备就绪DR信号通知控制器一个有效的地址和数据包已经各自接收完成。在ShockBurst TX(发送)模式中,nRF905自动产生前导码和CRC校验码,数据准备就绪DR信号通知控制器数据传输已经完成。

  1.3 SPI模块

  1.3.1 SPI总线介绍

  SPI(Serial Parallel Bus)总线是Motorola公司提出的一个同步串行外设接口,容许CPU与各种外围接口器件,以串行方式进行通信。它使用4条线:串行时钟线(SCK)、主机输入/从机输出线(MISO)、主机输出/从机输入线(MOSI)、低电平有效的使能信号线(SS)。这样,仅需3~4根数据线和控制线即可扩展具有SPI接口的各种I/0器件。

  SPI总线模式的数据是以字节为单位进行传输的(一次传输可以传多个字节),每字节为8位,每个命令或者数据块都是字节对齐的(8个时钟的整数倍)。数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到每秒几兆比特。SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件。在本文设计的无线通信系统中,由FPGA实现的SPI总线接口模块为主机,NRF905的SPI模块为从机。

  SPI时序模式的选择:

  SPI接口有4种不同的数据传输时序,取CPOL和CPHL这两位的组合。CPOL是用来决定SCK时钟信号空闲时的电平;CPOL=O,空闲电平为低电平,CPOL=1时,空闲电平为高电平。CPHA是用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样;CPHA=1,在每个周期的第二个时钟沿采样。