一种结合Bit-Slot和ID-Slot的随机型防碰撞算法转让专利

申请号 : CN200710172614.8

文献号 : CN101183422B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王俊宇王中祥刘丹周晓方闵昊

申请人 : 复旦大学

摘要 :

本发明属于射频识别技术领域,具体为一种结合Bit-Slot和ID-Slot的随机型防碰撞算法。首先,标签随机选择一个slot反馈l位确认指令,所有标签的返回信息组成一串长度为L的bit串,读写器在消除空时隙后发送L-c0个QueryRep指令,标签在与时隙计数器相对应的时隙里反馈自己的ID码,读写器根据收到的ID码判断是否产生碰撞;读写器识别标签并统计碰撞时隙个数、成功时隙个数;如果标签没有被识别完毕,读写器再开启下一帧继续识别标签,直到所有标签被识别完毕。本发明采用Bit-slot的方法降低空时隙的时间开销,同时使用较短的QueryRep指令代替Bit-Slot中较长的“独1码”确认指令,可以有效地提高多标签识别速度。

权利要求 :

1.一种结合Bit-Slot和ID-Slot的随机型防碰撞算法,其特征在于具体步骤如下:步骤一,读写器发送包含帧长信息的Query指令,将帧的长度L告知标签;

步骤二,每个标签从1~L中随机选择一个数字载入隙计数器,然后等待隙计数器个bit时间后,反馈1bit的信息,所有标签的返回信息组成一串长度为L的bit串,bit位为“1”的表示有一个标签在此bit-slot反馈“1”;bit位为“_”表示没有任何标签选择此bit-slot;

步骤三,读写器将收到一串长度为L的bit串,然后逐个检查每个bit是否为“1”,统计“_”的数量c0,同时发送一串长度为L的bit串确认指令Response_bit_slot,告知标签空bit-slot的位置;

标签根据收到的Response_bit_slot指令来调整自己的隙计数器,从而避免下一步骤中空时隙的产生;

所述读写器发送(L-c0)个QueryRep指令,从而开启(L-c0)个时隙,标签在与自己的隙计数器(slot-counter)相对应的时隙里反馈自己的ID码,读写器根据收到的ID码判断是否产生碰撞;如果此时隙发生碰撞,读写器发送的下一个QueryRep指令中的ACK_collision=1;如果成功,则ACK_collision=0;读写器一直统计碰撞时隙个数ck、成功时隙个数c1;

步骤四,标签根据收到的QueryRep指令中的ACK_collision判断自己是否被成功识别;如果被识别,将会转入静默状态,从而避免被重复识别;

步骤五,如果ck≠0,即还有标签没有被识别完毕,需要开启下一帧继续识别标签,那么读写器根据c0、c1、ck的值估算未识别标签的数量n,再根据未识别标签的数量n计算下一帧的帧长L=m×n,m为1~5之间的整数;然后开启下一帧,重复步骤一至五;

步骤六,如果ck=0,即所有标签被识别完毕,那么识别过程结束。

2.根据权利要求1所述的结合Bit-Slot和ID-Slot的随机型防碰撞算法,其特征在于所述步骤五中估算未识别标签的数量n的算法有:Lower Bound算法,n=2×ck;

Schoute算法,n=2.39×ck;

Vogt算法。

说明书 :

技术领域

本发明属于射频识别技术领域,具体涉及一种射频识别防碰撞算法,尤其涉及一种结合Bit-Slot和ID-Slot的随机型防碰撞算法。

背景技术

