RFID中基于动态二进制的改进树型搜索算法及其实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【摘要】rfid技术作为物联网应用的核心关键技术,已经普及到生产和生活的各个领域,而如何提高rfid系统防冲突能力,减少总识别时间已成为当前急需解决的关键。本文提出的基于动态二进制的改进树型搜索算法通过简化阅读器发送的指令和冲突检测过程,并利用栈来保存已经被阅读器接收到的标签epc数据,能最大化的降低阅读器与标签之间的通信量,有效的提高标签的识别速度。仿真结果表明,相比于常规的确定性标签防冲突算法,该算法显著提高了性能,尤其在待识别标签数量较大的情况下,具有良好的应用前景。

【关键词】rfid;物联网;防冲突;树型搜索;epc

引言

随着由物联网引领的第三次全球信息化产业浪潮的不断推进,rfid(射频识别)技术已成为制造全球化、贸易全球化和物流全球化的核心推动力。无线射频识别技术(radio frequency identification,rfid)是一种利用无线射频方式在阅读器和标签之间进行非接触双向数据传输,以达到目标识别和数据交换目的的技术[1]。由于其具有非接触识别、可识别高速运动物体、抗恶劣环境、保密性强、可同时识别多个识别对象等优点,射频识别技术已成为当今自动识别数据收集行业发展最快的一种技术,目前其在交通管理、仓储管理和生产线自动化管理等诸多领域得到了越来越广泛的应用。

在rfid系统中,当有多个电子标签进入一个或多个阅读器感应区域的时候,阅读器与多个电子标签的同时通信会使得无线通信信号互相干扰,以致阅读器无法接收到正确的信息,这种情况一般称之为“冲突”或“碰撞”等。为了避免冲突的影响,rfid系统定义了一系列当冲突发生时的操作,而基于这些操作的方法就是防冲突算法[2]。

一、典型防冲突算法

对于要求低复杂度、低功耗以及低成本的rfid系统,最为通用的防冲突机制是时分多址复用(tdma)。目前流行的两类标签防冲突算法,主要包括随机性算法中的纯aloha、时隙aloha、动态帧时隙aloha算法等,确定性算法中的二进制树型搜索算法、bbt算法、qt算法等[3]。随机性防冲突算法由于随机性大,当大量标签读取时,帧冲突严重,正确率难以达到100%。相比而言,确定性防冲突算法的识别精度和识别效率有较大提高,因此被广泛应用。本文主要研究和分析基于tdma的确定性防冲突算法,但是目前的二进制算法由于存在较大的通信量和识别延时,因此有进一步改进的空间,本文的动态二进制的改进树型搜索算法便是为此而改进设计的。

二、确定性标签防冲突算法

确定性标签防碰撞算法是以阅读器为主动控制器,进入射频场的所有标签同时由阅读器进行控制和检查。阅读器依据标签的id号首先向标签发射不同的询问信号或指令,阅读器根据冲突的信号,按照二叉树深度优先搜索的思想,逐步缩小搜索范围,搜索符合条件的标签,直到找到规定的射频标签。该方法杜绝了随机性算法中的标签“饿死”的情况,具有100%的高识别率[4]。最典型的是二进制树型搜索算法,在此基础上,又出现了逐位比较的二进制树搜索算法[5](bit-by-bit binary tree algorithm,bbt),问询树算法[6](query binary treealgorithm,qt)等。

1.二进制树型搜索算法

二进制树型搜索算法中为了能辨认出阅读器中数据碰撞的比特位的准确位置,采用的是manchester编码[1],该编码约定逻辑‘1’表示发送信号由1到0的转变即下降沿跳变,而逻辑‘0’表示发送信号由0到1的转变即上升沿跳变。若无状态跳变,视为非法数据,作为错误被识别。当两个或多个标签同时返回的某一数位有不同的值,则接收到的上升沿和下降沿相互抵消,以致出现“没有变化”的状态,阅读器由此可判断该位出现了碰撞。假设标签

1和标签2的id分别是0716051403021110和0706151413020110,利用曼彻斯特编码能按位识别出碰撞位的示意图如图1所示。由于标签1和2是同时传送其数据,利用曼彻斯特编码阅读器解码为07x6x514x302x110,于是阅读器检测出1th,3th,5th和6th出现碰撞。

二进制树型搜索算法是由一个阅读器和多个电子标签之间规定的相互作用(命令和电子标签)顺序(规则)构成,根据电子标签的序列号大小,按从小到到大的顺序依次将所有标签识别出来。

2.bbt算法

采用btt算法的标签内部都设有一个指针,初始时指针指向标签识别码的最高比特位,所有标签处于休眠状态。在每一个查询轮次,阅读器首先激活所有未识别的标签,然后发送一个查询比特0,要求所有标签返回其序列号的最高位。若标签指针指向的比特和阅读器查询比特相同,则发送它识别码的下一个比特,否则标签就进入休眠状态而不再参与接下去的查询。若阅读器检测到标签的响应没有冲突,则把接收的比特作为下一步的查询比特,否则,就用1作为下一步的查询比特。当某个标签的指针指向识别码的最低位,则表明一张标签被识别,从而一轮识别过程结束。而其他标签被重新激活,指针被重置,新的一轮循环开始。

3.qt算法

qt算法中阅读器维持了一个前缀,阅读器用这个前缀来问询标签,记为q1q2…qi,只有识别码的前缀与这个问询前缀相匹配的标签才响应并发送其识别码的剩余比特qi+1…qj…qend,其它不匹配的标签自动进入休眠状态,等待下一次查询命令。当只有一张标签响应时,阅读器成功识别标签。若有多张标签响应则发生冲突,则分别增加0和1到阅读器的前缀中,然后更新问询前缀为q1 q2…qi…qi0和q1 q2…qi…qi1,开始下一次查询。整个识别过程从问询前缀0和1开始,通过重复问询,直到识别出所有标签。

三、改进的动态二进制树型搜索算法

二进制树型搜索算法是基于确定性策略的,只要时间足够,识别精度可达100%,因此识别时间的长短就成为了评价其性能优劣的重要标准。基于动态二进制的改进防碰撞算法简化了阅读器发送的指令和冲突检测过程,并采用动态方式传输标签数据。

(一)改进的动态二进制树型搜索算法特点

该改进算法中每个标签都有二个计数器flag和count,flag是表示标签是否被屏蔽的标志位,为0表示没有被屏蔽,可以响应阅读器的命令,传送从计数器count指向的对应位开始的epc(电子产品代码)数据,大于零则表示标签被屏蔽,不响应阅读器的命令。同时保留了动态调整二进制算法中的后退策略,当只检测到一位碰撞位时直接识别两个标签,与目前的二进制搜索算法相比具有以下一些特点。

(1)阅读器每次发送的指令为上一次搜索过程中标签第一次碰撞的位置,减少了指令长度。

(2)阅读器检测到有2次比特位发生冲突时即停止接受标签传送的数据。该算法只需接受3个数据比特后(0xx)就立刻对标签冲突做出处理,这样有效的减少了标签的识别延时和阅读器与标签之间的通信量。

(3)阅读器利用栈stack和string来保存已经被阅读器接收到的标签数据,因此每次搜索中标签只需传送部分数据,减少了大量的传输时间。

(二)改进的动态二进制树型搜索算法描述

该算法是应用于rfid的防碰撞算法,算法的实施依赖于阅读器与标签,因此下面分两部分描述算法的详细流程,初始状态栈stack和string均为空,标签的epc为n位,每个标签的计数器flag和count均为0。算法中符号epc(i,j)表示标签传送从ith到jth比特的epc 数据位。‘+’表示连接的操作,例如0110‘+’1010=01101010。

阅读器部分的算法流程:

相关文档
最新文档