当前位置: 首页 > 专利查询>长江大学专利>正文

基于分组寻呼的锁位式双前缀探针防碰撞计算方法技术

技术编号:23891848 阅读:41 留言:0更新日期:2020-04-22 06:47
本发明专利技术专利公开了一种基于分组寻呼的锁位式双前缀探针防碰撞计算方法,所述方法利用锁位指令提取碰撞位形成新ID,计数标签新ID编码首位起连续“1”的数量,计数值相同的标签为同一组,用标签碰撞位计数器值指示数组表示各组有无标签;然后根据标签碰撞位计数器值指示数组中的每组有无标签情况,依次采用锁位式双前缀探针方法来识别每组标签,直到识别完所有标签。本发明专利技术将吞吐率提高了2%左右,能够进一步改善RFID系统多标签识别的识别效率。

【技术实现步骤摘要】
基于分组寻呼的锁位式双前缀探针防碰撞计算方法
本专利技术涉及计算机领域,具体涉及一种基于分组寻呼的锁位式双前缀探针防碰撞计算方法。
技术介绍
RFID(RadioFrequencyIdentification,RFID)是一种非接触式信息采集技术,它通过射频信号可以自动识别目标对象并进行数据采集,RFID具有可多标签同时识别、识别速度快、信息存储容量大、数据可读写、使用寿命长、环境适应性好、安全性高等优点,因此在生产制造管理、医疗、零售、人员门禁、防伪等方面都具有广泛的应用。RFID系统主要由阅读器(或读写器)、标签和应用系统构成,阅读器作为信息采集终端,利用射频信号对标签进行识别,并与后台应用系统进行通信。当阅读器信号作用范围内有多个标签时,可能有两个或多个标签同时向阅读器发送信息,此时标签信息之间会相互影响使阅读器无法正确识别标签,即发生标签冲突或碰撞。多标签碰撞问题会导致阅读器识别效率降低、漏读率增大、识别时延增加等系列问题,为了降低碰撞概率,增大系统识别率,学者们提出了一系列防碰撞算法。目前,防碰撞算法主要分成两大类,一类是基于ALOHA的不确定型算法,另一类是基于二叉树搜索的确定型算法。由于ALOHA类算法易存在标签“饥饿”现象(即部分标签可能不被识别),因此很少用于实际应用中。经典的二叉树确定型防碰撞算法包括二进制搜索(BinarySearch,BS)算法、查询树(QueryTree,QT)算法、动态二进制搜索算法(DynamicBinarySearch,DBS)、碰撞树算法(CollisionTree,CT)等。学者们在经典的树型算法的基础上又提出了一系列改进算法。基于树的退避(Tree-BasedBackoff,TBB)协议是在识别完当前标签后从当前节点的父节点继续进行识别,而不是从根节点重新访问,这样显著减少了阅读器检测范围内的所有标签的寻呼时间。多叉树查询算法(M-aryQueryTree,MQT)使用映射表来仲裁标签之间发生冲突的数据,实现了多叉树的快速识别,MQT算法与传统算法相比,减少了识别所有标签的响应时间,但是其性能很大程度上依赖于标签ID的分布和碰撞位的位置。文献提出了锁位的概念,通过将标签的碰撞位进行锁定并提取出来,来大大减少数据传输量。基于锁位方法的动态锁位自适应二进制分裂(DynamicBlockingAdaptivebinarysplitting,DBA)协议是在锁位的基础上根据待识别标签的估计数量自适应地调整时隙数量,从而减少空闲时隙的发生。双前缀探针(DualPrefixProbeScheme,DPPS)算法是一种基于查询树的确定性算法,它引入了双前缀查询,以便在同一时隙中成功识别两个标签,使识别所有标签花费的时间大大减少,并且提高了系统的识别效率,但是该算法在减少数据传输量上方面没有显著改善。因此文献在双前缀算法和锁位思想的基础上提出了锁位式双前缀探针防碰撞算法(Lock-bitDualPrefixProbeAnti-collisionAlgorithm,LDPPS),其主要思想是:当读写器检测到冲突位时,通过锁位指令提取碰撞位,并通过判断碰撞位的状态选择查询树的叉数,如果存在连续碰撞位则采用四叉树查询,如果是非连续碰撞位则采用二叉树查询,在随后的识别过程中,仅发送碰撞位信息,这样就减少了冗余信息的传输,但是当标签信息量太大或者ID太长时,数据传输量仍然很大。
技术实现思路
本专利技术的目的就是针对现有技术的缺陷,提供一种基于分组寻呼的锁位式双前缀探针防碰撞计算方法,能够进一步改善RFID系统多标签识别的识别效率。本专利技术提供了一种基于分组寻呼的锁位式双前缀探针防碰撞计算方法,其特征在于包括以下步骤:S1:阅读器进行初始化操作,将空串压入堆栈,并发送通信请求指令,阅读器识别范围内的标签均作出响应,并转到步骤S2;若无响应,阅读器持续发通信请求指令;S2:阅读器接收的标签作出的响应数据信息并进行译码,根据译码结果判决是否产生数据碰撞;如果没有发生数据碰撞,则只有一个标签响应阅读器,阅读器识别该标签,并跳转到步骤S8;如果发生数据碰撞则转到步骤S3;S3:根据S2中的译码结果,阅读器确定发生碰撞的位置,并将碰撞位设置为1,非碰撞位设置为0,形成锁位分组指令的UID值;S4:阅读器初始化数组,并发送锁位分组指令;标签将发生碰撞的比特位进行锁定,并删除未发生碰撞的比特位,锁定的比特位位形成标签新的ID号并回传给阅读器;S5:判断标签碰撞位计数器值指示数,若不为0,则不存在,跳转到步骤S7;若为0,则存在,阅读器发送寻呼指令,阅读器根据回送的数据信息判决是否发生数据碰撞。如果没有发生数据碰撞,即阅读器成功识别该标签,跳转到步骤S7;如果有数据碰撞,转到步骤S6;S6:阅读器检测发生碰撞的比特位是否为单碰撞位,如果是,那么阅读器分别将碰撞位置“0”和“1”识别这两个标签,转到步骤S7;如果不是单碰撞位,阅读器发送查询码对标签进行双时隙查询;在查询过程中采用后退策略并不断更新查询码,直到堆栈为空,此时转到步骤S7;S7:将数组的下标索引值进行加一操作,然后判断标签碰撞位计数器值指示数是否越界,如果越界转到步骤S5;否则转到步骤S8。S8:阅读器识别完作用范围内的所有标签,识别过程结束。上述技术方案中,步骤S4包括以下步骤:阅读器根据标签的返回的碰撞计数器值cn,设置Ac[cn]=0。采用霍夫曼最佳编码思想,识别顺序从碰撞最多分组开始,将数组Ac的下标索引值cns设为0。上述技术方案中,步骤S5包括以下步骤:判断Ac[cns]是否为0,即判断第cns组标签是否存在,若不为0,则不存在,跳转到步骤S7;若为0,则存在,阅读器发送REQUEST(UID,cns)寻呼指令,第cns组标签对此通信请求指令全部进行响应,响应的标签在第S4步形成的新的ID的基础上删除连续“1”构成最新的ID号,然后将此新ID号回送给阅读器用于识别,阅读器根据回送的数据信息判决是否发生数据碰撞。如果没有发生数据碰撞,即阅读器成功识别该标签,跳转到步骤S7;如果有数据碰撞,转到步骤S6。上述技术方案中,步骤S6包括以下步骤:阅读器检测发生碰撞的比特位是否为单碰撞位,如果是,那么阅读器分别将碰撞位置“0”和“1”识别这两个标签,转到步骤S7;如果不是单碰撞位,阅读器发送查询码REQUEST(ε,0,1)对标签进行双时隙查询,其中ε为未发生碰撞的查询前缀。若时隙0标签发生碰撞,将’ε1’压入堆栈,同时ε值进行更新,此时的ε值为’ε0’,并继续发送REQUEST(ε,0,1)查询标签,若时隙0持续碰撞,则不停的将更新后的’ε1’压入堆栈同时更新’ε0’值,直到时隙0里没有发生碰撞,当前时隙0里的标签被识别。然后在此时的ε值对应的时隙1里对标签进行查询,若有碰撞,更新ε值,继续对时隙1里的标签进行双前缀查询,若无碰撞,判断堆栈是否为空,若为空,转到步骤S7,若不为空,从堆栈里取值赋给ε,继续发送REQUEST(ε,0,1)进行查询。即在查询过程中本文档来自技高网
...

