一種基于碰撞時(shí)隙獨(dú)立識(shí)別的動(dòng)態(tài)幀時(shí)隙Aloha算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于射頻識(shí)別多標(biāo)簽識(shí)別技術(shù)領(lǐng)域,具體涉及一種基于碰撞時(shí)隙獨(dú)立識(shí)別 的動(dòng)態(tài)幀時(shí)隙Aloha算法的設(shè)計(jì)。
【背景技術(shù)】
[0002] 超高頻(UHF)射頻識(shí)別(RFID)可以為目標(biāo)物體提供更方便和快捷的無(wú)接觸識(shí)別, 因此替代條形碼被廣泛的應(yīng)用于物體的自動(dòng)識(shí)別中,主要的工業(yè)應(yīng)用包括:庫(kù)存管理、供應(yīng) 鏈管理、物品溯源等。一個(gè)典型的RFID系統(tǒng)由一個(gè)讀寫(xiě)器、多個(gè)標(biāo)簽和中間件組成。多標(biāo) 簽快速識(shí)別是當(dāng)前RFID系統(tǒng)的一個(gè)迫切需求,特別是標(biāo)簽密集的RFID環(huán)境。為了解決標(biāo) 簽快速識(shí)別問(wèn)題,研究者們提出了大量的防碰撞算法,主要可以分為Aloha類、查詢樹(shù)(QT) 類和混合式防碰撞類算法。
[0003] QT類算法本質(zhì)上屬于確定型防碰撞算法,其核心思想在于碰撞比特識(shí)別和追蹤技 術(shù)。在UHF系統(tǒng)中,由于讀寫(xiě)器端接收信號(hào)的偏移,導(dǎo)致讀寫(xiě)器不能有效的檢測(cè)到具體的碰 撞位,因此使得QT類算法難以應(yīng)用到UHF RFID系統(tǒng)中,諸如EPCglobal ClGen2或者ISO/ IEC18000-6B。同樣的,融合了碰撞比特識(shí)別和追蹤技術(shù)的混合式算法,也難以實(shí)施??紤] 到算法的復(fù)雜度和可實(shí)現(xiàn)性質(zhì),本發(fā)明主要集中于Aloha類算法。
[0004] 目前大多數(shù)Aloha類算法都是采用完整幀觀測(cè),并使用復(fù)雜的計(jì)算來(lái)提高標(biāo)簽數(shù) 估計(jì)的準(zhǔn)確性從而維持好的識(shí)別性能。然而大多數(shù)讀寫(xiě)器都僅裝配處理能力低的處理器, 因此高復(fù)雜度的算法難以應(yīng)用于此類讀寫(xiě)器。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中大多數(shù)Aloha類算法的讀寫(xiě)器都僅裝配處 理能力低的處理器,無(wú)法處理高復(fù)雜度的算法的問(wèn)題,提出了一種基于碰撞時(shí)隙獨(dú)立識(shí)別 的動(dòng)態(tài)幀時(shí)隙Aloha算法。
[0006] 本發(fā)明的技術(shù)方案為:一種基于碰撞時(shí)隙獨(dú)立識(shí)別的動(dòng)態(tài)幀時(shí)隙Aloha算法,分 為最佳幀長(zhǎng)檢測(cè)和碰撞時(shí)隙獨(dú)立識(shí)別兩個(gè)階段;
[0007] 在最佳幀長(zhǎng)檢測(cè)階段,對(duì)每幀設(shè)置一個(gè)檢測(cè)段進(jìn)行觀測(cè),然后充分利用檢測(cè)段中、 成功時(shí)隙、碰撞時(shí)隙以及空閑時(shí)隙的統(tǒng)計(jì)數(shù)來(lái)判斷當(dāng)前幀是否為最優(yōu),若不是最優(yōu)則重新 調(diào)整幀長(zhǎng)和設(shè)置新的檢測(cè)段,直到檢測(cè)到最優(yōu)的幀長(zhǎng)為止;若是最優(yōu)則繼續(xù)讀完整個(gè)幀,然 后統(tǒng)計(jì)出每個(gè)碰撞時(shí)隙的索引號(hào),壓入堆棧,然后進(jìn)入獨(dú)立碰撞時(shí)隙識(shí)別階段;
[0008] 獨(dú)立碰撞時(shí)隙識(shí)別階段,是通過(guò)索引號(hào)對(duì)每個(gè)碰撞時(shí)隙設(shè)置獨(dú)立的幀來(lái)進(jìn)行識(shí) 另Ij,直到堆棧為空后,整個(gè)標(biāo)簽識(shí)別過(guò)程結(jié)束。
[0009] 本發(fā)明具體包括以下步驟:
[0010] S1、讀寫(xiě)器初始化:設(shè)置初始Q值Qini以及檢測(cè)段的長(zhǎng)度F ds,并將讀寫(xiě)器的時(shí)隙計(jì) 數(shù)器Sc、空閑時(shí)隙數(shù)E、碰撞時(shí)隙數(shù)C以及成功時(shí)隙數(shù)S均清零;
[0011] S2、讀寫(xiě)器向其工作域內(nèi)的待識(shí)別標(biāo)簽廣播一個(gè)查詢命令,查詢命令包括時(shí)隙幀 長(zhǎng)F = 2Q以及檢測(cè)段F ds,F(xiàn)ds的大小滿足F ds= F/2 k,k為非負(fù)整數(shù);
[0012] S3、讀寫(xiě)器接收待識(shí)別標(biāo)簽的響應(yīng)情況,同時(shí)時(shí)隙計(jì)數(shù)器值加 I :Sc = Sc+1 ;
[0013] 若讀寫(xiě)器接收到標(biāo)簽的回復(fù)且無(wú)碰撞產(chǎn)生,則表示成功識(shí)別該標(biāo)簽,S = S+l ;
[0014] 若讀寫(xiě)器接收到標(biāo)簽的回復(fù)且產(chǎn)生碰撞,則表示標(biāo)簽當(dāng)前時(shí)隙內(nèi)有多個(gè)標(biāo)簽同時(shí) 響應(yīng),C = C+1,并統(tǒng)計(jì)當(dāng)前時(shí)隙索引號(hào);
[0015] 若讀寫(xiě)器沒(méi)有接收到標(biāo)簽的回復(fù),則說(shuō)明當(dāng)前時(shí)隙空閑,E = E+1 ;
[0016] S4、判斷Sc是否等于Fds;
[0017] 若是則讀寫(xiě)器統(tǒng)計(jì)(Sds, Cds),其中Sds= S,C ds= C,并根據(jù)n est = round ((Sds+2. 39*Cds) *F/Fds)來(lái)估計(jì)剩余標(biāo)簽數(shù) nest;
[0018] 若否則廣播查詢命令并返回步驟S3 ;
[0019] S5、讀寫(xiě)器判斷剩余標(biāo)簽數(shù)Iif3st是否在當(dāng)前Q值的最佳范圍內(nèi);
[0020] 若是則判斷Sc與F是否相等,若Sc = F則統(tǒng)計(jì)碰撞時(shí)隙的索引號(hào)并壓入堆棧,并 根據(jù)nind= round ((nest-S)/C)來(lái)確定碰撞時(shí)隙內(nèi)的平均標(biāo)簽數(shù)nind,然后設(shè)置每個(gè)碰撞時(shí) 隙初始幀的大小F ind;g Sc辛F則廣播查詢命令并返回步驟S3 ;
[0021] 若否則設(shè)置新的Q值并更新Fds,然后返回步驟S2 ;
[0022] S6、讀寫(xiě)器判斷堆棧是否為空;
[0023] 若是則識(shí)別過(guò)程結(jié)束;
[0024] 若否則讀寫(xiě)器從堆棧中提取新的索引號(hào)并進(jìn)入步驟S7 ;
[0025] S7、讀寫(xiě)器廣播查詢命令,查詢命令包括時(shí)隙Find及其索引號(hào)index ;
[0026] S8、讀寫(xiě)器讀完Find個(gè)時(shí)隙后統(tǒng)計(jì)(S,C),判斷C是否等于0 ;
[0027] 若是則返回步驟S6;
[0028] 若否則根據(jù)n"t= round (2. 39*C)來(lái)估計(jì)剩余標(biāo)簽數(shù)n "t,設(shè)置新的幀長(zhǎng)賦予Find 并返回步驟S7。
[0029] 進(jìn)一步地,步驟S5中設(shè)置每個(gè)碰撞時(shí)隙初始幀的大小Find以及設(shè)置新的Q值時(shí)參 考剩余標(biāo)簽數(shù)和最佳幀長(zhǎng)的關(guān)系表,根據(jù)剩余標(biāo)簽數(shù)可以找出對(duì)應(yīng)的最佳幀長(zhǎng),剩余標(biāo)簽 數(shù)I st和最佳幀長(zhǎng)F的關(guān)系根據(jù)常規(guī)動(dòng)態(tài)幀時(shí)隙Aloha算法導(dǎo)出。
[0030] 進(jìn)一步地,剩余標(biāo)簽數(shù)Iif3st和最佳幀長(zhǎng)F的具體關(guān)系為:
[0031] I ^ nest^ 3, F = 2Q= 2, Q = 1 ;
[0032] 4 ^ nest^ 5, F = 2Q= 4, Q = 2 ;
[0033] 6 ^ nest^ 11, F = 2Q= 8, Q = 3 ;
[0034] 12 ^ nest^ 22, F = 2 Q= 16, Q = 4 ;
[0035] 23 ^ nest^ 44, F = 2 Q= 32, Q = 5 ;
[0036] 45 ^ nest^ 89, F = 2 Q= 64, Q = 6 ;
[0037] 90 ^ nest^ 177, F = 2 Q= 128, Q = 7 ;
[0038] 178 彡 nest彡 355, F = 2 Q= 256, Q = 8 ;
[0039] 356 彡 nest彡 710, F = 2 Q= 512, Q = 9 ;
[0040] 711 彡 nest彡 1420, F = 2 Q= 1024, Q = 10 ;
[0041] 1421 彡 nest彡 2839, F = 2 Q= 2048, Q = 11 ;
[0042] 2840 彡 nest彡 5678, F = 2 Q= 4096, Q = 12 ;
[0043] 5679 彡 nest彡 11357, F = 2 Q= 8192, Q = 13 ;
[0044] 11358 彡 nest彡 22713, F = 2 16384, Q = 14 ;
[0045] 22714 彡 nest彡 45426, F = 2 32768, Q = 15。
[0046] 進(jìn)一步地,步驟S5中更新Fds時(shí)參考不同幀所對(duì)應(yīng)的檢測(cè)段的大小設(shè)置,具體為:
[0047] F = 2q= 8, Fds= F/2 ;
[0048] F = 2q= 16, Fds= F/4 ;
[0049] F = 2q= 32, Fds= F/8 ;
[0050] F = 2q= 64, Fds= F/8 ;
[0051] F = 2q= 128, Fds= F/8 ;
[0052] F = 2q= 256, Fds= F/16 ;
[0053] F = 2q= 512, Fds= F/16 ;
[0054] F = 2q= 1024, Fds= F/32 ;
[0055] F = 2q>1024, Fds= F/64 ;
[0056] 其他,F(xiàn)ds= F。
[0057] 進(jìn)一步地,查詢命令包括Query、QueryAdj、QueryRep以及QueryIdx命令,其廣播 規(guī)則為:步驟S2中,第一幀廣播Query命令,以后每幀均廣播QueryAdj命令;步驟S4和S5 中,廣播QueryRep命令;步驟S7中,廣播QueryIdx命令。
[0058] 進(jìn)一步地,步驟S2中,讀寫(xiě)器向工作域內(nèi)的待識(shí)別標(biāo)簽廣播一個(gè)查詢命令后,工 作域內(nèi)的待識(shí)別標(biāo)簽接收到讀寫(xiě)器廣播的查詢命令后,提取查詢命令中的Q值和Sc值,并 在[1,F(xiàn)]中產(chǎn)生一個(gè)隨機(jī)數(shù)加載到標(biāo)簽內(nèi)部的計(jì)數(shù)器上,并比較計(jì)數(shù)器與Sc的值,若相等, 則標(biāo)簽響應(yīng)讀寫(xiě)器的查詢命令并返回?cái)?shù)據(jù),否則不予響應(yīng)。
[0059] 進(jìn)一步地,步驟S4和S5中,讀寫(xiě)器向其工作域內(nèi)的標(biāo)簽廣播一個(gè)查詢命令后,接 收到廣播的標(biāo)簽,提取查詢命令中的Sc值,并比較標(biāo)簽內(nèi)部計(jì)數(shù)器的值與Sc的值,若相等, 則標(biāo)簽響應(yīng)讀寫(xiě)器的查詢命令并返回?cái)?shù)據(jù),否則不予響應(yīng)。
[0060] 進(jìn)一步地,步驟S7中,讀寫(xiě)器向其工作域內(nèi)的標(biāo)簽廣播一個(gè)查詢命令后,接收到 廣播的標(biāo)簽,提取查詢命令中的Q值、index值和Sc值,只有與index值匹配的標(biāo)簽才會(huì)在 [1,F(xiàn)]中產(chǎn)生一個(gè)隨機(jī)數(shù)加載到標(biāo)簽內(nèi)部的計(jì)數(shù)器上,并比較計(jì)數(shù)器與Sc的值,若相等,則 標(biāo)簽響應(yīng)讀寫(xiě)器的查詢命令并返回?cái)?shù)據(jù),否則不予響應(yīng)。
[0061] 本發(fā)明的有益效果是:首先,由于每次檢測(cè)最佳幀長(zhǎng)都是基于檢測(cè)段來(lái)完成的,而 檢測(cè)段只是完整幀的一小部分,一旦讀寫(xiě)器檢測(cè)到當(dāng)前的幀不是最佳,立即終止本輪識(shí)別, 根據(jù)最新設(shè)置的幀和檢測(cè)段來(lái)開(kāi)啟下一輪檢測(cè),降低了不合適的幀長(zhǎng)對(duì)性能的影響,提高 了系統(tǒng)的識(shí)別效率和穩(wěn)定性;其次,對(duì)每個(gè)碰撞時(shí)隙采用獨(dú)立的小幀識(shí)別,相較于傳統(tǒng)的防 碰撞算法對(duì)所有的碰撞標(biāo)簽設(shè)置大幀而目,進(jìn)一步提尚了識(shí)別效率;最后,由于每次對(duì)于幀 長(zhǎng)的設(shè)置和判斷都是基于最簡(jiǎn)單的數(shù)學(xué)運(yùn)算,避免了傳統(tǒng)Aloha類算法中的復(fù)雜估計(jì)方法 對(duì)硬件平臺(tái)的要求和依賴,極大的降低了系統(tǒng)復(fù)雜度。從而該發(fā)明可以很好的應(yīng)用在移動(dòng) 及手持的UHF RFID讀寫(xiě)器中。