一种rfid多标签识别防碰撞方法

文档序号:6641014阅读:659来源:国知局
一种rfid多标签识别防碰撞方法
【专利摘要】本发明公开了一种RFID多标签识别防碰撞方法,其步骤为阅读器从前缀池中读取搜索前缀,并向待识别的标签发送识别请求命令,同时接收标签的响应;标签将前缀与自己的编号进行比较,并根据比较的结果对阅读器做出响应;若没有响应,则表明没有待识别的标签;若有响应同时没有碰撞发生,则阅读器成功识别到一个标签;若收到的编号串中发生碰撞,记首位碰撞位为Dc,同时生成两个新的搜索前缀,它们末位,即碰撞位Dc所在位的值分别设置为0或1,并将两个新的搜索前缀放入前缀池,重复该过程直到完成所有标签的识别。本发明方法的识别效率超过了50%,并且性能稳定,识别性能不受标签编号分布的影响,适用于各种RFID多标签识别场合和RFID应用系统。
【专利说明】一种RFID多标签识别防碰撞方法

【技术领域】
[0001 ] 本发明涉及物联网中的RFID射频识别【技术领域】,特别涉及一种RFID多标签识别防碰撞方法。

【背景技术】
[0002]射频识别(Rad1Frequency Identificat1n, RFID)是一种具有实时、快速、准确采集等特点的自动识别技术。RFID系统主要由阅读器(Reader)、标签(Tag)和应用系统三部分组成,阅读器和标签之间采用无线信道进行通信。标签可分为主动式标签和被动式标签两种,其中被动式标签由于结构简单,成本较低,体积较小,得到广泛应用。被动式标签属于无源设备,标签在接收到阅读器的指令后会立即响应,发送自己的标号或者数据信息。但当同一信道中有多个标签同时响应某个阅读器时,标签数据间就会相互干扰,导致阅读器无法正常读取任何一个标签数据,即发生所谓的标签冲突或碰撞。为了解决多个标签同时识别的问题,就需要设置防碰撞算法来协调阅读器和多个标签之间的通信。
[0003]标签防碰撞算法可分为ALOHA算法和树形算法两大类。ALOHA算法的基本特征是,系统将标签回复的信道按时间划分为若干间隔(该间隔称为时隙),并要求标签选择其中一个回复。在操作中,阅读器通过指令给每一个标签发送概率(或可选时隙的范围),标签根据收到的时隙范围,随机的选择一个时隙并按时回复;若发生碰撞,再重新选择并发送,或者在随后的时隙内重新选择或发送,直到完成所有标签的识别。经典的ALOHA算法主要包括帧时隙ALOHA方法(FSA)和动态帧时隙ALOHA方法(DFSA)。
[0004]Binary Tree (二进制树,BT)算法的基本特征是,每个标签有一个随机数发生器,生成O或I ;每个标签有一个计数器,当计数器的值为O时,标签回复。由阅读器发送指令使所有标签开始回复,标签收到指令后,首先由随机数发生器生成O或1,这样将要回复的标签分为两个子集;随机数为O的标签立即回复,随机数为I的标签将计数器值设为I ;若没有碰撞并回复成功,则阅读器发送指令确认,并使其它标签将计数器值减I;若没有返回信息,阅读器发送指令确认,并使所有标签计数器值均减1,直到阅读器收到标签的返回信息;若标签碰撞,阅读器发送指令,使碰撞标签产生随机数进行分裂,其它标签计数器值加I ;如此循环,直到完成所有标签的识别。
[0005]Query Tree (查询树,QT)算法的基本特征是,阅读器从查询前缀池中选择一个前缀(prefix)进行查询,初始时前缀池中包括I和0,所有标签均将收到的前缀与自己的标签编号(ID)的起始部分进行比较,如果比较结果相同则以自己的标签编号进行回复,如果比较结果不同,则标签不予回复。如果没有碰撞,则成功识别到一个标签,阅读器从前缀池中选取新的前缀继续查询;如果发生碰撞,则阅读器将将刚刚发送的前缀增加一位I或0,即prefix+ “I”和prefix+ “O”并放入前缀池,等待后续查询使用;如果没有回复,阅读器从前缀池中选取新的前缀继续查询;如此循环,直到前缀池为空,即完成所有标签的识别。
[0006]ALOHA算法以时隙为基础对标签进行分组识别,算法复杂度较低,但该算法存在两个主要的问题:一是,由于时隙编号由标签随机产生,致使部分标签始终无法被识别,即标签饥饿现象;二是,由于时隙数目的限制,当标签数目的增加,算法的性能急剧下降。二进制树算法和查询树算法确保了标签的完全识别,但是也增加了算法的复杂度。
[0007]ALOHA算法和树形算法都不可避免的存在空时隙或空搜索的情况,即存在某些时隙或搜索状态下没有任何标签响应的情况,因此识别算法的性能和效率受到很大的影响。同时,查询树算法的性能还受到标签编号分布情况的影响。目前很多的改进算法,如回退算法,修剪枝算法,倒置搜索,估值算法等很多方法,虽然在一定程度上减少了空时隙或空搜索的情况,但同时增加了算法本身的复杂度,也增加了算法实现的困难程度。
[0008]以上方法各有优劣,可以根据情况应用于不同的环境。例如:当标签数量较少,识别时间要求较短时,可以选用ALOHA算法;当标签编号较短,且重复位叫少时,可以选用查询树算法;当标签数目较多,而对识别时间要求不高时,可以选用二进制树算法。但是,目前的要求是在较短的时间内完成大量标签的完全识别,以上的这些方法都不能满足这种要求。


