一种防阅读器碰撞的阅读器与标签通信的方法
技术领域
本发明属无线射频身份识别(RFID)技术领域,具体涉及一种防阅读器碰撞的阅读器与标签通信的方法。
背景技术
射频识别(RFID)技术是一种非接触式自动识别技术。它通过无线射频方式对目标加以识别并交换数据。RFID系统一般由电子标签和读写器两个部分组成。在同一个RFID系统中所有的阅读器与射频标签都工作在同一频段。一般来讲,在一个阅读器有效的范围内,只要一台阅读器即可,而在目前的RFID应用中,为了提高阅读的速率和正确性,需布置多个阅读器,形成若干阅读器和大量标签构成的标签和阅读器密集的环境。当多个阅读器对同一射频标签都有效时,有可能多个阅读器都对同一射频标签进行操作,造成一从多主,相互干扰的情形,称之为阅读器之间发生碰撞。
标签碰撞的问题已经被广泛地研究。由于过去很少应用到多阅读器协同工作的环境,所以阅读器碰撞的问题没有得到足够的重视,现在提出的防阅读器碰撞算法大都是从无线通信技术的基础上改进而来的。理论上,阅读器碰撞的问题等同于多址接入问题,就是简单图着色问题。现有的解决阅读器碰撞的方法中有Colorwave协议、PULSE协议和LBT方法,以及Q-learning协议。
Colorwave协议是基于时分多址技术(TDMA)的。在Colorwave协议中,时间被划分为若干个阅读时隙,不同的时隙可以由不同的颜色来表示,这样为相邻阅读器分配时隙的过程就被抽象为对既定拓扑结构的节点进行染色的问题。Colorwave协议的缺点是需要对所有的节点进行同步,并且当一个节点的状态发生改变时,相当于其颜色发生改变,可能会引起其整个拓扑结构内节点颜色的大调整,大量消耗系统的功率和资源。
PULSE是另外一种TDMA协议。在PULSE中,通信信道分为两个独立的信道:数据信道和控制信道。控制信道用于发送忙音,用于阅读器之间的通信;数据信道用于阅读器和标签之间的通信。PULSE协议实现起来比较简单,但其增加的控制信道会占用系统额外的频率资源,并且由于在控制信道不断发送信标帧,会消耗阅读器额外的功耗。
LBT(Listen Before Talk)是基于CSMA(载波侦听多路访问)的方法,在LBT中,阅读器在询问标签之前,先侦听数据信道一段时间,以判断信道中有无通信。LBT的缺点是需要浪费时间用于侦听,效率不高。
Q-Learning是一个分等级的在线学习阅读器碰撞模型,在时隙内有效地分配频率,动态地解决碰撞。协议有一个分级结构,所以会带来额外的资源开支。Q-Learning假设阅读器有侦测碰撞的能力,在其动态处理方法中提出了怎样在阅读器密集地环境中侦测碰撞,但是这种结构不完全适合一般的RFID应用。
发明内容
本发明的目的在于针对现有技术的不足,根据阅读器和射频标签进行数据传输的原理,提出一种阅读器密集环境下的防碰撞通信方法。
本发明的具体步骤包括:
1、在阅读器密集环境下,构建阅读器碰撞网络,在该阅读器碰撞网络中,每个阅读器构成一个节点,且每个阅读器包含碰撞表。
其中碰撞表是在该阅读器碰撞网络中和某个阅读器节点相连的阅读器节点的集合,即在某个阅读器节点的碰撞表里的阅读器节点都可能会和该阅读器节点产生相互干扰,但该碰撞表内的阅读器节点之间不一定会产生干扰。
构建具备以上特点的阅读器碰撞网络的方法为现有的成熟技术,例如:Shijie Zhou,Zongwei Luo,Edward Wong,C.J.Tan,Jaiqing Luo发表在2007 IEEE International Conference on RFID Gaylord Texan Resort(Grapevine,TX,USA,March 26-28,2007)上的论文《InterconnectedRFID Reader Collision Model and its Application in ReaderAnti-collision》中提到的构建阅读器碰撞网络的若干方法。
2、对每个阅读器设置一位碰撞寄存器,用于标示阅读器的发生碰撞的可能,并且添加用于阅读器到阅读器的命令,包括本次通信开始命令和本次通信结束命令,分别表示与标签通信的占有权的获得和释放;
3、对不同情形下的碰撞寄存器进行如下操作:
①初始化后,碰撞寄存器置0;
②当接收到的阅读器到阅读器命令是本次通信开始命令,则对应的碰撞寄存器置1;
③当接收到的阅读器到阅读器命令是本次通信结束命令,则对应的碰撞寄存器置0;
4、根据碰撞寄存器的操作,对应的阅读器进行如下操作:
(A)如果碰撞寄存器为0,则对应的阅读器向其碰撞表内的元素,即会发生碰撞的阅读器,发出本次通信开始命令,获得与标签通信的占有权,然后与标签进行通信;阅读器与标签的通信结束,发出本次通信结束命令,释放与标签通信的占有权;
(B)如果碰撞寄存器为1,则对应的阅读器等待其他阅读器发回本次通信结束命令,收到本次通信结束命令后执行(A);
5、每隔设定的时间周期,更新阅读器碰撞网络;时间周期的设定随着阅读器的流动量的增大而减小。
阅读器碰撞网络的更新,是阅读器碰撞网络的重新构建。阅读器碰撞网络的更新为现有的成熟技术,具体方法和步骤1中构建阅读器碰撞网络的方法相同。
在本发明中,阅读器命令分为阅读器到阅读器命令和阅读器到标签命令,分别用于阅读器与阅读器的通信和阅读器与标签的通信。
在本发明中,本次通信开始命令是阅读器为了宣告在局部范围内获得与标签通信的占有权而发出的阅读器到阅读器命令。该局部范围是该阅读器的碰撞表内的元素的集合。该集合由阅读器碰撞网络的拓扑结构决定。碰撞表内的元素在接收到本次通信开始命令之后、接收到本次通信结束命令之前,不与标签进行通信,避免了阅读器碰撞。
在本发明中,本次通信结束命令是阅读器为了宣告在局部范围内放弃与标签通信的占有权而发出的阅读器到阅读器命令。该局部范围是该阅读器的碰撞表内的元素的集合。该集合由阅读器碰撞网络的拓扑结构决定。碰撞表内的元素在接收到本次通信结束命令后,获得参与争夺与标签通信的占有权的许可。
在本发明中,如果某一阅读器N不在阅读器M碰撞表内,则阅读器N不会和阅读器M产生阅读器碰撞;阅读器N,不受阅读器M发出的本次通信开始命令和本次通信结束命令的影响;阅读器N和阅读器M在各自的碰撞表的局部范围内参与争夺与标签通信的占有权;阅读器N和阅读器M可以同时与标签进行通信。本发明在不发生阅读器碰撞的前提下,允许多个阅读器同时工作,以提高效率。
本发明假设获得与标签通信的占有权的阅读器能自动控制与标签通信的结束。阅读器与标签的某一次通信结束时,发送本次通信结束命令,释放在局部范围内与标签通信的占有权。
如果在一个应用环境中,部分阅读器不会与其他阅读器发生碰撞,或者一个应用环境可以分裂成若干个子阅读器密集环境,本发明同样适用。
操作方法如下:
a.如果部分阅读器不会与其他阅读器发生碰撞,则整个应用环境分裂为若干子环境,包括不会发生碰撞的阅读器(或者阅读器集合)和会发生阅读器碰撞的子阅读器密集环境,则对后者应用本发明。
b.如果一个应用环境中可以分裂成若干个互补连通的子阅读器密集环境,则分别对这些子环境应用本发明。
本发明提出一种防阅读器碰撞的阅读器与标签通信的方法,具有以下优点:
①本发明中,每个阅读器包含碰撞表,通过更新碰撞表,整个阅读器碰撞网络可以动态调整,适应阅读器移动的环境。
②本发明在不发生阅读器碰撞的前提下,允许多个阅读器同时工作,改变了Colorwave协议中阅读器分配时隙导致效率低下的缺点,提高了整体效率。
③本发明中,阅读器与阅读器的通信和阅读器与标签的通信使用同一信道,克服了PULSE协议增加的控制信道会占用系统额外的频率资源的缺点。
④本发明中,阅读器只需要判断其碰撞寄存器就可以判断与自己可能会发生碰撞的阅读器的状态,不需要像LBT协议那样花费大量时间用于侦听信道。
⑤实现本发明,只需要给阅读器添加少量的存储器件来存储碰撞表和一位碰撞寄存器,比Q-Learning协议节省很多硬件资源。
附图说明
图1为阅读器碰撞网络示意图;
图2为本发明的流程图。
具体实施方式
阶段一:构建阅读器碰撞网络。
(1)在密集阅读器环境下,阅读器碰撞的概率很高,表现为一个阅读器的有效阅读区域有时会和多个阅读器的阅读区域交叠。
(2)构建阅读器碰撞网络。如图1所示,用完全无向多重图G(V,E)来表示互联阅读器网络。其中:节点的集合V={v1,v2,…vn}表示RFID系统中阅读器的集合;E是边的集合,如果v1和v2代表的阅读器的阅读区域有重叠,那么在集合E中就有一个边e(e∈E)连接v1和v2,也就是如果两个阅读器存在潜在碰撞的可能,则阅读器碰撞网络中有一条边来表示它。例如阅读器2,有可能会和阅读器1、3、4、5、9发生碰撞,则节点2和节点1、3、4、5、9有边相连。
(3)构建阅读器的碰撞表。在互联阅读器网络中,对每个阅读器找到有边相连的节点的集合。例如:阅读器节点2的邻接表有5个阅读器节点,C2={1,3,4,5,9};节点3只有一个碰撞节点,C3={2}。
阶段二:任何一个阅读器节点在与其阅读范围内的标签进行通信之前,根据对其碰撞寄存器的操作,决定此时是否可以在不发生阅读器碰撞的前提下与标签进行通信。
如图2所示,阅读器与标签通信的操作的具体流程如下:
步骤(a):阅读器上电初始化,其碰撞寄存器置0。无需干预,接下来执行步骤(b);
步骤(b):阅读器的空闲状态;阅读器不主动发送任何命令,但是接收并响应阅读器到阅读器的命令,包括:当接收到的阅读器到阅读器命令是本次通信开始命令,则对应的碰撞寄存器置1;当接收到的阅读器到阅读器命令是本次通信结束命令,则对应的碰撞寄存器置0。结束该步骤则执行步骤(c);
步骤(c):阅读器判断是否要与标签进行通信。如果阅读器要与标签进行通信,执行步骤(d),否则执行步骤(b);
步骤(d):阅读器判断其碰撞寄存器是否为0。如果阅读器的碰撞寄存器为0,则执行步骤(e),否则执行步骤(h);
步骤(e):阅读器发送本次通信开始命令。阅读器取得与标签通信的占有权,然后执行步骤(f);
步骤(f):阅读器进行与标签的通信。本次通信结束时执行步骤(g)。
步骤(g):阅读器发送本次通信结束命令。阅读器释放与标签通信的占有权,执行步骤(b);
步骤(h):阅读器等待其他阅读器发回本次通信结束命令,收到本次通信结束命令后执行步骤(d);
每个阅读器都按照上述流程操作,即可实现在防阅读器碰撞的阅读器与标签的通信。
阶段三:动态更新阅读器碰撞网络。
每隔设定的时间周期,按照阶段一的方法重新构建阅读器碰撞网络以更新阅读器碰撞网络;时间周期的设定随着阅读器的流动量的增大而减小,例如,如果阅读器的流动性很大,则时间周期应该设置为毫秒级(ms)或者更小,如果阅读器很少流动,时间周期的值可以设置为秒级(s)或者更大。