分组n叉跟踪树型rfid防碰撞算法

文档序号:6623341阅读:340来源:国知局
分组n叉跟踪树型rfid防碰撞算法
【专利摘要】本发明涉及一种分组N叉跟踪树型RFID防碰撞算法(CBGN),可有效解决RFID系统中由于标签多路访问共享无线信道而导致的传输时延。首先,利用极大似然算法(MLE)估算应用场景下标签数量。其次,根据标签ID对应用环境下的标签集进行分组,有效降低了质询树深度并规避了树型算法初始碰撞概率大的问题,CBGN算法将标签集分布于多个子树上(每个分组对应一个子树)。最后,对子树的识别利用N叉分割以构建N叉树,N叉分割进一步降低了子树深度使其碰撞概率降低。因此,CBGN算法采用分组和N叉分割相结合的策略极大消除了空闲时隙,并降低了标签集碰撞概率进而提高了系统整体识别效率。本发明给出了在不同分叉情况下的最优分组系数使得CBGN算法的识别效率达到最优。
【专利说明】分组N叉跟踪树型RF ID防碰撞算法

【技术领域】
[0001]本发明涉及一种分组N叉跟踪树型RFID防碰撞算法,属于物联网架构下RFID射频识别领域。

【背景技术】
[0002]在物联网架构中,无线射频识别技术(RFID)是物联网关键支撑技术,RFID利用射频信号实现无接触式的信息交互以达到物体识别的目的,RFID技术与无线传感网、互联网、计算机技术相结合可以实现对物体的跟踪、定位及识别进而实现管理系统融合及信息共享,以此来赋予万事万物以智能,从而构成了万事万物互联的物联网。其中,RFID技术具有批量读取标签的优良特性,因此,可广泛应用于快速移动目标的自动识别领域。在实际应用场景中可能存在多个读写器和海量标签,RFID读写器与标签之间具有两种基本通信方式,读写器以射频信号广播报文的形式传输读写指令给信号覆盖范围内的标签,而标签则以多路存取的形式响应读写器,即在读写器识别范围内的标签同时传输响应信号给读写器以便读写器进行识别。多标签同时在共享无线信道中发送信号必然导致信号混叠致使读写器不能正确识别标签。因此,如何快速而精确识别标签是影响整体系统效能关键制约因素,设计吞吐量高、标签耗能小的高效防碰撞算法对提升物联网整体运行效率具有重要意义。
[0003]对多路存取问题目前的解决方案主要包括空分复用、频分复用、码分复用及时分复用这几种形式。以上三种多路存取解决方案由于实现难度或费用问题等都不适应在RFID系统中大规模推广和应用。相比之下,时分复用(TDMA)将信道链路的容量按时间分配给不同标签,由于对标签及RFID系统的要求较低,因而,成为当前的研究热点进而成为了发展最为迅速的RFID防碰撞算法。目前,基于TDMA的RFID防碰撞算法主要可分为两个范畴ALOHA类及树型类防碰撞算法,两者采用不同策略以降低标签碰撞概率。ALOHA类算法属于概率型防碰撞算法,标签在读写器规定帧长内选取随机时隙响应质询指令,当帧长与标签数相等时RFID系统获得最高识别效率,具有易操作等优点,在稀疏标签环境下性能良好,然而,随机概率响应机制不能保证所有标签都得到识别,即具有“标签饥饿”问题,标签密度越大则性能越差。树型算法分为BT算法与QT算法,BT类算法采用标签逐时隙生成随机数(O或I)以形成唯一响应路径的策略以识别标签,QT类算法基于标签ID 二进制树状结构通过读写器广播质询前缀q,标签对比ID与q相等则响应,否则,多标签同时响应则产生碰撞,读写器进一步在q后加O与I进行质询即利用q0与ql继续进行质询使得质询树下移一层直到碰撞集中包含O个或I个标签,QT算法通过标签ID唯一'丨生以形成唯一响应路径的策略对标签进行识别。QT算法与BT算法相比仅需标签具有对比数据串功能即可,对标签性能要求相对较小。树型算法具有识别精度高的优点,解决了 ALOHA类算法的漏检问题。然而,目前的大部分树型算法存在识别时间较长的问题。因此,设计识别效率高并适应于现有的RFID被动标签具有重要意义。
[0004]最近,CT算法被提出,其利用曼切斯特编码(ME)可定位碰撞位的特点进行标签识别进而避免了 QT算法中的空闲时隙的影响,进而使得算法吞吐率可以达到50%,获得当前树形算法最优的吞吐率,然而,当h较低时,标签碰撞概率较大即存在初始质询碰撞概率大的问题。同时,碰撞分割只进行二叉树分割导致质询树深度较深,以上两方面原因导致CT算法的碰撞概率仍然较大,碰撞时隙数较多。


