一种基于双向分段查询的RFID防碰撞方法与流程

文档序号:19830712发布日期:2020-02-04 12:24阅读:124来源:国知局
一种基于双向分段查询的RFID防碰撞方法与流程

本发明属于射频识别技术领域,涉及一种双向分段查询的防碰撞方法。



背景技术:

射频识别(rfid,radiofrequencyidentification)技术是上世纪八十年代出现的一种无线自动识别技术。利用电磁波进行非接触式双向数据传输,具有交换快、非接触、自动识别、可穿透等优点,现广泛应用于医疗、仓储、航空、零售等领域。rfid系统由阅读器、电子标签和数据库组成。阅读器以电磁信号广播报文给其磁场区域内的标签,标签感应后响应阅读器。阅读器的磁场区域内一般存在多个标签,当一个以上标签同时向阅读器传送数据时就会产生信道冲突问题导致传送失败,即rfid碰撞问题,这严重影响了rfid系统的识别效率。因此,设计防碰撞算法以准确高效地识别标签对于rfid系统及物联网运行效率具有重要的现实意义。

目前的防碰撞算法主要基于时分多路算法,通常分为两类:基于aloha的随机性算法和基于树型搜索的确定性算法。目前常用的随机性算法通常是设定帧长,将其分成若干个时隙,利用概率算法让标签选择某一时隙传输数据。若发生碰撞,则在下一时隙重新进行随机传输,这就有可能会发生标签“饿死”问题,导致标签无法被全部识别,存在性能不稳定的问题。确定性算法不存在标签“饿死”问题,但系统通信量大,算法较复杂。传统的确定性算法包括二进制搜索树(binarysearch,bs)算法、查询树(querytree,qt)算法、碰撞树(collisiontree,ct)算法、q进制搜索方法(q-arysearchscheme,qas)算法、最优查询追踪树模型(optimalquerytrackingtreeprotocol,oqtt)算法。确定性算法的工作效率往往受到空闲时隙的制约,碰撞树算法消除了空闲时隙的问题,但查询时产生了大量碰撞时隙,导致搜索次数增加,使其性能平庸。且其查询机制通常只包含一个查询前缀,每次查询只有一个目标标签id,只有匹配查询前缀的小部分标签响应,系统吞吐率低。



技术实现要素:

为了解决树型rfid防碰撞算法中查询时隙过多,系统吞吐率高以及数据传输量大的问题,本发明提供了一种基于双向分段查询的rfid防碰撞方法。该方法可以完全消除空闲时隙,减少查询时隙,节省系统开销。

本发明的目的是通过以下技术方案实现的:

一种基于双向分段查询的rfid防碰撞方法,包括如下步骤:

步骤1、阅读器中设置前缀查询栈和后缀查询栈,并初始化为空;阅读器发送初始化命令init(t),段长t为12;

步骤2、标签收到命令后,按照标签id的最高位分组,最高位为1分为前缀查询组,为0分为后缀查询组,并且将id从高位到低位分成两段,前缀查询组两段段长分别为t和l-t,其中:l是id长度,后缀查询组两段段长分别为l-t和t;称长为t的id段为标签的第一段id,另一段为第二段id;

步骤3、阅读器发送查询命令request(prefix,statep,suffix,states),其中:查询前缀prefix、查询后缀suffix为ε,查询状态statep和states均为1;

步骤4、标签接收到查询命令,若statep为3,则前缀查询组静默,后缀查询组直接响应;若states为3,则后缀查询组静默,前缀查询组响应后进入下一时隙;

对于前缀查询组中匹配查询前缀的标签,若statep为1,响应第一段id中除查询前缀外的id;若查询状态为2,响应全部id中除查询前缀外的id;

对于后缀查询组中匹配查询后缀的标签,若states为1,响应第一段id中除查询后缀外的id;若查询状态为2,响应全部id中除查询后缀外的id;

在标签响应时后缀查询组延迟k比特响应,k为前缀查询组响应的比特数;

步骤5、对于前缀查询组的响应,阅读器得到标签响应的曼彻斯特编码叠加:responsep,若发生碰撞且碰撞位个数多于一个,将prefix和responsep中最高碰撞位之前位拼接,再拼接0、1生成两条新的查询前缀,新的查询状态设为statep,并压入前缀查询栈;若发生碰撞且碰撞位个数为一,将prefix与responsep拼接,将碰撞位分别置0、1,生成两条新的查询前缀,若statep为1,则新查询命令的状态为2,压入前缀查询栈,若statep为2,则得到两条识别的id,执行sleep命令,将其在后续的查询过程中屏蔽;若未发生碰撞,将prefix与responsep拼接形成新的二进制串,若statep为1,则新的二进制串作为新的查询前缀,压入前缀查询栈,新查询命令的状态为2,若statep为2,则新的二进制串为识别的标签id,执行sleep命令,令其静默;

