一种高效rfid自适应型防碰撞跟踪树算法

文档序号:6520662阅读:214来源:国知局
一种高效rfid自适应型防碰撞跟踪树算法
【专利摘要】本发明涉及一种高效RFID自适应型防碰撞跟踪树算法,可有效解决由于多标签共享同一信道而导致的传输时延。该算法首先利用读写器与标签保存的读写器唯一标识码及识别帧号,消除了新到标签与滞留标签之间的碰撞,减少了碰撞延迟;同时,通过对标签唯一标识码进行进制转换,利用提出的三叉树编码方式对其碰撞位的碰撞情况进行检测,然后自适应调整使用二叉树或三叉树对标签碰撞集进行分裂,在完全消除空闲时隙延迟基础上,降低了二叉搜索树的整体深度;最后,根据上一帧识别的标签自适应调整质询队列,实现单个质询串对多个滞留标签的识别。本发明算法结构设计精巧,分而治之的对标签进行识别,降低了识别耗能,完全消除了空闲时隙,缩短了识别时间。
【专利说明】一种高效RFID自适应型防碰撞跟踪树算法
【技术领域】
[0001]本发明涉及一种高效RFID自适应型防碰撞跟踪树(HACT)算法,属于物联网架构下RFID射频识别领域。
【背景技术】
[0002]与条形码技术相比,RFID (无线射频识别)技术具有远距离识别、批量读取、可适用于恶劣环境、可读写等诸多优点,可广泛应用于物流管理、交通运输、航空等重要领域。读写器系统由后台数据库、读写器、标签组成。读写器通过对贴附在物体上的标签唯一标识(ID)识别进而利用后台数据库实现对物体信息的获取。RFID系统使用单双工方式利用共用通信信道实现对其大量标签的识别,多标签同时在共享无线信道中发送信号必然导致信号的混叠,导致读写器不能正确识别标签。如何快速、精确的识别标签是影响其整体系统效能的关键制约因素。同时,目前使用的大部分标签为被动式标签,具有造价低廉、计算能力弱、存储量小等特点。因此,设计吞吐量高、标签耗能小的有效防碰撞算法提高读写器对标签的识别效率十分必要。
[0003]目前,RFID防碰撞算法主要分为两类:一类是基于ALOHA类的算法,该类算法具有操作简单等优点,但是算法性能受标签估算精度影响较大,普遍吞吐率较低。识别帧包含时隙数与标签数越为接近,算法的吞吐量越大。因此,针对该算法目前的主要研究热点为利用上一帧或者上几帧的空闲时隙、成功识别时隙及碰撞时隙数进而推导当前帧长。然而,受标签估算算法复杂度和精度的影响,大部分估算算法仍然未投入实际使用。同时,ALOHA类算法存在严重的“标签饥饿”现象(部分标签长时间得不到识别),饥饿标签长时间处于碰撞状态,由此导致浪费了大量时隙及标签漏检的问题;另一类算法为树型算法,主要包括前缀质询类(QT)算法和二叉树搜索算法(BS)两大类,树型算法主要通过制定分类规则进而不断将相同特征的标签归为一个集合,而具有不同特征的标签划归为另一个集合,直到集合中仅仅包含一个标签,从而实现了标签唯一性识别的目标,该类算法具有识别精度高的优点,解决了 ALOHA类算法的漏检问题。然而,目前的大部分树型算法存在识别时间较长的问题。

【发明内容】

