一种改进的后退式动态二进制搜索树方法技术

技术编号:22364442 阅读:44 留言:0更新日期:2019-10-23 04:48
本发明专利技术公开了一种改进的后退式动态二进制搜索树方法,主要应用在牲畜智能化养殖领域,可解决多个标签同时与读写器交换数据引起的碰撞问题,是在BBS、DBS算法基础上进行的改进,可快速准确的识别牲畜佩戴的标签;在读取标签信息,当碰撞信息中仅有一位碰撞位时,可直接识别两个标签;该方法可减少读写器与标签数据传输过程中的总通信量;并减少算法的搜索次数,提高系统吞吐率。

An improved backward dynamic binary search tree method

【技术实现步骤摘要】
一种改进的后退式动态二进制搜索树方法
本专利技术涉及物联网
,特别涉及一种改进的后退式动态二进制搜索树方法。
技术介绍
畜牧业作为中国农业增效、农民增收的重要产业,近年来得到了迅猛的发展,牧场也逐渐向规模化和专业化方向发展。农户、农场主对于牧场大量牲畜的统一管理问题随之而来。随着网络化、数字化的迅捷发展,如何提升畜牧业的生产效率、实现智能化养殖已成为人们广泛关注的研究课题。我国传统的羊群养殖方式较为原始,养殖环境恶劣,尤其是贫困地区的羊群养殖更加缺乏对智能化养殖的认知与使用,因此极大地限制了养殖生产水平的提升。在这样的背景下,将物联网RFID技术引进到羊群养殖产业,实现自动化管理已成为发展必然。RFID技术作为物联网领域最重要的技术之一,学校、企业的人员和物品管理方面得到了广泛应用。而在牧场等农业领域还没有得到大规模的使用。如果我们把牲畜信息保存在牲畜佩戴的标签中,利用RFID读写器扫描牲畜佩戴的标签能直接获得该牲畜的全部信息,这样就可以极大地提高了养殖户的工作效率。另一方面,由于养殖场内牲畜数量庞大,针对困扰牧场主的牲畜计数问题,也可以利用RFID技术实现。通过对RFID读写器进行后台开发,实现计数功能,从而做到智能化计数”。然而在读写器对牲畜群进行识别的过程中,由于牲畜内部的无秩序性,不方便管理,很难做到“一对一识别”,并且存在多只牲畜同一时间来到读写器识别区域的问题,多标签碰撞情况很容易出现。现有的RFID多标签防碰撞算法主要分为两大类:一类是ALOHA类算法,另一类算法是树类算法。树类算法是一种确定性的算法,与标签的ID相关,读写器发送命令搜索,标签根据命令的参数与自己的ID进行多次比较,判断是否返回相关的数据,这样可以不断缩小响应的标签个数,当有唯一的标签响应时,读写器就可以成功识别标签。现有的基于二进制搜索树的标签防碰撞算法主要包括以下几种:二进制搜索树算法(BinarySearch,BS)、动态二进制搜索树算法(DynamicBinarySearch,DBS)与后退式二进制搜索树算法(BackwardBinarySearch,BBS)等。但是,仍存在读写器与标签数据传输过程总通信量高及搜索次数较高的问题,如何解决该问题,是目前同行从业人员亟待解决的问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种改进的后退式动态二进制搜索树方法。本专利技术实施例提供一种改进的后退式动态二进制搜索树方法,包括:(1)读写器给识别范围内的所有标签发送ask(ALL)命令;(2)标签收到ask(ALL)命令后,将其ID返还给读写器;所述ID由二值0和1组成;(3)读写器检测标签发来的数据,根据碰撞位的情况确定待发出的指令;所述待发出的指令包括:select/RW(ID)、sleep(ID)和ask(K)指令;所述ask(K)指令为请求指令,当最高碰撞位为第K位,将K值存入读写器堆栈;(4)当标签收到ask(K)指令后,第K位为0的标签将该位后面的字串发送给读写器;第K位为1的标签进入沉默状态,沉默轮次M值加1,转至步骤(3)继续识别;(5)当标签被读写器成功识别时,读写器向该标签发送select/RW(ID)命令,将该标签挑选出来,对其进行读/写数据的操作;(6)读写器从堆栈中弹出数据,设该数据值为P;发送awake(P,M)指令给标签;标签中第P位值为1,且在第M轮被沉默的标签被唤醒,将第P位后面的字串发送给读写器;唤醒命令结束后,M值减1;然后转至步骤(3),继续循环,直至所有标签都被成功识别。在一个实施例中,步骤(3)读写器检测标签发来的数据,根据碰撞位的情况确定待发出的指令,包括:(3.1)若读写器没有收到任何信息,表示识别范围内没有待识别标签;(3.2)若读写器检测到的数据没有发生碰撞,表示一个标签能够被成功识别,转至步骤(5);(3.3)若读写器仅检测到一位碰撞位,此时两个标签被成功识别,转至步骤(5);(3.4)若读写器检测到两位及以上的碰撞位,令最高碰撞位为K,并将K值存储进读写器堆栈,然后发送请求命令ask(K)。在一个实施例中,所述步骤(3.4)还包括:标签收到select/RW(ID)读写器指令后,回复的字串长度的平均值为:式中,读写器端检测到的碰撞数据包含s(s>1)位碰撞位,标签ID长度为E时,平均每位发生碰撞的概率为s/E。在一个实施例中,所述步骤(5)还包括:发送sleep(ID)命令使该标签休眠。与现有技术相比,本专利技术实施例提供的一种改进的后退式动态二进制搜索树方法,可解决多个标签同时与读写器交换数据引起的碰撞问题,基于改进式后退动态二进制搜索树算法(M-BDBS),是在BBS、DBS算法基础上进行的改进,当碰撞信息中仅有一位碰撞位时,直接识别两个标签;该方法可减少读写器与标签数据传输过程中的总通信量;并减少算法的搜索次数,提高系统吞吐率。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为本专利技术实施例提供的改进的后退式动态二进制搜索树方法流程图。图2为本专利技术实施例提供的M-BDBS算法流程图。图3为本专利技术实施例提供的三种算法的吞吐率与标签数目关系比较示意图。图4为本专利技术实施例提供的M-BDBS算法的系统通信量与标签数目关系示意图。图5为本专利技术实施例提供的两种算法的系统通信量与标签数目关系比较示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。参照图1所示,本专利技术实施例提供的一种改进的后退式动态二进制搜索树方法,包括:(1)读写器给识别范围内的所有标签发送ask(ALL)命令;(2)标签收到ask(ALL)命令后,将其ID返还给读写器;所述ID由二值0和1组成;(3)读写器检测标签发来的数据,根据碰撞位的情况确定待发出的指令;所述待发出的指令包括:select/RW(ID)、sleep(ID)和ask(K)指令;所述ask(K)指令为请求指令,当最高碰撞位为第K位,将K值存入读写器堆栈;(4)当标签收到ask(K)指令后,第K位为0的标签将该位后面的字串发送给读写器;第K位为1的标签进入沉默状态,沉默轮次M值加1,转至步骤(3)继续识别;(5)当标签被读写器成功识别时,读写器向该标签发送select/RW(ID)命令,将该标签挑选出来,对其进行读/写数据的操作;(6)读写器从堆栈中弹出数据,设该数据值为P;发送awake(P,M)指令给标签;标签中第P位值为1,且在第M轮被沉默的标签被唤醒,将第P位后面的字串发送给读写器;唤醒命令结束后,M值减1;本文档来自技高网
...

