一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于特征组的查询树多标签并发识别方法及系统与流程

2022-03-16 03:21:06 来源:中国专利 TAG:


1.本发明涉及无线通信领域中的射频识别(rfid)未知标签识别技术领域,尤其涉及一种基于特征组的查询树多标签并发识别方法及系统。


背景技术:

2.射频识别(rfid)是一种基于反向散射的无线通信技术,用于自动识别远程目标物体,现已被广泛应用于访问控制、供应链管理和其他领域。一个典型的rfid系统由单个读写器和多个能量受限的低成本电子标签组成。标签被贴在众多目标物体表面,每个标签都拥有一个唯一的识别标识(id)。读写器可以通过识别标签来获取目标物体的信息。rfid系统的目标任务是快速识别读写器工作范围内的所有标签。然而,由于标签和读写器之间的通信是建立在共享的无线信道上,因此当多个标签同时向读写器返回数据时,会造成多标签碰撞问题。多标签碰撞不仅会引发标签数据的重传还会降低整个rfid系统的识别效率。因此,有效的多标签防碰撞协议对于rfid系统而言至关重要。
3.标签防碰撞可以分为两类,分别是基于aloha的方法和基于树的方法。在基于aloha的方法中,读写器通过发送带有参数f(f代表帧长,表示一帧中可用时隙的数量)的查询命令来询问标签。收到查询命令的标签会在一帧中随机选择一个时隙来响应并返回一个16比特的伪随机数(rn16)。读写器通过解码标签返回的rn16来确定时隙的状态。对于一个给定的时隙,它有碰撞(多个标签返回rn16),空闲(无标签返回rn16)和成功(只有一个标签返回rn16)三种状态。当一帧结束后,读写器根据统计到的时隙状态分布情况来估算未识别标签数量。基于aloha方法的关键在于根据估算到的未识别标签数量来设定合理的帧长。目前,基于aloha方法的主要缺点是:1)帧长的设置取决于未识别标签数量的估计精度。伴随估计精度的提升,方法的复杂度也会增加,从而使得方法的适用性受到限制。2)存在标签饥渴问题,即有些标签长时间内无法被正确识别。3)目前基于aloha的方法都会遭遇性能瓶颈,其吞吐率无法超过0.368。
4.基于树的方法本质上将碰撞的标签集合不断地划分为更小的子集,直到成功的识别到一个标签。通常地,基于树的方法可以进一步细分为查询树方法和二进制分裂方法。其中查询树方法是典型的无记忆方法。所谓无记忆指的是标签除了自身的id无需增加额外的存储空间。在查询树方法中,读写器用带有查询前缀(二进制数据串)的查询命令来问询标签,那些自身id同查询前缀相匹配的标签会响应并返回id数据给读写器。一旦检测到碰撞,读写器会在原先的查询前缀基础上分别增加0和1,生成新的查询前缀并再次问询标签,直到所有的标签被成功识别。现有的查询树方法大多关注如何减少碰撞,而碰撞信息都被直接丢弃,从而限制了标签识别性能的进一步提升。


技术实现要素:

5.本发明的目的之一至少在于,针对如何克服上述现有技术存在的问题,提供一种基于特征组的查询树多标签并发识别方法及系统,能够加快查询速度,有效的减少了查询
次数,提高了查询效率,减少了信息的传输量且性能稳定。
6.为了实现上述目的,本发明采用的技术方案包括以下各方面。
7.一种基于特征组的查询树多标签并发识别方法,其包括:
8.根据标签返回的数据串的特征将整个数据串空间划分为多个互不相交的子集,每个子集包含若干个不同的数据串,子集中的每个数据串可以视为一个完整标签id或部分id,且每个子集都对应的唯一的查询前缀,该前缀的长度固定,不随着碰撞发生的实际位置动态增长,当来源于同一个子集的多个数据串同时返回时,读写器可以在一个时隙中同时识别它们。
9.一种基于特征组的查询树多标签并发识别系统,其包括电子设备和阅读器;
10.所述阅读器与电子设备通信连接并用于向工作域内的待识别标签发送或接收信息;所述电子设备包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执所述的方法。
11.综上所述,由于采用了上述技术方案,本发明至少具有以下有益效果:
12.通过基于特征组的多标签并发识别方法根据标签id的二进制数据串的特征将整个数据串空间划分为多个互不相交的子集,每个子集包含若干个不同的数据串,子集中的每个数据串可以视为一个完整标签id或部分id,且每个子集都对应的唯一的组查询前缀,该前缀的长度固定,不会随着碰撞发生的实际位置动态增长,当来源于同一个子集的多个数据串同时返回时,读写器可以在一个时隙中同时识别它们,消除了传统方法无法在碰撞时隙中识别标签的问题,极大的加快了查询速度,有效的减少了查询次数,提高了查询效率,减少了信息的传输量;由于方法可以直接识别碰撞信息,方法性能稳定,所以本方法可以适用于多样化的标签分布场景。
附图说明
13.图1是根据本发明示例性实施例的基于特征组的查询树多标签并发识别方法的流程图。
14.图2是根据本发明示例性实施例的7个标签的id。
15.图3是根据本发明示例性实施例方法中标签和读写器之间的交互过程示意图;
16.图4~图6是根据本发明优选实施例的方法与传统经典防碰撞方法的比较;
17.图7示出了根据本发明示例性实施例的基于特征组的查询树多标签并发识别系统。
具体实施方式
18.下面结合附图及实施例,对本发明进行进一步详细说明,以使本发明的目的、技术方案及优点更加清楚明白。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
19.图1示出了根据本发明示例性实施例的基于特征组的查询树多标签并发识别方法的流程示意图。该实施例的方法主要包括:
20.步骤1:读写器从堆栈中读取帧前缀fpre(每个查询命令都只包含1个fpre参数)、
时隙前缀spre(queryr命令中允许多个spre参数存在)、标志位flag,初始状态时,帧前缀和时隙前缀均为空串,标志位为0,发送query、queryg、queryr或queryrep查询命令;
21.步骤2:读写器覆盖范围内的待识别标签接收到读写器发送的查询命令,利用自身的匹配电路将提取出的帧前缀fpre与标签自身的编号id进行比较,若匹配,则响应读写器的查询命令,其响应的数据取决于标志位flag,时隙前缀是spre和命令类型;当标志位为0时,标签会将自身id的前k比特(这k比特数据可以统称为段,任意段可以用wi来表示。某几个段可以归为一个特征组,每个特征组会对应一个组查询。该组的所有段同组查询相比,都只有一位不同。通过组查询生成方法,可以获得所有的组查询和对应的特征组。)同spre相匹配。若匹配结果为真,那么标签会返回匹配的wi段数据,否则等待下一次查询命令。当标志位为1时,标签会将自身id同spre相匹配,并根据spre中的碰撞位置指示信息将m(1《k《m)位的碰撞数据映射成m=2m位的映射数据,并返回映射数据给读写器;若m=k,则标签会生成一个2k位的数据串并返回给读写器。
22.步骤3:读写器接收标签响应的查询应答;如果在预设时间段t内没有接收到标签响应,则说明读写器覆盖范围内没有待识别的标签;否则,跳转到步骤4;
23.步骤4:读写器根据标志位的不同来解析相应的标签数据;如果标志位为0,读写器首先将fpre更新为fpre||spre(a||b表示a和b串联拼接),然后解析标签返回的段wi。如果读写器没有在wi中检测到碰撞,则更新fpre为fpre||wi,将查询命令标志设为query命令,并跳转到步骤5;否则,则跳转到步骤6。如果标志位为1,则跳转到步骤7。
24.步骤5:读写器判断此刻fpre的长度是否同标签id长度l相等,若相等,则成功识别当前标签;若不等,则读写器将更新后的fpre、spre参数压入堆栈,并跳转到步骤1;
25.步骤6:如果检测到wi仅有1位碰撞数据,读写器会立刻终止本时隙并将wi中的碰撞位分别替换为为0和1,然后得到wi0和wi1;读写器更新fpre=fpre||spre,spre0=wi0和spre1=wi1,将查询命令标志设为queryr并跳转到步骤5;如果检测到wi中有m(1《m《k)位碰撞数据,读写器会立刻终止本时隙,记录碰撞位置,设置标志位为1,更新fpre=fpre||spre,spre=wi,将查询命令标志设为queryrep命令,并跳转到步骤5;如果检测到wi有k位碰撞数据,读写器会立刻终止本时隙,设置标志位为1,将查询命令标志设为queryg命令,并跳转到步骤1。
26.步骤7:读写器根据收到的标签返回的映射过的数据串和spre中的碰撞信息,恢复出原始的段信息wo,并判断wo||spre的长度是否等于标签id长度l。若等于,读写器可以识别出相应的标签;否则,读写器更新spre=wo,设置标志位为0,将查询命令标志设为queryr命令,并跳转到步骤1。
27.步骤8:重复进行上述步骤,直到完成对所有标签的识别。
28.进一步的,所述标签的id编码可以采用曼彻斯特编码或fm0编码方式。
29.进一步的,所述的步骤1中,首次发送的是query命令,其后发送的命令取决于查询命令标志。
30.进一步的,所述的步骤2中,k的取值为2的整数次幂。
31.进一步的,所述的步骤2中,当1《m《k时,标签返回的映射数据的映射步骤具体包括:
32.步骤2.11:输入m位原始数据,该数据表示为b=b
m-1bm-2
...b0,映射后的m(m=2m)位
数据表示为p=p
m-1
p
m-2
...p0,其中bi和pi都表示某位二进制数。初始化使得p中的p0位为1,其余位均为0,j为0。
33.步骤2.12:计算r=bj×2j
,将p循环左移r位后得到更新的p,并执行j=j 1。
34.步骤2.13:判断j值是否等于m,若是,则终止映射流程并将此时的p输出作为最终的映射数据;否则,跳转到步骤2.12。
35.进一步的,所述的步骤2中,组查询的生成方法的具体步骤包括:
36.步骤2.21:初始化一个组查询集合q
ini
和一个k维的矢量空间sk={0,1}k,向量空间中的向量长度均为k。初始状态时,q
ini
为空集合。
37.步骤2.22:随机从sk中选取一个向量a0。
38.步骤2.23:从sk中选取向量a1,使得a1和a0的汉明距离为1(两个向量按位异或之后仅包含一位1)。
39.步骤2.24:将a0和a1压入集合q
ini
中,同时将它们从sk中移出。
40.步骤2.25:判断此时q
ini
集合中的元素个数是否超过n(n=2k/k),若是,则结束组查询生成流程并输出q
out
=q
ini
,q
out
为最终生成的组查询集合;若否,则跳转到步骤2.26。
41.步骤2.26:从sk中选取一个向量b0,使得b0和q
ini
集合中的各个向量的汉明距离大于等于3,然后跳转到步骤2.27。
42.步骤2.27:从sk中选取一个向量b1,使得b1和b0的汉明距离等于1。
43.步骤2.28:将b0和b1压入集合q
ini
中,同时将它们从sk中移出,并跳转到步骤2.25。
44.更进一步的,所述的步骤2中,当m=k时,标签返回的映射数据的映射步骤具体包括:
45.步骤2.31:输入k位原始数据,该数据表示为b=b
k-1bk-2
...b0,映射后的m(m=2k)位数据表示为g=g1g2...gn(其中n=2k/k),其中bi表示某位二进制数,而gi表示g中第i段的k比特的数据串。初始化使得g为一个全0的数据串。
46.步骤2.32:标签将自身id同查询命令中的spre相匹配,将匹配后的wi数据串同对应的组查询进行按位异或运算,生成gi。
47.步骤2.33:标签用生成的gi替换掉g中对应的数据串部分,g中其余的数据位保持不变,然后返回给读写器。
48.其中,所述步骤2中的组查询及其对应的特征组为:
49.表1-组查询及对应的特征组示例(k=4)
50.组查询特征组q1=0000g1={1000,0100,0010,0001}q2=0001g2={1001,0101,0011,0000}q3=1110g3={0110,1010,1100,1111}q4=1111g4={0111,1110,1101,1011}
51.其中,所述步骤2中的m(1《k《m)位的碰撞数据映射成m=2m位的映射数据的映射关系表为:
52.表2-碰撞数据映射关系表(k=4,m=3)
[0053][0054][0055]
表2中的3bits是表示碰撞位的信息,映射的原则是按照所述步骤2.11-2.13的流程。例如b2b1b0=001,p的初值为00000001。当j=0时,r=b0×2j
=1,此时p循环左移1位变为00000010。当j=1和j=2时,p都保持不变,因此最终输出p的值为000000010。显而易见的,本方法还可以有效的扩展到m-bits映射,对m-bits数据进行映射,产生一个2m位的映射数据。
[0056]
本发明具体应用于单个读写器和多个标签组成的环境中,解决多个标签同时与读写器通信时所引发的标签碰撞问题,方法采用堆栈结构,实现简单,待识别的标签只需要接收命令,然后根据解析到的命令返回相应的数据即可。若是query命令,则将命令中的查询前缀(包含fpre和spre)与自身id进行比较,如果匹配,就发送匹配后的id的高k位(前文所述的wi段),如果不一致则不响应读写器操作。若是queryrep命令,则将命令中的fpre与自身id进行比较,如果匹配则提取spre参数所指示的碰撞位置,并将自身id所对应位置的比特信息转换成映射数据返回给读写器,如果不一致则不响应读写器操作;若是queryr命令,则将命令中的查询前缀(包含fpre和spre)与自身id进行比较,如果匹配,就发送匹配后的id的高k位(前文所述的wi段),如果不一致则不响应读写器操作;若是queryg命令,则将命令中的查询前缀(包含fpre和spre)与自身id进行比较,如果匹配,就将匹配后的id的高k位(前文所述的wi段)转换成2k比特映射数据返回给读写器,如果不一致则不响应读写器操作;
[0057]
为了本领域技术人员能够理解并且实施本发明技术方案,下面将结合具体实施例对本发明申请方案作详细说明:
[0058]
下面以7个标签的识别过程为例,7个标签的id如图2所示,标签和读写器之间的交互过程如图3所示,在本示例中标签的id长度为12比特,wi段的长度为4(k=4),根据图1所示的方法流程图,具体实施步骤如下:
[0059]
步骤1:读写器从堆栈中读取帧前缀fpre、时隙前缀spre、标志位flag,此时fpre和spre均为空串ε,标志位为0,读写器在时隙1发送query查询命令;
[0060]
步骤2:此时读写器覆盖范围内的7个标签均响应,各自发送匹配后的id的高k位(即wi段);
[0061]
步骤3:读写器接收到的响应为“1111”;
[0062]
步骤4:由于此时标志位为0,读写器首先将fpre更新为fpre||spre(仍然为ε),然后解析标签返回的数据段wi。读写器没有在wi中检测到碰撞,所以更新fpre为fpre||wi(此刻fpre更新为1111),并将查询命令标志设为query命令,并跳转到步骤5;
[0063]
步骤5:读写器判断此刻fpre的长度不等于标签id长度,因此会跳转到步骤1,并在时隙2重新发送一个更新的query命令;重新经历步骤1和2后,读写器会在时隙2收到响应为:“x01x”,其中x表示标签在该位置上发生碰撞;接着,读写器会在步骤4将fpre更新为fpre||spre(仍然为1111),并跳转到步骤6:
[0064]
步骤6:读写器检测到wi中有2(m=2)位碰撞数据,因此立刻终止本时隙,记录碰撞位置,设置标志位为1,更新spre=wi(此时spre=x01x),并将查询命令标志设为queryrep命令,并跳转到步骤5;在经历步骤5和步骤1之后,读写器会在时隙3发送一个queryrep命令;根据前文所述,标签会将自身id所对应位置的比特信息转换成映射数据返回给读写器;其中,标签a返回0010,标签b/c返回0001,标签d/e/f/g均返回0100,读写器接收到的响应为“0xxx”;由于此时flag为1,因此跳转到步骤7;
[0065]
步骤7:读写器根据收到的标签返回的映射过的数据串和spre中的碰撞信息,恢复出原始的段信息wo,分别为0011,0010和1010,并判断此刻wo||spre的长度并不等于id长度,因此读写器更新spre=wo(此时spre1为0010,spre2为0011,spre3为1010),设置标志位为0,将查询命令标志设为queryr命令,并跳转到步骤1,读写器在时隙4发送queryr命令;根据前文所述,标签将命令中的查询前缀(包含fpre和spre)与自身id进行匹配,并发送剩余id的高k位;其中标签b/c分别发送0110和0111,标签a发送1010,标签d/e/f/g分别发送1011,1100,0110和1001;读写器在时隙4收到响应为:“011x”,“1010”和“xxxx”;由于每个标签拥有唯一的id,所以读写器在收到“011x”后可以直接识别标签b和c;同样地,在读写器收到“1010”后可以直接识别标签a;由于4个标签都同spre3相匹配,且产生的碰撞比特数为m=4,所以读写器会立刻终止本时隙,设置标志位为1,将查询命令标志设为queryg命令,并跳转到步骤1;读写器会在时隙5中发送queryg查询命令;根据前文所述,标签将命令中的查询前缀(包含fpre和spre)与自身id进行比较,然后将匹配后的剩余id的高4位转换成16比特映射数据返回给读写器;其中标签d/e/f/g在此时隙内的具体返回数据如表3所示;读写器根据接收到的响应,成功识别出标签d、e、f和g;
[0066]
步骤8:读写器判断出此刻的堆栈为空,因此整个识别过程结束。
[0067]
表3-标签d/e/f/g对于queryg命令的响应
[0068][0069]
图4、图5和图6给出了本发明方法与传统经典防碰撞方法的比较,本发明在系统效率、总时隙数、通信复杂度(平均识别一个标签所需的传输数据量)以及总能量消耗上的优势,其中:ct为碰撞树协议,cwt为碰撞窗数协议,mct为多进制碰撞比特查询树协议,mqt为多进制查询树协议,bqmt为比特查询多进制树协议,cgqt为本发明方法。
[0070]
图7示出了根据本发明示例性实施例的基于特征组的查询树多标签并发识别系统,其包括电子设备310(例如具备程序执行功能的计算机服务器、片上芯片等)和阅读器320;所述阅读器与电子设备310通信连接并用于向工作域内的待识别标签发送或接收信息(例如发送广播命令、读取标签中的信息等);所述电子设备310包括至少一个处理器311,电源314,以及与所述至少一个处理器311通信连接的存储器312和输入输出接口313;所述存储器312存储有可被所述至少一个处理器311执行的指令,所述指令被所述至少一个处理器311执行,以使所述至少一个处理器311能够执行前述任一实施例所公开的方法;所述输入输出接口313可以包括用于连接阅读器、显示器、键盘、鼠标、usb等设备的有线或无线通信接口,以传输数据和信号;电源314用于为电子设备310提供电能。
[0071]
本领域技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
[0072]
当本发明上述集成的单元以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技
术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
[0073]
以上所述,仅为本发明具体实施方式的详细说明,而非对本发明的限制。相关技术领域的技术人员在不脱离本发明的原则和范围的情况下,做出的各种替换、变型以及改进均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献