【发明内容】

[0005]本发明旨在提供一种分组N叉跟踪树型RFID防碰撞算法(CBGN)。该算法针对RFID标签多路访问产生的信号碰撞问题,首先利用极大似然算法(MLE)估算应用场景下标签数量,其具有利用极小耗时即可实现标签数估算的特点,每个估算时隙仅对应IBit数据传输时长。其次,根据RFID系统通信链路通信复杂度对不同N值及相应最优分组系数进行推导以获得最优的(N,分组系数)组合使得RFID系统识别延迟最小。CBGN将标签集分布在多个分组内有效降低了质询树深度并规避了树型算法初始碰撞概率大的问题,CBGN算法将标签集分布于多个子树上(每个分组对应一个子树),对子树的识别利用N叉分割以构建N叉树,N叉分割进一步降低了子树深度使其碰撞概率降低。CBGN算法利用分组和N叉分割相结合的策略极大消除了空闲时隙并降低了标签集碰撞概率进而提高了系统整体识别效率。本发明给出了在不同分叉情况下的最优分组系数使得CBGN算法的识别效率达到最优。
[0006]本发明通过以下技术手段进行实现:
[0007]CBGN算法首先通过极大似然估算法(MLE)估算应用环境下标签数量以估算应用环境下的标签数,其次,CBGN算法利用标签ID随机均匀分布的特征利用ID部分前缀对应用环境下的标签进行分组,在分组基础上最后利用对分组形成的碰撞子树利用多分叉进行识别以最优化算法吞吐率和通信复杂度。
[0008]本发明设计了一种分组N叉跟踪树型RFID防碰撞算法,适应于大量的实际应用环境,其算法执行伪码如图1所示。
[0009]本发明的特点在于:
[0010]1.利用极大似然算法估算应用场景下标签数量,其具有利用极小耗时即可实现标签数估算的特点,每个估算时隙仅对应IBit数据传输时长。
[0011]2.利用分组和多叉分割两种策略相结合的方法以降低标签之间的碰撞概率,并利用碰撞位跟踪以减少空闲时隙数进而提高了对新到标签的识别吞吐率,同时,对不同分叉数下的最优分组系数进行了推导进而获得了最优分组系数及分叉数的组合以最优化CBGN算法的识别效率。

【专利附图】

【附图说明】
[0012]图1为本发明CBGN算法的读写器和标签的执行流程
[0013]图2为本发明CBGN算法的分组过程示意图
[0014]图3为本发明CBGN算法的示例识别过程
[0015]图4为本发明MLE估算范围(e变化)示例
[0016]图5为满N叉树(N = 4)示例图
[0017]图6为分组系数α变化对应的CBGN算法通信复杂度
[0018]图7为MLE估算误差及其对CBGN算法的影响
[0019]图8为MLE估算耗用时隙数
[0020]图9为仿真实验下总时隙数对比
[0021]图10为仿真实验下吞吐率对比
[0022]图11为仿真实验下通信复杂度对比
[0023]表I为M值对应的估算范围
[0024]表2为最优分组系数α