【技术保护点】
1.一种基于分组寻呼的锁位式双前缀探针防碰撞计算方法,其特征在于包括以下步骤:/nS1:阅读器进行初始化操作,将空串压入堆栈,并发送通信请求指令,阅读器识别范围内的标签均作出响应,并转到步骤S2;若无响应,阅读器持续发通信请求指令;/nS2:阅读器接收的标签作出的响应数据信息并进行译码,根据译码结果判决是否产生数据碰撞;如果没有发生数据碰撞,则只有一个标签响应阅读器,阅读器识别该标签,并跳转到步骤S8;如果发生数据碰撞则转到步骤S3;/nS3:根据S2中的译码结果,阅读器确定发生碰撞的位置,并将碰撞位设置为1,非碰撞位设置为0,形成锁位分组指令的UID值;/nS4:阅读器初始化数组,并发送锁位分组指令;标签将发生碰撞的比特位进行锁定,并删除未发生碰撞的比特位,锁定的比特位位形成标签新的ID号并回传给阅读器;/nS5:判断标签碰撞位计数器值指示数,若不为0,则不存在,跳转到步骤S7;若为0,则存在,阅读器发送寻呼指令,阅读器根据回送的数据信息判决是否发生数据碰撞。如果没有发生数据碰撞,即阅读器成功识别该标签,跳转到步骤S7;如果有数据碰撞,转到步骤S6;/nS6:阅读器检测发生碰撞的比特位是否为单碰撞位,如果是,那么阅读器分别将碰撞位置“0”和“1”识别这两个标签,转到步骤S7;如果不是单碰撞位,阅读器发送查询码对标签进行双时隙查询;在查询过程中采用后退策略并不断更新查询码,直到堆栈为空,此时转到步骤S7;/nS7:将数组的下标索引值进行加一操作,然后判断标签碰撞位计数器值指示数是否越界,如果越界转到步骤S5;否则转到步骤S8。/nS8:阅读器识别完作用范围内的所有标签,识别过程结束。/n...