随着RFID技术的日益成熟,电子标签将会在供应链管理、资产管理、生产管理和安全防伪等领域获得广泛的应用。虽然RFID技术给许多领域带来了极大的便利,但是RFID技术在应用中也存在一些问题。其中一个主要的问题是,在许多应用要求读写器能够高速识别多个目标,如何改善读写器的防碰撞性能,提高读写器的识别速度已经成为RFID技术大规模推广应用的关键技术之一。所述电子标签碰撞是指当读写器向工作场区内的一批电子标签发出查询指令时,两个或两个以上的电子标签可能同时响应读写器的查询,返回信息,从而导致读写器不能正确识别任何一个电子标签的信息。随着电子标签数量的增加,发生电子标签碰撞的概率也会增加,读写器的阅读效率将进一步下降。目前在国内、国际上许多学者对防碰撞算法进行了研究,以提高读写器的识别速度。已有的防碰撞算法大体上可以分为两类:基于ALOHA的随机型算法和基于二进制树的确定型算法。其中基于时隙ALOHA的随机型算法因为阅读速度快,得到较为广泛的应用。
时隙ALOHA算法采用时分复用(TDMA),分为Bit-Slot和ID-Slot两类算法,分别介绍如下。
Bit-Slot算法中,标签反馈和ID码长度也就是标签编码长度一样的”独1码”,其中只有1-bit是1,其它bit全部是0(比如0010);假设4个标签反馈的“独1码”分别是:
1000;1000;0100;0001
Bit-Slot算法假设读写器能探测出有2个标签都反馈1000,那么读写器不会发送1000;而是先后发送0100和0001的“独1码”确认指令;对应的标签收到正确的“独1码”确认指令,才会反馈自己的ID码。
Bit-Slot算法的缺点包括:
1、算法假设读写器能探测出有2个或更多数量标签同时反馈完全相同的“独1码”,然而,实际上现有的读写器是无法探测有几个标签反馈了相同的独1码,也无法知道有几个标签发生了碰撞,而此假设难以实现。
2、帧长(等于ID码的长度)不能动态改变,从而降低RFID系统识别速度。
3、“独1码”确认指令比较长,降低了识别速度。
ID-Slot算法一般先根据上一帧中标签发生碰撞的次数(碰撞时隙)、成功识别电子标签的次数(成功时隙)和电子标签没有返回的次数(空时隙)来估计未被识别的电子标签数量,然后据此选择最优的下一帧的长度L。ID-Slot算法的优点在于:读写器通过标签估算方法来估计工作范围内的标签个数,并据此实现对时隙个数L的动态调度,从而可以实现很高的识别效率。而ID-Slot算法的缺点是空时隙的开销比较大,按照ALOHA算法的工作原理,空时隙个数的理论估算值可以计算如下:C0=L×(1-1L)n,其中C0为空时隙个数,L为上一帧的帧长,n为读写器工作场区内的标签个数。而在实际应用中,由于使用环境的影响,空时隙的个数往往超过上述理论值,从而使得RFID系统多标签识别的效率较低。

发明内容

本发明的目的是针对现有Bit-Slot算法和ID-Slot算法的不足提出一种结合Bit-Slot和ID-Slot的随机型防碰撞算法,通过Bit-Slot算法减少空时隙的开销,通过ID-Slot算法对帧长进行动态调度,通过设置优化的帧长来减少多标签碰撞发生的几率,同时缩短读写器查询指令的长度,从而提高多标签识别速度。
本发明的目的是通过如下技术方案实现的:
步骤一,读写器发送包含帧长信息的Query指令,将帧的长度(L,也就是时隙的个数)告知标签。
步骤二,每个标签从1~L中随机选择一个数字载入隙计数器(slot-counter),然后等待slot-counter个bit时间后,反馈1bit的“1”(这里每个bit被作为一个微型slot,因此这种slot被称为bit-slot)。无数个标签发出的“1”组合成一串长度为L的bit串。bit-slot为“1”的意味着至少有一个标签在此bit-slot反馈“1”;bit位为“_”意味着没有任何标签选择此bit-slot,
步骤三,读写器将收到一串长度为L的bit串,然后逐个检查每个bit是否为“1”,统计“”的数量c0,同时发送一串长度L的bit串的确认指令(Response_bit_slot),告知标签空bit-slot的位置。
步骤四,标签根据收到的Response_bit_slot指令来调整自己的隙计数器(slot-counter),从而避免下一步骤中空时隙的产生。
步骤五,读写器陆续发送L-c0个QueryRep指令(QueryRep指令长度为4bit)从而开启L-c0个时隙,标签在与自己的隙计数器(slot-counter)相对应的时隙里反馈自己的ID码。读写器根据收到的ID码判断是否产生碰撞;如果此时隙发生碰撞,下一个QueryRep指令中的ACK_collision=1;如果成功,则ACK_collision=0;读写器一直在统计碰撞时隙个数ck、成功时隙个数c1
步骤六,标签根据收到的QueryRep指令中的ACK_collision判断自己是否被成功识别。如果被识别,将会转入静默状态,从而避免被重复识别。
步骤七,如果ck≠0(还有标签没有被识别完毕),需要开启下一帧继续识别标签,那么读写器根据c0、c1、ck的值估算未识别标签的数量n,再根据未识别标签的数量n计算下一帧的帧长L=m×n(m为1~5之间的整数);然后重复步骤1-7,开启下一帧。现有的标签数量估算算法有Lower Bound(n=2×ck)、Schoute(n=2.39×ck)、Vogt等等;本发明所述的调节帧长度的方法,适用于上述所有的标签估计算法,本实施例中采用LowerBound算法。
步骤八,经过若干帧后如果ck=0(标签被识别完毕),那么识别过程结束。
本发明的优势在于:  结合Bit-Slot和ID-Slot的随机型防碰撞算法中使用了标签估算方法,动态调节使帧长为未识别标签数量的m倍(m为1~5之间的整数),从而降低了碰撞时隙的数量,并重新调整标签发送返回指令的时隙,消除了空时隙的影响,同时还使用较短的QueryRep指令代替Bit-Slot中较长的“独1码”确认指令。QueryRep指令的长度仅为4bit,而“独1码”指令长度和标签的ID码相同,通常长于QueryRep的指令长度。因此采用本发明可以有效地提高多标签识别速度。