【发明内容】

[0009]本发明要解决的是传统方式的识别标签的方法在短时间内无法完成大量标签完全识别的技术问题。
[0010]为解决上述技术问题,本发明所采取的技术方案是:一种RFID多标签识别防碰撞方法,适用于单个阅读器和多个标签组成的射频识别系统,本方法中的搜索前缀根据碰撞位直接生产,前缀池采用的是堆栈存储的形式,其识别方法的具体步骤如下:
[0011]S10,完成系统的初始化,将前缀池初始为空串,标签编号置为空;
[0012]S20,阅读器以空串为前缀参数,即搜索前缀prefix = NULL,向区域内的待识别标签发送查询命令,并等待标签响应;
[0013]S30,阅读器接收标签的响应,若没有标签响应,则表示没有待识别的标签,识别结束;若有响应,则发生响应的标签将自身的编号反馈给阅读器;
[0014]S40,阅读器对接收到的编号串进行判断,若收到的编号串中没有发生碰撞,则成功识别到一个标签;若收到的编号串中发生碰撞,则根据碰撞位生成两个搜索前缀,并将搜索前缀依次存储到前缀池内;
[0015]S50,阅读器从前缀池内取出最顶部的前缀作为新的搜索前缀prefix,并向区域内的标签发送查询命令,与新的搜索前缀prefix相匹配的标签发生响应,将各自编号中与前缀prefix相匹配之后的位数发送给阅读器;若阅读器收到的编号串没有发生碰撞,则成功识别到一个标签,且该标签的编号由搜索前缀prefix与收到的编号串连接构成;若收到的编号串中发生碰撞,记首位碰撞位为D。,则依据前缀生成规则生成两个全新的搜索前缀;两个新前缀由搜索前缀prefix与接收到的编号串中首位碰撞位之前的部分,以及碰撞位Dc构成,且碰撞位D。的值分别置为O或I ;阅读器将两个全新前缀依次放入前缀池,等待后续搜索;
[0016]S60,阅读器重复步骤S50,直至完成对所有标签的识别。
[0017]较优的,在上述技术方案中,步骤S50中前缀生成规则为先前搜索前缀与收到的正确位,以及碰撞位产生的“ I ”和“O”分别结合而成。
[0018]较优的,在上述技术方案中,搜索前缀根据首位碰撞位生成新的搜索前缀,并且搜索前缀随着碰撞发生的实际位置动态增长。
[0019]较优的,在上述技术方案中,发生碰撞的标签根据首位碰撞位D。的值被分为两个组,一个组中标签满足D。= 0,另一个组中标签满足D。= 1
[0020]较优的,在上述技术方案中,该方法过程中生成的碰撞树为满二叉树,且每一个叶子节点对应一个已识别的标签,每一个中间节点对应一次碰撞的发生。
[0021]较优的,在上述技术方案中,碰撞树中每一中间节点至少对应两个标签,每一个叶子节点仅于一个标签相对应。
[0022]较优的,在上述技术方案中,标签编号进行传送时采用的是曼彻斯特编码。
[0023]本发明公开的RFID多标签识别防碰撞方法通过直接根据标签响应序列中的首位碰撞位的位置来生成新的搜索前缀,并据此将发生碰撞的标签分成两个子集,并分别进行后续识别;改变了查询树中由阅读器主导的逐位搜索方式以及二进制树方法和ALOHA方法中随机过程带来的不确定性,消除了传统方法中的空时隙或空搜索过程。本发明与传统方式的识别方法具有如下创新和优势:
[0024](I)直接根据首位碰撞位D。生成新的搜索前缀,且搜索前缀随着RFID多标签识别过程中碰撞的实际位置动态增长;
[0025](2)在根据碰撞位生成新前缀的同时,也将待识别的标签集合分为了两个子集,其中一个子集中所有标签满足碰撞位D。的值为0,另一个子集中所有标签满足碰撞位D。的值为1,并且两个子集均不为空;
[0026](3)通过(I)和(2)消除了采用传统算法进行多标签识别过程中出现的空时隙或空搜索状态,有效减少了搜索次数,提高了搜索效率;理论和实验均表明本发明算法的效率超过了 50% ;
[0027](4)编号与前缀相匹配的标签在响应时,只回传与前缀不相同的编号部分,减少了信息的传输量,降低了 RFID标签识别过程中系统通信复杂度和系统能耗;
[0028](5)本算法对阅读器和标签均没有附加要求,特别是标签只需要根据收到的前缀进行决定响应,而不需要记录历史的过程,所以本发明算法简单,可用于无源被动式RFID多标签的识别环境;
[0029](6)由于算法直接针对碰撞进行处理,理论和实验均表明算法性能只与标签数量有关,而与标签编号的分布状况无关,所以本发明算法识别性能稳定,可应用于各种分布的RFID多标签识别环境。