【技术特征摘要】
1.一种基于分组寻呼的锁位式双前缀探针防碰撞计算方法,其特征在于包括以下步骤:
S1:阅读器进行初始化操作,将空串压入堆栈,并发送通信请求指令,阅读器识别范围内的标签均作出响应,并转到步骤S2;若无响应,阅读器持续发通信请求指令;
S2:阅读器接收的标签作出的响应数据信息并进行译码,根据译码结果判决是否产生数据碰撞;如果没有发生数据碰撞,则只有一个标签响应阅读器,阅读器识别该标签,并跳转到步骤S8;如果发生数据碰撞则转到步骤S3;
S3:根据S2中的译码结果,阅读器确定发生碰撞的位置,并将碰撞位设置为1,非碰撞位设置为0,形成锁位分组指令的UID值;
S4:阅读器初始化数组,并发送锁位分组指令;标签将发生碰撞的比特位进行锁定,并删除未发生碰撞的比特位,锁定的比特位位形成标签新的ID号并回传给阅读器;
S5:判断标签碰撞位计数器值指示数,若不为0,则不存在,跳转到步骤S7;若为0,则存在,阅读器发送寻呼指令,阅读器根据回送的数据信息判决是否发生数据碰撞。如果没有发生数据碰撞,即阅读器成功识别该标签,跳转到步骤S7;如果有数据碰撞,转到步骤S6;
S6:阅读器检测发生碰撞的比特位是否为单碰撞位,如果是,那么阅读器分别将碰撞位置“0”和“1”识别这两个标签,转到步骤S7;如果不是单碰撞位,阅读器发送查询码对标签进行双时隙查询;在查询过程中采用后退策略并不断更新查询码,直到堆栈为空,此时转到步骤S7;
S7:将数组的下标索引值进行加一操作,然后判断标签碰撞位计数器值指示数是否越界,如果越界转到步骤S5;否则转到步骤S8。
S8:阅读器识别完作用范围内的所有标签,识别过程结束。


2.根据权利要求1所述的基于分组寻呼的锁位式双前缀探针防碰撞计算方法,其特征在于步骤S4包括以下步骤:阅读器根据标签的返回的碰撞计数器值cn,设置Ac[cn]=0,采用霍夫曼最佳编码思想,识别顺序从碰撞最多分组开始,将数组Ac的下标索引值cns设为0。


3.根据权利要求2所述的基于分组寻呼的锁位式双前缀探针防碰撞计算方法,其特征在于步骤S5包括以下步骤:判断Ac[cns]是否为0,即判断第cns组标签是否存在,若不为0,则不存在,跳转到步骤S7;若为0,则存在,阅读器发送REQUEST(UID,cns)寻呼指令,第cns组标签对此通信请求指令全部进行响应,响应的标签在第S4步形成的新的ID的基础上删除连续“1”构成最新的ID号,然后将此新ID号回送给阅读器用于识别,阅读器根据回送的数据信息判决是否发生数据碰撞。如果没有发生数据碰撞,即阅读器成功识别该标签,跳转到步骤S7;如果有数据碰撞,转到步骤S6。


4.根据权利要求3所述的基于分组寻呼的锁位式双前缀探针防碰撞计算方法,其特征在于步骤S6包括以下步骤:阅读器检测发生碰撞的比特位是否为单碰撞位,如果是,那么阅读器分别将碰撞位置“0”和“1”识别这两个标签,转到步骤S7;如果不是单碰撞位,阅读器发送查询码REQUEST(ε,0,1)对标签进行双时隙查询,其中ε为未发生碰撞的查询前缀;若时隙0标签发生碰撞,将’ε1’压入堆栈,同时ε值进行更新,此时的ε值为’ε0’,并继续发送REQUEST(ε,0,1)查询标签,若时隙0持续碰撞,则不停的将更新后的’ε1’压入堆栈同时更新’ε0’值,直到时隙0里没有发生碰撞,当前时隙0里的标签被识别。然后在此时的ε值对应的时隙1里对标签进行查询,若有碰撞,更新ε值,继续对时隙1里的标签进行双前缀查询,若无碰撞,判断堆栈是否...

【专利技术属性】
技术研发人员:邹学玉孙咏
申请(专利权)人:长江大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1