一种用于大容量多标签rfid系统的混合防碰撞方法

文档序号:6536731阅读:193来源:国知局
一种用于大容量多标签rfid系统的混合防碰撞方法
【专利摘要】本发明公开了一种用于大容量多标签RFID系统的混合防碰撞方法,该方法主要可以分为两个阶段,第一阶段是利用帧时隙分离和识别阶段,第二阶段是利用AMS方法识别阶段。该方法可以提高标签识别性能,缩小每次标签查询的范围;同时采用的AMS方法消除了空闲查询并降低了碰撞次数,提高了识别效率和安全性;同时结合了ALOHA-based方法和tree-based方法各自的优点,解决了由于随机过程的不确定性带来的标签饥饿问题,消除了传统tree-based方法中的空闲查询,同时无需估计标签数,降低了计算复杂度;并且突破了传统方法对标签数量的限制,适用于大容量多标签RFID系统。
【专利说明】—种用于大容量多标签RFID系统的混合防碰撞方法
【技术领域】
[0001]本发明属于射频识别【技术领域】,具体涉及一种用于大容量多标签RFID系统的混合防碰撞方法的设计。
【背景技术】
[0002]近年来,由于UHF RFID系统具有距离远,标签无源,使用寿命长,标签读写速度快等众多优点,因此成为了未来RFID应用的主要发展趋势,诸如:供应链管理,物品追踪等。此外,UHF RFID系统读写器覆盖范围广,系统内覆盖的标签数目很多,同时对标签的读写要求很高,这样使得UHF RFID系统的标签碰撞问题较为突出。为了解决多个标签同时与读写器通信所产生的碰撞问题,读写器需要采用防碰撞发方法来协调读写器和多个标签之间的通信。由于受到诸多因素的制约,防碰撞方法在标签侧的实现要尽可能简单,特别是标签数目较多的时候。
[0003]标签防碰撞方法主要分为两类:概率性方法和确定性方法。概率性方法即ALOHA-based 方法,主要用于 EPC Global ClGen2、IS018000_6C 以及 IS014443_3Type B 等国际标准中。ALOHA-based方法主要包括时隙ALOHA方法(SA),帧时隙ALOHA方法(FSA)以及动态帧时隙ALOHA方法(DFSA)。其中应用最广泛的就是DFSA,基本原理是:读写器向其工作域内的标签广播一个Query命令,这个Query命令指定一个固定长度的时隙巾贞L,标签可以在(1,L)之间随机选择一个时隙响应读写器命令,若某个时隙无标签响应则为空闲时隙,若只有一个标签响应则为成功时隙,此时标签可以被读写器成功读取,若有多个标签同时响应则为碰撞时隙。当一帧结束后,读写器统计空闲时隙、碰撞时隙和成功时隙的数量,并以此为参数来估计未识别的标签数,然后调整下一帧的长度,重复上述过程直到所有标签被识别为止。Tree-based方法中应用最广的就是查询树方法(QT)。
[0004]QT方法的基本特征是,每个标签都有自己的前缀(prefix)匹配电路,读写器从查询堆栈中,选择一个前缀进行查询,所有标签将自身的ID号与接收到的前缀进行比较,如果匹配,则标签响应读写器并回复自己的ID号,如果不匹配,标签不做响应。如果没有碰撞发生,则读写器成功识别到一个标签,并从堆栈中选取新的查询前缀进行查询;如果发生碰撞,读写器将刚刚发送的前缀按照碰撞信息增加一位0或I并放入堆栈,等到后续查询使用;若是没有收到回复,读写器从堆栈中选取新的前缀继续查询;循环上述操作,直到完成对所有标签的识别。
[0005]目前存在的大多数RFID防碰撞方法的主要优缺点在于:AL0HA-based方法以时隙为基础对标签进行分组识别,方法实现简单,但是存在“tag starvation"(标签饥饿)和“cardinality sensitive”(标签数敏感)问题。Tree-based类方法不存在标签饥饿问题,确保了标签的完全识别,但是在处理大量标签碰撞时,读写器不得不多次发送标签ID号来分裂标签群,这样造成了标签的信息泄露。

