分組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日
【發明者】賈慶軒, 王鑫, 高欣, 趙兵, 陳鋼, 翟峰 申請人:北京郵電大學