一種基于多叉樹(shù)的rfid防碰撞方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及無(wú)線射頻識(shí)別技術(shù)領(lǐng)域,特別涉及一種基于多叉樹(shù)的RFID防碰撞方 法。
【背景技術(shù)】
[0002] RFID(RFID,即RadioFrequencyIdentification,無(wú)線射頻識(shí)別)技術(shù)作為一種 通信技術(shù),可通過(guò)非接觸的方式,對(duì)RFID標(biāo)簽進(jìn)行識(shí)別并讀寫(xiě)RFID標(biāo)簽中的相關(guān)數(shù)據(jù)。
[0003] 隨著RFID技術(shù)應(yīng)用的發(fā)展,一個(gè)RFID閱讀器通常需要對(duì)多個(gè)RFID標(biāo)簽進(jìn)行識(shí)別 處理。當(dāng)RFID閱讀器向一定范圍內(nèi)的一組RFID標(biāo)簽發(fā)送查詢指令時(shí),可能會(huì)存在兩個(gè)或 兩個(gè)以上的RFID標(biāo)簽同時(shí)對(duì)閱讀器發(fā)送的查詢指令進(jìn)行響應(yīng),從而造成數(shù)據(jù)信息之間的 相互干擾,由此大大降低了閱讀器的識(shí)別速度和識(shí)別效率。
[0004] 綜上所述可以看出,如何實(shí)現(xiàn)對(duì)多個(gè)RFID標(biāo)簽進(jìn)行正確無(wú)誤的識(shí)別處理是目前 亟待解決的問(wèn)題。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明的目的在于提供一種基于多叉樹(shù)的RFID防碰撞方法,實(shí)現(xiàn)了對(duì) 多個(gè)RFID標(biāo)簽進(jìn)行正確無(wú)誤的識(shí)別處理的目的。其具體方案如下:
[0006] -種基于多叉樹(shù)的RFID防碰撞方法,包括:
[0007] 步驟S11:同時(shí)對(duì)被識(shí)別區(qū)域上的所有RFID標(biāo)簽進(jìn)行查詢操作;
[0008] 步驟S12 :令!^為正整數(shù),其中,iG{1,2,...,叫,并且1(1+1大于1(1;判斷所述被 識(shí)別區(qū)域上的所有RFID標(biāo)簽對(duì)步驟S11中的查詢操作進(jìn)行應(yīng)答后是否產(chǎn)生碰撞信息并且 該碰撞信息的碰撞位的數(shù)量大于一位,如果否,則對(duì)所述被識(shí)別區(qū)域上的所有RFID標(biāo)簽進(jìn) 行識(shí)別,并結(jié)束,如果是,則獲取所述被識(shí)別區(qū)域上每一RFID標(biāo)簽對(duì)應(yīng)的碰撞位匹配前綴, 該碰撞位匹配前綴為RFID標(biāo)簽的碰撞位序列的前&個(gè)序列號(hào),此處i= 1,其中,任一RFID 標(biāo)簽的碰撞位序列為該RFID標(biāo)簽的標(biāo)簽序列中在位置上與步驟S12中產(chǎn)生的碰撞信息的 碰撞位對(duì)應(yīng)的序列;
[0009] 步驟S13:分別將具有相同的碰撞位匹配前綴的RFID標(biāo)簽分為一類,相應(yīng)地得到 一類或一類以上的RFID標(biāo)簽;
[0010] 步驟S14 :按照時(shí)間先后順序,依次對(duì)步驟S13中得到的每一類RFID標(biāo)簽中的所 有RFID標(biāo)簽進(jìn)行查詢操作;在對(duì)任一類RFID標(biāo)簽進(jìn)行查詢操作時(shí),判斷該類RFID標(biāo)簽中 的所有RFID標(biāo)簽對(duì)本次查詢操作進(jìn)行應(yīng)答后是否產(chǎn)生碰撞信息并且該碰撞信息的碰撞位 的數(shù)量大于一位,如果否,則對(duì)該類RFID標(biāo)簽中的所有RFID標(biāo)簽進(jìn)行識(shí)別,如果是,則令i =i+1,并重新構(gòu)造該類RFID標(biāo)簽中每一RFID標(biāo)簽的碰撞位匹配前綴,該碰撞位匹配前綴 為RFID標(biāo)簽的碰撞位序列的前&個(gè)序列號(hào),并進(jìn)入步驟S13,直到所述被識(shí)別區(qū)域上的所 有RFID標(biāo)簽被識(shí)別完畢。
[0011] 優(yōu)選的,步驟S11具體包括:對(duì)OPEN表和存儲(chǔ)區(qū)進(jìn)行清空處理;向所述被識(shí)別區(qū) 域上的所有RFID標(biāo)簽發(fā)送Request命令,其中,任一RFID標(biāo)簽接收到所述Request命令后 需返回自身的標(biāo)簽序列。
[0012] 優(yōu)選的,步驟S12中,所述獲取所述被識(shí)別區(qū)域上每一RFID標(biāo)簽對(duì)應(yīng)的碰撞位匹 配前綴的過(guò)程,包括:
[0013] 利用步驟S12得到的碰撞信息,構(gòu)造相應(yīng)的鎖定位置參數(shù),并將包含所述鎖定位 置參數(shù)的鎖定命令發(fā)送至所述被識(shí)別區(qū)域上的所有RFID標(biāo)簽;其中,任一RFID標(biāo)簽接收 到所述鎖定命令后需返回第一序列;該第一序列包括第一編碼序列和第一剩余序列;任一 RFID標(biāo)簽返回的第一編碼序列為該RFID標(biāo)簽對(duì)碰撞位序列的前&個(gè)序列號(hào)進(jìn)行編碼后得 到的序列;任一RFID標(biāo)簽返回的第一剩余序列為該RFID標(biāo)簽的碰撞位序列中去除前&個(gè) 序列號(hào)后剩下的序列;
[0014] 對(duì)每一RFID標(biāo)簽接收到所述鎖定命令后返回的第一編碼序列進(jìn)行解碼,相應(yīng)地 得到每一RFID標(biāo)簽對(duì)應(yīng)的碰撞位匹配前綴。
[0015] 優(yōu)選的,步驟S13具體包括:
[0016] 分別將具有相同的碰撞位匹配前綴的RFID標(biāo)簽分為一類,并將同一類RFID標(biāo)簽 所對(duì)應(yīng)的碰撞位匹配前綴存儲(chǔ)至所述OPEN表,相應(yīng)地得到一類或一類以上的RFID標(biāo)簽。
[0017] 優(yōu)選的,步驟S14中,所述按照時(shí)間先后順序,依次對(duì)步驟S13中得到的每一類 RFID標(biāo)簽中的所有RFID標(biāo)簽進(jìn)行查詢操作的過(guò)程,包括:
[0018] 按照時(shí)間先后順序,依次向步驟S13中得到的每一類RFID標(biāo)簽中的所有RFID標(biāo) 簽發(fā)送Request (R-UID)命令,其中,與任一類RFID標(biāo)簽對(duì)應(yīng)的Request (R-UID)命令均包 括R-UID參數(shù),該R-UID參數(shù)與該類RFID標(biāo)簽所對(duì)應(yīng)的碰撞位匹配前綴相同,并且,每當(dāng) 向任一類RFID標(biāo)簽發(fā)送相應(yīng)的Request (R-UID)命令時(shí),均需從所述OPEN表中刪除與該 Request (R-UID)命令對(duì)應(yīng)的碰撞位匹配前綴,并將該碰撞位匹配前綴存儲(chǔ)至所述存儲(chǔ)區(qū);
[0019] 當(dāng)任一類RFID標(biāo)簽中的每一RFID標(biāo)簽接收到相應(yīng)的Request (R-UID)命令后,返 回相應(yīng)的第二序列;該第二序列為該RFID標(biāo)簽根據(jù)當(dāng)前剩余碰撞序列得到的序列;該RFID 標(biāo)簽的當(dāng)前剩余碰撞序列為從該RFID標(biāo)簽中的碰撞位序列去除當(dāng)前該RFID標(biāo)簽的碰撞位 匹配前綴后得到的序列;
[0020] 其中,任一RFID標(biāo)簽返回的第二序列包括第二編碼序列和第二剩余序列;任一 RFID標(biāo)簽返回的第二編碼序列為該RFID標(biāo)簽對(duì)當(dāng)前剩余碰撞序列的前n個(gè)序列號(hào)進(jìn)行編 碼后得到的序列,n=K1+1-M壬一RFID標(biāo)簽返回的第二剩余序列為該RFID標(biāo)簽的當(dāng)前剩 余碰撞序列中去除前n個(gè)序列號(hào)后剩下的序列。
[0021] 優(yōu)選的,在對(duì)任一RFID標(biāo)簽進(jìn)行識(shí)別后,還包括:
[0022] 向該RFID標(biāo)簽發(fā)送Sleep (S-UID)命令,以禁止該RFID標(biāo)簽對(duì)外界的任何指令進(jìn) 行應(yīng)答,其中,與任一RFID標(biāo)簽對(duì)應(yīng)的Sleep (S-UID)命令均包括S-UID參數(shù),該S-UID參 數(shù)與該RFID標(biāo)簽的碰撞位序列相同,并從所述存儲(chǔ)區(qū)中刪除與該RFID標(biāo)簽對(duì)應(yīng)的碰撞位 匹配前綴。
[0023] 優(yōu)選的,步驟S14中,所述重新構(gòu)造該類RFID標(biāo)簽中每一RFID標(biāo)簽的碰撞位匹配 前綴的過(guò)程,包括:
[0024] 對(duì)該類RFID標(biāo)簽中的每一RFID標(biāo)簽返回的第二編碼序列進(jìn)行解碼,并將解碼后 得到的序列與當(dāng)前Request (R-UID)命令對(duì)應(yīng)的碰撞位匹配前綴進(jìn)行結(jié)合,得到該RFID標(biāo) 簽的新的碰撞位匹配前綴。
[0025] 優(yōu)選的,步驟S14中,所述直到所述被識(shí)別區(qū)域上的所有RFID標(biāo)簽被識(shí)別完畢的 過(guò)程,包括:直到所述OPEN表為空為止。
[0026] 本發(fā)明提供了一種基于多叉樹(shù)的RFID防碰撞方法,包括:步驟S11 :同時(shí)對(duì)被識(shí)別 區(qū)域進(jìn)行查詢操作;步驟S12 :令!^為正整數(shù),其中,iG{1,2,...,叫,并且1(1+1大于1(1;判 斷是否產(chǎn)生碰撞信息并且該碰撞信息的碰撞位的數(shù)量大于一位,如果否,則對(duì)被識(shí)別區(qū)域 上的所有RFID標(biāo)簽進(jìn)行識(shí)別,并結(jié)束,如果是,則獲取每一RFID標(biāo)簽對(duì)應(yīng)的碰撞位匹配前 綴,該碰撞位匹配前綴為RFID標(biāo)簽的碰撞位序列的前&個(gè)序列號(hào),此處i= 1 ;步驟S13 : 分別將具有相同的碰撞位匹配前綴的RFID標(biāo)簽分為一類;步驟S14 :按照時(shí)間先后順序, 依次對(duì)步驟S13中得到的每一類RFID標(biāo)簽中的所有RFID標(biāo)簽進(jìn)行查詢操作;在對(duì)任一類 RFID標(biāo)簽進(jìn)行查詢操作時(shí),判斷是否產(chǎn)生碰撞信息并且該碰撞信息的碰撞位的數(shù)量大于一 位,如果否,則對(duì)該類RFID標(biāo)簽中的所有RFID標(biāo)簽進(jìn)行識(shí)別,如果是,則令i=i+1,并重新 構(gòu)造該類RFID標(biāo)簽中每一RFID標(biāo)簽的碰撞位匹配前綴,該碰撞位匹配前綴為RFID標(biāo)簽的 碰撞位序列的前1個(gè)序列號(hào),并進(jìn)入步驟S13,直到被識(shí)別區(qū)域上的所有RFID標(biāo)簽被識(shí)別 完畢??梢?jiàn),本發(fā)明通過(guò)對(duì)相互之間產(chǎn)生碰撞信息并且碰撞位的數(shù)量大于一位的所有RFID 標(biāo)簽進(jìn)行一次或多次的分類,然后按照時(shí)間先后順序,對(duì)每一類RFID標(biāo)簽進(jìn)行再次查詢操 作,由此形成了一種多叉樹(shù)查詢機(jī)制,直到每一類RFID標(biāo)簽均被成功識(shí)別,從而完成對(duì)被 識(shí)別區(qū)域上所有的RFID標(biāo)簽的識(shí)別工作,由此實(shí)現(xiàn)了對(duì)多個(gè)RFID標(biāo)簽進(jìn)行正確無(wú)誤的識(shí) 別處理的目的。
【附圖說(shuō)明】
[0027] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 發(fā)明的實(shí)施例,對(duì)