基于反饋機制的rfid防碰撞算法
【專利摘要】本發(fā)明公開一種基于反饋機制的RFID防碰撞算法。該算法步驟包括1)將標簽隨機分成16組,讀寫器對組號為0的標簽進行識別,其余組號大于0的標簽均將組號減一,再開始下一輪對新0組標簽的識別。2)在組內采用分維識別算法。將標簽ID每四位分成一維,查詢標簽某一維的數據時根據1的個數及位置關系確定計數器的值,通過檢測碰撞情況和計數器的值獲取標簽前綴,根據標簽前綴識別相應的標簽。3)將16組標簽的已識別信息進行反饋,對漏讀標簽重新進行分組,然后在組內采用基于已識別標簽ID信息反饋的隨機算法。本發(fā)明加快了標簽產生碰撞時的處理速度,減少了識別時間,將已識別的標簽信息進行反饋,提高了標簽的識別率。
【專利說明】基于反饋機制的RFID防碰撞算法
【技術領域】
[0001]本發(fā)明屬于RFID (射頻識別)【技術領域】。涉及一種捕獲效應下基于反饋機制的RFID防碰撞算法。
【背景技術】
[0002]無線射頻識別技術(RFID)是一種自動識別技術,廣泛應用于物流、軍事、交通、醫(yī)藥等領域。一個基本的RFID系統(tǒng)主要包括閱讀器、標簽和天線。每個標簽中都有唯一標識的ID號,標簽與閱讀器之間通過射頻信號進行通信。同一個RFID系統(tǒng)中所有標簽工作在同一頻道,當讀寫器作用范圍內存在多個標簽時,并在同一時刻可能有多個標簽同時與閱讀器進行通信,此時標簽之間就會產生碰撞,閱讀器因不能同時接收所有信息而造成數據丟失,即產生了標簽之間的碰撞。
[0003]現(xiàn)有的標簽防碰撞算法中主要有兩類:基于ALOHA的隨機算法和基于樹的確定性算法。當讀寫器的作用范圍內多個標簽應答時,離讀寫器較近的標簽可能因為其信號較強而覆蓋其他標簽的信號,由此產生了捕獲效應?;贏LOHA的隨機算法通過隨機選擇時隙向讀寫器發(fā)送數據,相對來說不能保證整個系統(tǒng)的可靠性,信道的利用率也比較低。基于樹的算法通過將沖突節(jié)點分成O和I左右兩個子集,有序地解決了標簽中的沖突問題,但是在識別階段的初期會產生大量的碰撞,而且對捕獲效應的處理比較差。在實際中由于存在捕獲效應和信道干擾等造成標簽漏讀的現(xiàn)象,現(xiàn)有的這兩種算法中顯然是不能做到對全部標簽的識別。
【發(fā)明內容】
[0004]本發(fā)明的主要目的是提供一種捕獲效應下基于反饋機制的RFID防碰撞算法,用以克服傳統(tǒng)防碰撞法可靠性差、信道利用率低,由于大量碰撞,標簽與讀寫器之間的距離不同等造成捕獲效應處理差、不能做到對全部標簽識別等問題。
[0005]本發(fā)明的方案是通過這樣實現(xiàn)的:一種基于反饋機制的RFID防碰撞算法,該算法約定標簽對象包括隨機數產生器TC、計數器Ge、標簽組號存儲器TG,讀寫器對象包括當前查詢維數RN,組數GN,該算法步驟還包括:
步驟I)標簽分組:讀寫器發(fā)送Req(GN)命令,初始時GN=15,標簽利用標簽內的隨機數產生器TC生成O — GN之間的隨機數,然后將所生成的隨機數保存在標簽組號存儲器TG中,TG的值便是標簽所在的組號,標簽隨機分成GN+1組,即16組,讀寫器對組號為“O”的標簽進行識別,完成對“O”組的識別后,其余組號大于“O”的標簽均將組號減一,再開始下一輪對新“O”組標簽的識別。
[0006]步驟2)標簽組內分維識別:首先讀寫器初始化當前查詢維數RN,發(fā)送查詢命令Req (X,RN),依據標簽前綴與計數器GC的對應關系對GC賦值,然后讀寫器接收數據GC值,發(fā)送查詢命令Request (X,RN, gc),最后讀寫器檢測碰撞情況,依據數據碰撞與標簽前綴的判斷關系獲取命令參數,判斷堆棧。[0007]步驟3)標簽反饋識別:首先讀寫器求出[M/V],令GN=[M/V] — I并反饋給標簽,然后標簽產生O-GN之間的隨機數作為標簽組號,存于標簽組號存儲器TG中,選擇組號為O的標簽響應,最后檢測碰撞情況,算法結束。
[0008]作為本發(fā)明的進一步解釋說明,所述的標簽其ID號由非“O”即“I”的二進制位組成,每個標簽將其ID從左至右每四個二進制位分為一維。
[0009]作為本發(fā)明的進一步改進,所述步驟2)標簽組內分維識別其識別過程步驟包括: 步驟2-1,讀寫器初始化當前查詢維數RN=1,查詢前綴X=null,當X為null時,組號為
O的標簽均相應。
[0010]步驟2-2,發(fā)送查詢命令Req(X,RN),將RN,X告知標簽,標簽檢測其RN中“I”的個數及位置關系,依據標簽前綴與計數器GC的對應關系對GC賦值,并向讀寫器反饋表示GC值的信息序列。
[0011]步驟2-3,讀寫器接收數據GC值,將獲知的GC值、X、RN入棧,并獲取棧頂元素。
[0012]步驟2-4,發(fā)送查詢命令Request (X, RN, gc)要求前綴與X匹配且GC=gc的標簽返回其第RN維及其以后的數據。
[0013]步驟2-5,讀寫器檢測碰撞情況,若產生碰撞且RN不是最后一維,則根據查詢維中的數據碰撞與標簽如綴的判斷關系,獲取當如存在的標簽如綴并將如綴,當如的GC值和查詢維數RN=RN+1入棧,獲取棧頂元素,返回步驟2-2 ;若無碰撞或RN為最后一維,則直接識別標簽并將其屏蔽后轉到步驟2-6。
[0014]步驟2-6,判斷堆棧,若堆棧為空,則轉至步驟2-7 ;若不為空,則采用后退策略,從堆棧中獲取棧頂元素,返回步驟2-4。
[0015]步驟2-7,若堆棧為空,其余組號大于“O”的標簽均將組號減一,由于漏讀的組號為“O”的標簽保持組號“O”不變,再對新的“O”組標簽進行識別,返回步驟2-1 ;若所有標簽組號為“O”且堆棧為空,則結束步驟2)。
[0016]作為本發(fā)明的進一步解釋說明,所述步驟3)標簽反饋識別其識別過程步驟包括: 步驟3-1,讀寫器用已識別的16組標簽信息進行反饋,求出16組中的已識別標簽的最
大數M和平均數V,求出[M/V],令GN= [M/V] -1,發(fā)送命令Req (GN)。
[0017]步驟3-2,標簽產生0-[GN]之間的隨機數作為標簽組號,存于標簽組號存儲器TG中,讀寫器選擇組號為“O”的標簽響應。
[0018]步驟3-3,組號為“O”的標簽產生隨機數,選擇隨機數為“O”的標簽響應。
[0019]步驟3-4,檢測碰撞情況,若產生碰撞,則隨機數非“O”的標簽將其隨機數加一,隨機數為“O”的標簽重新產生隨機數,返回步驟3-4,重新檢測碰撞情況;若只有一個標簽響應,則識別標簽并將其屏蔽后向其他標簽反饋其ID,轉至步驟3-5 ;若無標簽響應,則讀寫器要求未識別的標簽返回其隨機數,檢測接收的數據,若有標簽響應則轉至步驟3-5 ;若無標簽返回其隨機數,則轉至步驟3-6。
[0020]步驟3-5,隨機數非“O”的標簽將隨機數減一,返回步驟3-4。
[0021]步驟3-6,所有標簽組號為“0”,則結束整個識別過程;否則組號非“O”的標簽將組號減一,再選擇組號為“O”的標簽響應返回步驟3-3。
[0022]作為本發(fā)明的進一步限定,所述步驟2)中的標簽前綴與計數器GC的對應關系為GC=I 時,標簽前綴為 0001 0010 0100 1000 ;GC=2 時,標簽前綴為 1010 1001 1100 ;GC=3時,標簽前綴為Olll 1011 1110 1101 ;GC=4時,標簽前綴為0000 1111 ;GC=5時,標簽前綴為 0011 0110 0101。
[0023]作為本發(fā)明的進一步限定,所述步驟2)中的數據碰撞與標簽前綴的判斷關系為: 在GC=I中只有一個二進制位為1,若某一位發(fā)生碰撞,則分別將該碰撞位置1,其余位
置O,依次獲得當前查詢維中存在的標簽前綴。
[0024]在GC=3中只有一個二進制位為O,若某一位發(fā)生碰撞,貝U分別將該碰撞位置O,其余位置1,依次獲得當前查詢維中存在的標簽前綴。
[0025]在GC=4中只有當前查詢維中前綴是0000或1111的標簽,若發(fā)生碰撞,即說明同時存在0000和1111。
[0026]在GC=2中I的個數為2,但最左位均為I,若某一位發(fā)生碰撞,貝U分別把相應的碰撞位置1,其余位置0,依次獲得當前查詢維中存在的標簽前綴。
[0027]在GC=5中I的個數為2,但最左位為O,若某一位發(fā)生碰撞,則分別把相應的碰撞位置0,其余位置1,依次獲得當前查詢維中存在的標簽前綴。
[0028]本發(fā)明具備良好效果和實質性進步:減少了識別初期產生的過多碰撞,通過將標簽進行分維識別,加快了標簽產生碰撞時的處理速度,在相同條件下,標簽產生碰撞時的處理速度平均提高大約25%,識別時間平均減少大約28%,大大減少了識別時間;同時考慮了捕獲效應和信道干擾等而產生的標簽漏讀問題,將已識別的標簽信息進行反饋,識別率平均提聞到99%以上,大大提聞了標簽的識別率。
【專利附圖】
【附圖說明】
[0029]圖1.本發(fā)明標簽分組和標簽組內分維識別步驟算法流程圖。
[0030]圖2.本發(fā)明標簽反饋識別步驟算法流程圖。
【具體實施方式】
[0031]以下結合實施例和附圖描述本發(fā)明,這些描述并不是對本
【發(fā)明內容】
作進一步的限定。實施例中算法約定標簽對象包括隨機數產生器TC、計數器Ge、標簽組號存儲器TG,讀寫器對象包括當前查詢維數RN,組數GN。
[0032]實施例1
(I)步驟I)標簽分組:為減少識別階段初期因標簽數量過多而產生大量的碰撞,首先將標簽進行隨機分組。本發(fā)明中,讀寫器發(fā)送命令Req (GN),GN=15,標簽利用標簽內的隨機數產生器TC生成O — 15之間的隨機數,然后將所生成的隨機數保存在標簽組號存儲器TG中,TG的值便是標簽所在的組號。讀寫器選擇組號為O的標簽進行識別。
[0033](2)步驟2)標簽組內分維識別:在組內采用分維識別算法。其具體流程如圖1所示,算法分為以下幾步:
I)標簽ID由非O即I的二進制位組成,唯一標識一個標簽,左邊為高位。首先標簽將其ID從高位到低位每四個二進制位分成一維,由此可將標簽分成若干維,如1,2,3維。例如標簽ID為0100110001111110,則可以分為四維,其中第1、2、3、4維分別是0100 UlOO、0111、 1110 。
[0034]2)讀寫器初始化當前查詢維數RN=1,查詢前綴X=null,當X=null時,組號為O的所有標簽均響應。
[0035]3)發(fā)送查詢命令Req (X,RN),將X,RN告知標簽;讀寫器根據第RN維中I的個數及位置關系,依據查詢維中的標簽前綴與計數器GC的對應關系(如表1)對GC賦值,并向讀寫器反饋表示GC值的信息序列。
[0036]①查詢維中的標簽前綴與GC的關系如下:如當前查詢標簽的第RN維數據,標簽第RN維中I的個數分別為I和3,則相應的GC分別為I和3 ;1的個數為O或4,則GC=4 ;1的個數為2且最高位為1,則GC=2,;1的個數為2且最高位為0,則GC=5。
[0037]②標簽向讀寫器發(fā)送GC值的規(guī)則如下:標簽將GC值用長度為5的二進制表示,用I的位置表示GC的值。如標簽的GC=4,則標簽發(fā)送的數據為01000。
[0038]表1.查詢維中的標簽前綴與計數器GC的對應關系
【權利要求】
1.一種基于反饋機制的RFID防碰撞算法,該算法約定標簽對象包括隨機數產生器TC、計數器GC、標簽組號存儲器TG,讀寫器對象包括當前查詢維數RN,組數GN,其特征在于,該算法步驟還包括: 步驟I)標簽分組:讀寫器發(fā)送命令Req(GN),初始化組數GN,標簽利用標簽內的隨機數產生器TC生成O — GN之間的隨機數,然后將所生成的隨機數保存在標簽組號存儲器TG中,TG的值便是標簽所在的組號,標簽隨機分成GN+1組,讀寫器對組號為“O”的標簽進行識別,完成對“O”組的識別后,其余組號大于“O”的標簽均將組號減一,再開始下一輪對新“O”組標簽的識別; 步驟2)標簽組內分維識別:首先讀寫器初始化當前查詢維數RN,發(fā)送查詢命令Req (X,RN),依據標簽前綴與計數器GC的對應關系對GC賦值,然后讀寫器接收數據GC值,發(fā)送查詢命令Request (X,RN, gc),最后讀寫器檢測碰撞情況,依據數據碰撞與標簽前綴的判斷關系獲取命令參數,判斷堆棧; 步驟3)標簽反饋識別:首先讀寫器求出[Μ/V]并反饋給標簽,令GN= [M/V]-1,然后標簽產生O-GN之間的隨機數作為標簽組號,存于標簽組號存儲器TG中,選擇組號為“O”的標簽進行響應,最后檢測碰撞情況,算法結束。
2.根據權利要求1所述的基于反饋機制的RFID防碰撞算法,其特征在于,所述的標簽其ID號由非“O”即“I”的二進制位組成,每個標簽將其ID號從左至右每四個二進制位分為一維。
3.根據權利要求1所述的基于反饋機制的RFID防碰撞算法,其特征在于,所述步驟2)中的標簽前綴與計數器GC的對應關系為GC=I時,標簽前綴為0001 0010 0100 1000 ;GC=2時,標簽前綴為1010 1001 1100 ;GC=3時,標簽前綴為0111 1011 1110 1101;GC=4時,標簽前綴為0000 1111 ;GC=5時,標簽前綴為0011 0110 0101。
4.根據權利要求1所述的基于反饋機制的RFID防碰撞算法,其特征在于,所述步驟2)中的數據碰撞與標簽前綴的判斷關系為:在GC=I中只有一個二進制位為“1”,若某一位發(fā)生碰撞,則分別將該碰撞位置“ I ”,其余位置“0”,依次獲得當前查詢維中存在的標簽前綴; 在GC=3中只有一個二進制位為“0”,若某一位發(fā)生碰撞,則分別將該碰撞位置“0”,其余位置“ I ”,依次獲得當前查詢維中存在的標簽前綴; 在GC=4中只有當前查詢維中前綴是0000或1111的標簽,若發(fā)生碰撞,即說明同時存在 0000 和 1111 ; 在GC=2中I的個數為2,但最左位均為“I”,若某一位發(fā)生碰撞,則分別把相應的碰撞位置“ I ”,其余位置“0”,依次獲得當前查詢維中存在的標簽前綴; 在GC=5中I的個數為2,但最左位為“O”,若某一位發(fā)生碰撞,則分別把相應的碰撞位置“0”,其余位置“ I ”,依次獲得當前查詢維中存在的標簽前綴。
【文檔編號】G06K7/00GK103679092SQ201310375292
【公開日】2014年3月26日 申請日期:2013年8月26日 優(yōu)先權日:2013年8月26日
【發(fā)明者】鄭嘉利, 韋冬雪 申請人:廣西南寧市東森動力信息科技有限公司