[0004]本发明旨在提供一种高效RFID自适应型防碰撞跟踪树(HACT)算法。该算法针对实际应用环境下在上一帧识别完毕后在下一帧识别过程中仍然可能有大量在上一帧中已经识别的标签滞留在其读写器的识别范围内的情况,采用分而治之的方式,在充分利用滞留标签的信息的基础上,对滞留标签和新到标签采用不同的方法进行识别。具有算法简单、识别效率高、对标签要求小能特点。
[0005]本发明通过以下技术手段进行实现:
[0006]HACT算法包括两个阶段:对新到标签的识别和对滞留标签的识别。对新到标签的识别采用三叉树碰撞跟踪位算法;对滞留标签的识别通过利用合并质询前缀,利用一个质询前缀对多个滞留标签进行识别,滞留标签仅需回应单位字节,表明其存在性即可,因而,节省了大量传输耗能、提高了系统效率。
[0007]本发明设计了一种高效RFID自适应型防碰撞跟踪树(HACT)算法,适应于大量的 实际应用环境,其算法执行伪码如图1、图2、图3、图4所示。
[0008]伪代码中的符号定义如下:
[0009]CurID:保存当前帧所有识别标签的标识码
[0010]PrevID:对上一巾贞已识别标签利用函数Sort_Query (CurID)进行排序后的队列
[0011]CurF:读写器当前识别帧号
[0012]NextF:读写器下一帧识别帧号
[0013]TF:标签当前识别帧号
[0014]RID:读写器唯一标识码
[0015]Q:用来保存滞留标签质询串队列
[0016]Query-Result:对滞留标签的识别情况
[0017]foresee-array:若滞留标签同时存在的情况下,其预见识别情况
[0018]tagresponsesarray:对滞留标签识别的情况下,其信道中存在标签的反馈信号
[0019]Establish_Query(CurID):根据当前帧中所有识别的标签标识码建立滞留标签质 询队列
[0020]Sort_Query(CurID):按照当前帧中所有识别的标签标识码对其进行排序
[0021]Qt:阶段二情况下,读写器质询前缀队列
[0022]I 1:联接
[0023]*1:信道当中标签传输信号某位发生0、1、2碰撞
[0024]*&:信道当中标签传输信号某位发生0、1碰撞
[0025]01:信道当中标签传输信号某位发生0、2碰撞
[0026]11:信道当中标签传输信号某位发生1、2碰撞
[0027]Q1:当一帧接受后利用CurID建立相应的滞留标签查询串时,中间计算结果,代表 读写器在碰撞时隙时的质询串。
[0028]Q2:当一帧接受后利用CurID建立相应的滞留标签查询串时,中间计算结果,代表 读写器在碰撞时隙时的信道中标签的反馈信号。
[0029]CD:同或运算
[0030]本发明的特点在于:
[0031]1.利用三叉数编码方式实现了对转化为三进制后的标签标识码进行信道中的碰 撞识别,从而,使得新到标签的识别算法自适应的选择二叉树或者三叉树对标签碰撞集进 行分割,同时,其识别算法仅仅在碰撞位处进行分割,因此,全面消除了其空闲时隙。
[0032]2.利用读写器和标签保存并比对其读写器唯一识别码和识别帧号的方式,从而, 使得该算法可以对标签进行分而治之的方式进行识别,对新到标签和滞留标签采用不同的 识别方法进行识别。
[0033]3.对滞留标签的识别采用合并前缀的思想,节省了传统QT算法读写器多次发送 比对前缀位而导致的冗余位,同时,仅仅需要标签发送单位比特以证明自己存在于该读写 器的识别范围内。【专利附图】

