一种有源RFID局域定位系统设计

  随着社会的发展,定位技术越来越受到关注。现有的定位技术如GPS定位,红外定位等,考虑到精度,成本,可行性等方面,都有一定的局限性,尤其是在一些屏蔽物遮挡的局域定位的场合。射频识别(RFID)定位技术以其非接触、高灵敏度和低成本等优点,在这种场合下成为一种重要技术选择,受到人们越来越多的关注。

  在多标签定位系统中必然会出现多个标签同时与读写器通信产生信号碰撞的情况。目前RFID多标签防碰撞算法有多种:多址技术、ALOHA防碰撞算法、二进制防碰撞算法等。多址防碰撞算法是以增加系统的复杂性和提高成本为代价,且有无法克服的缺陷;ALOHA防碰撞算法有时会导致读写器出现错误判断,对某个标签是否在读写范围内产生误判,同时还存在冲突概率较大的问题;简单的二进制防碰撞算法有时并不能够取得很好的避碰效果。文中采用基于序列号对时隙数运算的排序算法,该算法可以克服上述误判的问题,并且易于实现、效率高、软件编写简单,可以不受标签数量的限制,是一种稳定可靠、实用性强的防碰撞算法。RFID定位算法有:LANDMARC、基于信号达到角度的定位法(AOA)等,这里采用圆周定位算法,该方法简单可靠,易于在线实施,且具有一定定位精度。

  1 系统结构设计

  本系统主要由读写器和有源标签组成。读写器与标签之间的射频信号通过空间耦合实现无接触信息传递,读写器通过与标签的无线通信,获得接收信号强度指示(RSSI)值,这是对待定位标签进行位置计算的重要参数。微控制器PIC16F877A控制CC2500射频收发模块的数据发送与接收。读写器网关节点可通过RS232接口与上位机相连。系统结构框图如图1所示。

  一种有源RFID局域定位系统设计

  图1 系统结构框图

  读写器与标签的控制模块均采用Microchip公司的8位高性能、低功耗微控制器PIC16F877A作为主控芯片,它在架构上采用哈佛总线结构,数据总线和指令总线分离,便于实现全部指令的单字节化,单周期化,从而有利于提高CPU执行指令的速度。此外,片上数据存贮空间比较大,充足的存储空间,可以方便通信协议栈的设计与实现。内部看门狗定时器,提高了程序执行的稳定性;低功耗休眠模式,大大降低了系统的功耗。它具有驱动能力强、外接电路简洁、功耗低等特点。因此适合于作为RFID读写器的控制器来使用。

  射频收发器选用CC2500作为控制芯片,CC2500集成了一个数据传输可达500 kbps的高度可配置的调制解调器,大大加强了数据传输的性能,同时通过开启集成在调制解调器上的前向误差校正选项,使性能得到大幅度提升。MCU通过SPI接口向CC2500发送操作命令,配置其调制方式、工作频率等参数,通过指令将其配置为接收状态、发送状态、空闲状态或休眠状态。CC2500的引脚SO和SI分别为数据传输的输出和输入信号线,CSN为片选信号引脚,SCLK为时钟信号引脚。当其接收到一个数据或发送完一个数据,都会通过引脚GD00和GD02输出相应的状态脉冲,MCU据此来判断CC2500的状态,从而决定对CC2500的下一步操控。微控制器PIC16F877A和CC2500收发器模块的连接如图2所示。

  一种有源RFID局域定位系统设计

  2 多标签识别防碰撞算法设计

  定位系统涉及多个标签与读写器之间的实时通信,需要解决多标签识别信号碰撞问题。基于序列号对时隙数运算的排序算法具有算法易于实现、响应速度快、执行效率高等特点,是时分复用方法的一种。利用微控制器PIC16F877A通过SPI接口来控制CC2500数据的发送时隙,将标签作为应答器,基于序列号对时隙数运算的排序算法的实现流程如下:

  在争用周期内,首先利用标签序列号除以争用周期时隙数所得的余数来确定标签在争用数据帧内的发送时隙;然后利用标签序列号除以争用周期时隙数所得的商确定标签在争用帧内相应时隙的发送位,然后在争用周期内发送的争用数据帧的相应时隙发送位填充数据"1";最后利用填充过的争用数据帧确定标签在整个数据发送周期内的发送顺序(即标签的发送顺序=其发送位及其前面各发送位中"1"的总数),从而给不同序列号的标签分配不同的发送时序。本设计用了9个待定位标签,利用上述算法进行标签识别排序,具体流程如图3所示(这里的应答器指标签应答器)。