对于后缀查询组的响应,阅读器得到标签响应的曼彻斯特编码叠加responses,若发生碰撞且碰撞位个数多于一个,将0、1分别与responses中最低碰撞位之后位与suffix拼接,生成两条新的查询后缀,新的查询状态设为states,并压入后缀查询栈;若发生碰撞且碰撞位个数为一,将responses与suffix拼接,将碰撞位分别置0、1,生成两条新的查询后缀,若states为1,则新查询命令的状态为2,压入后缀查询栈,若states为2,则得到两条识别的id,执行sleep命令,将其在后续的查询过程中屏蔽;若未发生碰撞,将responses与suffix拼接形成新的二进制串,若states为1,则新的二进制串作为新的查询后缀,压入后缀查询栈,新查询命令的状态为2,若states为2,则新的二进制串为识别的标签id,执行sleep命令,令其静默;

步骤6、若前缀查询栈与后缀查询栈均为空,则识别过程结束;否则,阅读器从前缀查询栈和后缀查询栈中各取出一条命令,发送查询命令request(prefix,statep,suffix,states),若其中一个查询栈为空,则置其查询状态为3,查询字段为空,返回步骤4。

相比于现有技术,本发明具有如下优点:

本发明通过将rfid系统中标签id分段,结合双向查询机制。根据阅读器的查询命令状态响应部分id,完全消除了空闲时隙,减少了查询时隙,极大地节省了系统开销。不仅减少了总时隙数,通信复杂度也大大减小。系统吞吐率在查询树算法的基础上提升了近一倍,显著优于现有的rfid防碰撞算法。系统消耗的能量也较少,搭建与维护的开销较低,是树型rfid防碰撞算法的一种高效变体,具有广泛的理论与实用价值。

附图说明

图1是本发明rfid防碰撞方法的工作流程示意图;

图2是本发明rfid防碰撞方法示例;

图3是本发明rfid防碰撞方法的碰撞树;

图4是本发明rfid防碰撞方法在不同的分段长度下的通信复杂度对比图,其中分段点长度为十二左右时性能最好,故本发明设置分段点长度为十二;

图5是本发明rfid防碰撞方法与现有算法的吞吐率对比图;

图6是本发明rfid防碰撞方法与现有算法的通信复杂度对比图;

图7是本发明rfid防碰撞方法与现有算法的平均查询周期对比图。

具体实施方式

下面结合附图对本发明的技术方案作进一步的说明,但并不局限于此,凡是对本发明技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的保护范围中。

本发明提供了一种基于双向分段查询的rfid防碰撞方法,所述方法为了解决树型rfid防碰撞算法中查询时隙过多,系统吞吐率高以及数据传输量大的问题,提出双向查询以及分段点的设计,初始化时标签均匀分为两组:前缀查询组和后缀查询组。根据标签id长度预先设定一个分段点t,将标签id分为两段,前缀查询组的两段id长度为t和l-t,后缀查询组为l-t和t,其中l为标签id长度。两组分别根据查询命令中各自的查询状态返回对应的段。定义查询命令request(prefix,statep,suffix,states),prefix为查询前缀,statep为前缀查询状态,suffix为查询后缀,states为后缀查询状态。prefix/suffix初始化为空,根据标签响应及其最高碰撞位来生成,新的查询前缀/后缀由前次查询前缀/后缀与标签响应中最高/最低碰撞位之前/后位拼接,再分别拼接1和0,作为两条新的查询前缀/后缀。利用栈结构来管理查询命令,生成查询命令后压入栈中,使用时从栈中弹出,当栈为空时识别过程结束。

在标签id设置分段点,使得前缀查询组中匹配查询前缀的标签在响应查询命令时,若查询命令状态为1,则返回第一段id中除查询前缀外的id序列,若查询命令状态为2,则返回全部id中除查询前缀外的id序列。若查询命令状态为3,表示前缀标签组已全部识别。后缀查询组设计相同。根据碰撞位生成查询前缀可以完全消除空闲时隙。标签在响应阅读器查询时,只返回部分id,在不增加系统吞吐率的基础上,显著降低了通信复杂度,解决了吞吐率和通信复杂度之间的矛盾。而每次查询期望两个目标id,极大地提高了系统吞吐率。

如图1所示,具体实施步骤如下:

步骤1、阅读器中设置前缀查询栈和后缀查询栈,并初始化为空;阅读器发送初始化命令init(t),段长t为12;

步骤2、标签收到命令后,按照标签id的最高位分组,最高位为1分为前缀查询组,为0分为后缀查询组,并且将id从高位到低位分成两段,前缀查询组两段段长分别为t和l-t,其中:l是id长度,后缀查询组两段段长分别为l-t和t;称长为t的id段为标签的第一段id,另一段为第二段id;

步骤3、阅读器发送查询命令request(prefix,statep,suffix,states),其中:查询前缀prefix、查询后缀suffix为ε,查询状态statep和states均为1;