【附图说明】
[0034]图1为本发明的读写器算法执行流程伪代码
[0035]图2为本发明的读写器阶段二对新到标签识别的算法流程伪代码
[0036]图3为本发明的标签算法执行流程伪代码
[0037]图4是本发明的标签阶段二标签执行算法伪代码
[0038]图5为三叉树编码方式
[0039]图6为三叉树编码方式对应的碰撞检测及相应的表不
[0040]图7为示例识别视图
[0041]图8为滞留标签质询串构造
[0042]图9为示例质询串构造过程
[0043]图10为示例所有质询串,从而构成了示例的质询队列Q
[0044]图11为最坏情况下,一个质询串可识别标签情况
[0045]图12为二进制转化为三进制的映射表
[0046]图13为示例新到标签识别过程
【具体实施方式】
[0047]该算法包括两个阶段:对新到标签的识别和对滞留标签的识别。对新到标签的识 别采用三叉树碰撞跟踪位算法;对滞留标签的识别通过利用合并质询前缀,利用一个质询 前缀对多个滞留标签进行识别,滞留标签仅需回应单位字节,表明其存在性即可,因而,节 省了大量传输耗能、提高了系统效率。以下进行具体阐述:
[0048]RFID读写器以“帧”作为识别标签时间结点,即RFID系统以“帧”为单位对其识别 范围内的标签进行识别进而对其标签的归属物体进行物流管理和跟踪等。定义为第i 帧读写器r信号覆盖范围内的标签集,Cs, Ca, C1分别为第i帧相对于第i+1帧的滞留标签、 新到标签、离开标签,由此可知下式:
[0049]Cs= 3r,i+1 n
[0050]Ca= Ur;i
[0051]C1=Urw
[0052]一、HACT算法执行流程
[0053]其执行流程如图1、图2、图3、图4所示:
[0054](I)如图1,在每帧的初始阶段,将队列CurID置空,用于接收新一帧识别的标签标 识码,读写器发送第一阶段命令及自身唯一标识(RID)、当前的质询帧号(CurF)
[0055](2)标签收到该命令后,如图2所示,与标签保存的上一帧质询阅读器唯一标识 (RID)、下一帧号(TF)进行对比,若相同,标签判定自身为滞留标签,否则为新到标签。由 此,算法对新到标签和滞留标签做了相应的划分。
[0056](3)如图1,若滞留标签质询队列为非空时,读写器发送质询前缀,并结合其接受到 的信道中标签的应答信号对滞留标签进行识别;若滞留标签质询队列为空时,则执行阶段
二读写器算法流程。
[0057]3.1)若Q为NULL,则读写器发送第二阶段命令,执行第二阶段程序,读写器执行流 程如图2所示,标签算法执行流程如图4所示,即新到标签识别。以下进行具体说明。[0058]对新到标签的识别基于三叉树碰撞位跟踪防碰撞方法,算法根据标签集信号反馈自适应调整其质询叉数。同时,在读写器检测到碰撞以后,及时发送终止标签传输位命令, 终止标签继续传输唯一标识码信号。以下进行具体阐述。
[0059]标签首先将其标识由二进制转化为三进制,其转化映射图如图12所示,设标签的标识为h——V1IDk, bi G {0, 1},转化后的唯一标识为B1...Bm^am, Bj G {0, I, 2},其转化公式如下:
[0060]bi*22+bi+1*2+bi+2*2° = a 产 3+aJ+1*30
[0061]i e jl,4,7.10..1- -3|./ e- 2丨
3
[0062]将其标签唯一标识码转化为三进制后,利用三叉树编码方式进行碰撞检测。三叉树编码方式如图5所示,就单Bit位而言,若标识位为I,则其在单Bit传输时段的前1/3采用正电平,后2/3时间段采用负电平,因此,1/3时刻产生一次高到低电平的跳变;若标识位为0,则其在单Bit传输时段的前1/3采用负电平,中间2/3时间段采用正电平,后1/3时刻为负电平,因此,产生两次电平跳变;若标识位为2,则其在单Bit传输时段的前2/3采用负电平,后1/3时刻为负电平,产生一次由低到高的电平跳变。
[0063]利用新的编码方式可准确判断碰撞位的碰撞情况,实现步骤如下:假设有三个标签A\B\C,其转化后的三进制标识为:10201201, 11101200, 12121200,如图6所示,信道中出现不同的碰撞情况和识别情况读写器所解码到的信号不同,因此可以判断其碰撞情况。
[0064]当碰撞位包含“0,1,2”时为识别情况1,1/3时刻、2/3时刻正负跳变抵消,整个Bit 传输时间内读写器端接收到的都为副载波信号,由此可以断定该位发生了“0,1,2”碰撞。同样可知“1,2”和“0,2”碰撞分别对应于碰撞情况2和3以及单一标签可识别状态分别对应于识别情况1、2和3。其碰撞和识别情况表示方式如图6中所示。由图6可见,每种情况下读写器接受到的信道信号唯一,因此,读写器可以有效检测到标签在某一位的碰撞情况或识别情况。
[0065]阅读器根据接收到的信道信号判断碰撞位情况,如图2伪代码6到25行。有两种情况出现:一种是阅读器成功的识别了标签,成功识别的情况下,保存标签ID到CurID ; — 种是阅读器检测到了碰撞信息,如同算法2伪代码6到23行所示,根据不同的碰撞位情况进而压不同的质询串到质询队列Qt当中,识别过程循环执行图2流程,直到每个标签集中仅有一个标签。
[0066]其标签执行流程如图4所示,接受到读写器的质询串为q,逐位比对其质询串与自身ID信息,若完全一样,则传输其除质询前缀后的标识码,直到发送完全部的标识码或者检测到读写器的停止传输信号则停止发送其标识码。
[0067]阅读器对28个具有15位二进制唯一标识的标签(经过转化后变为10位三进制标识)进行识别的交互消息如图13所示,阅读器根据接收到的信号对具有不同碰撞位碰撞集进行逐次分裂,其识别过程如图7所示。
[0068]3.2)若Q为非NULL,则读写器发送第一阶段命令,执行第一阶段程序,读写器执行流程如图1所示,标签算法执行流程如图3所示,即滞留标签识别。以下进行具体说明。
[0069]当读写器对自身范围内标签开始执行识别操作时,若质询队列Q为非空时,则执行第一阶段算法流程,直到其质询队列为空。[0070]以下假设质询队列Q为非空,即执行第一阶段算法流程。伪代码如图1所示。
[0071]算法在上一巾贞结束后利用函数Establish_Query (CurID)建立滞留标签质询队列 Q,其中CurID为上一巾贞所有识别标签的标识码,质询串构造如图8所示。第一个前缀表示 子树的公共前缀,层数表示子树高度(0表示高度为1,以此类推I和2),“***”表示0层即 高度为I时,下面三个节点的碰撞和识别情况(0表示空闲时隙,I标识可识别时隙,2表示 碰撞时隙);若0层有碰撞节点则对应的下一层需要对该节点下面的三个标签进行说明,I层 前缀为对应的补加前缀后,下一位即为碰撞位,进而说明该位的碰撞或识别情况“***”,若 有碰撞则需要插入其2层补加前缀,定位到其下一个碰撞位,以此类推可以构造该子树的 质询串,以从右到左,从下到上的顺序,以此构造其质询串,从而构成质询队列。
[0072]读写器在内部构造滞留标签质询串,以图13为&帧识别的标签为例进行具体说 明Establish_Query (CurID)。首先读写器建立如图7的三叉树,建立过程如图2,因为此时 读写器知道所有滞留标签信息,因此,节省了信道链路传输时间,其运算时间极短。进而可 以获得Q1, Q2,其分别代表内部已识别标签在碰撞时隙下读写器质询前缀、碰撞时隙下信道 中标签的应答信号。
[0073]利用Q1和Q2建立其滞留标签质询串,首先从Q1的最后一个碰撞质询串开始,在Q1 查找该碰撞节点的父节点,父节点继续在Q1中查找自身父节点,依次查找,该碰撞节点最多 找自身前三代父节点。利用找到的该子树的最老的父节点结合其对应的Q2队列中碰撞情 况,对该子树进行恢复,将其找到最老的父节点作为该子树的0层,往下依次为I层,2层, 由此可知,0层的节点除碰撞节点为该子树的共有前缀,以此类推I层,2层的节点也是各自 下面标签节点的共有前缀,因此,可以对其该子树的质询前缀进行合并,0层的前缀为所有 层的质询前缀,I层的质询前缀为2层以下所有标签的质询前缀,以此类推,因此可以合并 其质询前缀。并在质询串内中说明每层节点的碰撞和识别情况,并在0层说明该子树的层 数。
[0074]质询队列中的第一个质询串构造过程如图9所示:首先利用Q1中的最后一个碰撞 质询前缀20212查找到上一层质询前缀202,继而查找再上一层碰撞质询前缀2,在Q1中找 出所有首位为2的碰撞质询前缀。同时,结合其标签反应Q2构造滞留标签质询串,利用质 询前缀2和相对应的标签反馈信号0*1,可知“20”为子树下标签共有前缀,而下一位发生了 碰撞,由此可以构造“202122”,其中20表示共有前缀,而2表示该子树的层数,122说明0层 的三个节点(以20为前缀,0,1,2为下一位的标签集)分别对应为可识别时隙,碰撞时隙,碰 撞时隙。接着构造第二层质询前缀与识别情况,首先对应于“201”下的时隙为碰撞时隙,因 而,根据Q1与Q2的一一对应关系,以“201”为前缀的标签在第一层识别需要加补的前缀为 “011”,而且其分支下的三个时隙为可识别实习,因而识别情况为“111”,相应的其以“202” 为前缀的标签在一层需要补前缀“ 1”,其分支下的三个时隙对应为“ 122”,为了进一步对标 签分支情况进行明确,需要加补前缀“21”和“011”。因此可以构造出质询串“202122 I 0111 11| 11122 I I 211 |011| |”,其中“I I”代表空位,即在该位不发送信号便于标签对数据段进行 相应的分段识别,对于I层而言,“ I I ”倒数三位为对应于“0层前缀+ ‘由碰撞决定的0或I 或2’ +1层补前缀”+ “0或I或2”下的时隙情况,0对应于空闲时隙,即在该前缀下不存在 标签,I对应于识别时隙,2对应于碰撞时隙,依据子碰撞树“从上到下,自左而右”的原则, 读写器可以依据其质询前缀对具有特殊前缀的标签进行排序后放入PerID队列当中,其对应于图1中的函数Sort_Query (CurID),图7对应构成的所有质询串如图10所示。
[0075]发送该质询串后,标签可以判定其自身在其子树上的位置,进而计算出在哪个时隙发送单位bit (I)。若标签全部存在的情况下,可以预见标签的反馈信号为 foresee-array = {11111111111},标签若存在的情况下反馈信号“ I ”,标签若不存在则信道当中没有信号,读写器将其记为“0”,进而可知标签反馈信号为Query-array = {0,1} lmgth(f_s『amy),这里的0表示为信道中没有信号在该标签需要发送比特位的时间段内,在质询串中对0层I层标签碰撞情况进行了说明,而对2层中对质询时隙情况没有进行说明, 由此,若对应于原来不存在的标签则在预见数组foresee-array当中以“0”进行表示。在收到Query-array后首先剔除foresee-array [i] =0的位,其后,读写器认为第i个标签存在的情况为Query-array[i] O foresee-array[i]为I。在下一帧质询过程中若在规定的时间段内标签没有做出回馈位“1”,则读写器认为标签不存在,在排序好的PurID中将其剔除。
[0076]标签接收到质询串后对其在子碰撞树上自身位置进行判断以确定发送单位比特的时隙,其执行流程如图3所示:若接受到的为第一阶段命令且保存的RID与接受到的RID 相等,帧数对等,则将其标志位isResponsible置1,若其中有一个不满足则将其标志位 isResponsible置0,并将标签保存RID置为接受到的RID,并将TF置为接受到的CurF+1, 之后开始执行第二阶段算法流程。
[0077]若isResponsible为I,则根据质询信号判断其在分支树上的位置,在规定时间段内发送单位比特进而表明自己的存在。
[0078]以第一个质询串为例进行说明,标签在第一个没有收到信号位的情况下,即“2021 22 I 0111111 11122 I I 211 011 ”中“202122 ”截取后四位判断其子树层数及其0层的碰撞情况,而20作为比对前缀,“122”为碰撞情况。因此,以“200”为前缀的标签可以确定自身为可识别时隙下标签,为第一时间段发生单位比特标签;而“201”,“202”为碰撞时隙,进而以“201”为前缀的标签利用下一个“0111111 I ”后三位为碰撞情况,“011”为补加前缀,SP 2011011为前缀的标签其碰撞情况为三个可识别时隙,该三个标签即以“ 2011011”为前缀的标签下一位为“0,I, 2” 的分别在第二、三、四时间段发送单位比特。以202为前缀的标签以“ 1122 I I ”判断其补加前缀为“ I”而其“ 122”判断其三个分支情况,即“20210”为前缀的标签和以“20211”为前缀的标签为碰撞集,由此,标签继续跟踪其加补前缀“211 I ” “0111 I ” 即以“2021121”为前缀的标签,其具有相同前缀且下一位为“0,1,2”的标签分别确定其发送单位比特的时间为第六、七、八时间段,相应的以“20211011”为前缀的标签可以判断发送单位比特的时间为第9,10,11时间段,具体时间段长度为单位比特从标签到阅读器所需要的时间。
[0079]进而读写器接受到信道中标签的反馈信号后,读写器利用Query-array进一步判断其标签的存在情况,若存在则将其对应的标签标识码压进对应的CurID队列中,而将其从PrevID中弹出。
[0080]结束其对滞留标签的识别后,进而发送其第二阶段命令,开始对新到标签的识别, 其在3.1中进行了具体说明。
[0081 ] 二、HACT算法性能分析
[0082]以下HACT算法性能进行分析,对新到标签的识别是建立是三叉碰撞位跟踪防碰撞的基础上的。因此,首先对其新到标签的识别算法性能进行分析:
[0083]( 1)新到标签算法性能分析
[0084]防碰撞算法的性能主要是由碰撞时隙、空闲时隙、识别时隙的数量以及系统的系统吞吐量来进行衡量的。
[0085]假设RFID读写器范围内有n个新到标签,标签的标识均匀分布,根据新到标签算法的描述可知,在碰撞位处,根据碰撞的检测结果,自适应的采用二叉树分割或者三叉树分割,碰撞树当中叶子节点对应可识别的时隙,其数量为n,内部节点对应于碰撞时隙,以下分完整三叉树和完整二叉树两种情况进行讨论。
[0086]设T1 (n)、Tlavg (n)和 E1 (n)、T2 (n)、T2avg (n)和 E2 (n)为完整三叉树和完整二叉树的节点总和、识别一个标签所用的平均时隙数和系统吞吐率,T(n)、Tavg(n)和E(n)为三叉碰撞位跟踪算法的节点总和、识别一个标签所用的平均时隙数和系统吞吐率。对于时隙的总和,首先以完整三叉树和完整二叉树分别进行推导。
[0087]结论1:完整三叉树,即每个碰撞节点包括三个分支节点的情况下,在标签数为n 时,总时隙数为T1 (n) = (3n-l) /2
[0088]证明:以数学归纳法对其进行证明:
[0089]当碰撞节点为I时,对应的总时隙为4,标签数为3,由此可知, T1 (3) = (3*3-1) /2=4,碰撞节点数为(n-1) /2=1
[0090]当碰撞节点数为k时,命题成立的话,则标签数n = 2k+l, T115 (n) = (3* (2k+l)-1) /2。
[0091]当碰撞节点数为k+1时,相当于将碰撞节点数k中的某个节点替换为三个可识别的标签,因此,总时隙数为碰撞节点数k的基础上增加了 3个时隙,而可识别标签数增加了2个,由此可知,标签数为 n = 2k+3, T1k+1 (n) = {(3*(2k+l)-l)/2}+3,
[0092]从而,T1k+1 (n)= {(3*(2k+l)-l)/2},也即 T1k+1 (n)= (3n-l)/2,由此结论 1 成立。
[0093]进一步可知:
【权利要求】
1.一种高效RFID自适应型防碰撞跟踪树(HACT)算法,其特征在于包含以下实现步骤:(1)利用发送识别帧号和上一帧识别读写器唯一标识码对滞留标签和新到标签进行分类。(2)分类后,对滞留标签的识别,采用合并前缀法,实现了一个质询串对多个标签的识别。(3)对新到标签的识别,采用三叉树碰撞位跟踪法自适应的跟踪碰撞位碰撞情况,进而采用二叉树或三叉树对其碰撞集进行分裂。(4)当一帧结束后,利用函数Establish_Query(CurID),建立下一帧滞留标签质询队列。并对应的利用Sort_Query (CurID)对当前帧识别的标签进行排序。
2.如权利要求1所述的一种高效RFID自适应型防碰撞跟踪树(HACT)算法,其特征在于:所述步骤(1)中利用发送识别帧号和上一帧识别读写器唯一标识码对滞留标签和新到标签进行分类的具体实现方法如下:1.1)读写器第一阶段(1-Phase)命令,自身的唯一标识码RID及该帧的识别帧号CurID1.2)标签接受到上个消息后,若其非终止帧命令,则验证其是否非第一阶段命令、验证接受到的RID是否等于自身保存的RID,标签的识别帧号TF是否与读写器发送的CurF相等,若全部相等的情况下,置标志位isResponsible为I,表明其自己为滞留标签,接受第一阶段识别算法。否则·,置标志位isResponsible为0,表明其自己为新到标签,接受第二阶段识别算法。
3.如权利要求1所述的一种高效RFID自适应型防碰撞跟踪树(HACT)算法,其特征在于:所述步骤(4)中当一帧结束后,利用Establish_Query (CurID)构造了滞留标签质询队列并保存于队列Q中,并利用S0rt_Query (CurID)相应的对滞留标签的唯一标识码进行排序并保存。其实现方法如下:·4.1)读写器内部模拟新到标签的识别方法,利用队列CurID建立的三叉碰撞跟踪树。 进而保存其碰撞时隙的质询队列Q1,及其碰撞时隙内的信道中接受到的碰撞队列Q2,该步没有实际信号位在信道链路上的传输耗用时间,因此,该步骤耗时极短。·4.2)利用Q1和Q2建立其滞留标签质询串,首先从Q1的最后一个碰撞质询串开始,在Q1 查找该碰撞节点的父节点,父节点继续在Q1中查找自身父节点,依次查找。该碰撞节点最多找自身前三代父节点。利用找到的该子树的级别最高的父节点结合其对应的Q2队列中碰撞情况,对该子树进行恢复,将其找到的级别最高的父节点作为该子树的0层,往下依次为I层,2层,由此可知,0层的节点除碰撞节点为该子树的共有前缀,以此类推I层,2层的节点也是各自下面标签节点的共有前缀,因此,可以对其该子树的质询前缀进行合并,0层的前缀为所有层的质询前缀,I层的质询前缀为2层以下所有标签的质询前缀,以此类推, 因此可以合并其质询前缀。并在质询串内中说明每层节点的碰撞和识别情况,并在0层说明该子树的层数。·4.3)依据该子树上可识别节点从上到下、从左到右的次序对其识别节点对应的标签进行排序,利用Sort_Query (CurID)依次将其压入队列PrevID。` 4.4)当建立了第一个质询串后,将其该子树在Q1和Q2中该子树对应的质询串和碰撞反应串删除,相应的查找到该子树O层节点的父节点,对该父节点对应Q2中的碰撞反应串进行修改,以删除其该子树分支。 ` 4.5)当建立第一个子树质询串,再次从Q1的最后一个碰撞质询串开始,建立第二个子树质询串,进而依据从下到上,从右到左的规则,依次建立所有子树的质询串,从而形成其所有滞留标签的质询队列Q,和其对应的PrevID。
4.如权利要求1所述的一种高效RFID自适应型防碰撞跟踪树(HACT)算法,其特征在于: 所述步骤(3)对新到标签的识别,采用三叉树碰撞位跟踪法自适应的跟踪碰撞位碰撞情况,其实现步骤如下: 3.1)对标签的唯一标识码由二进制转化为三进制,其转化公式如下: 设标签的标识Sb1——V1IDk, bi e {O, 1},转化后的唯一标识为B1...Bm^am,Bj e {O, 1,2},其转化公式如下:
5.如权利要求4所述的新到标签识别算法,其特征在于: 1)三叉树编码方式: 就单Bit传输位而言,若标识位为1,则其在单Bit传输时段的前1/3采用正电平,后2/3时间段采用负电平,因此,1/3时刻产生一次高到低电平的跳变;若标识位为0,则其在单Bit传输时段的前1/3采用负电平,中间2/3时间段采用正电平,后1/3时刻为负电平,因此,产生两次电平跳变;若标识位为2,则其在单Bit传输时段的前2/3采用负电平,后1/3时刻为负电平,产生一次由低到高的电平跳变。 2)根据三叉树编码方式,对应于碰撞位,在信道当中检测到的信号不尽然相同,当碰撞位具有“0,1,2”碰撞时,1/3和2/3时刻都对应的正负跳变抵消,因而,真个传输位检测到的都是正电平信号;对应的若“0,2”碰撞,则后2/3传输位都为正电平,前1/3的传输位为负电平;依次类推,其对应不同的碰撞情况和识别情况,信道中接受到的信号不同,因而,读写器根据不同的碰撞情况,压不同的质询串到质询队列Qt中。因此,读写器可以自适应的对碰撞标签集进行三叉树或二叉树分割。
6.如权利I和3对滞留标签的识别,其特征在于: 所述步骤(2)中对滞留标签的识别,采用合并前缀法,实现了一个质询串对多个标签的识别。其具体识别步骤如下: ` 2.1)若标签都存在的情况下,同时考虑其在建立2层质询前缀时没有在质询串中对子树最底层的标签进行说明,建立其数组foresee-array。若标签存在,贝U在foresee-array 中对应的位为I。 .2.2)读写器利用Establish_Query (CurID)建立的滞留标签质询队列,逐次发送质询队列,标签根据其质询串计算自身发送单位比特的时隙,进而表明其自己的存在,若不存在的情况下,信道中在某时隙检测不到任何信号,读写器将其标记为O。读写器根据接受到标签发送的信道信号,进而建立其数组tagresponsesarray。 .2.3)令 Query-Result = foresee-array O tagresponsesarray,在 Query-Result 与 foresee-array都为I时,则对应于该节点的标签存在,进而将其PrevID中压进CurID中。 否则若Query-Result等于I,但tagresponsesarray为0的情况下,删除PrevID中的标签唯一标识码;若Query-Result等于I但foresee-array为0的情况下,读写器直接跳过该位。 .2.4)逐次利用Q中的质询串对滞留标签进行识别,当Q为空时,则执行阶段二新到标签的识别。
7.如权利I和权利3所述的一种高效RFID自适应型防碰撞跟踪树(HACT)算法,其特征在于:在完成整个识别帧后,利用Establish_Query (CurID)建立下一帧读写器质询队列Q, 并依据质询队列Q对应的利用Sort_Query (CurID)建立排序后的滞留标签队列PrevID。当新的识别帧开始时,读写器修改其帧号CurlD。同时,当上一识别帧对某一标签的识别结束后,标签对应的修改其帧号TF,及其标签内部保存的读写器唯一标识符RID。
8.在上述一种高效RFID自适应型防碰撞跟踪树(HACT)算法中涉及到的变量、定义及运算符号分别说明如下:CurID:保存当前帧所有识别标签的标识码PrevID:对上一帧已识别标签利用函数Sort_Query (CurID)进行排序后的队列CurF:标签当前识别帧号TF:标签当前识别帧号RID:读写器唯一标识码Q:用来保存滞留标签质询串队列Query-Resuit:对滞留标签的识别情况foresee-array:若滞留标签同时存在的情况下,其预见识别情况 tagresponsesarray:对滞留标签识别的情况下,其信道中存在标签的反馈信号 EstabIish_Query (CurID):根据当前帧中所有识别的标签标识码建立滞留标签质询队列Sort_Query(CurID):按照当前帧中所有识别的标签标识码对其进行排序 Qt:阶段二情况下,读写器质询前缀队列Q1:当一帧接受后利用CurID建立相应的滞留标签查询串时,中间计算结果,代表读写器在碰撞时隙时的质询串。Q2:当一帧接受后利用CurID建立相应的滞留标签查询串时,中间计算结果,代表读写器在碰撞时隙时的信道中标签的反馈信号。Θ:同或运算。
【文档编号】G06K7/00GK103577783SQ201310606630
【公开日】2014年2月12日 申请日期:2013年11月25日 优先权日:2013年11月25日
【发明者】贾庆轩, 王鑫, 高欣, 赵兵, 陈钢, 翟峰, 陈鹏 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1