【具体实施方式】
[0025]一、CBGN算法执行流程
[0026]CBGN算法首先利用MLE算法实现对应用环境下标签数的估算,在标签数估算基础上,利用分组和N叉分割相结合的方式实现对应用环境下标签ID的识别,以下对其CBGN算法执行流程进行具体阐述。
[0027]CBGN算法【具体实施方式】如下:
[0028](I)估算过程
[0029]读写器广播MLE命令I |Μ,标签接收到MLE命令| |M后生成随机数R e [O, ID| XM-1]并选择时隙R响应〃Γ给读写器,故而读写器可接收到数据串STmle,其长度为|ID|XM。其中,IID I为标签ID的长度,M为|ID|倍数。若在时隙R接收到〃1〃则表明该时隙至少有一个标签响应,没有接收到"Γ则该时隙无标签响应,因此,空闲时隙数可精确统计记为e,可识别时隙数为I ID| XM-e代表单个标签响应或多个标签响应。在时隙数为N = IID I XM的情况下e个时隙具有O个标签的概率P (w = 0,e, η)如公式⑴。统计w = O的时隙数为e并对标签数(参数η)利用如下公式I?2进行估算:
[0030]P(n^0,g^)^(~1)ljV!//!X(-l);~~(I)
[0031]
η - arg max {/^(it -(2)

?>|ID|xM-e,7V-|IDlxM
[0032]其中,n彡I ID | XM-e是由于MLE的估算可识别时隙至少对应一个标签响应,当e=O时概率最大值不收敛导致估算结果不收敛,因此,必须保证空闲时隙数e > I。图1为当e变化时,M = 3\6\10时对应标签估算曲线图,可见M越大则估算范围越大,空闲时隙数e越大则估算标签数越小,当e = I时可以确定M值下的最大估算范围。因此,可获得不同M值对应的最大估算范围进而可得表1,由此可根据大致标签数选定M值,若发现无空闲时隙则令M = M+1继续进行估算,若操作人员面对未知环境则无法获知应用环境下标签大致数,则估算开始令M = 1,若检测到M* IID I时隙内无空闲时隙则令M = M+1继续进行标签数估算,而对于大量实际的应用环境由于操作人员对于标签的数量多少具有一定的认识,因此,可结合表I对初始的M值进行选定。
表IM值对应的估算范围

【权利要求】
1.一种分组N叉跟踪树型RFID防碰撞算法(CBGN),其特征在于包含以下实现步骤: (1)利用极大似然算法(MLE)估算应用场景下标签数量,其具有利用极小耗时即可实现标签数估算的特点,每个估算时隙仅对应IBit数据传输时长。 (2)CBGN利用标签ID将标签集分布在多个分组内,等同于CBGN算法将标签集分布于多个子树上(每个分组对应一个子树),对不同N叉树的采用不同的最优分组系数α。 (3)对子树的识别利用N叉分割以构建N叉树,读写器逐子树进行识别直到所有子树识别完毕。
2.如权利要求1所述的一种分组N叉跟踪树型RFID防碰撞算法(CBGN),其特征在于: 所述步骤(1)中利用极大似然算法(MLE)估算应用场景下标签数量的具体实现方法如下: .1.D读写器广播MLE命令I |Μ .1.2)标签接收到MLE命令I |Μ后生成随机数R e [O, | ID| XM-1]并选择时隙R响应〃1〃给读写器。 .1.3)读写器接收到标签信道数据串ST-,其长度为|ID|XM。其中,I ID|为标签ID的长度,M为|ID|倍数。若在时隙R接收到〃则表明该时隙至少有一个标签响应,没有接收到〃1"则该时隙无标签响应,因此,空闲时隙数可精确统计记为e,统计w = O的时隙数为e并对标签数(参数η)利用公式I~2进行估算:
3.如权利要求1所述的一种分组N叉跟踪树型RFID防碰撞算法(CBGN),其特征在于: 所述步骤2中利用标签ID将标签集分布在多个分组内,等同于CBGN算法将标签集分布于多个子树上(每个分组对应一个子树),对不同N叉树的采用不同的最优分组系数α。 实现方法如下: .2.1)在标签数估算的基础上,首先根据对子树识别用的N叉树的N值利用标签ID对应用环境下的标签进行分组,分组数包括h层的I ?: I组及h-Ι层的11C I组。其中Uhq及(分别为在N叉树情况下高度层h及h-Ι对应的质询串,读写器根据I < I及I Uh;11并利用公式(3)构建分组质询堆栈T:
其中,dtbx{...}为10进制数转换为X位2进制数的运算,btd{...}为2进制数转换.10进制数运算,ctlx{...}为截取2进制数后X位的运算。 为满足T内质询串对所有标签ID的覆盖,I < I与11满足下式:
其中,G为总分组数,N为分割叉数,Ni/;:-1的意义在于h-Ι层的每个节点可进一步分为h层的N个节点,从而使得质询堆栈T中所有帧质询串涵盖对任意ID e (O, I)111)1标签的识别质询。则:
表示向上取整使得I为NK的最小值,K为正整数。进而读写器根据标签数估算值并利用表2及相应的N叉分割的N值选定分组数G,利用公式5可解得I及K—11,并利用公式I可得分组质询串堆栈Τ。 . 2.2)读写器根据分组数G构建T后,执行Tjq = POP(T)并广播QueryF印I Tjq0QueryFep为子帧初始指令,对每个子树的识别定义为一个子帧,由公式3~5可知T中的帧质询串两两不同,定义T^1为子帧唯一标识号,同时,对应T中的I ?:; I和I Uhq11个帧质询串可构建G个子树,子树下可能包括O个、I个或多个标签,其中j代表第j个子树,利用T中帧质询串逐子树进行识别直到T = =NULL时则证明所有子树识别完毕并结束整个识别流程。
4.如权利要求1所述的一种分组N叉跟踪树型RFID防碰撞算法(CBGN),其特征在于:所述步骤2中对子树的识别利用N叉分割以构建N叉树,读写器逐个子树进行识别直到完成对所有子树的识别。实现方法如下: .4.1)如权利要求2.2)中的T^1代表第j个子树的唯一标识号,读写器令子树初始质询串qQ = Tjq,即将qQ压入堆栈Q作为子树初始质询串。标签接收到QueryF印| | Tjq后仅有ID 满足ΤΛ ==的标签响应并发送 Str = /(IDiX)^iX)q|_1+l0&N) Il,即首先将ITjtJ — |Tj(J-l+log2NW ID位利用函数f(x)转换为N位二进制数。这里IStrxI表示数据串Strx的长度。令X、N及f (X)如下:
1g2N = z (z e N.) X = X^1...X1...X1X0(6)
f (X) = f (X) H...f (X) b…f (X) if (X) O f (χ)转换算法如下: for b = O ;b ^ N-1 ;b++
if b--btd(xz—1......X^Xq) f(x)b = I ;(7)
else
f(x)b = 0 ; 利用函数f(x)可将z位ID转换为2Z位,利用转换后的2Z位碰撞检测结果可实现对z位ID的碰撞检测,进而利用f(x)则可对碰撞情况进行识别以实现N叉树分割。标签组报文Str并发送。若不满足Τλ ==ID(MU—i则继续等待接收新的QueryFepI Tjq0 4.2)读写器保持检测信道信号,定义k为检测到的标签集响应Str的混合信号,并根据检测到的信号k以决定下一次的质询指令,进而完成对子树的识别。
5.如权利4对对子树的识别利用N叉分割以构建N叉树根据检测到的信号k以决定下一次的质询指令,其特征在于: 读写器保持检测信道信号并根据检测到的标签集响应混合信号k,分以下几种情况进行处理: 4.2.1)若响应标签集包含O个标签,则k为空,表明该子树下没有标签,此时Q==NULL,则返回步骤2.1); 4.2.2)若标签集中包含I个标签,则k中O到N-1位中仅有一位碰撞即I kpH I * ( I且N到|k|-l位中无即,读写器将q」IrHk。—J I |kN—!如压入堆栈%表示识别该标签ID,其中F1(X)为f(x)的逆运算,*表示碰撞位,I bn I*表示k中O到N-1位中碰撞位的个数,这里令k = ^k1...kj...k^i^o 4.2.3)若满足应答条件的响应标签集中包含多个标签则发生碰撞,分为两种情况: 1)若m = IktlK I* 且 m 彡 2,则 push(Q, Y1)...push(Q, |ym),其中,Yi 表示将 中第i个转换为1、其它*转换为0,转换后利用f的逆运算将其转换为yi。 2)若Ikonl* = = I 且 * e kN— Ikhl, kN— |kH 中首个碰撞位为 r(r > N)位则 push(Q)Qi I f (k(1-N-1) I I kN— |r|-1) ° 利用以上4.2.1?4.2.3进而针对子树的识别读写器构建子帧识别堆栈Q,读写器利用Q中质询串对子树下标签进行识别直到Q== NULL,若Q古NULL则令i++ = pop (Q)并广播cmd I I qi; cmd为子巾贞内质询指令。标签接收到cmd | | Qi后其处理过程如步骤4.2)。循环执行步骤4.2)直到Q== NULL。当Q = = NULL时表明该子帧识别完毕,即完成了对相应子树下标签的识别,返回步骤2.1)识别新的子树。
6.如权利3?4中CBGN利用标签ID将标签集分布在多个分组内进行识别,其特征在于: CBGN算法根据对子树不同的N叉树分割的N值以设定最优的分组系数α如表2,在最优分组系数α的设定下,CBGN算法的性能随着N = 16\8\32\4\2\64时CBGN算法性能逐级递减,表2中给出了不同N值下的最优α,当N= 16且α = 0.13914时则CBGN算法获得最低的通信复杂度。
7.如权利2中利用极大似然算法(MLE)估算应用场景下标签数量,其特征在于: 标签在每个估算时隙仅需发送位“I”而无需发送整个ID进而使得整个估算过程的耗时极小。在操作人员对应用环境下的大致标签数有一定的认识可以利用表I对估算初始帧长|ID| XM进行设定,其中,ID为标签ID的长度,M为| ID |的倍数,进而通过设定M以控制估算帧长的设定,旨在保证空闲时隙数e ^ I进而使得估算结果收敛。
【文档编号】G06K17/00GK104200246SQ201410397119
【公开日】2014年12月10日 申请日期:2014年8月13日 优先权日:2014年8月13日
【发明者】贾庆轩, 王鑫, 高欣, 赵兵, 陈钢, 翟峰 申请人:北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1