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