【发明内容】
[0006]本发明的目的是为了解决现有技术中防碰撞方法识别率低、不稳定的缺点而提出一种适用于大容量多标签RFID系统的混合防碰撞方法,该方法稳定、高效,扩展性强。
[0007]本发明的技术方案是:一种用于大容量多标签RFID系统的混合防碰撞方法,具体包括:
[0008]步骤1:读写器初始化清零,读写器时隙计数器Sc、空闲时隙数Ne、碰撞时隙数Ne以及成功时隙数Nr的值均为O ;
[0009]步骤2:读写器向其覆盖范围内的标签广播一个Query命令,所述Query命令规定一个固定长度的时隙帧L=2Q,读写器时隙计数器Sc=Sc+l ;
[0010]步骤3:所述读写器覆盖范围内的待识别标签接收到读写器的Query命令,提取命令中的Q值,在[1,L]中随机产生一个数加载到自己的计数器上,并且比较计数器的值与当前读写器Sc的值,若相等,则响应读写器的Query命令并回复自己的ID,否则不予响应;
[0011]步骤4:读写器接收标签应答,如果没有接收到标签回复,则表示在读写器覆盖范围内没有待识别的标签,此时将Ne=Ne+l ;
[0012]如果接收到的应答没有碰撞产生,则表示成功将标签识别,此时将Nr=Nr+l ;
[0013]如果接收到的应答发生碰撞,则表示当前时隙内有多个标签同时响应,此时将Nc=Nc+l并将当前Sc的值放入时隙堆栈;
[0014]步骤5:当前读写器时隙计数器Sc=Sc+l,判断当前Sc的值是否达到最大值L,若是则跳转到步骤8,否则发送QueryRep命令;
[0015]步骤6:所述读写器覆盖范围内的待识别标签接收到读写器的QueryRep命令,并判断自身计时器的值与当前读写器Sc的值,若相等,则响应读写器的QueryRep命令并回复自己的ID,否则不予响应;
[0016]步骤7:跳转到步骤4 ;
[0017]步骤8:统计本轮查询过程中的Ne,Ne和Nr的值,并判断Ne_6*Nc的值是否超过设定门限值,若是则跳转到步骤9,若否则将Ne,Nr和Ne值清零,Q=Q+1并跳转到步骤2 ;步骤9:读写器采用基于碰撞因子的自适应多进制树查询AMS方法识别未识别标签。
[0018]进一步的,所述步骤9中AMS方法具体包括:
[0019]步骤9.1:读写器检测时隙堆栈是否为空,若为空则跳转到步骤9.9,否则读写器从时隙堆栈中提取出一个时隙值并等待发送查询命令;
[0020]步骤9.2:读写器从前缀堆栈中提取出一个查询前缀,结合当前时隙值向覆盖范围内的标签发送查询命令;
[0021]步骤9.3:标签接收读写器的查询命令,并比较自身的计数器的值与当前时隙值,若相等,则响应读写器当前查询命令并回复自己的ID,否则不予响应;
[0022]步骤9.4:读写器接收标签的响应,若无碰撞,则表示成功识别标签并跳转到步骤
9.8 ;若碰撞,则计算碰撞因子,所述碰撞因子定义为发生碰撞的比特位数与标签ID长度之比;若碰撞因子大于等于0.75,则跳转到步骤9.5 ;若碰撞因子小于0.75,记首位碰撞位为Dc,产生两个新的查询前缀,将Dc分别设置成O或1,余下部分由查询前缀与接收到的ID中首位碰撞位之前的部分组成,并将两个新的查询前缀放入前缀堆栈,并跳转到步骤9.8 ;
[0023]步骤9.5:读写器发送自定义命令QueryP令标签返回一个4bit的数据,该数据用于反映标签碰撞的首两位信息;[0024]步骤9.6:标签对自定义命令QueryP进行响应,将首两位碰撞数据转换成十进制数X,然后向读写器返回一个4bit数据,该数据Dx位置为1,其余位置为O ;
[0025]步骤9.7:读写器根据接收到的4bit数据,解析出标签首两位碰撞数据,并将它们置于查询前缀prefix后产生新的查询前缀,并将这些新前缀放入前缀堆栈;
[0026]步骤9.8:判断当前前缀堆栈是否为空,若为空,则跳转到步骤9.1,否则跳转到步骤 9.2 ;
[0027]步骤9.9:整个标签识别过程结束。
[0028]进一步的,所述步骤9中AMS方法具体包括:
[0029]步骤9.1:读写器检测时隙堆栈是否为空,若为空则跳转到步骤9.6,否则读写器从时隙堆栈中提取出一个时隙值并等待发送查询命令;
[0030]步骤9.2:读写器从前缀堆栈中提取出一个查询前缀,结合当前时隙值向覆盖范围内的标签发送查询命令;
[0031]步骤9.3:标签接收读写器的查询命令,并比较自身的计数器的值与当前时隙值,若相等,则响应读写器当前查询命令,并回复自己的ID与查询前缀prefix相匹配部分的余下部分的首两位,同时将这两位数据根据映射表转换成四比特数据并发送给读写器;
[0032]步骤9.4:读写器接收到标签的响应数据,若发生碰撞,则将首两位碰撞位分别设置成00/01/10/11,并将它们置于查询前缀prefix后产生新的查询前缀,并将这些新前缀放入前缀堆栈;若无碰撞,说明当前时隙值下的标签ID的首两位相同,则根据映射表将这两位置于查询前缀prefix后,产生新的查询前缀,并将新个前缀放入前缀堆栈;
[0033]步骤9.5:判断当前前缀堆栈是否为空,若为空,则跳转到步骤9.1,否则跳转到步骤 9.2 ;
[0034]步骤9.6:整个标签识别过程结束。
[0035]更进一步的,所述步骤9.2中首次查询前缀prefix为空串,即让所有计数器值等于当前读写器时隙值的标签响应。
[0036]本发明的有益效果:本发明一种用于大容量多标签RFID系统的混合防碰撞方法将标签的识别过程分为两个阶段,第一阶段读写器通过向其工作域内的标签广播一个Query命令,该命令规定一个固定长度的时隙巾贞L,标签在该巾贞中随机选择一个时隙响应读写器命令,若时隙产生碰撞,则碰撞标签可以通过两种AMS方法进行识别,可以提高标签识别性能,而且利用时分复用TDMA的思想将标签进行分组,缩小了每次标签查询的范围;同时采用的AMS方法消除了空闲查询并降低了碰撞次数,提高了识别效率和安全性;同时结合了 ALOHA-based方法和tree-based方法各自的优点,解决了由于随机过程的不确定性带来的标签饥饿问题,消除了传统tree-based方法中的空闲查询,同时无需估计标签数,降低了计算复杂度;并且突破了传统方法对标签数量的限制,同时不受标签ID分布的影响,特别适用于大容量多标签RFID系统。
【专利附图】

