位匹配前綴。
[0053] 在上述方案的基礎(chǔ)上,上一實(shí)施例步驟S14中的直到被識(shí)別區(qū)域上的所有RFID標(biāo) 簽被識(shí)別完畢的過程具體為:直到OPEN表為空為止。
[0054] 本發(fā)明實(shí)施例公開了一種更具體的基于多叉樹的RFID防碰撞方法,假設(shè)被識(shí)別 區(qū)域上有六個(gè)待識(shí)別的RFID標(biāo)簽,分別為Tagl~Tag6,每個(gè)RFID標(biāo)簽的標(biāo)簽序列分別如 下:
[0055] Tagl:00111101;Tag2:01011000 ;
[0056] Tag3:10010101;Tag4:11110010 ;
[0057] Tag5:01011111 ;Tag6:10010100。
[0058] 由上可見,本實(shí)施例中,每個(gè)RFID標(biāo)簽的標(biāo)簽序列均為8位序列。
[0059] 則,本實(shí)施例中基于多叉樹的RFID防碰撞方法具體如下:
[0060] 步驟S211 :對(duì)OPEN表和存儲(chǔ)區(qū)進(jìn)行清空處理;
[0061] 步驟S212 :向被識(shí)別區(qū)域上的所有RFID標(biāo)簽(即Tagl~Tag6)發(fā)送Request命 令,每一個(gè)RFID標(biāo)簽接收到Request命令后,將返回自身的標(biāo)簽序列。由于上述六個(gè)標(biāo)簽 序列中除了第四位的序列號(hào)外,其余位的序列號(hào)并不完全相同,由此可知本次查詢操作所 得到的碰撞信息為xxxlxxxx,其中,X表示發(fā)生碰撞的位,1表示沒有發(fā)生碰撞的位。這樣, 每一個(gè)RFID標(biāo)簽對(duì)應(yīng)的碰撞位序列分別為:
[0062] Tagl:0011101;Tag2:0101000;
[0063]Tag3:1000101 ;Tag4:1110010 ;
[0064] Tag5:0101111 ;Tag6:1000100。
[0065] 步驟S221 :利用碰撞信息xxxlxxxx,構(gòu)造相應(yīng)的鎖定位置參數(shù)11101111,并將包 含鎖定位置參數(shù)11101111的鎖定命令Lock(lllOllll)發(fā)送至被識(shí)別區(qū)域上的所有RFID 標(biāo)簽;RFID標(biāo)簽根據(jù)表一中示出的編碼規(guī)則,構(gòu)造相應(yīng)的第一序列:
[0066]表一
[0067]
[0068] 其中,表一示出的是關(guān)于三個(gè)碰撞位序列號(hào)的編碼規(guī)則,當(dāng)然,根據(jù)實(shí)際的應(yīng)用需 要,也可以在本實(shí)施例中應(yīng)用有關(guān)兩個(gè)碰撞位序列號(hào)的編碼規(guī)則,或者有關(guān)三個(gè)以上碰撞 位序列號(hào)的編碼規(guī)則。
[0069] 本實(shí)施例中,第一序列包括第一編碼序列和第一剩余序列;任一RFID標(biāo)簽返回的 第一編碼序列為該RFID標(biāo)簽對(duì)碰撞位序列的前3個(gè)序列號(hào)進(jìn)行編碼后得到的序列;任一 RFID標(biāo)簽返回的第一剩余序列為該RFID標(biāo)簽的碰撞位序列中去除前3個(gè)序列號(hào)后剩下的 序列;例如,對(duì)于Tagl來說,其碰撞位序列為0011101,顯然,該碰撞位序列的前3個(gè)序列號(hào) 為001,由表一可知,與001對(duì)應(yīng)的第一編碼序列為00000010,而Tagl返回的第一剩余序列 則是從其碰撞位序列0011101中去除前3個(gè)序列號(hào)001后剩下的序列,S卩1101,則該Tagl 標(biāo)簽所對(duì)應(yīng)的第一序列則是000000101101。同理可得其他RFID標(biāo)簽所對(duì)應(yīng)的第一序列。 具體的,每一個(gè)RFID標(biāo)簽返回的第一序列分別為:
[0070] Tagl:000000101101 ;Tag2:000001001000;
[0071] Tag3:000100000101 ;Tag4:100000000010 ;
[0072]Tag5:000001001111 ;Tag6:000100000100〇
[0073] 步驟S222 :對(duì)每一RFID標(biāo)簽接收到鎖定命令后返回的第一編碼序列進(jìn)行解碼,相 應(yīng)地得到每一RFID標(biāo)簽對(duì)應(yīng)的碰撞位匹配前綴,其中,與Tagl~Tag6分別對(duì)應(yīng)的碰撞位 匹配前綴依次為〇〇1、〇1〇、1〇〇、111、〇1〇、和1〇〇。
[0074] 步驟S231:分別將具有相同的碰撞位匹配前綴的RFID標(biāo)簽分為一類,也即得到 四類RFID標(biāo)簽,這四類RFID標(biāo)簽所對(duì)應(yīng)的碰撞位匹配前綴分別為001、010、100和111,并 將同一類RFID標(biāo)簽所對(duì)應(yīng)的碰撞位匹配前綴存儲(chǔ)至OPEN表。也即,Tagl為一類、Tag2和 Tag5為一類、Tag3和Tag6為一類、Tag4為另一類。
[0075] 步驟S241:按照時(shí)間先后順序,依次向步驟S231中得到的每一類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ū);例如,向碰撞位匹配前綴為010的一類RFID標(biāo)簽發(fā)送Request (010)命令, 其余的以此類推。
[0076] 步驟S242:當(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) 簽的碰撞位匹配前綴后得到的序列;其中,任一RFID標(biāo)簽返回的第二序列包括第二編碼序 列和第二剩余序列;任一RFID標(biāo)簽返回的第二編碼序列為該RFID標(biāo)簽對(duì)當(dāng)前剩余碰撞序 列的前3個(gè)序列號(hào)進(jìn)行編碼后得到的序列;任一RFID標(biāo)簽返回的第二剩余序列為該RFID 標(biāo)簽的當(dāng)前剩余碰撞序列中去除前3個(gè)序列號(hào)后剩下的序列。
[0077] 例如,對(duì)于Tagl標(biāo)簽來說,其接收到Request(001)命令后,將返回根據(jù)Tagl標(biāo)簽 的當(dāng)前剩余碰撞序列得到的第二序列,其中,Tagl標(biāo)簽的當(dāng)前剩余碰撞序列為從Tagl標(biāo)簽 的碰撞位序列0011101中去除Tagl標(biāo)簽當(dāng)前的碰撞位匹配前綴001后得到的序列,也即 1101 ;Tagl標(biāo)簽對(duì)應(yīng)的第二序列包括第二編碼序列和第二剩余序列,其中,該標(biāo)簽的第二 編碼序列為對(duì)當(dāng)前剩余碰撞序列1101的前3個(gè)序列號(hào)(即110)進(jìn)行編碼后得到的序列, 具體的編碼規(guī)則可參見表一,由此可知Tagl標(biāo)簽對(duì)應(yīng)的第二編碼序列為01000000,另外, Tagl標(biāo)簽對(duì)應(yīng)的第二剩余序列為當(dāng)前剩余碰撞序列1101去除前3個(gè)序列號(hào)(即110)后得 到的序列,也即為1,由此可知,Tagl標(biāo)簽對(duì)應(yīng)的第二序列為010000001。同理,其他的RFID 標(biāo)簽所對(duì)應(yīng)的第二序列以此類推便可得到。具體的,每一類RFID標(biāo)簽所對(duì)應(yīng)的第二序列分 別為:
[0078] Tagl:0!000000!;
[0079] Tag2 和Tag5 :000100000 和 100000001 ;
[0080] Tag3 和Tag6 :000001001和 000001000 ;
[0081] Tag4 :000000100。
[0082] 步驟S243 :其中,對(duì)于Tag1和Tag4標(biāo)簽來說,它們分別接收到各自對(duì)應(yīng)的 Request(R-UID)命令后,由于沒有產(chǎn)生進(jìn)一步的碰撞信息,所以Tagl和Tag4在對(duì)各自的 Request(R-UID)命令做出應(yīng)答后,接下來將會(huì)被直接進(jìn)行識(shí)別。
[0083] 而對(duì)于Tag3和Tag6來說,由于它們是屬于同一類的,所以它們將接收到相同的 Request(R-UID)命令,也即均接收到Request(100)命令。由于它們接收到Request(100) 命令后所返回的各自的第二系列(即000001001和000001000)之間,雖然發(fā)生了碰撞,但 由于碰撞位只有一位,所以能夠?qū)ag3和Tag6進(jìn)行直接的識(shí)別處理。
[0084] 對(duì)于Tag2和Tag5來說,它們均接收到Request(010)命令,各自返回000100000 和100000001,上述兩個(gè)返回的第二序列之間顯然產(chǎn)生了碰撞信息,而且碰撞位為3位,故 需要重新構(gòu)造Tag2和Tag5的碰撞位匹配前綴,也即,對(duì)Tag2和Tag5標(biāo)簽返回的第二序 列中的第二編碼序列進(jìn)行解碼,相應(yīng)地得到解碼后的序列100和111,并將解碼后得到的序 列與當(dāng)前Request(010)命令對(duì)應(yīng)的碰撞位匹配前綴010進(jìn)行結(jié)合,得到Tag2標(biāo)簽的新的 碰撞位匹配前綴為010100和Tag5標(biāo)簽的新的碰撞位匹配前綴010111 ;然后以新的碰撞位 匹配前綴為依據(jù),對(duì)Tag2和Tag5進(jìn)行再次分類,從而得到兩類RFID標(biāo)簽,此時(shí),Tag2作 為一類標(biāo)簽,而Tag5作為另一類標(biāo)簽;接著向Tag2發(fā)送Request(0101