續(xù)碰撞位,則跳轉(zhuǎn)至步驟5 ;若最高碰撞位和次高碰撞位為非連續(xù)碰撞位,則跳轉(zhuǎn)至步驟6 ;
[0036]步驟5、令最高碰撞位和次高碰撞位為第C和C+1位,將公共前綴C0M_STR串聯(lián)接收響應(yīng)的前 C-1 位,構(gòu)成新的 C0M_STR,令 prel = ’ 11’,pre2 = ’ 01’,并將(C0M_STR,prel,prel-1)和(C0M_STR,pre2,pre2-l)分別壓入堆棧,進(jìn)入步驟7 ;
[0037]步驟6、令最高碰撞位為第C位,將公共前綴C0M_STR串聯(lián)接收響應(yīng)的前C_1位,構(gòu)成新的COM_STR,令prel = ’ I’,并將(COM_STR,prel, prel-1)壓入堆棧,進(jìn)入步驟7 ;
[0038]步驟7、判斷堆棧是否為空,若是,整個(gè)識(shí)別流程結(jié)束;若否,則返回步驟I。所述的標(biāo)簽的ID編碼均采用FMO或者曼徹斯特編碼方式。
[0039]本發(fā)明具體應(yīng)用于單個(gè)讀寫(xiě)器和多個(gè)標(biāo)簽組成的RFID環(huán)境中,解決多個(gè)標(biāo)簽同時(shí)與讀寫(xiě)器通信時(shí)所引發(fā)的多標(biāo)簽碰撞問(wèn)題,算法采用堆棧結(jié)構(gòu),實(shí)現(xiàn)簡(jiǎn)單,待識(shí)別的標(biāo)簽只需要接收命令,然后判斷命令為CMD_INI命令還是PR0BE_EQ命令,然后做出相應(yīng)的響應(yīng),如圖2所示為讀寫(xiě)器命令的格式和標(biāo)簽響應(yīng)數(shù)據(jù)的格式。若標(biāo)簽接收到的為CMD_INI命令,則返回完整ID,若是PR0BE_EQ命令,則匹配C0M_STR,Prel,以及Pre2然后再返回相應(yīng)的數(shù)據(jù)。
[0040]下面以6個(gè)標(biāo)簽的識(shí)別過(guò)程為例,6個(gè)標(biāo)簽的ID如圖3所示,根據(jù)圖1所示的算法流程圖,具體實(shí)施循環(huán)如下,
[0041]循環(huán)1:初始化狀態(tài)時(shí),讀寫(xiě)器以空串(ε )為查詢前綴參數(shù),發(fā)送CMD_INI命令,此時(shí)讀寫(xiě)器工作范圍內(nèi)的6個(gè)標(biāo)簽均響應(yīng),且發(fā)送自身的完整ID ;讀寫(xiě)器接收到的響應(yīng)為“xxxxxxxx”,其中X表示標(biāo)簽ID所在二進(jìn)制位發(fā)生碰撞,讀寫(xiě)器判斷出最高位和次高位產(chǎn)生連續(xù)碰撞,根據(jù)算法原理將(ε,11,10),(ε ,01,00)壓入堆棧;由于堆棧不為空,所以必須進(jìn)入第二次循環(huán)。
[0042]循環(huán)2:讀寫(xiě)器提取前綴參數(shù)(ε ,11,10)并發(fā)送PR0BE_EQ命令,此時(shí)標(biāo)簽E、F的ID與前綴I匹配,因此會(huì)立即響應(yīng),產(chǎn)生碰撞;標(biāo)簽C的ID與前綴2匹配,因此在延遲Tdelay+T3時(shí)間后響應(yīng),無(wú)碰撞產(chǎn)生,因此會(huì)被成功識(shí)別;由于響應(yīng)部分I產(chǎn)生碰撞,且響應(yīng)數(shù)據(jù)為000x01,因此讀寫(xiě)器更新C0M_STR為11000,prel = 1,并將(C0M_STR,1,O)壓入堆棧,堆棧不為空,所以進(jìn)入第三次循環(huán)。
[0043]循環(huán)3:讀寫(xiě)器提取前綴參數(shù)(11000,1,0)并發(fā)送PR0BE_EQ命令,此時(shí)標(biāo)簽F和E在同一時(shí)隙內(nèi)被成功識(shí)別;然而堆棧還不為空,所以進(jìn)入第四次循環(huán)。
[0044]循環(huán)4、讀寫(xiě)器提取前綴參數(shù)(ε,01,00)并發(fā)送PR0BE_EQ命令,標(biāo)簽D響應(yīng)前綴I因此被成功識(shí)別,標(biāo)簽A、B在延遲Tdelay+T3時(shí)間后響應(yīng),產(chǎn)生碰撞,且響應(yīng)數(shù)據(jù)為xlxxlx,因此讀寫(xiě)器更新C0M_STR為00,prel = 1,并將(C0M_STR,1,O)壓入堆棧;堆棧不為空,所以進(jìn)入第五次循環(huán)。
[0045]循環(huán)5、讀寫(xiě)器提取前綴參數(shù)(00,1,0)并發(fā)送PR0BE_EQ命令,標(biāo)簽B、A分別匹配前綴I和前綴2,因此在同一時(shí)隙內(nèi),被成功識(shí)別,此時(shí)堆棧為空,整個(gè)識(shí)別過(guò)程結(jié)束。
[0046]圖4、圖5和圖6分別為使用碰撞樹(shù)(CT)、連續(xù)碰撞位映射算法(CCMA)和多進(jìn)制查詢樹(shù)算法(MQT)識(shí)別圖3中相同6個(gè)標(biāo)簽的過(guò)程,此部分為本領(lǐng)域技術(shù)人員的公知常識(shí),在此不作詳細(xì)描述,由圖3、圖4、圖5及圖6對(duì)比可以看出,本發(fā)明基于查詢樹(shù)方法的多前綴匹配的確定性防碰撞算法相對(duì)于其他算法減少了查詢次數(shù),提高了識(shí)別效率。
[0047]圖7、圖8和圖9給出了本發(fā)明算法和碰撞樹(shù)(CT)、連續(xù)碰撞位映射算法(CCMA)、提高型分配樹(shù)隙Aloha算法(ImATSA)以及多進(jìn)制查詢樹(shù)算法(MQT)的比較,本發(fā)明在吞吐率、識(shí)別效率和通信復(fù)雜度上的優(yōu)勢(shì)明顯。
[0048]本領(lǐng)域的普通技術(shù)人員將會(huì)意識(shí)到,這里所述的實(shí)施例是為了幫助讀者理解本發(fā)明的原理,應(yīng)被理解為本發(fā)明的保護(hù)范圍并不局限于這樣的特別陳述和實(shí)施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開(kāi)的這些技術(shù)啟示做出各種不脫離本發(fā)明實(shí)質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于查詢樹(shù)方法的多前綴匹配的確定性防碰撞算法,其特征在于,包括如下步驟: 步驟1、讀寫(xiě)器從堆棧中讀取查詢前綴prefix,初始狀態(tài)時(shí),查詢前綴為空串,發(fā)送查詢命令; 步驟2、讀寫(xiě)器工作范圍內(nèi)的待識(shí)別標(biāo)簽接收到讀寫(xiě)器發(fā)送的查詢命令,并根據(jù)發(fā)送查詢命令給予匹配響應(yīng); 步驟3、讀寫(xiě)器接收標(biāo)簽響應(yīng);響應(yīng)成功結(jié)束流程,發(fā)生碰撞跳轉(zhuǎn)至步驟4 ; 步驟4、讀寫(xiě)器檢測(cè)標(biāo)簽響應(yīng)碰撞位,若最高碰撞位和次高碰撞位為連續(xù)碰撞位,則跳轉(zhuǎn)至步驟5 ;若最高碰撞位和次高碰撞位為非連續(xù)碰撞位,則跳轉(zhuǎn)至步驟6 ; 步驟5、令最高碰撞位和次高碰撞位為第C和C+1位,將公共前綴串聯(lián)接收響應(yīng)的前C-1位,構(gòu)成新的公共前綴,給定后續(xù)數(shù)值,最后分別壓入堆棧,進(jìn)入步驟7 ; 步驟6、另最高碰撞位為第C位,將公共前綴串聯(lián)接收響應(yīng)的前C-1位,構(gòu)成新的公共前綴,給定后續(xù)數(shù)值,最后壓入堆棧,進(jìn)入步驟7 ; 步驟7、判斷堆棧是否為空,若是,整個(gè)識(shí)別流程結(jié)束;若否,則返回步驟I。2.如權(quán)利要求1所述的基于查詢樹(shù)方法的多前綴匹配的確定性防碰撞算法,其特征在于:所述步驟I中的查詢命令分別為CMD_INI和PROBE_EQ,在初始化階段發(fā)送的命令位CMD_INI,后面均為PROBE_EQ,當(dāng)標(biāo)簽收到CMD_INI命令時(shí)返回完整的ID數(shù)據(jù),當(dāng)接收到PROBE_EQ命令時(shí)則返回匹配后的剩余數(shù)據(jù)。3.如權(quán)利要求2所述的基于查詢樹(shù)方法的多前綴匹配的確定性防碰撞算法,其特征在于,所述步驟2的過(guò)程為:讀寫(xiě)器工作范圍內(nèi)的待識(shí)別標(biāo)簽接收到讀寫(xiě)器發(fā)送的查詢命令,若是CMD_INI命令,則標(biāo)簽會(huì)返回自身的完整ID數(shù)據(jù);若是RPOBE_EQ命令,則標(biāo)簽利用自身的匹配電路提取出查詢前綴,COM_STR,Prel,以及Pre2 ;其中COM_STR,Pre I,Pre2分別為前文所述的公共前綴,前綴I和前綴2。若COM_STR匹配,則繼續(xù)匹配Prel,若Prel匹配則返回ID中除去前綴匹配部分之外的剩余部分,若Prel不匹配則繼續(xù)匹配Pre2 ;若Pre2匹配,則延遲時(shí)間Tdelay后返回ID中除去前綴匹配部分之外的剩余部分;SPre2也不匹配,那么繼續(xù)等待下一次查詢命令。4.如權(quán)利要求3所述的基于查詢樹(shù)方法的多前綴匹配的確定性防碰撞算法,其特征在于,步驟3的具體過(guò)程為:讀寫(xiě)器接收標(biāo)簽響應(yīng);若在預(yù)計(jì)時(shí)間段Tl內(nèi)接收到標(biāo)簽響應(yīng)且無(wú)碰撞,則成功識(shí)別標(biāo)簽,若接收到的響應(yīng)產(chǎn)生碰撞,則說(shuō)明有多個(gè)標(biāo)簽同時(shí)響應(yīng),并繼續(xù)等待時(shí)間段T3接收第二段響應(yīng);若Tl時(shí)間段內(nèi)無(wú)標(biāo)簽響應(yīng),則說(shuō)明前綴I沒(méi)有匹配的標(biāo)簽,則繼續(xù)等待時(shí)間段T&lay+T3接收第二段響應(yīng);若成功接收第二段響應(yīng)無(wú)碰撞那么成功識(shí)別標(biāo)簽,否則跳轉(zhuǎn)到步驟4。5.如權(quán)利要求4所述的基于查詢樹(shù)方法的多前綴匹配的確定性防碰撞算法,其特征在于:步驟2和步驟3中所述的Tdelay時(shí)間指的是,標(biāo)簽完整ID數(shù)據(jù)減去COM_STR及Prel部分后傳輸所需要的時(shí)間。6.如權(quán)利要求5所述的基于查詢樹(shù)方法的多前綴匹配的確定性防碰撞算法,其特征在于,所述步驟5的具體過(guò)程為:令最高碰撞位和次高碰撞位為第C和C+1位,將公共前綴COM_STR串聯(lián)接收響應(yīng)的前C-1位,構(gòu)成新的COM_STR,令prel = ’ 11’,pre2 = ’ 01’,并將(COM_STR,prel,prel-Ι)和(COM_STR,pre2,pre2_l)分別壓入堆棧,進(jìn)入步驟 7。7.如權(quán)利要求5所述的基于查詢樹(shù)方法的多前綴匹配的確定性防碰撞算法,其特征在于,所述步驟6的具體過(guò)程為:令最高碰撞位為第C位,將公共前綴COM_STR串聯(lián)接收響應(yīng)的前C-1位,構(gòu)成新的COM_STR,令prel = ’ I’,并將(COM_STR,prel,prel_l)壓入堆棧,進(jìn)入步驟7。8.如權(quán)利要求6或7所述的基于查詢樹(shù)方法的多前綴匹配的確定性防碰撞算法,其特征在于:所述的標(biāo)簽的ID編碼均采用FMO或者曼徹斯特編碼方式。
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于查詢樹(shù)方法的多前綴匹配的確定性防碰撞算法,步驟如下:讀寫(xiě)器讀取查詢前綴,發(fā)送查詢命令;標(biāo)簽收到查詢命令,響應(yīng)匹配;讀寫(xiě)器接收響應(yīng);響應(yīng)成功結(jié)束流程,發(fā)生碰撞至步驟4;檢測(cè)到響應(yīng)碰撞位,若最高碰撞位和次高碰撞位為連續(xù)碰撞位,則至步驟5;若為非連續(xù)碰撞位,則至步驟6;構(gòu)成新公共前綴,給定后續(xù)數(shù)值,最后分別壓入堆棧,進(jìn)入步驟7;構(gòu)成新公共前綴,給定后續(xù)數(shù)值,最后壓入堆棧,進(jìn)入步驟7;判斷堆棧是為空則整個(gè)識(shí)別流程結(jié)束;若否,則返回步驟1。有益效果:引入了多前綴匹配和查詢技術(shù),通過(guò)前綴1和前綴2實(shí)現(xiàn)一個(gè)時(shí)隙識(shí)別多個(gè)標(biāo)簽,徹底消除了多進(jìn)制算法的空閑時(shí)隙,減少了查詢次數(shù),提高了查詢效率。
【IPC分類(lèi)】G06K7/00
【公開(kāi)號(hào)】CN105046181
【申請(qǐng)?zhí)枴緾N201510507665
【發(fā)明人】蘇健, 文光俊, 李建
【申請(qǐng)人】電子科技大學(xué)
【公開(kāi)日】2015年11月11日
【申請(qǐng)日】2015年8月18日