【技术保护点】
1.一种改进的后退式动态二进制搜索树方法,其特征在于,包括:(1)读写器给识别范围内的所有标签发送ask(ALL)命令;(2)标签收到ask(ALL)命令后,将其ID返还给读写器;所述ID由二值0和1组成;(3)读写器检测标签发来的数据,根据碰撞位的情况确定待发出的指令;所述待发出的指令包括:select/RW(ID)、sleep(ID)和ask(K)指令;所述ask(K)指令为请求指令,当最高碰撞位为第K位,将K值存入读写器堆栈;(4)当标签收到ask(K)指令后,第K位为0的标签将该位后面的字串发送给读写器;第K位为1的标签进入沉默状态,沉默轮次M值加1,转至步骤(3)继续识别;(5)当标签被读写器成功识别时,读写器向该标签发送select/RW(ID)命令,将该标签挑选出来,对其进行读/写数据的操作;(6)读写器从堆栈中弹出数据,设该数据值为P;发送awake(P,M)指令给标签;标签中第P位值为1,且在第M轮被沉默的标签被唤醒,将第P位后面的字串发送给读写器;唤醒命令结束后,M值减1;然后转至步骤(3),继续循环,直至所有标签都被成功识别。

【技术特征摘要】
1.一种改进的后退式动态二进制搜索树方法,其特征在于,包括:(1)读写器给识别范围内的所有标签发送ask(ALL)命令;(2)标签收到ask(ALL)命令后,将其ID返还给读写器;所述ID由二值0和1组成;(3)读写器检测标签发来的数据,根据碰撞位的情况确定待发出的指令;所述待发出的指令包括:select/RW(ID)、sleep(ID)和ask(K)指令;所述ask(K)指令为请求指令,当最高碰撞位为第K位,将K值存入读写器堆栈;(4)当标签收到ask(K)指令后,第K位为0的标签将该位后面的字串发送给读写器;第K位为1的标签进入沉默状态,沉默轮次M值加1,转至步骤(3)继续识别;(5)当标签被读写器成功识别时,读写器向该标签发送select/RW(ID)命令,将该标签挑选出来,对其进行读/写数据的操作;(6)读写器从堆栈中弹出数据,设该数据值为P;发送awake(P,M)指令给标签;标签中第P位值为1,且在第M轮被沉默的标签被唤醒,将第P位后面的字串发送给读写器;唤醒命令...

【专利技术属性】
技术研发人员:于银辉牟劲龙郑毅超李清华
申请(专利权)人:盐城吉大智能终端产业研究院有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1