【专利附图】

【附图说明】
[0030]图1是本发明公开的RFID多标签识别防碰撞方法的阅读器识别流程图;
[0031]图2是本发明公开的RFID多标签识别防碰撞方法的标签的相应流程;
[0032]图3是本发明公开的RFID多标签识别防碰撞方法完成5个标签识别实施例的标签识别过程;
[0033]图4是本发明公开的RFID多标签识别防碰撞方法完成5个标签识别实施例的标签识别过程的碰撞树;
[0034]图5是查询树(QT)方法完成图4中相同5个标签识别实施例的标签识别过程;
[0035]图6是查询树(QT)方法完成图4中相同5个标签识别实施例的标签识别过程的查询树;
[0036]图7是二进制树方法(BT)方法完成图4中相同5个标签识别实施例的标签识别过程;
[0037]图8是二进制树方法(BT)方法完成图4中相同5个标签识别实施例的标签识别过程的二进制树;
[0038]图9是本发明公开的RFID多标签识别防碰撞方法在识别效率上的优势曲线示意图;
[0039]图10是本发明公开的RFID多标签识别防碰撞方法在时间复杂度上的优势曲线示意图;
[0040]图11是本发明公开的RFID多标签识别防碰撞方法在通信复杂度上的优势曲线示意图;
[0041]图12是本发明公开的RFID多标签识别防碰撞方法在标签编号不同分布条件下的识别效率曲线不意图;
[0042]图13是本发明公开的RFID多标签识别防碰撞方法在不同标签集合单次识别中的识别效率曲线;
[0043]图14是本发明公开的RFID多标签识别防碰撞方法采用曼彻斯特编码区分碰撞位的原理图。

【具体实施方式】
[0044]如图1至图4所示,本发明公开的RFID多标签识别防碰撞方法,适用于单个阅读器和多个标签组成的射频识别系统,本方法中的新前缀根据碰撞为直接生成,前缀池采用的是堆栈存储的形式,其识别方法的具体步骤如下:
[0045]S10,完成系统的初始化,将前缀池初始为空串,标签编号置为空;
[0046]S20,阅读器以空串为前缀参数,即搜索前缀prefix = NULL,向区域内的待识别标签发送查询命令;
[0047]S30,阅读器接收标签的响应,若没有标签响应,则表示没有待识别的标签,识别结束;若有响应,则发生响应的标签将自身的编号反馈给阅读器;
[0048]S40,阅读器对接收到的编号串进行判断,若收到的编号串中没有发生碰撞,则成功识别到一个标签;若收到的编号串中发生碰撞,则生成两个搜索前缀,并将搜索前缀依次存储到如缀池内;
[0049]S50,阅读器从前缀池内取出最顶部的前缀作为新的搜索前缀prefix,并向区域内的标签发送查询命令,与新的搜索前缀prefix相匹配的标签发生响应,将各自编号中与前缀prefix匹配后余下的数据位发送给阅读器,若阅读器收到的编号串没有发生碰撞,则成功识别到一个标签,且该标签的编号由搜索前缀prefix与收到的编号串连接构成;若收到的编号串中发生碰撞,记首位碰撞位为D。,同时依据前缀生成规则生成两个全新的搜索前缀;新前缀由搜索前缀prefix与接收到的编号串中首位碰撞位之前的部分,以及首位碰撞位D。构成,且碰撞位D。所在位的值分别置为O或I ;阅读器将两个全新前缀依次放入前缀池,等待后续搜索;
[0050]S60,阅读器重复步骤S50,直至完成对所有标签的识别。
[0051]作为一种可实施方式,步骤S50中前缀生成规则为先前搜索前缀与接收到的正确位,以及碰撞位产生的“ I ”和“O”分别结合而成。
[0052]作为一种可实施方式,搜索前缀根据首位碰撞位生成新的搜索前缀,并且搜索前缀随着碰撞发生的实际位置动态增长。
[0053]作为一种可实施方式,发生碰撞的标签根据首位碰撞位D。的值被分为两个组,一个组中标签满足D。= 0,另一个组中标签满足D。= 1
[0054]作为一种可实施方式,该方法过程中生成的碰撞树为满二叉树,且每一个叶子节点对应一个已识别的标签,每一个中间节点对应一次碰撞的发生。
[0055]作为一种可实施方式,碰撞树中每一中间节点至少对应两个标签,每一个叶子节点仅于一个标签相对应。
[0056]下面结合附图和实施例对本发明进一步说明。
[0057]图1和图2给出了本发明方法的算法流程。算法采用堆栈结构作为前缀池,算法实现简单。待识别的标签只需要接收命令,将命令中的前缀与自身编号的前端部分进行比较,如果一致,就发送自身编号的余下部分;如果不一致,则不做任何操作。也就是说,标签的响应和处理与过往的识别状态无关,因此该方法可以应用于无源被动式标签的识别。
[0058]图3和图4给出了本发明方法的一个识别过程实例和碰撞树的基本结构。由于是根据碰撞直接决定生成新的搜索前缀,并据此对待识别标签进行分组,所以整个识别过程中没有空时隙或空搜索的状态。由本发明方法的目的和算法识别过程的特点,碰撞树为满二叉树,每一个中间节点至少与两个标签相对应,每一个叶子节点仅对应一个识别到的标签,碰撞树中没有空节点。由满二叉树的性质,对于N个标签,碰撞树的叶节点也为N,碰撞树的节点总数为2N-1,所以完成N个标签的识别,总共只需要2N-1次搜索过程,而单标签识别的平均搜索次数为(2-1/N)次。所以本发明方法的识别效率(识别标签数与完成这些标签识别的搜索次数之比)超过了 50%.
[0059]图5、图6、图7给出了分别采用本发明算法(CT)、查询树算法(QT)和二进制树算法(BT)识别5个标签(0001、0010、0011、1110、1111)的识别过程,以及相应的碰撞树、查询树和二进制树结构。对比图2、图3、图4可以发现,本发明算法消除了空搜索周期和空闲节点,减少了搜索次数,提高了识别效率。
[0060]图8、图9、图10分别给出了在标签编号均匀分布环境下,与传统经典防碰撞方法相比较,本发明方法在识别效率(识别标签数与完成这些标签识别的搜索次数之比)、时间复杂度(平均完成一个标签的识别所需要的平均查询-响应周期数)、通信复杂度(平均完成一个标签识别,阅读器和标签所发送的二进制数据位数)等识别性能上的优势。其中:QT为查询树算法,BT为二进制树算法,BS为二进制搜索算法,DBS为动态二进制搜索算法,FSA为帧时隙ALOHA算法,NEAA是一种增强型防碰撞算法,CT为本发明提出的碰撞树算法。需要说明的是,在FSA算法的每次实验中,时隙数的取值与标签数目相等,以使其识别性能达到最佳。
[0061]图11和图12分别给出了在不同标签编号分布条件下和不同标签集合单次识别过程中的识别效率曲线。其中BT为二进制树算法,QT为查询树算法,NEAA是一种增强型防碰撞算法,CT为本发明提出的碰撞树算法。图8中涉及的标签编号分布形式包括:均匀分布形式(SI)、前端连续形式(S2)、中间连续形式(S3)、后端连续形式(S4)。从图12和图13中可以明显的看出,本发明提出的方法(CT算法)识别效率始终保持在一条曲线上,其识别效率仅与待识别标签的数量有关,而不受其它条件变化的影响。但QT、BT、NEAA等算法的识别效率在不同条件下,差异较大。实验和理论表明:本发明方法在时间复杂度和通信复杂度等识别性能方面也具有很好的稳定性。
[0062]如图14所示,本发明提供了一种高效稳定的RFID多标签识别防碰撞方法,具体适用于单个阅读器和多个标签组成的多标签识别环境中,解决多个标签同时发送信息所引发的标签碰撞问题。本发明方法对于标签的特点和标签编号的分布没有特殊要求,可进行无源被动式标签的识别和防碰撞处理。本发明算法中标签编号采用曼彻斯特编码(Manchester Coding)进行传送,因为根据曼彻斯特编码,阅读器能够正确区分出正确的二进制位和发生碰撞的二进制位。
[0063]下面以6个标签的识别过程为例,结合附图和【具体实施方式】对本发明做进一步的详细说明。
[0064]记这6 个标签及其编号分别为:T1:00000100,Τ2:11001101,Τ3:01101111,Τ4:00001100,T5:11000011,T6:10011011,采用堆栈作为前缀池,存储后续搜索需要用到的前缀,根据图1所示的算法流程,本发明的具体实施过程步骤如下:
[0065]步骤1、(I)阅读器以空串为前缀参数,即prefix = NULL,发查询命令;(2)6个标签均产生响应,各自发送自身的编号(ID) ;(3)阅读器收到的信号串为“XXXXXXXX”,其中X表示其所在位发生碰撞,发生碰撞,阅读器根据前缀生成规则生成两个新前缀:“1”和“0”,并依次压入堆栈(前缀池);(4)此时堆栈中的值(前缀),自栈顶开始依次为
[0066]步骤2、(I)阅读从堆栈(前缀池)中弹出一个前缀:“0”,prefix =“0”,发查询命令;(2)编号与该前缀相匹配的标签T1、T3、T4产生响应,各自发送自身编号的余下部分,即第2位至第8位;(3)阅读器收到信号串为“ΧΧ0Χ1ΧΧ”,发生碰撞,阅读器根据前缀生成规则生成两个新前缀:“01”、“00”,并依次压入堆栈;(4)此时堆栈中的值,自栈顶开始依次为:“00,,、“01,,、“1”。
[0067]步骤3、(I)阅读从堆栈(前缀池)中弹出一个前缀:“00”,prefix =“00”,发查询命令;(2)编号与该前缀相匹配的标签Tl、T4产生响应,各自发送自身编号的余下部分,即第3位至第8位;(3)阅读器收到信号串为“00X100”,发生碰撞,阅读器根据前缀生成规则生成两个新前缀:“00001”、“00000”,并依次压入堆栈;(4)此时堆栈中的值,自栈顶开始依次为:“ 00000 ”、“ 00001 ”、“ OI ”、“I”。
[0068]步骤4、(I)阅读从堆栈(前缀池)中弹出一个前缀:“00000”,prefix =“00000”,发查询命令;(2)编号与该前缀相匹配的标签Tl产生响应,发送自身编号的余下部分,即第6位至第8位;(3)阅读器收到信号串为“100”,没有发生碰撞,成功识别到一个标签,其编号为“00000100”,即标签Tl ;(4)此时堆栈中的值,自栈顶开始依次为00001”、“01”、“I”。
[0069]步骤5、(I)阅读从堆栈(前缀池)中弹出一个前缀:“00001”,prefix =“00001”,发查询命令;(2)编号与该前缀相匹配的标签T4产生响应,发送自身编号的余下部分,即第6位至第8位;(3)阅读器收到信号串为“100”,没有发生碰撞,成功识别到一个标签,其编号为“00001100”,即标签T4 ; (4)此时堆栈中的值,自栈顶开始依次为:“01,,、“1”。
[0070]步骤6、(I)阅读从堆栈(前缀池)中弹出一个前缀:“01”,prefix =“01”,发查询命令;(2)编号与该前缀相匹配的标签T3产生响应,发送自身编号的余下部分,即第3位至第8位;(3)阅读器收到信号串为“101111”,没有发生碰撞,成功识别到一个标签,其编号为“01101111”,即标签T3 ; (4)此时堆栈中的值,自栈顶开始依次为:“1”。
[0071]步骤7、(I)阅读从堆栈(前缀池)中弹出一个前缀:“ I”,prefix =“1”,发查询命令;(2)编号与该前缀相匹配的标签T2、T5、T6产生响应,各自发送自身编号的余下部分,即第2位至第8位;(3)阅读器收到信号串为“Χ0ΧΧΧΧ1”,发生碰撞,阅读器根据前缀生成规则生成两个新前缀:“01”、“00”,并依次压入堆栈;(4)此时堆栈中的值,自栈顶开始依次为:“10”、“11”。
[0072]步骤8、(I)阅读从堆栈(前缀池)中弹出一个前缀:“ 10”,prefix =“10”,发查询命令;(2)编号与该前缀相匹配的标签T6产生响应,发送自身编号的余下部分,即第3位至第8位;(3)阅读器收到信号串为“011011”,没有发生碰撞,成功识别到一个标签,其编号为“10011011”,即标签T6 ; (4)此时堆栈中的值,自栈顶开始依次为
[0073]步骤9、(I)阅读从堆栈(前缀池)中弹出一个前缀:“ir’,prefiX =“11”,发查询命令;(2)编号与该前缀相匹配的标签T2、T5产生响应,各自发送自身编号的余下部分,即第3位至第8位;(3)阅读器收到信号串为“00XXX1”,发生碰撞,阅读器根据前缀生成规则生成两个新前缀:“11001”、“11000”,并依次压入堆栈;(4)此时堆栈中的值,自栈顶开始依次为11000”、“11001”。
[0074]步骤10、⑴阅读从堆栈(前缀池)中弹出一个前缀:“11000”,prefix =“11000”,发查询命令;(2)编号与该前缀相匹配的标签T5产生响应,发送自身编号的余下部分,即第6位至第8位;(3)阅读器收到信号串为“011”,没有发生碰撞,成功识别到一个标签,其编号为“11000011”,即标签T5 ; (4)此时堆栈中的值,自栈顶开始依次为:“11001”。
[0075]步骤11、⑴阅读从堆栈(前缀池)中弹出一个前缀:“11001'prefix =“11001”,发查询命令;(2)编号与该前缀相匹配的标签T2产生响应,发送自身编号的余下部分,即第6位至第8位;(3)阅读器收到信号串为“101”,没有发生碰撞,成功识别到一个标签,其编号为“11001101”,即标签T2 ;(4)此时堆栈为空,表明已经完成全部标签的识别。
[0076]本发明公开的RFID多标签识别防碰撞方法通过直接根据标签响应序列中的首位碰撞位的位置来生成新的搜索前缀,并据此将发生碰撞的标签分成两个子集,并分别进行后续识别;改变了查询树中由阅读器主导的逐位搜索方式以及二进制树方法和ALOHA方法中随机过程带来的不确定性,消除了传统方法中的空时隙或空搜索过程。本发明与传统方式的识别方法具有如下创新和优势:
[0077](I)直接根据首位碰撞位D。生成新的搜索前缀,且搜索前缀随着RFID多标签识别过程中碰撞的实际位置动态增长;
[0078](2)在根据碰撞位生成新前缀的同时,也将待识别的标签集合分为了两个子集,其中一个子集中所有标签满足碰撞位D。的值为0,另一个子集中所有标签满足碰撞位D。的值为1,并且两个子集均不为空;
[0079](3)通过(I)和(2)消除了采用传统算法进行多标签识别过程中出现的空时隙或空搜索状态,有效减少了搜索次数,提高了搜索效率;理论和实验均表明本发明算法的效率超过了 50% ;
[0080](4)编号与前缀相匹配的标签在响应时,只回传与前缀不相同的编号部分,减少了信息的传输量,降低了 RFID标签识别过程中系统通信复杂度和系统能耗;
[0081](5)本算法对阅读器和标签均没有附加要求,特别是标签只需要根据收到的前缀进行决定响应,而不需要记录历史的过程,所以本发明算法简单,可用于无源被动式多标签的识别环境;
[0082](6)由于算法直接针对碰撞进行处理,理论和实验均表明算法性能只与标签数量有关,而与标签编号的分布状况无关,所以本发明算法识别性能稳定,可应用于各种分布的多标签识别环境。
[0083]上述实施方式旨在举例说明本发明可为本领域专业技术人员实现或使用,对上述实施方式进行修改对本领域的专业技术人员来说将是显而易见的,故本发明包括但不限于上述实施方式,任何符合本权利要求书或说明书描述,符合与本文所公开的原理和新颖性、创造性特点的方法、工艺、产品,均落入本发明的保护范围之内。
【权利要求】
1.一种RFID多标签识别防碰撞方法,适用于单个阅读器和多个标签组成的射频识别系统,其特征在于:本方法中的搜索前缀根据碰撞位直接生产,前缀池采用的是堆栈存储的形式,其识别方法的具体步骤如下: S10,完成系统的初始化,将阅读器的前缀池初始为空串,标签编号置为空; S20,所述阅读器以空串为前缀参数,即搜索前缀prefix = NULL,向区域内的待识别标签发送查询命令,并等待标签的响应; S30,所述阅读器接收标签的响应,若没有标签响应,则表示没有待识别的标签,识别结束;若有响应,则发生响应的标签将自身的编号反馈给所述阅读器; S40,所述阅读器对接收到的编号串进行判断,若收到的编号串中没有发生碰撞,则成功识别到一个标签;若收到的编号串中发生碰撞,则根据碰撞位生成两个搜索前缀,并将所述搜索前缀依次存储到所述前缀池内; S50,所述阅读器从所述前缀池内取出最顶部的前缀作为新的搜索前缀prefix,并向区域内的标签发送查询命令,与所述新的搜索前缀prefix相匹配的标签发生响应,并将各自编号中与前缀prefix相匹配之后的数据位发送给所述阅读器;若所述阅读器收到的编号串没有发生碰撞,则成功识别到一个标签,且该标签的编号由搜索前缀prefix与收到的编号串连接构成;若收到的编号串中发生碰撞,记首位碰撞位为D。,则依据前缀生成规则生成两个全新的搜索前缀;两个新前缀由搜索前缀prefix与接收到的编号串中首位碰撞位之前的部分,以及碰撞位D。构成,且碰撞位D。的值分别置为O或I ;阅读器将两个全新的搜索前缀依次放入所述前缀池,等待后续搜索; S60,所述阅读器重复步骤S50,直至完成对所有标签的识别。
2.根据权利要求1所述的RFID多标签识别防碰撞方法,其特征在于:步骤S50中所述前缀生成规则为先前搜索前缀与接受到的正确位,以及由碰撞位产生的“ I”和“O”分别结合而成。
3.根据权利要求2所述的RFID多标签识别防碰撞方法,其特征在于:所述搜索前缀根据首位碰撞位生成新的搜索前缀,并且所述搜索前缀随着碰撞发生的实际位置动态增长。
4.根据权利要求1所述的RFID多标签识别防碰撞方法,其特征在于:发生碰撞的标签根据首位碰撞位D。的值被分为两个组,一个组中标签满足Dc=O,另一个组中标签满足D。=I。
5.根据权利要求1所述的RFID多标签识别防碰撞方法,其特征在于:该方法过程中生成的碰撞树为满二叉树,且每一个叶子节点对应一个已识别的标签,每一个中间节点对应一次碰撞的发生。
6.根据权利要求5所述的RFID多标签识别防碰撞方法,其特征在于:所述碰撞树中每一中间节点至少对应两个标签,每一个叶子节点仅于一个标签相对应。
7.根据权利要求1所述的RFID多标签识别防碰撞方法,其特征在于:标签编号进行传送时采用的是曼彻斯特编码。
【文档编号】G06K7/00GK104517087SQ201410855761
【公开日】2015年4月15日 申请日期:2014年12月31日 优先权日:2014年12月31日
【发明者】贾小林, 冯全源 申请人:西南科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1