【附图说明】
[0037]图1是本发明提出的一种用于大容量多标签RFID系统的混合防碰撞方法流程框图;
[0038]图2是AMS方法I的流程图;[0039]图3是AMS方法I中读写器采用的自定义命令QueryP与标签的交互流程;
[0040]图4是AMS方法2的流程图;
[0041]图5是发明方法识别8个标签的一个实例;
[0042]图6是本发明方法在识别速度上的优势曲线;
[0043]图7是本发明方法在能量效率上的优势曲线。
【具体实施方式】
[0044]下面结合附图和具体的实施例对本发明作进一步的阐述。
[0045]如图1所示为本发明一种用于大容量多标签RFID系统的混合防碰撞方法的流程框图,具体包括:
[0046]步骤1:读写器初始化清零,读写器时隙计数器Sc、空闲时隙数Ne、碰撞时隙数Ne以及成功时隙数Nr的值均为O ;
[0047]步骤2:读写器向其覆盖范围内的标签广播一个Query命令,所述Query命令规定一个固定长度的时隙帧L=2Q,读写器时隙计数器Sc=Sc+l ;
[0048]步骤3:所述读写器覆盖范围内的待识别标签接收到读写器的Query命令,提取命令中的Q值,该Q值为所述步骤2中时隙帧L=2Q中的Q值,在[1,L]中随机产生一个数加载到自己的计数器上,并且比较计数器的值与当前读写器Sc的值,若相等,则响应读写器的Query命令并回复自己的ID,否则不予响应;
[0049]步骤4:读写器接收标签应答,如果没有接收到标签回复,则表示在读写器覆盖范围内没有待识别的标签,此时将Ne=Ne+l ;
[0050]如果接收到的应答没有碰撞产生,则表示成功将标签识别,此时将Nr=Nr+l ;
[0051]如果接收到的应答发生碰撞,则表示当前时隙内有多个标签同时响应,此时将Nc=Nc+l并将当前Sc的值放入时隙堆栈;
[0052]步骤5:当前读写器时隙计数器Sc=Sc+l,判断当前Sc的值是否达到最大值L,若是则跳转到步骤8,否则发送QueryRep命令;
[0053]步骤6:所述读写器覆盖范围内的待识别标签接收到读写器的QueryRep命令,并判断自身计时器的值与当前读写器Sc的值,若相等,则响应读写器的QueryRep命令并回复自己的ID,否则不予响应;
[0054]步骤7:跳转到步骤4 ;
[0055]步骤8:统计本轮查询过程中的Ne,Ne和Nr的值,并判断Ne_6*Nc的值是否超过设定门限值,若是则跳转到步骤9,若否则将Ne,Nr和Ne值清零,Q=Q+1并跳转到步骤2 ;其中,当帧长度L=2n时,η为待识别标签数,可以推导出Ne:Nr:Nc=2:1:7/24,其推导过程属于现有技术,本发明申请方案不再作详细描述,因此可以根据这个比值来设定一定的门限值,通过Ne-6*Nc的值来验证当前的L值是否合适,该代表相乘的意思;
[0056]步骤9:读写器采用基于碰撞因子的自适应多进制树查询AMS方法识别未识别标签。
[0057]在本发明中标签的ID采用曼彻斯特编码方式,因为根据曼彻斯特编码,读写器可以正确识别发生碰撞的二进制位的位置。
[0058]本发明方法过程结构清晰,实现方便,主要可以分为两个阶段,第一阶段是利用帧时隙分离和识别阶段,第二阶段是利用AMS方法识别阶段;其中AMS方法识别阶段本发明申请方案提供了两种方法进行识别,下面将结合附图进行详细说明:
[0059]如图2所示为AMS方法I的流程图,其具体包括:
[0060]步骤9.1:读写器检测时隙堆栈是否为空,若为空则跳转到步骤9.9,否则读写器从时隙堆栈中提取出一个时隙值并等待发送查询命令;
[0061]步骤9.2:读写器从前缀堆栈中提取出一个查询前缀(首次查询前缀prefix为空串,即让所有计数器值等于当前读写器时隙值的标签响应),结合当前时隙值然后向标签发送查询命令;
[0062]步骤9.3:标签接收读写器的查询命令,并比较自身的计数器的值与当前时隙值,若相等,则响应读写器当前查询命令,并回复自己的ID ;
[0063]步骤9.4:读写器接收标签的响应,若无碰撞,则成功识别标签并跳转到步骤9.8 ;若碰撞,则计算碰撞因子(碰撞因子定义为发生碰撞的比特位数与标签ID长度之比);若碰撞因子大于等于0.75,则跳转到步骤9.5 ;若碰撞因子小于0.75,记首位碰撞位为Dc,产生两个新的查询前缀,将Dc分别设置成O或1,余下部分由查询前缀与接收到的ID中首位碰撞位之前的部分组成,并将两个新的查询前缀放入前缀堆栈,并跳转到步骤9.8;其中,所述0.75是理论推导出来的一个值,该推导过程属于现有就技术,在本发明方案中不再作详细描述;
[0064]步骤9.5:读写器发送自定义命令QueryP令标签返回一个4bit的数据,这个数据可以准确反映标签碰撞的首两位信息;
[0065]步骤9.6:标签对自定义命令QueryP进行响应,将首两位碰撞数据(00或01或10或11)转换成十进制数X,然后向读写器返回一个4bit数据,这个数据Dx位置I,其余位置
O;
[0066]步骤9.7:读写器根据接收到的4bit数据,解析出标签首两位碰撞数据的具体指00/01/10/11,并将它们置于查询前缀prefix后产生新的查询前缀,并将这些新前缀放入前缀堆栈;
[0067]步骤9.8:判断当前前缀堆栈是否为空,若为空,则跳转到步骤9.1,否则跳转到步骤 9.2 ;
[0068]步骤9.9:整个标签识别过程结束。
[0069]如图3所述AMS方法I中所提到的自定义命令QueryP的具体实施过程,当读写器检测到碰撞时,计算碰撞因子,此时碰撞因子等于0.75,读写器会先发送一个自定义命令QueryP要求标签响应其首两位的具体信息;从图中可以看到标签将自己的首两位碰撞信息转换成十进制数X,然后返回一个4bit的数据,其中Dx位为1,其余各位为O ;读写器接收到标签的响应数据OxxO后,判断D2,Dl位碰撞,由此可以得知发生碰撞的标签的最高碰撞位和次高碰撞位的具体碰撞信息分别为01和10,因此后续查询命令会分别将01和10加在原先的查询序列之后生成新的查询命令。
[0070]如图4所示为AMS方法2的流程图,其具体包括:
[0071]步骤9.1:读写器检测时隙堆栈是否为空,若为空则跳转到步骤9.6,否则读写器从时隙堆栈中提取出一个时隙值并等待发送查询命令;
[0072]步骤9.2:读写器从前缀堆栈中提取出一个查询前缀(首次查询前缀prefix为空串,即让所有计数器值等于当前读写器时隙值的标签响应),结合当前时隙值然后向标签发送查询命令;
[0073]步骤9.3:标签接收读写器的查询命令,并比较自身的计数器的值与当前时隙值,若相等,则响应读写器当前查询命令,并回复自己的ID与查询前缀prefix相匹配部分的余下部分的首两位,同时这两位数据会根据映射表转换成四比特数据并发送给读写器;
[0074]步骤9.4:读写器接收到标签的响应数据,若发生碰撞,则将首两位碰撞位分别设置成00/01/10/11,并将它们置于查询前缀prefix后产生新的查询前缀,并将这些新前缀放入前缀堆栈;若无碰撞,说明当前时隙值下的标签ID的首两位相同,则根据映射表将这两位置于查询前缀prefix后,产生新的查询前缀,并将新个前缀放入前缀堆栈;
[0075]步骤9.5:判断当前前缀堆栈是否为空,若为空,则跳转到步骤9.1,否则跳转到步骤 9.2 ;
[0076]步骤9.6:整个标签识别过程结束。
[0077]如下表1所示给出了 AMS方法2中所使用的映射表,根据映射表读写器能够快速获取标签碰撞信息,避免空闲时隙,同时加快查询速度。
[0078]表1映射表
[0079]
【权利要求】
1.一种用于大容量多标签RFID系统的混合防碰撞方法,其特征在于,具体包括: 步骤1:读写器初始化清零,读写器时隙计数器Sc、空闲时隙数Ne、碰撞时隙数Ne以及成功时隙数Nr的值均为O ; 步骤2:读写器向其覆盖范围 内的标签广播一个Query命令,所述Query命令规定一个固定长度的时隙帧L=2Q,读写器时隙计数器Sc=Sc+l ; 步骤3:所述读写器覆盖范围内的待识别标签接收到读写器的Query命令,提取命令中的Q值,在[1,L]中随机产生一个数加载到自己的计数器上,并且比较计数器的值与当前读写器Sc的值,若相等,则响应读写器的Query命令并回复自己的ID,否则不予响应; 步骤4:读写器接收标签应答,如果没有接收到标签回复,则表示在读写器覆盖范围内没有待识别的标签,此时将Ne=Ne+l ; 如果接收到的应答没有碰撞产生,则表示成功将标签识别,此时将Nr=Nr+l ; 如果接收到的应答发生碰撞,则表示当前时隙内有多个标签同时响应,此时将Nc=Nc+1并将当前Sc的值放入时隙堆栈; 步骤5:当前读写器时隙计数器Sc=Sc+l,判断当前Sc的值是否达到最大值L,若是则跳转到步骤8,否则发送QueryRep命令; 步骤6:所述读写器覆盖范围内的待识别标签接收到读写器的QueryRep命令,并判断自身计时器的值与当前读写器Sc的值,若相等,则响应读写器的QueryRep命令并回复自己的ID,否则不予响应; 步骤7:跳转到步骤4 ; 步骤8:统计本轮查询过程中的Ne,Ne和Nr的值,并判断Ne_6*Nc的值是否超过设定门限值,若是则跳转到步骤9,若否则将Ne,Nr和Ne值清零,Q=Q+1并跳转到步骤2 ; 步骤9:读写器采用基于碰撞因子的自适应多进制树查询AMS方法识别未识别标签。
2.如权利要求1所述的一种用于大容量多标签RFID系统的混合防碰撞方法,其特征在于,所述步骤9中AMS方法具体包括: 步骤9.1:读写器检测时隙堆栈是否为空,若为空则跳转到步骤9.9,否则读写器从时隙堆栈中提取出一个时隙值并等待发送查询命令; 步骤9.2:读写器从前缀堆栈中提取出一个查询前缀,结合当前时隙值向覆盖范围内的标签发送查询命令; 步骤9.3:标签接收读写器的查询命令,并比较自身的计数器的值与当前时隙值,若相等,则响应读写器当前查询命令并回复自己的ID,否则不予响应; 步骤9.4:读写器接收标签的响应,若无碰撞,则表示成功识别标签并跳转到步骤9.8 ;若碰撞,则计算碰撞因子,所述碰撞因子定义为发生碰撞的比特数与标签ID长度之比;若碰撞因子大于等于0.75,则跳转到步骤9.5 ;若碰撞因子小于0.75,记首位碰撞位为Dc,产生两个新的查询前缀,将Dc分别设置成O或1,余下部分由查询前缀与接收到的ID中首位碰撞位之前的部分组成,并将两个新的查询前缀放入前缀堆栈,并跳转到步骤9.8 ; 步骤9.5:读写器发送自定义命令QueryP令标签返回一个4bit的数据,该数据用于反映标签碰撞的首两位信息; 步骤9.6:标签对自定义命令QueryP进行响应,将首两位碰撞数据转换成十进制数X,然后向读写器返回一个4bit数据,该数据Dx位置为1,其余位置为O ;步骤9.7:读写器根据接收到的4bit数据,解析出标签首两位碰撞数据,并将它们置于查询前缀prefix后产生新的查询前缀,并将这些新前缀放入前缀堆栈; 步骤9.8:判断当前前缀堆栈是否为空,若为空,则跳转到步骤9.1,否则跳转到步骤.9.2 ; 步骤9.9:整个标签识别过程结束。
3.如权利要求1所述的一种用于大容量多标签RFID系统的混合防碰撞方法,其特征在于,所述步骤9中AMS方法具体包括: 步骤9.1:读写器检测时隙堆栈是否为空,若为空则跳转到步骤9.6,否则读写器从时隙堆栈中提取出一个时隙值并等待发送查询命令; 步骤9.2:读写器从前缀堆栈中提取出一个查询前缀,结合当前时隙值向覆盖范围内的标签发送查询命令; 步骤9.3:标签接收读写器的查询命令,并比较自身的计数器的值与当前时隙值,若相等,则响应读写器当前查询命令,并回复自己的ID与查询前缀prefix相匹配部分的余下部分的首两位,同时将这两位数据根据映射表转换成四比特数据并发送给读写器; 步骤9.4:读写器接收到标签的响应数据,若发生碰撞,则将首两位碰撞位分别设置成00/01/10/11,并将它们置于查询前缀prefix后产生新的查询前缀,并将这些新前缀放入前缀堆栈;若无碰撞,说明当前时隙值下的标签ID的首两位相同,则根据映射表将这两位置于查询前缀prefix后,产生新的查询前缀,并将新个前缀放入前缀堆栈; 步骤9.5:判断当前前缀堆栈是否为空,若为空,则跳转到步骤9.1,否则跳转到步骤.9.2 ; 步骤9.6:整个标签识别过程结束。
4.如权利要求2或3所述的一种用于大容量多标签RFID系统的混合防碰撞方法,其特征在于,所述步骤9.2中首次查询前缀prefix为空串,即让所有计数器值等于当前读写器时隙值的标签响应。
【文档编号】G06K7/00GK103902942SQ201410033760
【公开日】2014年7月2日 申请日期:2014年1月23日 优先权日:2014年1月23日
【发明者】苏健, 文光俊, 李建 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1