适用于RFID系统的新型Q值防碰撞算法的制作方法

文档序号:14451135阅读:320来源:国知局
本发明涉及无线射频识别中的标签防碰撞技术,具体地说是一种适用于rfid系统的新型q值防碰撞算法。
背景技术
:物联网是在互联网的基础上,将其用户端延伸和扩展到任何物品,进行信息交换和通信的一种网络。物联网的关键技术,射频识别(radiofrequencyidentification,rfid)技术是一种通过射频信号进行非接触式识别的自动识别技术,可对被识别物体进行识别。在多个阅读器和多个标签的rfid系统中,存在着两种形式的冲突方式,一种是一个标签同时收到多个阅读器发出的命令,称为阅读器碰撞;另一种是一个阅读器同时收到多个标签返回的数据,称为标签碰撞。在实际应用中,最容易出现标签碰撞,解决标签碰撞问题的算法称为标签防碰撞算法。在rfid系统中,应用最广泛的两类防碰撞算法分别是基于aloha的随机性防碰撞算法和基于二进制的确定性防碰撞算法。这两种算法都是基于时分多址(tdma)的防碰撞算法,二进制树搜索算法的标签识别率可以达到100%,但是算法较为复杂,收敛速度慢,识别时间长。aloha算法的复杂度较低,识别速度快,受系统中标签数目影响较小,但是识别效率不高。epcglobal提出的epc-c1g2标准中采取了q值防碰撞算法。该算法通过统计识别帧内部空闲和碰撞时隙的数目,来调控下一个识别帧的长度,使系统在不同的标签数目下,均能保持较好的识别性能。通过文献检索,我们检索到了以下相关文献,例如:中国专利cn201410132821.0,新型epc-c1g2标签防碰撞算法,专利权人:西南民族大学,该专利公开了一种新型epc-c1g2标签防碰撞算法:该算法是针对效率下降和效率次优问题,以支持标签持续到达和epc-c1g2标准架构为基础,对标签数估计策略、帧长确定策略和帧终止策略进行研究,基于这些研究结论,提出更高效的防碰撞算法,以解决q算法在动态环境中效率下降问题和根据经验值确定帧长和中止帧所带来的效率次优问题。中国专利cn201210135894.6,一种rfid系统标签防碰撞方法,专利权人:广州中大微电子有限公司,该专利公开了一种rfid系统标签防碰撞方法,采用符合epcc1g2标准的q算法,引入辅助参数k,并结合q算法中的参数c来动态调整q算法中的参数q,所述辅助参数k为碰撞时隙与空闲时隙的比值。中国专利cn201310665471.5,一种射频识别的防碰撞改进算法,专利权人:北京中电华大电子设计有限责任公司,该发明提供一种可用于实现的防碰撞改进算法,主要目的是在原有的防碰撞管理方法的基础上,设置合理的初值,从而提高标签的介入效率。主要原理时阅读器根据rssi来大致估计当前要接入的标签数目,从而快速设置合理的初值,之后进行防碰撞算法接入,提高多标签的接入效率。技术实现要素:本发明的目的在于提供一种适用于rfid系统的新型q值防碰撞算法。该算法减少了时隙数,提高了时隙利用率以及维持了较好的系统吞吐率。本发明采用的技术方案如下:一种适用于rfid系统的新型q值防碰撞算法,约定每个标签id号为唯一,每个标签含有相应的随机数发生器r、时隙计数器s,包括以下步骤:步骤1)对标签数目进行分组:由于实际应用中,标签所能提供的最佳时隙计数器是8bit,即取帧长最大值为28=256为最佳帧长(本申请主要针对于标签数量较多的情况,并且由于硬件条件的限制,不能无限增加帧长度,故选用实际中能够达到的帧长最大值),并且当帧长为256时,阅读器最多可以识别354个标签,故如果标签数小于354,则不需要进行分组;如果标签数大于354,小于610,则分为两组:一组标签数为256,另一组为其余标签;如果标签数大于610,小于866,则分为三组:两组标签数为256,另一组为其余标签,以此类推;步骤2)将每组标签进行如下算法:初始化q值,即阅读器设定标签初始化参数命令,q值的范围为(0,15);然后向所有标签发送请求响应的命令query(q),query启动一个盘存周期,并确定哪个标签参与该盘存周期(“盘存周期”即为连续query命令之间相隔的时间);步骤3)响应过程:标签收到阅读器发送的query命令后做出响应,返回给阅读器一个应答信号,若应答的标签数为1或者没有标签应答,执行步骤11);若应答的标签数大于1,执行步骤4);步骤4)接收到query命令的标签在[0,2q-1]的范围内随机选择一个数据存入自身的时隙计数器s内;步骤5)时隙计数器s的值为0的标签响应阅读器,其余标签保持沉默状态;步骤6)当有且仅有一个标签随机数为0的时候,标签与阅读器建立通信,退出这轮识别;步骤7)当没有标签随机数为0时,阅读器相应的使用步长c来进行调整,q′=q-c;当有多个标签随机数为0时,阅读器相应的使用步长c来进行调整,q′=q+c,执行步骤8);步骤8)计算新的2q′值与原2q值的差值的绝对值,若绝对值超过了当前标签数所对应的门限值,执行步骤9);否则,执行步骤10);步骤9)结束当前帧,通过queryadjust命令调整q值,queryadjust命令可以从以前的query命令中修改q值,令q加1或减1,接收到此命令的标签将重新在[0,2q-1]的范围内选择随机数,存入自身的时隙计数器s内,返回步骤5);步骤10)阅读器发送queryrep命令,标签接收阅读器发送的queryrep命令后,应使其时隙计数器s的值减1,返回步骤5);步骤11)完成标签识别,算法结束。本发明进一步说明,所述的时隙计数器s用于存储标签所选择的随机数,s=0时,标签与阅读器建立通信;s>0时,标签处于无响应状态。本发明进一步说明,标签分组的依据是在帧长为256的情况下,最大标签数为354,在总标签数大于354的情况下才进行分组,且每组的标签数最大不超过256,最小不低于99。即标签所需要进行分组的临界值为354,最佳帧长为256,当标签按照所述情况进行分组时,可以维持较好的系统吞吐率。本发明进一步说明,在步骤8)中将新的2q′值与原2q值进行比较,通过查表运算,若其差值的绝对值大于门限值,则对帧长进行调整,即在2q′与2q的差值的绝对值大于门限值的条件下,q′大于q时,q值加1;q′小于q时,q值减1。本发明的有益效果是:本发明的标签防碰撞算法,在传统的q值算法的基础上进行了改进,考虑到当标签数目较大时,对其进行分组识别,并且将传统q值算法变化时引起的帧长不适应问题进行了改进,对2q′值与原2q值进行比较从而调整帧长,减少了q值的动态调整次数,维持了较为稳定的rfid系统吞吐率并提高了标签识别的性能。附图说明图1.本发明的防碰撞算法流程图;图2.本发明的实例的步骤流程图;图3.现有技术q算法、固定帧长的算法与本发明中算法的时隙消耗对比图;图4.现有技术q算法、固定帧长的算法与本发明中算法的系统效率对比图。具体实施方式下面结合附图对本发明进一步说明。实施例:本发明的适用于rfid系统的新型q值防碰撞算法是符合epc-c1g2标准的q值算法。epc-c1g2标准规定了在860mhz-960mhz的频率范围内操作的无源反向散射、询问机讲话优先(itf)和射频识别(rfid)系统要求。该标准主要包括以下几个命令:select(基于用户的需求选择相应的标签群)、inventory(识别标签的过程)、access(向某个确定的标签进行读操作或写操作)。select操作和access操作可以确定命令长度或所需时间,因而rfid系统的标签识别性能很大程度上取决于inventory操作的算法设计。inventory操作主要包括query、queryadjust、queryrep、ack、nak等指令。query是inventory的初始化命令,主要作用是将参数q发送给所有被select选中的标签,每个标签将在[0,2q-1]间产生一个随机数,并存入标签的时隙计数器内,若产生的是0,则标签返回一个rn16(16位的随机数),若阅读器可以接收到这个rn16,则阅读器表示已经确认与该标签进行通信,被确认的标签发送自己的epc(electronicproductcode)。queryadjust命令是指在不改变inventory其他指令的前提下,更改参数q的值(q+1,q-1),接收到此命令的所有标签重新在[0,2q-1]的范围内产生随机数,若产生的是0,则标签返回一个rn16。queryrep将所有标签所产生的随机数自减,若有标签的随机数减为0,则标签返回一个rn16。若有多个标签的随机数为0,则阅读器会在同一时隙内收到多个rn16,即产生碰撞,阅读器将无法正确识别每一个标签。在标签数量变化很大的情况下,q算法能否实现系统高效率,主要取决于参数c的取值情况。c太大会造成帧长度频繁调整,增加功耗和识别时间;c太小会增加最优帧的选择时间,降低识别效率。在理想通信状态下,任一时隙发生碰撞和空闲的概率是不同的,同时碰撞时隙和空闲时隙消耗的时间也不同,仅仅采用单一的参数c调整无法使系统工作在最优状态,导致识别标签速率迅速下降,系统效率也会降低。epcc1g2标准中建议c的取值为[0.1,0.5],在q值较大的情况下,c取较小的值,q值较小的情况下,c取较大的值。q算法通过参数c在每个时隙结束后对当前帧长进行动态调整。时隙中标签数为0,即为空闲时隙,q减c;时隙中标签数等于1,即为成功时隙,q不变;时隙中标签数大于1,即为碰撞时隙,q增加c,当q变化超过1时,对q进行取整,即得到新的q值。参照图1,本发明的适用于rfid系统的新型q值防碰撞算法,采用符合epc-c1g2标准的q值算法,在此基础上将标签首先进行预分组,再对新的2q′值与原2q值进行比较判断,包括以下几个步骤:首先对标签进行预分组;阅读器判断当前时隙的时隙状态,包括空闲时隙、成功时隙和碰撞时隙;阅读器判断每一帧内的时隙状态,若为空闲时隙,则q减c;若为成功时隙;则q不变,若为碰撞时隙,则q增加c;判断新的2q′与2q的差值的绝对值是否超过门限值(门限值不唯一,由标签数决定)或者判断当前时隙是否为最后一个时隙,若是,则阅读器对新的q′取整后赋值给q并发送q算法的queryadjust指令;若否,则发送q算法中的queryrep指令。进一步作为本发明的实施方式,本发明中所需要的门限值由以下公式来确定:其中,参数a表示当q′<q的时候,门限值所选取的参数,参数b表示当q′>q的时候,门限值所选取的参数。两个参数与未读标签数相关,通过仿真实验获得。门限值如下表所示:标签数范围参数a(平均值)参数b(平均值)系统效率0-1000.761.440.34101-2000.831.430.34201-3000.851.510.36301-4000.851.510.36401-5000.851.500.33501-6000.861.530.33601-7000.851.530.33701-8000.871.520.33801-9000.851.500.32901-10000.861.530.32图2是本发明优选实施例的步骤流程图,参照图2,包括以下几个步骤:s1.判断标签是否需要进行分组操作,若需要,则按照所述分组方式进行分组;所述的分组方式为:如果标签数小于354,则不需要进行分组;如果标签数大于354,小于610,则分为两组:一组标签数为256,另一组为其余标签;如果标签数大于610,小于866,则分为三组:两组标签数为256,另一组为其余标签,以此类推;s2.对每组标签进行如下算法:设置q值的范围为(0,15),;s3.阅读器发送query;s4.处于唤醒状态的标签数为1或无标签被唤醒,执行步骤s13;处于唤醒状态的标签数大于1,执行步骤s5;s5.标签启动随机数发生器各自产生一个处于[0,2q-1]之间的随机数,并将其存入到自身的时隙计数器内;s6.时隙计数器的值为0的标签响应阅读器;s7.判断当前时隙中响应的标签数量:数量为0,执行步骤s8;数量为1,执行步骤s9;数量大于1,执行步骤s10;s8.设置q′的值为q-c,执行步骤s11;s9.q不变,成功识别了一个标签,跳转到步骤s12;s10.设置q′的值为q+c,执行步骤s11;s11.判断2q′值与2q的差值的绝对值是否超过门限值,若是,则通过queryadjust指令对q进行更改,跳转至步骤s4;否则,执行步骤s12;s12.阅读器发送queryrep指令,使所有标签的时隙计数器的值减1,跳转至步骤s6;s13.所有标签均被识别,算法结束。为了检查改进后算法的性能,我们对改进前后的算法进行了仿真,仿真所取得标签数均为1000个,所有结果都是经过1000次的仿真所求的平均值。由于epcc1g2标准只给出了c的建议范围[0.1,0.5],在本实验中,c的值由以下公式来确定:在图3中我们可以发现本发明提出的标签分组算法相比于传统q值算法和固定帧长为128和256的帧时隙算法,在识别相同标签数的条件下,所消耗的总时隙数较少。并且相比于传统q值算法,本算法所消耗的总时隙数较为稳定并且减少了17.3%。从图4中我们可以发现,相比于其他算法,本算法在系统效率方面较其他算法有所提高,相比于传统q值算法,本算法在系统效率方面提高了21.4%并且能够有较为稳定的系统效率。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1