CN104200246A - 分组n叉跟踪树型rfid防碰撞算法 - Google Patents
分组n叉跟踪树型rfid防碰撞算法 Download PDFInfo
- Publication number
- CN104200246A CN104200246A CN201410397119.7A CN201410397119A CN104200246A CN 104200246 A CN104200246 A CN 104200246A CN 201410397119 A CN201410397119 A CN 201410397119A CN 104200246 A CN104200246 A CN 104200246A
- Authority
- CN
- China
- Prior art keywords
- label
- algorithm
- subtree
- grouping
- cbgn
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种分组N叉跟踪树型RFID防碰撞算法(CBGN),可有效解决RFID系统中由于标签多路访问共享无线信道而导致的传输时延。首先,利用极大似然算法(MLE)估算应用场景下标签数量。其次,根据标签ID对应用环境下的标签集进行分组,有效降低了质询树深度并规避了树型算法初始碰撞概率大的问题,CBGN算法将标签集分布于多个子树上(每个分组对应一个子树)。最后,对子树的识别利用N叉分割以构建N叉树,N叉分割进一步降低了子树深度使其碰撞概率降低。因此,CBGN算法采用分组和N叉分割相结合的策略极大消除了空闲时隙,并降低了标签集碰撞概率进而提高了系统整体识别效率。本发明给出了在不同分叉情况下的最优分组系数使得CBGN算法的识别效率达到最优。
Description
技术领域
本发明涉及一种分组N叉跟踪树型RFID防碰撞算法,属于物联网架构下RFID射频识别领域。
背景技术
在物联网架构中,无线射频识别技术(RFID)是物联网关键支撑技术,RFID利用射频信号实现无接触式的信息交互以达到物体识别的目的,RFID技术与无线传感网、互联网、计算机技术相结合可以实现对物体的跟踪、定位及识别进而实现管理系统融合及信息共享,以此来赋予万事万物以智能,从而构成了万事万物互联的物联网。其中,RFID技术具有批量读取标签的优良特性,因此,可广泛应用于快速移动目标的自动识别领域。在实际应用场景中可能存在多个读写器和海量标签,RFID读写器与标签之间具有两种基本通信方式,读写器以射频信号广播报文的形式传输读写指令给信号覆盖范围内的标签,而标签则以多路存取的形式响应读写器,即在读写器识别范围内的标签同时传输响应信号给读写器以便读写器进行识别。多标签同时在共享无线信道中发送信号必然导致信号混叠致使读写器不能正确识别标签。因此,如何快速而精确识别标签是影响整体系统效能关键制约因素,设计吞吐量高、标签耗能小的高效防碰撞算法对提升物联网整体运行效率具有重要意义。
对多路存取问题目前的解决方案主要包括空分复用、频分复用、码分复用及时分复用这几种形式。以上三种多路存取解决方案由于实现难度或费用问题等都不适应在RFID系统中大规模推广和应用。相比之下,时分复用(TDMA)将信道链路的容量按时间分配给不同标签,由于对标签及RFID系统的要求较低,因而,成为当前的研究热点进而成为了发展最为迅速的RFID防碰撞算法。目前,基于TDMA的RFID防碰撞算法主要可分为两个范畴ALOHA类及树型类防碰撞算法,两者采用不同策略以降低标签碰撞概率。ALOHA类算法属于概率型防碰撞算法,标签在读写器规定帧长内选取随机时隙响应质询指令,当帧长与标签数相等时RFID系统获得最高识别效率,具有易操作等优点,在稀疏标签环境下性能良好,然而,随机概率响应机制不能保证所有标签都得到识别,即具有“标签饥饿”问题,标签密度越大则性能越差。树型算法分为BT算法与QT算法,BT类算法采用标签逐时隙生成随机数(0或1)以形成唯一响应路径的策略以识别标签,QT类算法基于标签ID二进制树状结构通过读写器广播质询前缀q,标签对比ID与q相等则响应,否则,多标签同时响应则产生碰撞,读写器进一步在q后加0与1进行质询即利用q0与q1继续进行质询使得质询树下移一层直到碰 撞集中包含0个或1个标签,QT算法通过标签ID唯一性以形成唯一响应路径的策略对标签进行识别。QT算法与BT算法相比仅需标签具有对比数据串功能即可,对标签性能要求相对较小。树型算法具有识别精度高的优点,解决了ALOHA类算法的漏检问题。然而,目前的大部分树型算法存在识别时间较长的问题。因此,设计识别效率高并适应于现有的RFID被动标签具有重要意义。
最近,CT算法被提出,其利用曼切斯特编码(ME)可定位碰撞位的特点进行标签识别进而避免了QT算法中的空闲时隙的影响,进而使得算法吞吐率可以达到50%,获得当前树形算法最优的吞吐率,然而,当h较低时,标签碰撞概率较大即存在初始质询碰撞概率大的问题。同时,碰撞分割只进行二叉树分割导致质询树深度较深,以上两方面原因导致CT算法的碰撞概率仍然较大,碰撞时隙数较多。
发明内容
本发明旨在提供一种分组N叉跟踪树型RFID防碰撞算法(CBGN)。该算法针对RFID标签多路访问产生的信号碰撞问题,首先利用极大似然算法(MLE)估算应用场景下标签数量,其具有利用极小耗时即可实现标签数估算的特点,每个估算时隙仅对应1Bit数据传输时长。其次,根据RFID系统通信链路通信复杂度对不同N值及相应最优分组系数进行推导以获得最优的(N,分组系数)组合使得RFID系统识别延迟最小。CBGN将标签集分布在多个分组内有效降低了质询树深度并规避了树型算法初始碰撞概率大的问题,CBGN算法将标签集分布于多个子树上(每个分组对应一个子树),对子树的识别利用N叉分割以构建N叉树,N叉分割进一步降低了子树深度使其碰撞概率降低。CBGN算法利用分组和N叉分割相结合的策略极大消除了空闲时隙并降低了标签集碰撞概率进而提高了系统整体识别效率。本发明给出了在不同分叉情况下的最优分组系数使得CBGN算法的识别效率达到最优。
本发明通过以下技术手段进行实现:
CBGN算法首先通过极大似然估算法(MLE)估算应用环境下标签数量以估算应用环境下的标签数,其次,CBGN算法利用标签ID随机均匀分布的特征利用ID部分前缀对应用环境下的标签进行分组,在分组基础上最后利用对分组形成的碰撞子树利用多分叉进行识别以最优化算法吞吐率和通信复杂度。
本发明设计了一种分组N叉跟踪树型RFID防碰撞算法,适应于大量的实际应用环境,其算法执行伪码如图1所示。
本发明的特点在于:
1.利用极大似然算法估算应用场景下标签数量,其具有利用极小耗时即可实现标签数估 算的特点,每个估算时隙仅对应1Bit数据传输时长。
2.利用分组和多叉分割两种策略相结合的方法以降低标签之间的碰撞概率,并利用碰撞位跟踪以减少空闲时隙数进而提高了对新到标签的识别吞吐率,同时,对不同分叉数下的最优分组系数进行了推导进而获得了最优分组系数及分叉数的组合以最优化CBGN算法的识别效率。
附图说明
图1为本发明CBGN算法的读写器和标签的执行流程
图2为本发明CBGN算法的分组过程示意图
图3为本发明CBGN算法的示例识别过程
图4为本发明MLE估算范围(e变化)示例
图5为满N叉树(N=4)示例图
图6为分组系数α变化对应的CBGN算法通信复杂度
图7为MLE估算误差及其对CBGN算法的影响
图8为MLE估算耗用时隙数
图9为仿真实验下总时隙数对比
图10为仿真实验下吞吐率对比
图11为仿真实验下通信复杂度对比
表1为M值对应的估算范围
表2为最优分组系数α
具体实施方式
一、CBGN算法执行流程
CBGN算法首先利用MLE算法实现对应用环境下标签数的估算,在标签数估算基础上,利用分组和N叉分割相结合的方式实现对应用环境下标签ID的识别,以下对其CBGN算法执行流程进行具体阐述。
CBGN算法具体实施方式如下:
(1)估算过程
读写器广播MLE命令||M,标签接收到MLE命令||M后生成随机数R∈[0,|ID|×M-1]并选择时隙R响应"1"给读写器,故而读写器可接收到数据串STmle,其长度为|ID|×M。其中,|ID| 为标签ID的长度,M为|ID|倍数。若在时隙R接收到"1"则表明该时隙至少有一个标签响应,没有接收到"1"则该时隙无标签响应,因此,空闲时隙数可精确统计记为e,可识别时隙数为|ID|×M-e代表单个标签响应或多个标签响应。在时隙数为N=|ID|×M的情况下e个时隙具有0个标签的概率P(w=0,e,n)如公式(1)。统计w=0的时隙数为e并对标签数(参数n)利用如下公式1~2进行估算:
其中,n≥|ID|×M-e是由于MLE的估算可识别时隙至少对应一个标签响应,当e=0时概率最大值不收敛导致估算结果不收敛,因此,必须保证空闲时隙数e≥1。图1为当e变化时,M=3\6\10时对应标签估算曲线图,可见M越大则估算范围越大,空闲时隙数e越大则估算标签数越小,当e=1时可以确定M值下的最大估算范围。因此,可获得不同M值对应的最大估算范围进而可得表1,由此可根据大致标签数选定M值,若发现无空闲时隙则令M=M+1继续进行估算,若操作人员面对未知环境则无法获知应用环境下标签大致数,则估算开始令M=1,若检测到M*|ID|时隙内无空闲时隙则令M=M+1继续进行标签数估算,而对于大量实际的应用环境由于操作人员对于标签的数量多少具有一定的认识,因此,可结合表1对初始的M值进行选定。
表1M值对应的估算范围
(2)在标签数估算基础上,利用分组和N叉分割相结合的方式实现对应用环境下标签ID的识别,算法流程如图2所示。
(2.1)分组过程
读写器根据MLE标签数估算结果对应用环境下的标签进行分组,分组过程如图3所示。若整个质询识别过程采用未分组N叉树识别的话,每个高度层可实现对log2N位ID的分割识别,分组数包括h层的组及h-1层的组。其中及分别为在N叉树情况下高度层h及h-1对应的质询串,读写器根据及并利用公式(3)构建质询堆栈T:
其中,dtbx{...}为10进制数转换为x位2进制数的运算,btd{...}为2进制数转换10进 制数运算,ctlx{...}为截取2进制数后x位的运算,为满足T内质询串对所有标签ID的覆盖, 与应满足下式:
上式中G为总分组数,N为分割叉数,的意义在于h-1层的每个节点可进一步分为h层的N个节点,从而使得质询堆栈T中所有帧质询串涵盖对任意ID∈(0,1)|ID|标签的识别质询。则:
其中,表示向上取整使得y为NK的最小值。例如:y=13.3,N=4则由于每个高度层进行N叉分割,因而,N叉树可以实现对log2N位ID的分割识别,N值越大,h-1层的每个节点分为h层的节点数N越大,例如若N=16则h-1层的每个节点分为h层的16个节点,实现对4位ID的分割识别。进一步若最优分组数为25的情况下,利用公式(5)可知h=2,此时,若将近似为16则实现了h=1对标签ID质询的全覆盖,因此,无需继续分组,进而偏离最优分组9个分组。若将近似为15则组,然而,为满足h-1层节点对h层N个节点的严格对应以实现对标签ID的全覆盖,需补足16组,进而分组数变为31组,由此可见,若依据公式(5)进行分组时,N越大则偏离最优分组越大。进一步若令公式(5)中的N=2则分组误差最小,例如最优分组数仍然为25在N=2的情况下则可知h=5,进而可知和以实现了最优分组数,其主要是由于当N=2时每个高度层实现1位ID的分割识别致使分组误差易于控制,使其达到最小。因此,以下不论子树采用N叉树识别的N值为多少,在分组数讨论过程中都令N=2进行分组帧质询串的构建,即公式(5)中令N=2进行分组后再利用N(N=2,4,8..)叉树对分组后标签进行识别。
由此,利用公式3~5可构建帧质询串T。这里将对应用环境下所有新到标签的识别定义为一帧,而对分组(子树)下标签的识别定义为子帧,其实现对一个分组内标签的识别,对分组数G的设置在理论分析部分具体给出。
(2.2)逐子树识别过程
(2.2.1)读写器根据分组数G构建T后执行Tjq=POP(T)并广播QueryFep||Tjq。QueryFep为子帧初始指令,由公式3~5可知T中的帧质询串两两不同,这里定义Tjq为子帧唯一标识号,同时,对应T中的和个帧质询串可构建G个子树,子树下可能包括0个、1个或多个标签,其中j代表第j个子树,利用T中帧质询串逐子树进行识别直到T==NULL时则证明所有子树识别完毕并结束整个识别流程。
(2.2.2)Tjq代表第j个子树的唯一标识号,读写器令子树初始质询串q0=Tjq,即将q0压入堆栈Q作为子树初始质询串。标签接收到QueryFep||Tjq后仅有ID满足的标签响应并发送即首先将|Tjq|→|Tjq|-1+log2N的ID位利用函数f(x)转换为如下N位二进制数。这里|Strx|表示数据串Strx的长度。令x、N及f(x)如下:
log2N=z(z∈N+)
x=xz-1...xi...x1x0 (6)
f(x)=f(x)N-1...f(x)b...f(x)1f(x)0
f(x)转换算法如下:
for b=0;b≤N-1;b++
if b==btd(xz-1...xi...x1x0)
f(x)b=1; (7)
else
f(x)b=0;
例如:当z=2时,01利用f(x)转换,btd(01)=1则f(01)=0010,而f(11)=1000。当z=3时,btd(110)=6则f(110)=01000000。由此可见,利用函数f(x)可将z位ID转换为2z位,利用转换后的2z位碰撞检测结果可实现对z位ID的碰撞检测,若不进行f(x)转换,则读写器无法完成多标签z位的碰撞识别,例如ID1=01,ID2=10的情况下,读写器接收到的信号为“**”,因此,无法判断碰撞情况为“00,01”还是“01,10”碰撞。
由此可见,利用f(x)则可对碰撞情况进行识别以实现N叉树分割。读写器组报文Str并发送。若不满足则继续等待接收新的QueryFep||Tjq。
(2.2.3)读写器保持检测信道信号,定义k为检测到的标签集响应Str的混合信号,分以下几种情况进行说明:
1)若响应标签集包含0个标签,则k为空,表明该子树下没有标签,此时Q==NULL,则返回步骤2.2.1;
2)若标签集中包含1个标签,则k中0到N-1位中仅有一位碰撞即|k0→N-1|*≤1且N到|k|-1位中无“*”即*读写器将其qi||f-1(k0→N-1)||kN→|k|-1压入堆栈Q1表示识别该标签ID,其中f-1(x)为f(x)的逆运算,*表示碰撞位,|k0→N-1|*表示k中0到N-1位中碰撞位的个数,这里令k=k0k1...ki...k|k|-1。
3)若满足应答条件的响应标签集中包含多个标签则发生碰撞,分为两种情况:
3.1)若m=|k0→N-1|*且m≥2,则push(Q,qi||y1)...push(Q,qi||ym),其中,yi表示将k0→N-1中第i个“*”转换为1、其它*转换为0,转换后利用f的逆运算将其转换为yi。
3.2)若|k0→N-1|*==1且*∈kN→|k|-1,kN→|k|-1中首个碰撞位为r(r>N)位则push(Q,qi||f-1(k0→N-1)||kN→|r|-1)。
(2.2.4)若Q≠NULL则令i++;qi=pop(Q)并广播cmd||qi,cmd为子帧内质询指令。标签接收到cmd||qi后其处理过程如步骤2.2.2。循环执行步骤2.2.3直到Q==NULL。当Q==NULL时表明该子帧识别完毕,即完成了对相应子树下标签的识别,返回步骤2.2.1识别新的子树。
(2.2.5)直到T==NULL即完成了整个识别过程,即所有子树识别完毕,应用环境下的标签识别完毕。
二、CBGN算法执行示例
设定环境下存在10个新到标签,其ID分别如图4中所示。
1.估算过程:
如图4所示为CBGN算法的示例图,读写器首先发送MLE指令,指令中给定了M=8则标签1-10随机选择时隙R∈[0,63]发送“1”,读写器统计空闲时隙数并利用公式1~2估算标签数
2.识别过程:
若利用N=4叉数对子树进行分割,根据理论推导部分推导方法可知若|ID|=8时则最优分组数为αn(α=0.474656),因此,读写器利用公式(5)可知分组数为进一步利用公式(3)在堆栈T中压入帧质询串 及
读写器广播QueryFep||T0q=000进行第0个子树识别,此时满足000==ID0→|000|-1条件的标签包括ID1,ID2,ID3,ID4,ID1发送即0100||010,类似的ID2,ID3,ID4分别发送1000||011、0010||000、0010||100。读写器在信道中检测到的信号为k=***0||***,由此对应情况3.1),读写器分别将000||f-1(0010),000||f-1(0100),000||f-1(1000)压入堆栈Q,其中,f-1(0010)=01,f-1(0100)=10,f-1(1000)=11,可见标签对需发送的首log2 N的ID位放大为N位从而实现了对4个标签中两位ID的碰撞情况识别。之后,读写器从Q中弹出q1=00001并发送cmd||00001,此时满足条件的的标签ID3、ID4对需发送的首log2 NID位放大为N位并分别发送0001||0,0100||0,读写器在信道中检测到的信号为k=0*0*||0,由于m=|k0→N-1|*≥2则分别将00001||f-1(0100),00001||f-1(0001)压入堆栈Q。随后,读写器从Q中弹出q2=00010并发送cmd||00010,此时满足响应条件的标签ID1发送0010||0,读写器接收到k=0010||0,可见k满足m=|k0→N-1|*=0且为步骤(2.2.3)中的情况2),读写器将q2||f-1(0010)||0即00010||01||0作为识别标签ID压入堆栈Q1。读写器继续弹出q3=00011、q4=0000110、q5=0000100对标签进行识别,其过程与q2识别过程类似。当弹出q5并进行识别后,此时Q==NULL表明读写器完成了对第0子树的识别,接着读写器从堆栈T中弹出T1q=001发送QueryFep||T1q=001,此时,信道中没有检测到信号即k==NULL,同时,读写器发现Q==NULL,因此,完成对子树1的识别。然后,进行对子树2、3、4的识别。
当完成子树4的识别后,由于T==NULL结束识别流程,其整体识别过程如图4所示。
三、CBGN算法性能的理论分析
由CBGN算法的执行流程描述可知,CBGN算法在MLE估算基础上利用标签ID二进制树型分布结构对新到标签集进行分组,分组构造子树并对子树进行N叉分割识别。定义分组数为G,以下从系统识别耗用时隙和通信复杂度两个层面对CBGN算法进行理论分析并得出最优分组系数。
(1)CBGN算法耗用时隙分析
在实际应用环境下标签ID随机均匀分布,标签可能属于G分组中的任一分组且标签分布在哪个分组的事件独立,概率分布满足二项分布适用条件,因此,定义B(n,1/G,i)为标签数为n且分组数为G的情况下i个标签同时属于某个分组的概率,则有下式成立:
进一步,标签越多则G应该越大,因此,可假设标签数n与G正相关,则有下式:
G=αn (9)
其中,α为分组系数,CBGN在i个标签分布在某个分组的情况下,对该分组内标签构成的子树进行N叉树分割识别,令为利用N叉树分割具有i个标签的子树所需时隙数,则:
上式是由于即使子树下无标签i=0,读写器仍然需广播QueryFep||Tjq进行确认需耗用1个空闲时隙,当子树下仅有1个标签时,同样也需1个时隙进行识别,当子树下包括标签数i≥2则利用N叉树对标签集进行分割识别。
以下对i≥2时的进行推导。由公式6~7可见标签将需发送的转换为N位从而实现了检测多标签响应信号k0→N-1的碰撞情况。由公式6可见2z=N(z∈N+),当z=1时为二叉树分割;当z≥2时为N=2z叉树对子树进行分割。定义及为利用N叉树对i≥2个标签识别时产生的碰撞时隙数和可识别时隙数,以下分两种情况进行推导:
1)当z=1时子树下具有i≥2个标签
碰撞位跟踪使得读写器检测到的可识别时隙数即为识别标签个数,同时,在碰撞时隙情况下利用首位碰撞位对碰撞集进行分割,保证了每个碰撞时隙包含两个子集,因此有下式成立:
2)当z≥2时子树上具有i≥2个标签
建立满N叉树对N=2Z(z≥2)叉树的及进行推导。例如图5所示为满4叉树。对标签集的N叉分割过程中消除了空闲时隙,因此,仅需考虑碰撞时隙与可识别时隙。与z=1类似可识别时隙数与识别标签个数相等,以下对碰撞时隙数进行分析。
当标签数为n且分组数为G=αn则有下式:
2z(h-1)<αn<2zh (12)
结合公式(5)进而可知满足公式(4)的高度如下式:
进而可得与中帧质询串的个数及长度,定义及分别为与中帧质询串的长度,则有:
进一步对子树而言,和中包括帧号的子树下标签在第一个时隙仅需响应及因此,分组使得满子树从高度及开始,可将及中包括子树帧号的高度及分别等同为图4中的h=0,其它高度层依次类推,而及中满叉子树的高度分别降为高度层h具有Nh=2zh个节点,定义满子树h层中对于每个节点包括m(m≥0)个标签的概率为则有:
进一步,当h=0,i≥2时,子树根节点为碰撞节点,由此可知:
在以上对子树识别耗用时隙分析基础上,定义为识别应用环境下所有标签所需的总时隙数,及分别为识别和中帧质询串对应子树下所需的总时隙数,结合公式9~17则有:
(2)CBGN算法通信复杂度分析
定义通信复杂度为通信链路标签识别平均识别耗时,其反映了系统识别速度快慢。在以上对CBGN算法所需时隙分析的基础上,以下对CBGN算法的通信复杂度进行分析。参数设定以EPCGobleC1G2为基准,令l=|ID|=96,|cmd|=|QueryRep|=4,数据传输率DR=128kbps,定义及分别为分组后子树利用二叉树和N=2z(z≥2)叉树进行识别的通信复杂度。
当z=1时,由分组所致帧质询串质询时隙与子树下对标签识别的质询时隙消耗时间相等,因此有:
当z≥2时,包括i=0个标签的子树识别耗时与包括i≥1耗时稍有不同,i=0时耗时为l+|QueryRep|,i≥1时由于CBGN算法采用N叉树进行识别使得耗时为l+|cmd|-z+2z,因此有:
在对CBGN算法通信复杂度的分析基础上,在N确定的情况下其最优分组系数α应满足下式:
对公式(21)中的α求导可得极小值。然而公式较为复杂化简较难,因此,利用公式16~22可得通信复杂度的理论曲线如图6,图中给出了标签数为650和1000时对子树进行不同N值分割识别时,不同分组系数α对应的标签平均识别耗时曲线图。由图可见α与标签数n无关,在定N值分割子树情况下,α太大或太小都会导致标签平均识别耗时增大,且不同的N=2z叉树对应的极小值点各不相同。同时,对应不同N值存在最低极值点如表2所示,因此,结合图6和表2可知在最优α的情况下N=16\8\32\4\2\64时CBGN算法性能逐级递减。同时,由图6可知分组系数α偏离最优值范围较小时对算法性能影响不大。
表2最优分组系数α
三、仿真实验及分析
本部分针对CBGN算法性能进行仿真实验。以下首先对MLE估算误差及估算误差对CBGN通信复杂度的影响进行仿真分析。进一步对不同N叉树在最优分组G下的CBGN算法、CT算法、理想FSA及未分组情况下的N叉树算法性能进行仿真对比。理想FSA为在识别开始就给定应用环境下标签精确数量的DFSA算法,因此,为效率最高的DFSA类算法,未分组N叉树即为利用N叉分割对标签进行N叉树识别而没有进行分组的识别算法,其识别过程与CBGN算法中对子树的识别过程相一致。
(1)估算误差对新到标签识别效率的影响
以下从MLE估算误差(ESR)及由其导致的CBGN通信复杂度误差(TRD)两方面进行仿真实验以对MLE算法性能进行评估,ESR反映了MLE算法估算准确度,TRD反映了ESR对CBGN算法通信复杂度的影响程度。因此有下式:
其中,为n的估算值,仿真实验中标签数从100~1200范围内变化,对ESR及N=16 在最优分组下的CBGN算法TRD进行了仿真。由图7可见MLE估算误差ESR小于1%,且当空闲时隙数与M×|ID|越为接近则估算误差越大,因此,M越大且标签越少则估算越为精准。进一步由图7可见ESR对TRD的影响极小,其影响基本可以忽略。
尽管M越大估算越准确,然而,M越大则估算耗时越大,因此,有必要对平均估算耗时进行评估,定义TES为标签平均估算耗时等价转化为标签识别时隙数,则有下式:
其中,K为估算标签所需读写器发送MLE命令的次数,MLE命令需给出相应的M值,由表1可知,在M=10时可估算标签最大范围为6589,因此,可将M值可设定为4BIT,若应用环境下标签数量巨大,可考虑增大其MLE命令中M值所占位长,由此,可设定MLE命令||M长度为8BIT。图8为标签个数从100到4100范围变化时的MLE算法耗时仿真图,估算从M=1开始,由图可知标签估算所需耗时极短,稳定在0.5%个时隙左右,因此,在未知应用环境下标签总数为n的情况下,MLE估算耗用时隙数稳定在0.5%n左右,当n=1000时,仅需5个时隙来进行MLE估算,与识别标签所需时隙数相比基本可忽略不计,进一步若操作人员了解应用环境下标签大致数量,则可直接设定M值进而缩短估算耗时,图8为未知应用环境下的MLE估算耗时,其估算从M=1开始。
(2)CBGN算法性能仿真实验及分析
以下从总时隙数、吞吐率及单个标签平均识别耗时三方面对CBGN算法、CT算法、理想FSA算法、未分组N叉树算法性能进行仿真分析。CT算法为未分组情况下N=2的防碰撞算法,其中,CBGN算法、CT算法、未分组N叉树算法实验参数如第二部分给出的参数,而理想FSA算法实验参数依据EPCGlobalC1G2标准设置如下:碰撞时隙耗时及可识别时隙耗时为857us,而空闲时隙耗时为62us。仿真实验读写器对100-2000个随机生成的标签利用CBGN\CT\理想FSA\未分组N叉树算法分别进行识别,其仿真结果利用蒙特卡罗方法取50次实验平均值。其中,总时隙数为读写器与标签之前的交互次数,吞吐率为可识别时隙与总时隙数的比值,吞吐率越小则无效识别时隙越多(碰撞时隙和空闲时隙为无效时隙)。利用单个标签平均识别耗时衡量通信复杂度,平均识别时间越小则RFID系统效率越高,越能适用于高速识别的自动识别领域。
图9为总时隙数仿真对比,由图可见理想FSA算法所需识别总时隙最多,其主要是由于理想FSA算法不可避免的产生空闲时隙和标签饥饿问题导致的大量碰撞时隙所致,而CBGN 算法与未分组的N叉树算法则采用碰撞位跟踪消除了空闲时隙和并降低了碰撞时隙发生的概率;进一步可知在同等N叉分割标签集的情况下,CBGN算法总时隙数少于未分组N叉树识别算法,其主要是由于CBGN算法将应用环境下的标签集利用标签ID的树形分布结构将其分布于G个分组内解决了不分组导致的初始碰撞概率大的缺点。同时可见,CBGN算法在最优分组系数α的情况下,N值越大则CBGN所需总时隙数则越少,主要原因在于N值越大则分组后利用N叉树所构建的子树深度越低,进而使得总时隙数随N增大而逐渐递减。
图10为吞吐率仿真对比,由图可见理想FSA吞吐率最低,主要是由于FSA算法为概率型防碰撞算法,不可避免的会产生空闲时隙,同时,标签饥饿导致碰撞时隙数较大致使其无效时隙数较大,因而导致吞吐率较低,相比之下未分组N叉树和CBGN算法基本消除了空闲时隙,仅在分组时可能产生空闲时隙,在实际应用环境下标签ID随机均匀分布,因此,其空闲时隙数极少,相比理想FSA类算法利用碰撞位检测的未分组N叉树算法及CBGN算法吞吐率高于理想FSA算法,于此同时,CBGN算法的吞吐率高于等N值未分组N叉树,原因与以上对总时隙数的分析相类似。CBGN算法与N叉树随N值增大吞吐率逐级递增,其主要是由于在CBGN算法的子树深度随N值的增大而降低,进而降低标签碰撞概率,提高了信道利用率。
图11为通信复杂度仿真对比,由图可见未分组N=2(CT算法)的平均识别时间最长而FSA算法次之,然后,由图9可见FSA算法的总时隙数最多,虽然CT算法总时隙数的少于理想FSA,但是由于空闲时隙耗时少于碰撞时隙和可识别时隙,因此,导致CT算法的平均识别耗时大于理想FSA算法。于此同时,CBGN算法相比于未分组N叉树在等N值的情况下对标签集进行了分组,降低了初始碰撞概率进而减少了碰撞时隙数,因而,平均识别时间少于未分组前N叉树。虽然图10中CBGN算法吞吐率随N值增大而增大,然而图11中平均识别时间在N=16时获得最少的平均识别耗时,N=64时识别时间较长,其主要是由于N叉分割使得在N=64时每个时隙耗时较长如公式11,图11中CBGN算法的平均识别耗时与表2中的理论分析值相一致误差极小,由此可见在对应N值最优分组情况下N为64/4/2/32/8/16时其算法平均识别耗时越来越少,与表2结果相一致,进一步当N=16时CBGN算法性能达到最优,平均识别时间稳定在1.156~1.158ms之间,略大于表2的理论分析值,原因在于由MLE估算误差而导致的分组数与精确值之间略有差异,由图7可见ESR的估算误差小于1%,因此,若将标签数量估算误差折算到分组系数α之上,结合理论分析图3可见,α偏离最优分组系数1%左右时,其平均识别耗时基本不变,与理论分析相吻合。
综上,由图9、10及11可见不管CBGN算法识别子树采用的N叉树选取N值为多少,其算法的鲁棒性较好,吞吐率及标签平均识别耗时基本上保持恒定,同时,在等N值情况下 CBGN算法的性能优于未分组N叉树识别,在N=16时CBGN算法的平均识别时间最少,因此,在N=16及相应分组系数为0.13914情况下CBGN算法获得最快识别速度。
Claims (7)
1.一种分组N叉跟踪树型RFID防碰撞算法(CBGN),其特征在于包含以下实现步骤:
(1)利用极大似然算法(MLE)估算应用场景下标签数量,其具有利用极小耗时即可实现标签数估算的特点,每个估算时隙仅对应1Bit数据传输时长。
(2)CBGN利用标签ID将标签集分布在多个分组内,等同于CBGN算法将标签集分布于多个子树上(每个分组对应一个子树),对不同N叉树的采用不同的最优分组系数α。
(3)对子树的识别利用N叉分割以构建N叉树,读写器逐子树进行识别直到所有子树识别完毕。
2.如权利要求1所述的一种分组N叉跟踪树型RFID防碰撞算法(CBGN),其特征在于:
所述步骤(1)中利用极大似然算法(MLE)估算应用场景下标签数量的具体实现方法如下:
1.1)读写器广播MLE命令||M
1.2)标签接收到MLE命令||M后生成随机数R∈[0,|ID|×M-1]并选择时隙R响应"1"给读写器。
1.3)读写器接收到标签信道数据串STmle,其长度为|ID|×M。其中,|ID|为标签ID的长度,M为|ID|倍数。若在时隙R接收到"1"则表明该时隙至少有一个标签响应,没有接收到"1"则该时隙无标签响应,因此,空闲时隙数可精确统计记为e,统计w=0的时隙数为e并对标签数(参数n)利用公式1~2进行估算:
3.如权利要求1所述的一种分组N叉跟踪树型RFID防碰撞算法(CBGN),其特征在于:
所述步骤2中利用标签ID将标签集分布在多个分组内,等同于CBGN算法将标签集分布于多个子树上(每个分组对应一个子树),对不同N叉树的采用不同的最优分组系数α。
实现方法如下:
2.1)在标签数估算的基础上,首先根据对子树识别用的N叉树的N值利用标签ID对应用环境下的标签进行分组,分组数包括h层的组及h-1层的组。其中及分别为在N叉树情况下高度层h及h-1对应的质询串,读写器根据及并利用公式(3)构建分组质询堆栈T:
其中,dtbx{...}为10进制数转换为x位2进制数的运算,btd{...}为2进制数转换10进制数运算,ctlx{...}为截取2进制数后x位的运算。
为满足T内质询串对所有标签ID的覆盖,与满足下式:
其中,G为总分组数,N为分割叉数,的意义在于h-1层的每个节点可进一步分为h层的N个节点,从而使得质询堆栈T中所有帧质询串涵盖对任意ID∈(0,1)|ID|标签的识别质询。则:
表示向上取整使得y为NK的最小值,K为正整数。
进而读写器根据标签数估算值并利用表2及相应的N叉分割的N值选定分组数G,利用公式5可解得及并利用公式1可得分组质询串堆栈T。
2.2)读写器根据分组数G构建T后,执行Tjq=POP(T)并广播QueryFep||Tjq。QueryFep为子帧初始指令,对每个子树的识别定义为一个子帧,由公式3~5可知T中的帧质询串两两不同,定义Tjq为子帧唯一标识号,同时,对应T中的和个帧质询串可构建G个子树,子树下可能包括0个、1个或多个标签,其中j代表第j个子树,利用T中帧质询串逐子树进行识别直到T==NULL时则证明所有子树识别完毕并结束整个识别流程。
4.如权利要求1所述的一种分组N叉跟踪树型RFID防碰撞算法(CBGN),其特征在于:
所述步骤2中对子树的识别利用N叉分割以构建N叉树,读写器逐个子树进行识别直到完成对所有子树的识别。实现方法如下:
4.1)如权利要求2.2)中的Tjq代表第j个子树的唯一标识号,读写器令子树初始质询串q0=Tjq,即将q0压入堆栈Q作为子树初始质询串。标签接收到QueryFep||Tjq后仅有ID满足 的标签响应并发送 即首先将|Tjq|→|Tjq|-1+log2N的ID位利用函数f(x)转换为N位二进制数。这里|Strx|表示数据串Strx的长度。令x、N及f(x)如下:
log2N=z(z∈N+)
x=xz-1...xi...x1x0 (6)
f(x)=f(x)N-1...f(x)b...f(x)1f(x)0
f(x)转换算法如下:
for b=0;b≤N-1;b++
if b==btd(xz-1...xi...x1x0)
f(x)b=1; (7)
else
f(x)b=0;
利用函数f(x)可将z位ID转换为2z位,利用转换后的2z位碰撞检测结果可实现对z位ID的碰撞检测,进而利用f(x)则可对碰撞情况进行识别以实现N叉树分割。标签组报文Str并发送。若不满足则继续等待接收新的QueryFep||Tjq。
4.2)读写器保持检测信道信号,定义k为检测到的标签集响应Str的混合信号,并根据检测到的信号k以决定下一次的质询指令,进而完成对子树的识别。
5.如权利4对对子树的识别利用N叉分割以构建N叉树根据检测到的信号k以决定下一次的质询指令,其特征在于:
读写器保持检测信道信号并根据检测到的标签集响应混合信号k,分以下几种情况进行处理:
4.2.1)若响应标签集包含0个标签,则k为空,表明该子树下没有标签,此时Q==NULL,则返回步骤2.1);
4.2.2)若标签集中包含1个标签,则k中0到N-1位中仅有一位碰撞即|k0→N-1|*≤1且N到|k|-1位中无“*”即*读写器将qi||f-1(k0→N-1)||kN→|k|-1压入堆栈Q1表示识别该标签ID,其中f-1(x)为f(x)的逆运算,*表示碰撞位,|k0→N-1|*表示k中0到N-1位中碰撞位的个数,这里令k=k0k1...ki...k|k|-1。
4.2.3)若满足应答条件的响应标签集中包含多个标签则发生碰撞,分为两种情况:
1)若m=|k0→N-1|*且m≥2,则push(Q,qi||y1)...push(Q,qi||ym),其中,yi表示将k0→N-1中第i个“*”转换为1、其它*转换为0,转换后利用f的逆运算将其转换为yi。
2)若|k0→N-1|*==1且*∈kN→|k|-1,kN→|k|-1中首个碰撞位为r(r>N)位则push(Q,qi||f-1(k0→N-1)||kN→|r|-1)。
利用以上4.2.1~4.2.3进而针对子树的识别读写器构建子帧识别堆栈Q,读写器利用Q中质询串对子树下标签进行识别直到Q==NULL,若Q≠NULL则令i++;qi=pop(Q)并广播cmd||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)估算应用场景下标签数量,其特征在于:
标签在每个估算时隙仅需发送位“1”而无需发送整个ID进而使得整个估算过程的耗时极小。在操作人员对应用环境下的大致标签数有一定的认识可以利用表1对估算初始帧长|ID|×M进行设定,其中,|ID|为标签ID的长度,M为|ID|的倍数,进而通过设定M以控制估算帧长的设定,旨在保证空闲时隙数e≥1进而使得估算结果收敛。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410397119.7A CN104200246B (zh) | 2014-08-13 | 2014-08-13 | 分组n叉跟踪树型rfid防碰撞算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410397119.7A CN104200246B (zh) | 2014-08-13 | 2014-08-13 | 分组n叉跟踪树型rfid防碰撞算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104200246A true CN104200246A (zh) | 2014-12-10 |
CN104200246B CN104200246B (zh) | 2017-10-17 |
Family
ID=52085535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410397119.7A Active CN104200246B (zh) | 2014-08-13 | 2014-08-13 | 分组n叉跟踪树型rfid防碰撞算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104200246B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794509A (zh) * | 2015-05-04 | 2015-07-22 | 江西理工大学 | 一种基于信息位编码的自适应搜索的rfid防碰撞方法 |
CN107526986A (zh) * | 2017-07-28 | 2017-12-29 | 广东农工商职业技术学院(农业部华南农垦干部培训中心) | 一种rfid标签防碰撞方法及系统 |
CN114186572A (zh) * | 2021-11-08 | 2022-03-15 | 南京信息工程大学 | 一种基于冲突时隙协调的未知标签识别方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101393594A (zh) * | 2008-10-24 | 2009-03-25 | 中山大学 | 一种用于rfid系统中的基于分组动态帧及二叉树搜索的多标签防碰撞方法 |
US20100182128A1 (en) * | 2008-01-04 | 2010-07-22 | Chung-Ang University Industry-Academic Cooperation Foundation | Tag identification method, tag anticollision method, rfid tag |
CN101840489A (zh) * | 2010-06-02 | 2010-09-22 | 西南交通大学 | 一种基于碰撞树的多标签识别防碰撞方法 |
CN101866413A (zh) * | 2010-06-11 | 2010-10-20 | 南京邮电大学 | 基于分组机制和跳跃动态二进制识别的多标签防碰撞方法 |
CN102663333A (zh) * | 2011-12-18 | 2012-09-12 | 西北工业大学 | 一种rfid系统中基于自适应混合查询树的标签防碰撞方法 |
CN103117770A (zh) * | 2013-01-24 | 2013-05-22 | 重庆邮电大学 | 一种rfid系统中多标签防碰撞方法 |
CN103208019A (zh) * | 2013-04-17 | 2013-07-17 | 广西南宁市东森动力信息科技有限公司 | 适用于rfid系统的多叉树防碰撞算法 |
CN103577783A (zh) * | 2013-11-25 | 2014-02-12 | 北京邮电大学 | 一种高效rfid自适应型防碰撞跟踪树算法 |
-
2014
- 2014-08-13 CN CN201410397119.7A patent/CN104200246B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100182128A1 (en) * | 2008-01-04 | 2010-07-22 | Chung-Ang University Industry-Academic Cooperation Foundation | Tag identification method, tag anticollision method, rfid tag |
CN101393594A (zh) * | 2008-10-24 | 2009-03-25 | 中山大学 | 一种用于rfid系统中的基于分组动态帧及二叉树搜索的多标签防碰撞方法 |
CN101840489A (zh) * | 2010-06-02 | 2010-09-22 | 西南交通大学 | 一种基于碰撞树的多标签识别防碰撞方法 |
CN101866413A (zh) * | 2010-06-11 | 2010-10-20 | 南京邮电大学 | 基于分组机制和跳跃动态二进制识别的多标签防碰撞方法 |
CN102663333A (zh) * | 2011-12-18 | 2012-09-12 | 西北工业大学 | 一种rfid系统中基于自适应混合查询树的标签防碰撞方法 |
CN103117770A (zh) * | 2013-01-24 | 2013-05-22 | 重庆邮电大学 | 一种rfid系统中多标签防碰撞方法 |
CN103208019A (zh) * | 2013-04-17 | 2013-07-17 | 广西南宁市东森动力信息科技有限公司 | 适用于rfid系统的多叉树防碰撞算法 |
CN103577783A (zh) * | 2013-11-25 | 2014-02-12 | 北京邮电大学 | 一种高效rfid自适应型防碰撞跟踪树算法 |
Non-Patent Citations (2)
Title |
---|
张小红,张留洋: "《RFID防碰撞时隙应变协处理算法研究》", 《电子学报》 * |
钱志鸿,王义君: "《物联网技术与应用研究》", 《电子学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794509A (zh) * | 2015-05-04 | 2015-07-22 | 江西理工大学 | 一种基于信息位编码的自适应搜索的rfid防碰撞方法 |
CN104794509B (zh) * | 2015-05-04 | 2017-08-11 | 江西理工大学 | 一种基于信息位编码的自适应搜索的rfid防碰撞方法 |
CN107526986A (zh) * | 2017-07-28 | 2017-12-29 | 广东农工商职业技术学院(农业部华南农垦干部培训中心) | 一种rfid标签防碰撞方法及系统 |
CN107526986B (zh) * | 2017-07-28 | 2020-07-28 | 广东农工商职业技术学院(农业部华南农垦干部培训中心) | 一种rfid标签防碰撞方法及系统 |
CN114186572A (zh) * | 2021-11-08 | 2022-03-15 | 南京信息工程大学 | 一种基于冲突时隙协调的未知标签识别方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104200246B (zh) | 2017-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103020568B (zh) | 基于标签id预处理的rfid防碰撞方法 | |
Myung et al. | Tag-splitting: adaptive collision arbitration protocols for RFID tag identification | |
CN101866413B (zh) | 基于分组机制和跳跃动态二进制识别的多标签防碰撞方法 | |
CN102999739B (zh) | Rfid标签及识别方法和装置 | |
CN104517087A (zh) | 一种rfid多标签识别防碰撞方法 | |
CN103473524A (zh) | Rfid多标签识别方法、阅读器和标签 | |
CN105224970A (zh) | 一种rfid防碰撞方法 | |
CN103902942B (zh) | 一种用于大容量多标签rfid系统的混合防碰撞方法 | |
CN103577783A (zh) | 一种高效rfid自适应型防碰撞跟踪树算法 | |
CN104200246A (zh) | 分组n叉跟踪树型rfid防碰撞算法 | |
CN104573593B (zh) | 一种基于帧时隙的欠定盲分离rfid防碰撞方法 | |
Yeh et al. | Adaptive splitting and pre-signaling for RFID tag anti-collision | |
CN105046181A (zh) | 一种基于查询树方法的多前缀匹配的确定性防碰撞算法 | |
CN104680104A (zh) | 一种动态高效的rfid标签识别机制 | |
Zhihong et al. | An overview of anti-collision protocols for radio frequency identification devices | |
Nguyen et al. | Tag cardinality estimation using expectation-maximization in ALOHA-based RFID systems with capture effect and detection error | |
Bai et al. | Recognition of the anti-collision algorithm for RFID systems based on tag grouping | |
CN105718968A (zh) | 一种基于位图构建的rfid自适应n树防碰撞方法 | |
CN103455783B (zh) | 一种基于低冗余搜索树的标签防碰撞方法 | |
CN103544459B (zh) | 一种射频识别标签总数的估算方法和系统 | |
CN110210266A (zh) | 一种五叉树搜索rfid防碰撞方法 | |
CN101369913B (zh) | 一种无线通信网络节点数目估计方法 | |
Hu et al. | A novel anti-collision algorithm for RFID system | |
CN112906415B (zh) | 一种基于样本查询估计的冲突树优化方法 | |
Li et al. | A RFID anti-collision approach for efficient query tree |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |