一種基于位圖構(gòu)建的rfid自適應(yīng)n樹(shù)防碰撞方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種RFID系統(tǒng)通信技術(shù),具體設(shè)及一種基于位圖構(gòu)建的RFID自適應(yīng) N樹(shù)防碰撞方法。
【背景技術(shù)】
[0002] RFID技術(shù)通過(guò)無(wú)線鏈路識(shí)別與定位物件,具有高效、無(wú)需接觸、批量識(shí)別等優(yōu)點(diǎn), 廣泛應(yīng)用于自動(dòng)識(shí)別領(lǐng)域。RFID系統(tǒng)由后臺(tái)服務(wù)器、讀寫(xiě)器及多個(gè)標(biāo)簽組成,通過(guò)識(shí)別標(biāo) 簽實(shí)現(xiàn)物件快速定位。然而,讀寫(xiě)器批量識(shí)別標(biāo)簽時(shí),多標(biāo)簽通過(guò)共享信道同時(shí)傳輸識(shí)別信 息W響應(yīng)讀寫(xiě)器從而產(chǎn)生信號(hào)碰撞,碰撞標(biāo)簽需重新發(fā)送識(shí)別信息W便于讀寫(xiě)器識(shí)別,故 增加了識(shí)別時(shí)延。同時(shí),低價(jià)被動(dòng)標(biāo)簽性能較低,無(wú)法感知應(yīng)用環(huán)境下的其它標(biāo)簽。因此, 設(shè)計(jì)高效防碰撞算法W最大限度減少碰撞并降低時(shí)延對(duì)RFID系統(tǒng)整體效率提升具有重要 意義。目前,RFID防碰撞算法主要有ALOHA類和樹(shù)形算法兩類,ALOHA類算法具有識(shí)別速 度快、操作簡(jiǎn)單的優(yōu)點(diǎn),然而,其存在嚴(yán)重的"標(biāo)簽饑餓"問(wèn)題,即部分標(biāo)簽長(zhǎng)時(shí)間得不到識(shí) 另IJ ;樹(shù)形算法具有識(shí)別精度高的優(yōu)點(diǎn),然而運(yùn)類算法每次識(shí)別只進(jìn)行二分割,致使其識(shí)別時(shí) 間較長(zhǎng)。
【發(fā)明內(nèi)容】
[0003] 針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種基于位圖構(gòu)建的RFID自適應(yīng)N樹(shù) 防碰撞方法,該方法可W大幅提高RFID標(biāo)簽防碰撞性能,吞吐率可達(dá)86. 42 %~87. 05%。
[0004] 本發(fā)明的目的是采用下述技術(shù)方案實(shí)現(xiàn)的: 陽(yáng)0化]本發(fā)明提供一種基于位圖構(gòu)建的RFID自適應(yīng)N樹(shù)防碰撞方法,其改進(jìn)之處在于, 所述方法包括下述步驟:
[0006] 步驟1 :利用極大似然位跟蹤標(biāo)簽數(shù)估算法MLBE估算應(yīng)用環(huán)境下的標(biāo)簽數(shù)量;
[0007] 步驟2 :利用探針?lè)?gòu)建位圖,用W指導(dǎo)標(biāo)簽的響應(yīng)時(shí)隙;并逐帖調(diào)整最優(yōu)N值W 構(gòu)建N樹(shù),逐一識(shí)別N樹(shù)下的子樹(shù)。
[0008] 進(jìn)一步地,所述步驟1中,利用極大似然位跟蹤標(biāo)簽數(shù)估算法MLBE對(duì)應(yīng)用環(huán)境 下的標(biāo)簽數(shù)進(jìn)行估算,即通過(guò)檢測(cè)單bit位碰撞、識(shí)別及空閑情況,實(shí)現(xiàn)對(duì)應(yīng)用環(huán)境下標(biāo) 簽數(shù)量的估算;其中,極大似然位跟蹤標(biāo)簽數(shù)估算法MLBE估算的時(shí)隙長(zhǎng)度為1/DR,根據(jù) EPCGlobalClG2 標(biāo)準(zhǔn)知 DR 為 128肺ps。
[0009] 進(jìn)一步地,估算應(yīng)用環(huán)境下的標(biāo)簽數(shù)量包括下述步驟:
[0010] 1)讀寫(xiě)器廣播MLBE命令I(lǐng)lQl Ir后,標(biāo)簽生成R =化sh(I化')111〇把9及隨機(jī)數(shù) RbG {0,1},并在時(shí)隙R發(fā)送Rb給讀寫(xiě)器。因此,讀寫(xiě)器可接收到長(zhǎng)度為2?的數(shù)據(jù)串Str;
[0011] 2)若在時(shí)隙R同時(shí)接收到0和1則發(fā)生碰撞,表明時(shí)隙R至少有兩個(gè)標(biāo)簽響應(yīng)(碰 撞時(shí)隙),若只接收到0或1,則該時(shí)隙至少有一個(gè)標(biāo)簽響應(yīng),即無(wú)碰撞時(shí)隙;若沒(méi)有接收到 0或1,則時(shí)隙R內(nèi)無(wú)標(biāo)簽響應(yīng),無(wú)標(biāo)簽響應(yīng)即空閑時(shí)隙數(shù)可精確統(tǒng)計(jì)記為e,并將碰撞時(shí)隙 數(shù)記為C ;
[0012] 3)根據(jù)盒子占用模型,當(dāng)標(biāo)簽數(shù)為n,盒子總數(shù)或帖長(zhǎng)為N時(shí),r個(gè)盒子中具有W個(gè) 標(biāo)簽的概率P (W, r, n)如式(1)所示,e個(gè)時(shí)隙具有0個(gè)標(biāo)簽的概率P (W = 0, e, n)如式(2) 所示:
[0013]
Cl);:
[< (2);
[0015] 其中:j表示變量,無(wú)實(shí)際含義;
[0016] 同時(shí),標(biāo)簽選取隨機(jī)時(shí)隙響應(yīng)事件獨(dú)立且同分布,滿足極大似然適用條件,在已知 N并統(tǒng)計(jì)W = 0的時(shí)隙數(shù)為e的情況下對(duì)標(biāo)簽數(shù)n進(jìn)行估算,估算表達(dá)式如下:
[0017]
巧);'
[0018] 其中,《表示估算標(biāo)簽數(shù),結(jié)合表達(dá)式(2)~(3)對(duì)標(biāo)簽數(shù)進(jìn)行極大似然估算;其 中,n > 2?-e+c表示每個(gè)碰撞時(shí)隙至少包括兩個(gè)標(biāo)簽。
[0019] 進(jìn)一步地,Q值的選取至少使得2哨包含1個(gè)空閑時(shí)隙,Q越大則估算范圍越大, 當(dāng)G= 1時(shí)得Q的最大估算范圍;將G= 1帶入表達(dá)式(2)并迭代Q值,得不同Q值的估算 范圍:
[0020] <1〉在已知應(yīng)用環(huán)境下,操作人員根據(jù)標(biāo)簽數(shù)量選取Q值進(jìn)行估算,若發(fā)現(xiàn)e = 0, 則令Q = Q+1,繼續(xù)發(fā)送MLBE命令I(lǐng) IQlIr ;其中,r為任意隨機(jī)數(shù);
[0021] <2〉在未知應(yīng)用環(huán)境下,則Q從1開(kāi)始對(duì)應(yīng)用環(huán)境下的標(biāo)簽數(shù)進(jìn)行估算,若發(fā)現(xiàn)e =0,則令Q = 9+1,繼續(xù)發(fā)送MLBE命令I(lǐng) IQlIr ;其中,r為任意隨機(jī)數(shù); W22] 讀寫(xiě)器發(fā)送MLBE命令I(lǐng)lQl Ir后,標(biāo)簽生成R =化sh(I化r)mod2?及隨機(jī)數(shù) RbG {〇, 1},在時(shí)隙R發(fā)送Rb給讀寫(xiě)器,即標(biāo)簽W 1/2 9的概率在任一時(shí)隙k響應(yīng),則任一時(shí) 隙k無(wú)標(biāo)簽響應(yīng)的概率P化)I k =。如下式(4)所示:
[0023]
(4);
[0024] 由于標(biāo)簽隨機(jī)選擇時(shí)隙響應(yīng)事件相互獨(dú)立,令E似Ik^為e的期望,則: 陽(yáng)0 巧]
C5);:
[0026] 在未知應(yīng)用環(huán)境下Q從1開(kāi)始,若e = 0則令Q = Q+1繼續(xù)進(jìn)行估算,直到e > 1, 當(dāng)E化)Ik 1時(shí),實(shí)現(xiàn)對(duì)標(biāo)簽數(shù)的估算,有下式成立:
[0027] 20度""0含:1 (怎):;:
[0028] 求解表達(dá)式(6)得估算所需給定的最小Q值Qmi。,在未知應(yīng)用環(huán)境下令Q = 1開(kāi)始 估算直到Qmm為止,其中,n為標(biāo)簽數(shù)量。
[0029] 進(jìn)一步地,所述步驟2中,利用探針?lè)A(yù)先檢測(cè)可識(shí)別時(shí)隙、碰撞時(shí)隙及空閑時(shí) 隙,構(gòu)建位圖;
[0030] MFBTNA算法在極大似然位跟蹤標(biāo)簽數(shù)估算法MLBE估算未識(shí)別標(biāo)簽基礎(chǔ)上,為下 一識(shí)別帖設(shè)置最優(yōu)N值,并逐帖進(jìn)行識(shí)別。
[0031] 進(jìn)一步地,多帖位圖跟蹤MFBTNA算法包括下述步驟:
[0032] 1〉讀寫(xiě)器將其自身內(nèi)部保存的帖號(hào)F置為0并廣播Set化指令(初始化指令), 接收該指令后所有標(biāo)簽初始化,并將標(biāo)簽內(nèi)部保存的帖號(hào)Ft置為0 ;
[0033] 2〉讀寫(xiě)器利用極大似然位跟蹤標(biāo)簽數(shù)估算法MLBE估算應(yīng)用環(huán)境下的標(biāo)簽數(shù)量, 根據(jù)標(biāo)簽估算數(shù)量%,置定MFBTNA算法的N值為斯=
[0034] 3〉讀寫(xiě)器組報(bào)文DetFmllQiIlFl Iri并廣播,初始時(shí)Qi= Q〇,F(xiàn) = 0 ;標(biāo)簽接收到 該報(bào)文后,首先對(duì)比自身保存的Ft與F,若不相等則證明讀寫(xiě)器完成了上一帖的識(shí)別工 作;標(biāo)簽根據(jù)上一帖中是否接受過(guò)ID識(shí)別過(guò)程,即根據(jù)上一帖構(gòu)建位圖的in化rmi中存在 in化rmi[Ri] = 1與否來(lái)判斷自己是否得到識(shí)別,i表示帖號(hào);Ft表示標(biāo)簽內(nèi)部保存的帖號(hào); (Ft表示標(biāo)簽內(nèi)部保存的帖號(hào),F(xiàn)i為讀寫(xiě)器內(nèi)部保存的帖號(hào),標(biāo)簽每次對(duì)比接收到的Fi與 自身保存的Ft,運(yùn)里的i表示第i帖的意思,即讀寫(xiě)器從第i = 0帖開(kāi)始識(shí)別,直到將標(biāo)簽 識(shí)別完畢,為了更好的說(shuō)明,我將Fi的小標(biāo)i去掉了改成了 F。僅有在F與自身保存的Ft 不相等的情況下,開(kāi)始新的識(shí)別帖,并結(jié)合位圖,使得上一帖已識(shí)別標(biāo)簽進(jìn)入Sle巧狀態(tài)。) 陽(yáng)03引①若in化rmi化]=1則證明該標(biāo)簽在上一帖中已識(shí)別完畢,保持Ft不變;
[0036] ②若informjRj聲1則表明該標(biāo)簽未得到識(shí)別,令Ft= F t+1,有Ft= F ;
[0037] 此時(shí),不滿足Ft= F的標(biāo)簽進(jìn)入Sle巧狀態(tài),直到接收到Set化指令重新激活;滿 足Ft= F的標(biāo)簽則計(jì)算時(shí)隙馬=7/w/2(1D,/;.)mod 2?及生成隨機(jī)數(shù)Rdi G {0, 1},并在時(shí)隙R1 發(fā)送隨機(jī)數(shù)Rdi;
[003引 4〉讀寫(xiě)器根據(jù)標(biāo)簽響應(yīng)信號(hào)構(gòu)建探針數(shù)據(jù)串Stri,由步驟3〉知探針數(shù)據(jù)串Stri 長(zhǎng)度為2U,即Stri包括2:6位,第k位為滿足Ri= k的標(biāo)簽集響應(yīng)探針信號(hào)Rdi在信道中的 信號(hào)混疊;由于Rdi的長(zhǎng)度與標(biāo)簽ID長(zhǎng)度相差化it,因此將R di稱為探針;同時(shí),讀寫(xiě)器根據(jù) Stri構(gòu)建位圖in化rmi,并廣播in化rmi,讀寫(xiě)器根據(jù)探針時(shí)隙的碰撞、空閑及可識(shí)別狀況生 成了位圖informi;若發(fā)現(xiàn)閑/;.W|AeL0,2y -UI.二0,則所有標(biāo)簽識(shí)別完畢,結(jié)束整個(gè)識(shí)別 過(guò)程;
[0039] 5〉標(biāo)簽根據(jù)接收到的in化rmi決定自己在哪個(gè)子樹(shù)下進(jìn)行識(shí)別;由于 A', E[0,2'j -I],所有生成Ri相同的標(biāo)簽統(tǒng)一到同一子樹(shù)下利用CT算法進(jìn)行識(shí)別,構(gòu)成了 W = 2?個(gè)子樹(shù),子樹(shù)上包括0個(gè)、1個(gè)或多個(gè)標(biāo)簽;讀寫(xiě)器僅對(duì)探針沒(méi)有碰撞的標(biāo)簽在識(shí)別 帖內(nèi)進(jìn)行識(shí)別,探針碰撞的標(biāo)簽則在下一識(shí)別帖進(jìn)行識(shí)別,實(shí)現(xiàn)在當(dāng)前帖未識(shí)別標(biāo)簽移入 下一帖進(jìn)行識(shí)別;僅有滿足in化rmi [Ri] = 1的標(biāo)簽在該帖內(nèi)進(jìn)行識(shí)別,滿足in化rmi [Ri]= 0的標(biāo)簽移入下一帖進(jìn)行識(shí)別;讀寫(xiě)器僅對(duì)生成的Ri滿足Stri [RJ G {0,1}的標(biāo)簽在當(dāng)前 帖進(jìn)行識(shí)別,生成的Ri相同的標(biāo)簽則分布在同一個(gè)子樹(shù)上,標(biāo)簽令RC1為根據(jù)接收到的位圖 in化rmi中自身生成的Ri對(duì)應(yīng)在位圖中的位置in化rmi [Ri]前1的個(gè)數(shù),由于在當(dāng)前識(shí)別帖 中僅對(duì)滿足in化rmi [RJ = 1的標(biāo)簽進(jìn)行識(shí)別,運(yùn)里規(guī)定標(biāo)簽在第RCi個(gè)子樹(shù)上進(jìn)行識(shí)別;
[0040] 6〉讀寫(xiě)器逐一利用CT算法對(duì)構(gòu)造的子樹(shù)進(jìn)行識(shí)別;對(duì)第0個(gè)子樹(shù)識(shí)別時(shí),發(fā)送 如ery命令,對(duì)其余子樹(shù)識(shí)別時(shí)發(fā)送如eryRep命令,每次接收到如eryRep命令,則令RCi = RCi-I,僅有RCi= O的標(biāo)簽接受CT算法的指令和識(shí)別流程;讀寫(xiě)器逐一利用CT算法識(shí)別子 樹(shù),直到識(shí)別完第j = I in化rnii 11-1個(gè)子樹(shù);其中,I in化rnii 11為位圖中1的個(gè)數(shù);
[0041] 7〉根據(jù)Stri中的空閑探針時(shí)隙數(shù)利用MLBE估算未識(shí)別標(biāo)簽數(shù)量; 陽(yáng)042] 8〉令i = i+1及F = F+1,并根據(jù)估算的未識(shí)別標(biāo)簽數(shù)量設(shè)定Qi,并生成隨機(jī)數(shù) Tl,返回步驟3〉進(jìn)行下一帖識(shí)別。
[0043] 進(jìn)一步地:所述步驟3〉中,標(biāo)簽生成的/?,.=化M'/?(iD,/:)mod2'-'決定其發(fā)送隨機(jī)數(shù) Rdi的時(shí)隙,定義隨機(jī)數(shù)Rdi為長(zhǎng)度為1位的探針;
[0044] 所述步驟4〉中,探針數(shù)據(jù)串Stri比]的取值包括下述=種情況: |;0045] a、Str;比]=NULL,即在Ri= k探針時(shí)隙無(wú)標(biāo)簽響應(yīng); 陽(yáng)046] b、Str;比]=*,*表示位碰撞,即在Ri= k探針時(shí)隙至少有2個(gè)標(biāo)簽響應(yīng);
[0047] C、StrJk] = {0, 1},即在Ri= k探針時(shí)隙至少有1個(gè)標(biāo)簽響應(yīng); 柳48] 若終巧閑I &€化:2& -化=0,即探針數(shù)據(jù)串8化為空字符串,讀寫(xiě)器接收不到 任何響應(yīng)信號(hào),則認(rèn)定所有標(biāo)簽識(shí)別完畢,結(jié)束識(shí)別流程;否則,讀寫(xiě)器對(duì)滿足探針時(shí)隙 Stri比]={0