法律状态公告日
法律状态信息
法律状态
2017-08-01
授权
授权
2015-12-09
实质审查的生效 IPC(主分类):G06K7/00 申请日:20150818
实质审查的生效
2015-11-11
公开
公开
技术领域
本发明属于无线通信领域中的射频识别(RFID)多标签识别技术,具体涉及一种基于查 询树方法的多前缀匹配的确定性防碰撞算法。
背景技术
射频识别是一项有前途的用于目标自动识别的无线通信技术。一个典型的RFID系统通常 由一个读写器和多个低成本、体积小的电子标签组成,每个标签都有一个唯一标识符(UID) (为了便于描述,后面统称ID)。读写器通过无线方式读取标签的ID,这样系统就可以获得 与标签相连的物体的信息。然而当多个标签同时与读写器进行通信时,会产生碰撞,导致读 写器无法成功识别标签。为了解决这一碰撞问题,需要一种时间有效的防碰撞算法来快速的 识别多个标签,特别是高密集度的RFID环境。
现存的防碰撞算法主要可以分为三类,概率性算法、确定性算法和混合算法。概率性算 法以时隙为基础对标签进行分组识别,实现简单,但是存在标签饥饿(Tagstarvation)即 某一标签较长时间内无法得到识别。混合算法结合概率性算法和确定性算法的优势,但是设 计复杂,成本较高。近来,研究者提出的比特追踪技术使得读写器能够识别识别碰撞的具体 位置,因此被广泛的应用于一些最新的防碰撞算法中。其代表类算法主要有碰撞树(CT)算 法、连续碰撞位映射算法(CCMA)、多进制查询树算法(MQT)、提高型分配树隙Aloha算法 (ImATSA),基于查询窗的树形算法(QwT)等。同传统的树形算法相比,上述算法利用比特 追踪技术可以实现更好的性能。但是它们的性能受到标签分布和碰撞位置的影响。
发明内容
本发明的目的是解决上述问题和现有技术的不足,提供一种基于查询树方法的多前缀匹 配的确定性防碰撞算法,利用双前缀匹配来实现一个时隙识别两个标签,由于两个前缀之间 仅相差一个二进制1,所以可以彻底消除其他多进制查询算法所引入的空闲时隙或空节点,来 降低系统设计复杂度。
本发明的一种基于查询树方法的多前缀匹配的确定性防碰撞算法,包括如下步骤:
步骤1、读写器从堆栈中读取查询前缀prefix,初始状态时,查询前缀为空串,发送查 询命令;
步骤2、读写器工作范围内的待识别标签接收到读写器发送的查询命令,并根据发送查 询命令给予匹配响应;
步骤3、读写器接收标签响应;响应成功结束流程,发生碰撞跳转至步骤4;
步骤4、读写器检测标签响应碰撞位,若最高碰撞位和次高碰撞位为连续碰撞位,则跳 转至步骤5;若最高碰撞位和次高碰撞位为非连续碰撞位,则跳转至步骤6;
步骤5、令最高碰撞位和次高碰撞位为第C和C+1位,将公共前缀串联接收响应的前C-1 位,构成新的公共前缀,给定后续数值,最后分别压入堆栈,进入步骤7;
步骤6、另最高碰撞位为第C位,将公共前缀串联接收响应的前C-1位,构成新的公共 前缀,给定后续数值,最后压入堆栈,进入步骤7;
步骤7、判断堆栈是否为空,若是,整个识别流程结束;若否,则返回步骤1。
进一步地,所述步骤1中的查询命令分别为CMD_INI和PROBE_EQ,在初始化阶段发送的命 令位CMD_INI,后面均为PROBE_EQ,当标签收到CMD_INI命令时返回完整的ID数据,当接收到 PROBE_EQ命令时则返回匹配后的剩余数据。
进一步地,所述步骤2的过程为:读写器工作范围内的待识别标签接收到读写器发送的查 询命令,若是CMD_INI命令,则标签会返回自身的完整ID数据;若是RPOBE_EQ命令,则标签利 用自身的匹配电路提取出查询前缀,COM_STR,Pre1,以及Pre2;其中COM_STR,Pre1,Pre2 分别为前文所述的公共前缀,前缀1和前缀2。若COM_STR匹配,则继续匹配Pre1,若Pre1匹配 则返回ID中除去前缀匹配部分之外的剩余部分,若Pre1不匹配则继续匹配Pre2;若Pre2匹配, 则延迟时间Tdelay后返回ID中除去前缀匹配部分之外的剩余部分;若Pre2也不匹配,那么继续 等待下一次查询命令。
进一步地,步骤3的具体过程为:读写器接收标签响应;若在预计时间段T1内接收到标签 响应且无碰撞,则成功识别标签,若接收到的响应产生碰撞,则说明有多个标签同时响应, 并继续等待时间段T3接收第二段响应;若T1时间段内无标签响应,则说明前缀1没有匹配的标 签,则继续等待时间段Tdelay+T3接收第二段响应;若成功接收第二段响应无碰撞那么成功识别 标签,否则跳转到步骤4。
进一步地,步骤2和步骤3中所述的Tdelay时间指的是,标签完整ID数据减去COM_STR及Pre1 部分后传输所需要的时间。
进一步地,所述步骤5的具体过程为:令最高碰撞位和次高碰撞位为第C和C+1位,将公共 前缀COM_STR串联接收响应的前C-1位,构成新的COM_STR,令pre1='11',pre2='01',并将 (COM_STR,pre1,pre1-1)和(COM_STR,pre2,pre2-1)分别压入堆栈,进入步骤7。
进一步地,所述步骤6的具体过程为:令最高碰撞位为第C位,将公共前缀COM_STR串联接 收响应的前C-1位,构成新的COM_STR,令pre1='1',并将(COM_STR,pre1,pre1-1)压入堆栈, 进入步骤7。
进一步地,所述的标签的ID编码均采用FM0或者曼彻斯特编码方式。
本发明的有益效果:将查询前缀分为公共前缀,前缀1和前缀2三个部分,其中公共前缀 为非碰撞数据,前缀1和前缀2将待识别的标签分为若干个子集。该算法引入了多前缀匹配和 查询技术,通过前缀1和前缀2可以实现一个时隙识别多个标签,同时彻底消除了多进制算法 在查询过程中出现的空闲时隙或空节点,有效的减少了查询次数,提高了查询效率;此外, 标签在响应读写器查询时,只需要发送其ID与查询前缀不同的剩余部分,减少了信息的传输 量,降低了系统能耗;由于算法直接针对碰撞进行处理,算法性能稳定,与标签ID和数量的 分布情况无关,所以本算法可以用于各种多标签识别环境。
附图说明
图1为本发明的算法流程图;
图2为读写器查询命令CMD_INI和PROBE_EQ的具体数据格式和标签对应的响应格式;
图3为本发明完成六个标签识别的实施例;
图4为本发明的实施例采用碰撞树(CT)来完成的结果;
图5为本发明的实施例采用连续碰撞位映射算法(CMAA)来完成的结果;
图6为本发明的实施例采用多进制查询树算法(MQT)来完成的结果;
图7为本发明实施例使用各种算法得出结果在吞吐率上的曲线;
图8为本发明实施例使用各种算法得出结果在识别效率上的曲线;
图9为本发明实施例使用各种算法得出结果在通信复杂度上的曲线。
具体实施方式
下面结合附图和具体的实施例对本发明作进一步的阐述。
如图1所示,本发明的一种基于查询树方法的多前缀匹配的确定性防碰撞算法,包括如 下步骤:
步骤1、读写器从堆栈中读取查询前缀prefix,初始状态时,查询前缀为空串,发送查 询命令;所述步骤1中的查询命令分别为CMD_INI和PROBE_EQ,在初始化阶段发送的命令位 CMD_INI,后面均为PROBE_EQ,当标签收到CMD_INI命令时返回完整的ID数据,当接收到 PROBE_EQ命令时则返回匹配后的剩余数据。
步骤2、读写器工作范围内的待识别标签接收到读写器发送的查询命令,并根据发送查 询命令给予匹配响应;所述步骤2的过程为:读写器工作范围内的待识别标签接收到读写器 发送的查询命令,若是CMD_INI命令,则标签会返回自身的完整ID数据;若是RPOBE_EQ命 令,则标签利用自身的匹配电路提取出查询前缀,COM_STR,Pre1,以及Pre2;其中COM_STR, Pre1,Pre2分别为前文所述的公共前缀,前缀1和前缀2。若COM_STR匹配,则继续匹配Pre1, 若Pre1匹配则返回ID中除去前缀匹配部分之外的剩余部分,若Pre1不匹配则继续匹配Pre2; 若Pre2匹配,则延迟时间Tdelay后返回ID中除去前缀匹配部分之外的剩余部分;若Pre2也 不匹配,那么继续等待下一次查询命令。
步骤3、读写器接收标签响应;响应成功结束流程,发生碰撞跳转至步骤4;步骤3的具体 过程为:读写器接收标签响应;若在预计时间段T1内接收到标签响应且无碰撞,则成功识别 标签,若接收到的响应产生碰撞,则说明有多个标签同时响应,并继续等待时间段T3接收第 二段响应;若T1时间段内无标签响应,则说明前缀1没有匹配的标签,则继续等待时间段 Tdelay+T3接收第二段响应;若成功接收第二段响应无碰撞那么成功识别标签,否则跳转到步骤 4。步骤2和步骤3中所述的Tdelay时间指的是,标签完整ID数据减去COM_STR及Pre1部分后传输 所需要的时间。
步骤4、读写器检测标签响应碰撞位,若最高碰撞位和次高碰撞位为连续碰撞位,则跳 转至步骤5;若最高碰撞位和次高碰撞位为非连续碰撞位,则跳转至步骤6;
步骤5、令最高碰撞位和次高碰撞位为第C和C+1位,将公共前缀COM_STR串联接收响 应的前C-1位,构成新的COM_STR,令pre1='11',pre2='01',并将(COM_STR,pre1,pre1-1) 和(COM_STR,pre2,pre2-1)分别压入堆栈,进入步骤7;
步骤6、令最高碰撞位为第C位,将公共前缀COM_STR串联接收响应的前C-1位,构成 新的COM_STR,令pre1='1',并将(COM_STR,pre1,pre1-1)压入堆栈,进入步骤7;
步骤7、判断堆栈是否为空,若是,整个识别流程结束;若否,则返回步骤1。所述的标 签的ID编码均采用FM0或者曼彻斯特编码方式。
本发明具体应用于单个读写器和多个标签组成的RFID环境中,解决多个标签同时与读写 器通信时所引发的多标签碰撞问题,算法采用堆栈结构,实现简单,待识别的标签只需要接 收命令,然后判断命令为CMD_INI命令还是PROBE_EQ命令,然后做出相应的响应,如图2所 示为读写器命令的格式和标签响应数据的格式。若标签接收到的为CMD_INI命令,则返回完 整ID,若是PROBE_EQ命令,则匹配COM_STR,Pre1,以及Pre2然后再返回相应的数据。
下面以6个标签的识别过程为例,6个标签的ID如图3所示,根据图1所示的算法流程 图,具体实施循环如下,
循环1:初始化状态时,读写器以空串(ε)为查询前缀参数,发送CMD_INI命令,此 时读写器工作范围内的6个标签均响应,且发送自身的完整ID;读写器接收到的响应为 “xxxxxxxx”,其中x表示标签ID所在二进制位发生碰撞,读写器判断出最高位和次高位产 生连续碰撞,根据算法原理将(ε,11,10),(ε,01,00)压入堆栈;由于堆栈不为空, 所以必须进入第二次循环。
循环2:读写器提取前缀参数(ε,11,10)并发送PROBE_EQ命令,此时标签E、F的 ID与前缀1匹配,因此会立即响应,产生碰撞;标签C的ID与前缀2匹配,因此在延迟Tdelay+T3 时间后响应,无碰撞产生,因此会被成功识别;由于响应部分1产生碰撞,且响应数据为 000x01,因此读写器更新COM_STR为11000,pre1=1,并将(COM_STR,1,0)压入堆栈,堆 栈不为空,所以进入第三次循环。
循环3:读写器提取前缀参数(11000,1,0)并发送PROBE_EQ命令,此时标签F和E 在同一时隙内被成功识别;然而堆栈还不为空,所以进入第四次循环。
循环4、读写器提取前缀参数(ε,01,00)并发送PROBE_EQ命令,标签D响应前缀 1因此被成功识别,标签A、B在延迟Tdelay+T3时间后响应,产生碰撞,且响应数据为x1xx1x, 因此读写器更新COM_STR为00,pre1=1,并将(COM_STR,1,0)压入堆栈;堆栈不为 空,所以进入第五次循环。
循环5、读写器提取前缀参数(00,1,0)并发送PROBE_EQ命令,标签B、A分别匹 配前缀1和前缀2,因此在同一时隙内,被成功识别,此时堆栈为空,整个识别过程结束。
图4、图5和图6分别为使用碰撞树(CT)、连续碰撞位映射算法(CCMA)和多进制查 询树算法(MQT)识别图3中相同6个标签的过程,此部分为本领域技术人员的公知常识, 在此不作详细描述,由图3、图4、图5及图6对比可以看出,本发明基于查询树方法的多前 缀匹配的确定性防碰撞算法相对于其他算法减少了查询次数,提高了识别效率。
图7、图8和图9给出了本发明算法和碰撞树(CT)、连续碰撞位映射算法(CCMA)、 提高型分配树隙Aloha算法(ImATSA)以及多进制查询树算法(MQT)的比较,本发明在 吞吐率、识别效率和通信复杂度上的优势明显。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原 理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术 人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和 组合,这些变形和组合仍然在本发明的保护范围内。
机译: (54)标题:一种扩展商务智能系统的形式和功能的基于内容的方法(57)摘要:商务智能(BI)系统具有通过以下方式将其功能扩展到项目生命周期之外的能力:具体内容。复杂的多维查询被解释为原子子表达式的树,这些原子子表达式组合成类似解析树的结构以形成整体查询。每个子树在提供适当的上下文时都是有效的。任何子树都可以是作为应用程序内容存储的表达模板,该表达模板在生成时使用带有实例特定参数的简单文本替换来生成多维表达语法。该系统包括一个复杂的类型系统和语义层,使用户摆脱了使用OLAP数据库所固有的复杂性。商业智能专家可以为每个作为内容的表达模板提供类型和语义提示。
机译: 基于树的最长前缀匹配的方法和装置
机译: 基于树数据结构的最长前缀匹配方法和装置