步骤4、标签接收到查询命令,若statep为3,则前缀查询组静默,后缀查询组直接响应;若states为3,则后缀查询组静默,前缀查询组响应后进入下一时隙;

对于前缀查询组中匹配查询前缀的标签,若statep为1,响应第一段id中除查询前缀外的id;若查询状态为2,响应全部id中除查询前缀外的id;

对于后缀查询组中匹配查询后缀的标签,若states为1,响应第一段id中除查询后缀外的id;若查询状态为2,响应全部id中除查询后缀外的id;

在标签响应时后缀查询组延迟k比特响应,k为前缀查询组响应的比特数;

步骤5、对于前缀查询组的响应,阅读器得到标签响应的曼彻斯特编码叠加:responsep,若发生碰撞且碰撞位个数多于一个,将prefix和responsep中最高碰撞位之前位拼接,再拼接0、1生成两条新的查询前缀,新的查询状态设为statep,并压入前缀查询栈;若发生碰撞且碰撞位个数为一,将prefix与responsep拼接,将碰撞位分别置0、1,生成两条新的查询前缀,若statep为1,则新查询命令的状态为2,压入前缀查询栈,若statep为2,则得到两条识别的id,执行sleep命令,将其在后续的查询过程中屏蔽;若未发生碰撞,将prefix与responsep拼接形成新的二进制串,若statep为1,则新的二进制串作为新的查询前缀,压入前缀查询栈,新查询命令的状态为2,若statep为2,则新的二进制串为识别的标签id,执行sleep命令,令其静默;

对于后缀查询组的响应,阅读器得到标签响应的曼彻斯特编码叠加responses,若发生碰撞且碰撞位个数多于一个,将0、1分别与responses中最低碰撞位之后位与suffix拼接,生成两条新的查询后缀,新的查询状态设为states,并压入后缀查询栈;若发生碰撞且碰撞位个数为一,将responses与suffix拼接,将碰撞位分别置0、1,生成两条新的查询后缀,若states为1,则新查询命令的状态为2,压入后缀查询栈,若states为2,则得到两条识别的id,执行sleep命令,将其在后续的查询过程中屏蔽;若未发生碰撞,将responses与suffix拼接形成新的二进制串,若states为1,则新的二进制串作为新的查询后缀,压入后缀查询栈,新查询命令的状态为2,若states为2,则新的二进制串为识别的标签id,执行sleep命令,令其静默;

步骤6、若前缀查询栈与后缀查询栈均为空,则识别过程结束;否则,阅读器从前缀查询栈和后缀查询栈中各取出一条命令,发送查询命令request(prefix,statep,suffix,states),若其中一个查询栈为空,则置其查询状态为3,查询字段为空,返回步骤4。

假设rfid阅读器工作范围内有六个标签,id长度为10位,分别为a(1011010101)b(0110011011)c(1010101011)d(0010110100)e(1110100110)f(0101101011),分段点长度为4,识别过程如图2所示。识别六个标签仅需七个时隙。在时隙4时碰撞位只有一个,可直接给出两种id编码。在时隙7时前缀查询组已全部识别,查询前缀为空,查询状态为3。本发明的方法大大减少了总的查询时隙。

算法时间复杂度分析:

在rfid系统中,时间复杂度是识别全部标签所需要的周期数,本发明方法的时间复杂度可以借助二叉树结构分析。图3是本发明方法的碰撞树,树的内部节点为碰撞时隙,叶节点代表成功识别。在识别过程中,碰撞树第四层的加粗节点是碰撞树与二叉树不同的部分,此类节点是由于第一段查询时标签返回的是部分id,第二端查询时阅读器需要发送获得的第一段id来确认第二段id是否存在碰撞,当第二段id不存在碰撞时就产生了此类节点。设此类节点占待识别标签总数的比例为t,t∈[0,1],总查询次数n为:

其中,n为待识别标签数,t为0时,碰撞树中不存在上述节点,总查询次数等价于识别同等标签时碰撞树算法的查询次数的一半。t为1时,碰撞树中所有的叶节点都是上述节点,总查询次数要在前述基础上加算法的平均时间复杂度为:

其中,t∈[0,1],因此本发明方法的理论最低时间复杂度为1。

算法性能对比:

图4是本发明方法设置不同的分段点长度时的通信复杂度比较,分段点长度由3增加到93,待识别标签数由200以200为单位增加到1000,可以看到,在分段点长度为12左右时系统的通信复杂度最低。因此本发明设置分段点长度为12。

图5是碰撞树算法,q进制搜索方法,查询树算法及最优追踪树模型与本发明方法的吞吐率比较,可以看出本发明方法明显优于现有的四种算法。图6是五种算法的通信复杂度比较,待识别标签数从100增加到1000,本发明方法所需传输数据量始终最低,稳定在二百位/标签左右。图7比较了五种算法的平均查询周期数,本发明方法逐渐收敛于1,性能稳定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1