【附圖說(shuō)明】
[0062] 圖1為本發(fā)明提供的一種基于碰撞時(shí)隙獨(dú)立識(shí)別的動(dòng)態(tài)幀時(shí)隙Aloha算法流程 圖。
[0063] 圖2為本發(fā)明實(shí)施例中完成八個(gè)標(biāo)簽識(shí)別的過(guò)程示意圖。
[0064] 圖3為采用經(jīng)典的Aloha類算法,DFSA方法完成八個(gè)標(biāo)簽識(shí)別的過(guò)程示意圖。
[0065] 圖4為本發(fā)明在吞吐率上的優(yōu)勢(shì)曲線圖。
[0066] 圖5為本發(fā)明在識(shí)別單個(gè)標(biāo)簽所需的平均協(xié)調(diào)時(shí)間的優(yōu)勢(shì)曲線圖。
[0067] 圖6為本發(fā)明在平均識(shí)別率上的優(yōu)勢(shì)曲線圖。
【具體實(shí)施方式】
[0068] 下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例作進(jìn)一步的說(shuō)明。
[0069] 本發(fā)明的設(shè)計(jì)基于UHF的EPCglobal Cl Gen2標(biāo)準(zhǔn)。
[0070] 本發(fā)明提供了一種基于碰撞時(shí)隙獨(dú)立識(shí)別的動(dòng)態(tài)幀時(shí)隙Aloha算法,分為最佳幀 長(zhǎng)檢測(cè)和碰撞時(shí)隙獨(dú)立識(shí)別兩個(gè)階段。
[0071] 在最佳幀長(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í)別階段。
[0072] 獨(dú)立碰撞時(shí)隙識(shí)別階段,是通過(guò)索引號(hào)對(duì)每個(gè)碰撞時(shí)隙設(shè)置獨(dú)立的幀來(lái)進(jìn)行識(shí) 另Ij,直到堆棧為空后,整個(gè)標(biāo)簽識(shí)別過(guò)程結(jié)束。
[0073] 如圖1所示,本發(fā)明具體包括以下步驟:
[0074] S1、讀寫器初始化:設(shè)置初始Q值Qini (幀長(zhǎng)F = 2Q)以及檢測(cè)段的長(zhǎng)度Fds,并將讀 寫器的時(shí)隙計(jì)數(shù)器Sc、空閑時(shí)隙數(shù)E、碰撞時(shí)隙數(shù)C以及成功時(shí)隙數(shù)S均清零。
[0075] S2、讀寫器向其工作域內(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ù)。
[0076] 這里讀寫器第一幀廣播Query命令,以后每幀均廣播QueryAdj命令。
[0077] 讀寫器向工作域內(nèi)的待識(shí)別標(biāo)簽廣播一個(gè)查詢命令后,工作域內(nèi)的待識(shí)別標(biāo)簽接 收到讀寫器廣播的查詢命令后,提取查詢命令中的Q值和Sc值,并在[1,F(xiàn)]中產(chǎn)生一個(gè)隨 機(jī)數(shù)加載到標(biāo)簽內(nèi)部的計(jì)數(shù)器上,并比較計(jì)數(shù)器與Sc的值,若相等,則標(biāo)簽響應(yīng)讀寫器的 查詢命令并返回?cái)?shù)據(jù),否則不予響應(yīng)。
[0078] S3、讀寫器接收待識(shí)別標(biāo)簽的響應(yīng)情況,同時(shí)時(shí)隙計(jì)數(shù)器值加 I :Sc = Sc+1 ;
[0079] 若讀寫器接收到標(biāo)簽的回復(fù)且無(wú)碰撞產(chǎn)生,則表示成功識(shí)別該標(biāo)簽,S = S+l ;
[0080] 若讀寫器接收到標(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);
[0081] 若讀寫器沒(méi)有接收到標(biāo)簽的回復(fù),則說(shuō)明當(dāng)前時(shí)隙空閑,E = E+1。
[0082] S4、判斷Sc是否等于Fds;
[0083] 若是則讀寫器統(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;
[0084] 若否則廣播查詢命令并返回步驟S3。
[0085] S5、讀寫器判斷剩余標(biāo)簽數(shù)Iif3st是否在當(dāng)前Q值的最佳范圍內(nèi);
[0086] 若是則判斷Sc與F是否相等,若Sc = F則統(tǒng)計(jì)碰撞時(shí)隙的索引號(hào)并壓入堆棧,并 根據(jù)nind= r〇und((nest-S)/C)來(lái)確定碰撞時(shí)隙內(nèi)的平均標(biāo)簽數(shù)nind,然后設(shè)置每個(gè)碰撞時(shí) 隙初始幀的大小Find;g Sc辛F則廣播查詢命令并返回步驟S3 ;
[0087] 若否則設(shè)置新的Q值并更新Fds,然后返回步驟S2。
[0088] 其中,設(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ù)IW和最 佳幀長(zhǎng)F的關(guān)系根據(jù)常規(guī)動(dòng)態(tài)幀時(shí)隙Aloha算法導(dǎo)出。剩余標(biāo)簽數(shù)I st和最佳幀長(zhǎng)F的具 體關(guān)系為:
[0089] I ^ nest^ 3, F = 2Q= 2, Q = 1 ;
[0090] 4 ^ nest^ 5, F = 2Q= 4, Q = 2 ;
[0091] 6 ^ nest^ 11, F = 2Q= 8, Q = 3 ;
[0092] 12 ^ nest^ 22, F = 2 Q= 16, Q = 4 ;
[0093] 23 ^ nest^ 44, F = 2 Q= 32, Q = 5 ;
[0094] 45 ^ nest^ 89, F = 2 Q= 64, Q = 6 ;
[0095] 90 ^ nest^ 177, F = 2 Q= 128, Q = 7 ;
[0096] 178 彡 nest彡 355, F = 2 Q= 256, Q = 8 ;
[0097] 356 彡 nest彡 710, F = 2 Q= 512, Q = 9 ;
[0098] 711 彡 nest彡 1420, F = 2 Q= 1024, Q = 10 ;
[0099] 1421 彡 nest彡 2839, F = 2 Q= 2048, Q = 11 ;
[0100] 2840 彡 nest彡 5678, F = 2 4096, Q = 12 ;
[0101] 5679 ^ nest^ 11357, F = 2 Q= 8192, Q = 13 ;
[0102] 11358 彡 nest彡 22713, F = 2 16384, Q = 14 ;
[0103] 22714 彡 nest彡 45426, F = 2 32768, Q = 15。
[0104] 更新Fds時(shí)需要參考不同幀所對(duì)應(yīng)的檢測(cè)段的大小設(shè)置,具體為:
[0105] F = 2q= 8, Fds= F/2 ;
[0106] F = 2q= 16, Fds= F/4 ;
[0107] F = 2q= 32, Fds= F/8 ;
[0108] F = 2q= 64, Fds= F/8 ;
[0109] F = 2q= 128, Fds= F/8 ;
[0110] F = 2q= 256, Fds= F/16 ;
[0111] F = 2q= 512, Fds= F/16 ;
[0112] F = 2q= 1024, Fds= F/32 ;
[0113] F = 2q>1024, Fds= F/64 ;
[0114] 其他,F(xiàn)ds= F。
[0115] 步驟S4和S5中,讀寫器廣播QueryR印命令。
[0116] 讀寫器向其工作域內(nèi)的標(biāo)簽廣播一個(gè)查詢命令后,接收到廣播的標(biāo)簽,提取查詢 命令中的Sc值,并比較標(biāo)簽內(nèi)部計(jì)數(shù)器的值與Sc的值,若相等,則標(biāo)簽響應(yīng)讀寫器的查詢 命令并返回?cái)?shù)據(jù),否則不予響應(yīng)。
[0117] S6、讀寫器判斷堆棧是否為空;
[0118] 若是則識(shí)別過(guò)程結(jié)束;
[0119] 若否則讀寫器從堆棧中提取新的索引號(hào)并進(jìn)入步驟S7。
[0120] S7、讀寫器廣播查詢命令,查詢命令包括時(shí)隙Find及其索引號(hào)index。
[0121] 這里讀寫器廣播QueryIdx命令。
[0122] 讀寫器向其工作域內(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)讀寫器的 查詢命令并返回?cái)?shù)據(jù),否則不予響應(yīng)。
[0123] S8、讀寫器讀完Find個(gè)時(shí)隙后統(tǒng)計(jì)(S,C),判斷C是否等于0;
[0124] 若是則返回步驟S6;
[0125] 若否則根據(jù)n"t= round (2. 39*C)來(lái)估計(jì)剩余標(biāo)簽數(shù)n "t,設(shè)置新的幀長(zhǎng)賦予Find 并返回步驟S7。
[0126] 下面以8個(gè)標(biāo)簽的識(shí)別過(guò)程為具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述,如圖2所示,具 體步驟如下:
[0127] AU讀寫器初始化清零,讀寫器時(shí)隙計(jì)數(shù)器Sc,空閑時(shí)隙數(shù)E,碰撞時(shí)隙數(shù)C以及成 功時(shí)隙數(shù)S的值均為0。
[0128] A2、讀寫器向其工作域內(nèi)的標(biāo)簽廣播一個(gè)Query命令,Query命令所規(guī)定的此時(shí)幀 長(zhǎng)為F = 8,則檢測(cè)段Fds= 4, Sc = Sc+1。
[0129] A3、第一輪識(shí)別:當(dāng)讀寫器讀完Fds個(gè)時(shí)隙后,統(tǒng)計(jì)出(Sds,Cds)分別為(2,1),通過(guò) nest= round((S ds+2. 39*Cds)*F/Fds)估計(jì)出待識(shí)別標(biāo)簽數(shù)為9,根據(jù)剩余標(biāo)簽數(shù)nest和最佳 幀長(zhǎng)F的關(guān)系可知標(biāo)簽數(shù)9處于幀長(zhǎng)8的最佳范圍6~11內(nèi),當(dāng)前幀為最佳幀長(zhǎng),因此讀 寫器繼續(xù)本輪識(shí)別讀完8個(gè)時(shí)隙,統(tǒng)計(jì)出碰撞時(shí)隙索引號(hào)為2和8,并壓入堆棧,然后根據(jù) nind= round((nest-S)/C)計(jì)算出nind= 3,然后根據(jù)剩余標(biāo)簽數(shù)nest和最佳幀長(zhǎng)F的關(guān)系確 定每個(gè)碰撞時(shí)隙的獨(dú)立幀大小應(yīng)為Find= 2。
[0130] A4、第二輪識(shí)別:讀寫器從堆棧中提取索引號(hào),采用Find= 2,當(dāng)讀完2個(gè)時(shí)隙后,讀 寫器統(tǒng)計(jì)出(S,C)為(0,1),然后讀寫器根據(jù)n"t=r〇und(2.39*C)計(jì)算出當(dāng)前索引下的剩 余標(biāo)簽數(shù)為2,設(shè)置幀F(xiàn) ind= 2。
[0131] A5、第三輪識(shí)別:讀寫器在讀完Find后,統(tǒng)計(jì)出(S,C)為(2,0),碰撞時(shí)隙為0,因此 該索引下的標(biāo)簽均被成功識(shí)別。
[0132] A6、第四輪識(shí)別:讀寫器從堆棧中提取新的索引號(hào),采用Find= 2,當(dāng)讀完2個(gè)時(shí)隙 后,讀寫器統(tǒng)計(jì)出(S,C)為(1,1),然后讀寫器根據(jù)n"t= round(2. 39*C)計(jì)算出當(dāng)前索引 下的剩余標(biāo)簽數(shù)為2,設(shè)置幀F(xiàn)ind= 2。
[0133] A7、第五輪識(shí)別:讀寫器在讀完Find后,統(tǒng)計(jì)出(S,C)為(0,1),然后讀寫