附图说明

图1为结合Bit-Slot和ID-Slot的随机型防碰撞算法的流程图。
图2为读写器发送指令示意图。
图3为标签选择时隙返回确认信息示意图。
图4为读写器发送Response_bit_slot指令告知标签空时隙位置示意图。
图5为标签根据Response_bit_slot指令调整自己的隙计数器(slot-counter)示意图。
图6为读写器开启读取标签时隙示意图。
图7为隙计数器(slot-counter)为0的标签反馈ID码示意图。
图8为下一时隙隙计数器(slot-counter)为0的标签反馈ID码示意图。
图9为读写器收到碰撞的ID代码示意图。
图10为本发明算法与其他算法的仿真结果比较图。

具体实施方式

以下结合附图具体描述本发明的实施方案。
图1为结合Bit-Slot和ID-Slot的随机型防碰撞算法的流程图,较佳实施例的算法流程步骤如下:
步骤一,读写器发送包含帧长L信息的Query指令,将帧的长度L(即,时隙的个数)告知标签。
步骤二,每个标签从1~L中随机选择一个数字载入隙计数器(slot-counter),然后等待slot-counter个bit时间后,反馈1bit的信息。这里每个bit被作为一个微型slot,因此这种slot被称为bit-slot。所有标签返回的信息组合成一串长度为L的bit串。Bit串中bit位为“1”意味着至少有一个标签在此bit-slot反馈“1”;bit位为“_”意味着没有任何标签选择此bit-slot。
步骤三,读写器将收到一串长度为L的bit串,然后逐个检查每个bit是否为“1”,统计“_”的数量c0,同时发送一串长度L的bit串的确认指令(Response_bit_slot),告知标签空bit-slot的位置。标签根据收到的Response_bit_slot指令来调整自己的隙计数器(slot-counter),从而避免下一步骤中空时隙的产生。
读写器陆续发送L-c0个QueryRep指令(QueryRep指令长度为4bit)从而开启L-c0个时隙,标签在与自己的隙计数器(slot-counter)相对应的时隙里反馈自己的ID码。读写器根据收到的ID码判断是否产生碰撞;如果此时隙发生碰撞,下一个QueryRep指令中的ACK_collision=1;如果成功,则ACK_collision=0;读写器一直在统计碰撞时隙个数ck、成功时隙个数c1
步骤四,标签根据收到的QueryRep指令中的ACK_collision判断自己是否被成功识别。如果被识别,将会转入静默状态,从而避免被重复识别。
步骤五,如果ck≠0,表明还有标签没有被识别完毕,需要开启下一帧继续识别标签,那么读写器根据c0、c1、ck的值估算未识别标签的数量n,再根据未识别标签的数量n计算下一帧的帧长L=m×n(m为1~5之间的整数);然后重复步骤一至五,开启下一帧。
步骤六,经过若干帧后如果ck=0,表明所有标签被识别完毕,那么识别过程结束。
本发明动态调节帧长L,将L的值设为未识别标签数量n的m倍,这样将大大增加空时隙的数量,因为常规设置的帧长L与未识别标签数量n相等,虽然空时隙空时隙数量增加,同时碰撞发生的几率也大大降低,再通过统计空时隙位置,使标签重新调整发送时隙,就避免读取空时隙带来的时间开销,有助于系统识别效率的提高。
上述步骤五中,估算未识别标签的数量n,现有的标签数量估算算法有Lower Bound(n=2×ck)、Schoute(n=2.39×ck)、Vogt等等;本发明所述的调节帧长度的方法,适用于上述的标签估计算法以及其他的标签数量估算算法。
本发明结合Bit-Slot和ID-Slot的随机型防碰撞算法与现有的Bit-Slot算法的区别在于:
首先,标签返回的确认指令不同;Bit-Slot算法中标签返回的“独1码”确认指令的长度为L,每个标签都要返回一个长度为L的信息;而本发明每个标签返回的确认指令是一位的信息,所有标签的返回信息组合长度为帧长L,比Bit-Slot算法的返回信息短很多,可以有效提高识别速度。
再有,Bit-Slot算法的帧长L是不变的,这样浪费了比较多的系统资源,也不利于识别效率的提高;本发明采用ID-SLOT算法中的帧长L动态调节方法,使帧长远大于未识别标签的数量,减小碰撞发生的几率,再重新调整标签返回指令的时隙,将空的Bit-Slot从时隙中去掉,提高标签识别效率。
本发明的改进算法将Bit-Slot算法和ID-Slot算法的优点结合起来,采用Bit slot消除空时隙的时间开销,利用ID-SLOT算法进行L的动态调度,充分发挥了二者的优势,有效提高识别效率和识别速度。
本发明算法的一个具体实施例如下,假设有6个标签,它们的ID码长度为5bit,
步骤一,读写器发送包含帧长信息L的Query指令,假设初始帧长设定为8,如图2读写器发送指令示意图所示。
步骤二,每个标签从1~8中随机选择一个数字载入隙计数器(slot-counter),然后等待slot-counter个bit时间后,反馈1bit的信息。图3为标签选择时隙返回确认信息示意图,图3中加粗的“1”为标签的返回信息,图3中的“_”表示标签在此时隙既不反馈“1”,也不反馈“0”;如果第2个标签(ID码:11110)选择隙计数器(slot-counter)=2,那么它就反馈“_1_ _ _ _ _ _”;依此类推。
步骤三,读写器统计bit位为“_”的数量c0=4,同时发送一串长度8的bit串的确认指令(Response_bit_slot),告知标签第1、4、5、8个时隙为空,如图4所示
步骤四,标签根据收到的Response_bit_slot指令来调整自己的隙计数器(slot-counter),如图5所示,从而避免下一步骤中空时隙的产生。例如第2个标签(ID码:11110)会将自己的隙计数器(slot-counter)从2调整为1,依此类推。
步骤五,读写器发送含有ACK_collision的QueryRep指令开启第1个时隙。由于是第一个时隙,因此ACK_collision=0,如图6所示。
步骤六,所有标签收到QueryRep后隙计数器(slot-counter)减1,隙计数器(slot-counter)=0的标签立即反馈自己的ID,然后读写器根据收到的ID码判断是否产生碰撞;如果ID码发生碰撞,下一个QueryRep指令中的ACK_collision=1,并且将ck增1的;如果成功,则ACK_collision=0,则将c1增1。
图7为隙计数器(slot-counter)为0的标签反馈ID码示意图,如图7中所示,只有第2个标签满足隙计数器(slot-counter)=0,因此只有第2个标签反馈ID码,然后读写器将c1增1,ACK_collision=0
步骤七,读写器发送QueryRep(ACK_collision=0)指令开启下一个时隙,图8为下一时隙隙计数器(slot-counter)为0的标签反馈ID码示意图,在此时隙中,第3、4个标签的隙计数器(slot-counter)都为0,则第3、4个标签同时反馈了ID码,同时第2个标签转入静默状态。
步骤八,图9为读写器收到碰撞的ID代码示意图,如图9所示,读写器收到碰撞的ID码,则ACK_collision=1,并且将ck增1;读写器发送QueryRep(ACK_collision=1)后,第3,4个标签得知自己未被识别,等待下一帧再反馈信号。
步骤九,读写器发送完L-c0=8-4=4个QueryRep后,第一帧结束,读写器根据c0=4、c1=2、ck=2的值估算未识别标签的数量n,如果使用Lower Bound估算方法(认为标签数量碰撞时隙的2倍),那么n=2×ck=4;那么当m=4时下一帧的长度为L=m×n=16。
此时设置的帧长L远大于未识别的标签数量,目的是使碰撞发生的概率较小,虽然这样会使空时隙增多,但本算法会统计空的Bit-Slot的个数,并使标签调整自己发送的隙计数器(slot-counter),从而避免读写器读取过程中空时隙的产生,通过这一方法有效去除了空时隙带来的影响。
步骤十,还有标签没有被识别,读写器开启下一帧,回到步骤一;所有6个标签均被识别,则本次识别过程结束。
由于标签数量为6时不便于比较算法的优劣,因此改变标签初始数量,取值为100,200,300,400,500,600,700,800,900,1000重新开始识别过程,对于基于ALOHA的Vogt算法以及本发明的Improved Bit-Slot算法的初始帧长L均设为标签数量。
图10为本发明算法与其他算法的仿真结果比较图,将本发明所述的改进算法与ID-Slot算法、Bit-Slot算法及二进制数算法的标签识别仿真结果进行比较,读写器到标签的数据率为80kb/s,标签到读写器的数据率为60kb/s,m=4;指令头和尾、以及链路时序符合ISO18000-6C协议的规定;ID码为随机生成的96bit EPC码;图10中横坐标为标签初始数量,纵坐标为标签识别速度,单位:个/秒;比较的算法有本发明的ImprovedBit-Slot算法,ID-Slot算法、Bit-Slot算法、Binary Tree Walking算法和Query Tree算法,其中Binary Tree Walking和Query Tree算法属于二进制数算法;图10中的最上面一条曲线使用了本发明的Improved Bit-Slot算法,从图中通过比较可以发现本发明算法的识别速度明显优于其它算法。
最后应说明的是,以上实施例仅用以说明而非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而一切不脱离本发明精神和范围的技术方案及其改进,均应涵盖在本发明的权利要求范围当中。