多读写器环境下的RFID系统的抗干扰研究
1 多读写器环境下干扰的分类
近年来射频识别( 1lD)系统在物流、超市、仓储、门禁等很多领域得到了广泛的应用。在实际的RFID系统中,常常会有多读写器环境(Multiple—Interrogator Envimnr~nt)是指在一个场景中,同时工作的读写器 的数量小于可能提供的最大信道数目,多读写器环境下的干扰问题也就是本文所要研究的重点。
多读写器环境下的干扰按照其产生的原因主要分为两种,一种是读写器对读写器的干扰,另外一种是读写器对标签的干扰 。
(1)读写器对读写器的干扰:如图1所示,读写器R 工作时发出的射频到达读写器R ,并对R 所读写的标签T反射回来的信号形成了干扰。
(2)读写器对标签的干扰:如图2所示,标签T同时在读写器R 1和R 2的读写区间内,当两个读写器同时读写标签T时会发生干扰,两个读写器可能 都不能准确的渎写该标签,该种情况类似于移动通信中的隐藏终端问题。
2 多读写器环境下干扰的解决方法
传统的解决干扰的方法主要有三种:时分复用(TDMA),频分复用(FDMA),码分复用(CDMA)。 码分复用要求电路上更为复杂的标签电路,标签的使用数量往往非常大,考虑到成本因素标签电路应该尽量简单,所以一一般不会采用码分复用。频分复用使用多个信道传输,一般读写器用的下行通路(从读写器到标签)使用固定频率,而上行通路(从标签到读写器)采用不同的副载波频率通信,频分复用的缺点是读写器的成本较高,因为每一个信道都需要一个单独的接收机。时分复用是把可使用的信道按 时间分配给各个读写器,这种技术构成了防碰撞算法最大的一族。
2.1 ETSI的Listen before talk
制定RFID欧洲标准的ErlSI提出了一种多读写器协同工作方法,叫做“先侦听再通信”(1isten before talk),它的侦听机制有点类似于以网中的CSMA技术,在一个读写器试图和它周围的标签通信之前,读写器必须先确定它所使用的信道是空闲状态的,确保信道为空闲之后,读写器才能发起对标签的查询, 否则必须等待信道空闲。“Listen before talk”方法可
以有效地解决读写器对读写器的干扰问题,但是对于读写器对标签的干扰并没有良好地解决,因为即使发现信道是空闲的,有可能发生类似于移动通信中的隐藏终端问题。
2.2 分时和色波算法相结合的方法
为了更加有效地解决读写器对标签的干扰,本文提出了一种分时和色波算法相结合的整体干扰解决方案。采用分时对标签和读写器的成本要求都不是很高,而实际应用场景中的读写器网络拓扑变化较大,采用色波算法这样一种分布式的在线算法,可以灵活有效地适应各种不同地应用场景。考虑到现实生活中RHD系统组网广泛应用于仓储管理,本文将采用仓库作为目标场景,进行建模和算法仿真。
2.2.1 利用分时解决读写器对标签的干扰
读写器对标签的干扰,主要是因为相邻的读写器读写范围发生了交叠,而处于这部分相交的读写范围内的标签有可能同时被两边的读写器读到,从而造成读写器对标签的干扰。假设我们能够得到工作区域内所有的读写器的位置分布,那么通过分组
规划然后再对各组进行分时可以有效地避免读写器对标签的干扰问题。
首先通过距离判断,如果两个读写器之间的距离小于他们的读写半径之和,那么他们就可能产生读写器对标签的干扰,解决这种类似隐藏终端问题的最好办法是让他们分时工作。按照这样的原则,将所有的读写器分成J7v组(N≥2),因为不同组的
读写器工作在不同的time slot,这样就最大程度的消除了同组中的读写器发生读写器对标签的干扰的可能,分组时尽量使得同组内的读写器均匀分布在工作区域内,并且各组内的读写器数目近似相等。假设总的工作周期为 ,将 平均分成N个slot,每组 读写器都工作在其中的一个slot内。
2.2.2 利用色波算法解决同组内读写器对读写器的干扰
对于组内的多个读写器,虽然间隔较大,但是因为读写器的干扰范围远大于他的读写范围,所以如果相邻的读写器同时工作的话很有可能发生读写器对读写器的干扰,色波算法作为一种分布式的在线算法,不但容易实现,而且可以有效地减少读写器对读写器的干扰,在高节点传输概率的情况下,色波算法具有比其他退避算法更好的性能 ]。在色波算法中,用图来表示读写器网络,图G=(V,E)是一对有限集合的组合,集合 是图中所有端点的集合,集合E是图中端点对的集合,端点 , 如果满足(V1,V1 )∈ E,那么就说他们是相邻的。使用色波算法对一个图的着色就是给端点赋予不同的颜色号码,尽量使得两个相邻端点的颜色没有相同的,而每个端点都只能在其对应的颜色slot内通信。
3 仿真和结果
3.1 仿真场景设置
仿真的场景是一个大仓库,里面整齐的排放着一列列货架,仓库的长宽为80m×40m,其中总共布置了78个读写器,每个读写器的读写半径是4m,间隔是6m。所有读写器的总体读写范围覆盖了整个仓库平面。仿真时随机产生各节点的起始颜色号, 仿真过程中有4个参数:最大颜色数,传输概率,仿真周期和读写器扫描方式。最大颜色数范围从3到l0,传输概率是指读写器和周围的标签通信的概率, 选取这样的几组数值:25%,50%,75%,仿真周期是 一个常数,表示仿真过程中读写器网络的扫描总次数,读写器扫描方式共有两种,分别为行扫描和列扫描。这样仿真总共有8×3×2=48组。为了尽量减少不同的起始值对仿真结果的影响,仿真周期选取尽量大,本文把他选为100,000。仿真程序用C++编写,程序运行的环境是Linux 2.6.11 i386 512M内存。仿真运行完成后观察总的节点成功传输次数和总的节点失败重传次数,计算出重传指数,重传指数的定义如下:
重传指数=节点重传总数/(节点成功传输总数+ 节点重传总数)
对读写器网络进行扫描时,采取两字顺序进行扫描,行扫描和列扫描,分别计算两种扫描方式下的重传指数。
3.2 读写器分组
把所有的读写器分为两组,每组39个,经过分组之后的读写器的拓扑图如图3。图中A,B两组的读写器数目相同,拓扑结构相似,相邻节点的最小距离是8.484m,大于相邻节点的读写距离之和4+4= 8m,满足防止读写器对标签干扰的距离要求。
让这两组读写器分时工作,如图4所示,假设工作周期是T ,把T分为两个slot,两组读写器分别工作在slot A和slot B。
因为两组读写器有着相同的拓扑,读写器数目也相等,所以在接下去的讨论中,只需对其中任意的一组进行DCS色波算法的仿真,来观察其性能。以 A组读写器为例,图5是A组读写器的色波图。
3.3 DCS色波算法仿真
本文使用的DCS色波算法主要包括三个子程序
子程序l一传输子程序main
如果有通信请求发生:
一如果(时序号%最大颜色号)==当前颜色号
那么传输开始
否则闲置直至(时序号%最大颜色号)
= = 当前颜色号
DCS子程序2一冲撞检测子程序Collosion
如果试图通信但是检测发现有冲撞产生:
一当前颜色号=随机产生的新的不同的颜色号
一将新产生的颜色号广播给周围的邻居节点
DCS子程序3一“踢”子程序Kick:
如果邻居节点收到包含颜色信息的kick信号
一随机的改变至0一个新的不同颜色
3.4 仿真结果分析
把8×3×2组仿真结果绘成曲线,按照扫描方式的不同绘成图6,图7。从图6和图7中可以看出,传输概率为75%的曲线总是在这三条曲线的最上方,传输概率为25%的曲线总是在最下方。这是 因为仓库模型中读写器数量多,而且分布密集,当节点负载越重时,需要同时工作的相邻节点数越多,网络的重传指数也就越高。对于两种不同的扫描方式,仿真得到的结果也有所不同,因为仓库区域是一个长方形平面,长宽比例为80:40,当采用行扫描(长边扫描优先)时,读写器的重传指数比采用列扫描(短边扫描优先)略低,这是因为采用列扫描时,因为列扫描是短边扫描优先,所以先扫描到的节点发送kick信号之后,可能在不久的将来又再接收到邻近的后扫描到的节点发出的kick信号,造成一定程度的“颠簸”。
4 结束语
本文提出了一种结合分时和色波算法的RFID 多读写器环境下的抗干扰方案,全面地解决了RFID 多读写器环境中的读写器对读写器干扰和读写器对标签干扰。采用分时算法不要求读写器· 采用多套接收机,也不要求标签采用更为复杂的电路,相对于频分复用和码分复用实现的成本更低,是当前采用的最多的抗干扰手段。色波算法作为一种分布式的在线算法可以灵活有效地适应各种读写器拓扑网络,两者相结合可以有效地解决多读写器环境中的干扰问题。