基于RFID技术的多标签定位系统设计*
2012-03-15张颖李凯
张颖,李凯
(上海海事大学 信息工程学院,上海 201306)
定位技术是一种应用广泛的高科技技术。目前常见的定位技术主要有GPS卫星定位、红外定位、超声波定位、WiFi网络定位、GPRS/CDMA移动通讯技术定位等,但是受定位时间、定位精度以及复杂室内环境等条件的限制,并考虑到精度、成本、可行性等因素,这些方法都存在一定的局限性,尤其是在一些室内和屏蔽物遮挡的局域定位的场合。无线射频识别RFID(Radio Frequency Identification)定位技术以其非接触、高灵敏度和低成本等优点,在许多场合下成为一种重要技术选择,受到越来越多的关注。
因RFID定位系统涉及多标签识别的问题,系统必然会出现多个标签同时与读写器通信产生信号碰撞的情况。目前RFID多标签防碰撞算法有多种:多址技术、ALOHA防碰撞算法、二进制防碰撞算法等。多址防碰撞算法是以增加系统的复杂性和提高成本为代价,且有无法克服的缺陷;ALOHA防碰撞算法有时会导致读写器出现错误判断,对某个标签是否在读写范围内产生误判,同时还存在冲突概率较大的问题;简单的二进制防碰撞算法有时并不能取得很好的避碰效果。本文采用基于序列号对时隙数运算的排序算法,该算法可以克服误判问题,且易于实现、效率高,不受标签数量的限制。RFID定位算法有:LANDMARC、基于信号达到角度的定位法(AOA)圆周定位算法等[3-4]。这里采用圆周定位算法,该方法简单可靠,易于在线实施。
1 硬件系统设计概述
本系统主要由读写器和有源标签组成。读写器与标签之间的射频信号通过空间耦合实现无接触信息传递,读写器通过与标签的无线通信获得接收信号强度指示(RSSI)值[5],这是对待定位标签进行位置计算的重要参数。微控制器PIC16F877A控制CC2500射频收发模块的数据发送与接收[6-7]。读写器网关节点可通过RS232接口与上位机相连。系统结构如图1所示。
系统控制器采用Microchip公司的8 bit高性价比微控制器PIC16F877A作为主控芯片,它在架构上采用哈佛总线结构,数据总线与指令总线分离,便于实现全部指令的单字节化、单周期化,从而有利于提高CPU执行指令的速度。此外,片上数据存储空间比较大,可以方便通信协议栈的设计与实现。内部看门狗定时器,提高了程序执行的稳定性;低功耗休眠模式,大大降低了系统的功耗。它具有驱动能力强、外接电路简洁、功耗低等特点。因此适合作为RFID读写器的控制器来使用。
射频收发器选用德州仪器公司的CC2500[7-8]作为控制芯片,CC2500集成了一个数据传输可达500 kb/s的高度可配置的调制解调器,大大加强了数据传输的性能,同时通过开启集成在调制解调器上的前向误差校正选项,使性能得到大幅度提升。MCU通过SPI接口向CC2500发送操作命令,配置其调制方式、工作频率等参数,通过指令将其配置为接收状态、发送状态、空闲状态或休眠状态。CC2500的引脚SO和SI分别为数据传输的输出和输入信号线,CSN为片选信号引脚,SCLK为时钟信号引脚。当其接收到一个数据或发送完一个数据时,都会通过引脚GDO0和GDO2输出相应的状态脉冲,MCU据此来判断CC2500的状态。
2 多标签识别防碰撞算法设计
基于序列号对时隙数运算的排序算法[8]是时分复用方法的一种,具有易于实现、执行效率高等特点。利用PIC16F877A通过SPI接口来控制CC2500数据的发送时隙,将标签作为应答器,基于序列号对时隙数运算的排序算法的实现流程如下:在争用周期内,首先用标签序列号除以争用周期时隙数所得的余数来确定标签在争用数据帧内的发送时隙;然后用标签序列号除以争用周期时隙数所得的商确定标签在争用帧内相应时隙的发送位,然后在争用周期内发送的争用数据帧的相应时隙发送位填充数据“1”;最后利用填充过的争用数据帧确定标签在整个数据发送周期内的发送顺序 (即标签的发送顺序 =其发送位及其前面各发送位中 “1”的总数),从而给不同序列号的标签分配不同的发送时序。例如采用9个待定位标签,利用上述算法进行标签识别排序,具体流程如图2所示。
图2倒数第二行为9个标签的发送时序,发送的时序是 A0,A4,A8,A1,A5,A2,A6,A3,A7。
设标签序列号长度为 LID(序列号以二进制形式表示),标签 j的序列号为 Ij,标签数量为 M(M≤2LID),信道争用开始指令的发送时间为T0,休眠指令的发送时间为T1,数据发送周期的数据帧长度为T;争用周期的时隙数为MTS(MTS2≥2LID),时隙长度为 t(设每个时隙内的发送数据长度为 MTS位,位时间长度为 tb,即 t=MTStb),时隙 i内有Pi个标签要发送数据;标签j在争用周期内的发送时隙为 Sj,发送位为 Dj,序列号对 MTS的商为 Qj,标签 j在整个数据发送周期中的发送顺序为 Tj,则Sj=Ij%MTS,Qj=Ij%MTS,,Qj=Ij/MTS,Pi=争用数据帧中的 i时隙内 1的个数,Tj与Pi的关系和系统效率E表达式如下:
对于时隙数固定的系统而言,当M较少时,E会随着M的增加而快速增加;当应答器数目较多时,E会随着M的增大而缓慢增大;而M接近满荷时,时隙数对E没有显著影响。但是对于同一系统,如果取不同的时隙数,则随着时隙数的增大,E会有所下降,这是因为时间利用率下降了。只要选取合适的时隙数和应答器数量(即接近于系统满负荷情况M=(MTS)2,就可以优化系统性能。
3 定位算法设计与实现
本系统采用圆周定位法。它是利用读写器接收标签信号得到RSSI值,通过相关的定位计算公式来进行定位的一种方法。
无线信号的接收信号强度与信号传输距离的关系可以用式(3)表示,其中RSSI是接收信号的强度,d是收发节点之间的距离,n是信号传播因子,EAF是环境因子。
由式(3)可以看出,射频参数A和n用于描述通信操作环境,它们决定了接收信号强度和信号传输距离的关系。射频参数A被定义为dBm,表示距发射机1 m时接收到信号平均能量的绝对值,如平均接收能量是-10 dBm,则定义参数A为10。射频参数n表征了信号能量随着到收发器距离增加而衰减的速率,其数值的大小取决于无线信号传播的环境。依据式(3)可得到待定位标签到读写器的直线距离。如3个读写器的位置已知,分别是p1(x1,y1)、p2(x2,y2)和 p3(x3,y3),则待定位标签的坐标计算如式(4):
由式(4)可以计算出标签的坐标位置为:
实验中将三个读写器放在坐标为 (2,2)、(2,4)、(4,4)的位置上,依次对9个待定位标签进行定位实验。9个待定位标签放在4 m×4 m的正方形区域内,相邻的待定位标签相互之间相隔2 m,如图3所示。
分别对每个标签到读写器的RSSI值测试20次,并记录其数据,通过上述圆周定位算法对得到的RSSI值进行处理,得到各个待定位标签的坐标值(这里EAF取13.5,A取 45,n取 3.5)。实验结果如图4所示。
图4中圆圈表示标签的理论位置,星点表示标签的定位位置,每一个标签定位实验20次。从图中可以看出,每个区域的20个星点都围绕在圆圈附近,说明定位位置相比于理论位置存在定位误差。分别对9个标签点的20次定位测试结果进行均方差统计,均方差的范围为 0.236~0.541。
基于低功耗微控制器PIC16F877A和射频收发器CC2500构造的RFID局域定位系统具有结构简单、成本和功耗较低、可扩展性好、适应性强、易于实施等特点。利用基于序列号对时隙数运算的排序算法解决了多标签识别的防碰撞问题;利用圆周定位算法对待定位标签进行局域定位。实际测试表明该设计方法能够通过对多标签信号的识别有效实现无线局域定位的功能。
[1]BONUCCELLI M A,LONETTI F,MARTELLI F.Instant collision resolution for tag identification in RFID networks[J].Ad Hoc Networks,2007(5):1220-1230.
[2]SHIH D H,Sun Poling,YEN D C,et al.Taxonomy and survey of RFID anti-collision protocols,Computer Communications,2006(29):2150-2166.
[3]CHOI J,LEE W,Comparative evaluation of probabilistic and deterministic tag anti-collision protocols for RFID networks[J].Lecture Notes in Computer Science,2007(4809):538-549.
[4]NI L M,LIU Y H,LAU Y C,et al.LANDMARC:Indoor location sensing using active RFID,proceedings of the First IEEE international conference[C].Washingtion DC:IEEE Computer Society,2003:407-415.
[5]AWAD A,FRUNZKE T,DRESSLER F.Adaptive distance estimation and localization in WSN using RSSI measures[C].10th Euromicro Conference on Digital System Design Architectures,Methods and Tools,DSD 2007,29-31:471-478.
[6]Microchip.PIC16F87XA Data Sheet[R].2003.
[7]Texas Instruments.CC2500 Datasheet[R].2007.
[8]刘振文,邓毅华,彭友斌.基于 CC2500的 2.45 GHz RFID系统设计[D].电子技术应用,2008,34(7):76-78,81.
[9]王晓华,周晓光,孙百生.射频识别系统中的防碰撞算法设计[D].北京:北京邮电大学,2007.