專利名稱:一種rfid閱讀器的多標(biāo)簽識(shí)別方法
技術(shù)領(lǐng)域:
本發(fā)明屬于射頻識(shí)別(RFID,Radio Frequency Identification)技術(shù)領(lǐng)域,尤其 涉及一種RFID閱讀器對多個(gè)標(biāo)簽進(jìn)行識(shí)別的方法。
背景技術(shù):
射頻識(shí)別技術(shù)是自動(dòng)識(shí)別技術(shù)的一種,它利用射頻信號(hào)進(jìn)行非接觸雙向通信以達(dá) 到識(shí)別的目的。典型的RFID系統(tǒng)主要包括兩部分標(biāo)簽(Tag)和讀寫器(Interrogator)。標(biāo)簽適 用于對象身份識(shí)別,其主要模塊集成在一個(gè)IC芯片中,芯片的內(nèi)存用來存儲(chǔ)相關(guān)數(shù)據(jù)。讀 寫器主要由一個(gè)包含外接天線的RF射頻模塊和控制單元組成。讀寫器通過外接天線發(fā)射 的射頻信號(hào)與標(biāo)簽通信。標(biāo)簽接收到從讀寫器發(fā)射的信號(hào)后,通過反向散射(backscatter) 的方式將相關(guān)數(shù)據(jù)發(fā)送給讀寫器,以達(dá)到雙向通信的目的。當(dāng)讀寫器作用范圍內(nèi)存在多 個(gè)標(biāo)簽,如果同一時(shí)隙(Timeslot)有兩個(gè)或兩個(gè)以上的標(biāo)簽向讀寫器返回電子產(chǎn)品代碼 (EPC,Electronic Product Code)信息時(shí),將產(chǎn)生沖突,稱為標(biāo)簽沖突。解決這一沖突的方 法稱為標(biāo)簽識(shí)別的防碰撞算法。防碰撞算法通常分為確定性算法和不確定性算法兩種。不確定性算法中標(biāo)簽以不 確定的隨機(jī)方式響應(yīng)讀寫器。確定性算法主要包括二叉樹搜索算法。不確定性算法大都基 于Aloha機(jī)制,包括時(shí)隙Aloha算法和幀時(shí)隙Aloha算法。二叉樹搜索算法由一個(gè)讀寫器和多個(gè)標(biāo)簽之間規(guī)定的一組命令來實(shí)現(xiàn)。二叉樹 搜索算法的思想是從多個(gè)標(biāo)簽中以某種特定的方式依次選出單個(gè)的標(biāo)簽以實(shí)現(xiàn)標(biāo)簽的識(shí) 別,該特定方式可以保證在一次識(shí)別周期內(nèi)完全識(shí)別所有符合用戶要求的標(biāo)簽。該算法的 實(shí)現(xiàn)中使用了曼徹斯特編碼,該編碼可以在多標(biāo)簽同時(shí)響應(yīng)時(shí),譯出錯(cuò)誤碼字,按比特位識(shí) 別出碰撞,并根據(jù)碰撞的比特位置,重新搜索標(biāo)簽。傳統(tǒng)的二叉樹算法,需要傳輸?shù)臄?shù)據(jù)量 大,傳輸時(shí)間長,影響了 RFID系統(tǒng)的效率。對傳統(tǒng)的二叉樹算法進(jìn)行改進(jìn),可得到動(dòng)態(tài)二叉樹搜索算法。該算法把傳輸?shù)臄?shù) 據(jù)分成兩部分,收發(fā)雙方各自傳送其中一部分?jǐn)?shù)據(jù),可把傳輸?shù)臄?shù)據(jù)減小到一半,達(dá)到縮短 傳輸時(shí)間的目的。國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(huì)(IEC)聯(lián)合制訂的IS0/IEC 18000-6B協(xié)議就是典型的一種動(dòng)態(tài)二叉樹搜索算法,該協(xié)議用于防碰撞算法中的主要命令 包括初始化(Initialize)、選取(Select)、失敗(Fail)、成功(Success)和讀取(Read)等。 該算法的優(yōu)點(diǎn)是識(shí)別率高,在一定的誤碼率下無漏讀產(chǎn)生,同時(shí)也提高了傳輸速度。缺點(diǎn)是 當(dāng)標(biāo)簽數(shù)量增加時(shí),識(shí)別速度仍然會(huì)很慢,影響RFID系統(tǒng)的標(biāo)簽讀取效率。IS0/IEC 18000-6C標(biāo)準(zhǔn)事實(shí)上已經(jīng)成為UHF RFID (超高頻射頻識(shí)別)技術(shù)領(lǐng)域的 全球性的規(guī)范。目前已有超過十二種UHF RFID讀寫器和標(biāo)簽經(jīng)過認(rèn)證符合該標(biāo)準(zhǔn),其中包 括Intel公司研發(fā)的RlOOO超高頻讀寫器。IS0/IEC18000-6C標(biāo)準(zhǔn)中的防碰撞算法采用典 型的時(shí)隙Aloha算法。附圖1所示為IS0/IEC 18000-6C的協(xié)議流程。其中Select、Query、 ACK、NAK、QueryR印和QueryAdjust是讀寫器向標(biāo)簽發(fā)送的命令,RN16、EPC是標(biāo)簽對讀寫器相關(guān)命令的響應(yīng)。標(biāo)簽在收到Query命令之后,根據(jù)Query命令攜帶的Q值,隨機(jī)產(chǎn)生一個(gè) RN16序列,并把該RN16作為自己的時(shí)槽數(shù)(Slot Counter)。此后,標(biāo)簽每次收到QueryR印 命令或者QueryAdjust命令,都將時(shí)槽數(shù)減一。時(shí)槽數(shù)減至0的標(biāo)簽將對QueryR印命令或 者QueryAdjust命令作出響應(yīng),并把本標(biāo)簽的RN16發(fā)送給讀寫器。IS0/IEC 18000-6C協(xié)議雖然可以在一個(gè)識(shí)別周期內(nèi)隨意改變時(shí)隙數(shù),但系統(tǒng)中仍 存在大量空閑時(shí)隙和碰撞時(shí)隙,這些時(shí)隙內(nèi)不能正確識(shí)別標(biāo)簽,浪費(fèi)了大量時(shí)間。如果能充 分利用空閑時(shí)隙和碰撞時(shí)隙,則將加快標(biāo)簽的識(shí)別速度。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服現(xiàn)有技術(shù)標(biāo)簽識(shí)別速度慢的不足,提出了一種RFID閱 讀器的多標(biāo)簽識(shí)別方法。為了實(shí)現(xiàn)上述目的,本發(fā)明提出了技術(shù)方案一種RFID閱讀器的多標(biāo)簽識(shí)別方 法,應(yīng)用于包含RFID閱讀器和多個(gè)標(biāo)簽的RFID系統(tǒng)中,包括以下步驟步驟1 讀寫器向標(biāo)簽群發(fā)送檢測命令,標(biāo)簽收到檢測命令后隨機(jī)從時(shí)隙0到時(shí)隙 (2Q-1)的時(shí)隙序列中選擇其中一個(gè)時(shí)隙編號(hào),同時(shí)生成一個(gè)具有2Q個(gè)比特位的二進(jìn)制數(shù)據(jù) 作為標(biāo)簽的時(shí)隙序列,將所述時(shí)隙序列中與標(biāo)簽選取的時(shí)隙編號(hào)所對應(yīng)的比特位置1,其余 比特位置0,并將該時(shí)隙序列以曼徹斯特編碼的形式傳送給讀寫器,其中Q為自然數(shù),滿足 2Q大于或等于標(biāo)簽數(shù)量。步驟2 讀寫器收到標(biāo)簽發(fā)送的時(shí)隙序列后,檢測標(biāo)簽的時(shí)隙序列的比特位沖突, 如果標(biāo)簽群的時(shí)隙序列的某個(gè)比特位的值全為0值時(shí),則讀寫器可以檢測該位為0,用0表 示該時(shí)隙,把該比特位所對應(yīng)的時(shí)隙作為空閑時(shí)隙;如果標(biāo)簽群的時(shí)隙序列的某個(gè)比特位 既有1值又有0值時(shí),則讀寫器將檢測該位為亂碼,把該比特位所對應(yīng)的時(shí)隙作為非空閑時(shí) 隙,用X表示該時(shí)隙;如果標(biāo)簽群的時(shí)隙序列的某個(gè)比特位的值全為1時(shí),讀寫器將檢測出 該比特位全為1,同時(shí)也把該比特位所對應(yīng)的時(shí)隙作為非空閑時(shí)隙,也用X表示該時(shí)隙;讀 寫器將所有非空閑時(shí)隙組成一個(gè)非空閑時(shí)隙編號(hào)表項(xiàng){S” S2, S3,... , SJ,其中S表示非空 閑時(shí)隙對應(yīng)的編號(hào),i的取值范圍為小于或等于最大時(shí)隙編號(hào)的自然數(shù)。步驟3 讀寫器根據(jù)非空閑時(shí)隙編號(hào)表項(xiàng)將開始識(shí)別標(biāo)簽,讀寫器按照時(shí)隙編號(hào) 從小到大的順序,依次發(fā)送詢問命令Query(S1)給標(biāo)簽群,所述詢問命令包含了時(shí)隙編號(hào) S1 ;收到詢問命令的標(biāo)簽將比較自己的時(shí)隙編號(hào)與詢問命令中的時(shí)隙編號(hào)S1是否相等,如 果標(biāo)簽自己的時(shí)隙編號(hào)等于S1,則該標(biāo)簽向讀寫器響應(yīng)發(fā)送自己的一個(gè)隨機(jī)序列RN16 ;讀 寫器如果檢測到只有一個(gè)隨機(jī)序列RN16,將啟動(dòng)對單個(gè)標(biāo)簽的讀取過程,讀寫器如果檢測 到有兩個(gè)或兩個(gè)以上隨機(jī)序列RN16,將啟動(dòng)二叉樹搜索過程,逐個(gè)讀取響應(yīng)該時(shí)隙上的所 有標(biāo)簽,然后讀寫器依次發(fā)送詢問命令Query (S2)、Query (S3)、…、Query (St),并在每個(gè)時(shí) 隙上重復(fù)本步驟,直到遍歷完所有的時(shí)隙編號(hào)之后,讀寫器就可以將所有的標(biāo)簽一一讀取。上述步驟3中二叉樹搜索過程又包括以下步驟步驟31 讀寫器首先向標(biāo)簽群發(fā)送請求命令Request(EPC),該命令同樣帶有先前 的時(shí)隙編號(hào),在時(shí)隙編號(hào)內(nèi)的所有標(biāo)簽向讀寫器響應(yīng)發(fā)送自己的EPC數(shù)據(jù)。步驟32 讀寫器檢測到多個(gè)EPC數(shù)據(jù)沖突,即收到兩個(gè)或兩個(gè)以上的標(biāo)簽向讀 寫器發(fā)送EPC數(shù)據(jù),讀寫器收到發(fā)生沖突的多個(gè)標(biāo)簽響應(yīng)的EPC值之后,將對采用曼徹斯特編碼的EPC值進(jìn)行比特位的校驗(yàn),根據(jù)曼徹斯特編碼的性質(zhì),如果某比特位全為0,則 可以檢測出該比特位為0 ;如果某比特位全為1,則可以檢測出該比特位為1 ;其它情況 下,將檢測出亂碼,用y值表示亂碼。然后讀寫器將y所在的最高比特位T置0,高于T 的比特位保持不變,低于T的比特位全部置1,從而讀寫器生成用戶身份證明(UID,User Identification)比特序列,讀寫器將UID比特序列以請求命令RequestR印(UID)的形式發(fā) 送給標(biāo)簽群,同樣RequestRep (UID)帶有當(dāng)前的時(shí)隙編號(hào)Si,在時(shí)隙Si內(nèi)的標(biāo)簽收到請求 命令RequestR印(UID)之后,首先比較標(biāo)簽的EPC值與UID的大小,如果EPC值小于或等于 UID,則標(biāo)簽向讀寫器響應(yīng)發(fā)送自己的EPC值,否則不響應(yīng)。步驟33 在讀寫器發(fā)送了請求命令RequestR印(UID)之后,如果接收到單個(gè)標(biāo)簽 的EPC比特序列,則進(jìn)入單個(gè)標(biāo)簽的識(shí)別;如果接收到多個(gè)EPC比特序列,則再次按照步驟 32調(diào)整UID的值,并再次發(fā)送請求命令RequestRep (UID),直到只有單個(gè)標(biāo)簽響應(yīng)EPC請求 命令,最后進(jìn)行單個(gè)標(biāo)簽的識(shí)別并讀取正確的EPC比特序列。上述步驟33中單個(gè)標(biāo)簽的識(shí)別的具體過程是讀寫器每正確讀取一個(gè)EPC值后, 將發(fā)送確認(rèn)命令A(yù)CK (EPC)給該標(biāo)簽,并通知該標(biāo)簽轉(zhuǎn)入休眠狀態(tài),然后重復(fù)發(fā)送請求命令 Request(EPC),如果讀寫器檢測不到EPC比特序列,說明在該時(shí)隙內(nèi)的標(biāo)簽已經(jīng)被正確讀 取,則讀寫器調(diào)整Si的值為Si+1,從而進(jìn)入下一個(gè)時(shí)隙編碼的識(shí)別流程,直到將所有時(shí)隙編 號(hào)內(nèi)的全部標(biāo)簽一一讀取。本發(fā)明的有益效果是本發(fā)明繼承了二叉樹算法識(shí)別率高的特點(diǎn),在標(biāo)簽進(jìn)行識(shí) 別的過程中,結(jié)合了二叉樹算法高識(shí)別精度和隨機(jī)aloha算法快速識(shí)別的優(yōu)勢。具體表現(xiàn) 在(1)具有IS0/IEC 18000-6C算法的優(yōu)點(diǎn)。在第一階段,每個(gè)標(biāo)簽隨機(jī)性的競爭每一個(gè) 時(shí)隙,保證了每個(gè)標(biāo)簽的公平接入。故本發(fā)明充分吸收了時(shí)隙Aloha算法的簡單,快速的特 點(diǎn)。(2)避免了 IS0/IEC 18000-6C算法的缺點(diǎn)。在IS0/IEC 18000-6C協(xié)議中,有大量的空 閑時(shí)隙沒有被標(biāo)簽選擇,然而,讀寫器仍然在這些時(shí)隙內(nèi)與標(biāo)簽群進(jìn)行大量的命令交互,造 成大量的資源浪費(fèi)。本發(fā)明能夠記錄下每一個(gè)非空閑時(shí)隙,只在非空閑時(shí)隙內(nèi)讀取標(biāo)簽,完 全忽略空閑時(shí)隙,從而大大提高了讀取的速度。(3)提出了隨機(jī)Aloha與二叉樹搜索機(jī)制相 結(jié)合的方法。在IS0/IEC 18000-6C的算法中,如果某個(gè)時(shí)隙出現(xiàn)了標(biāo)簽碰撞,將無法識(shí)別 碰撞的所有標(biāo)簽,只有等到下一個(gè)周期才能重新選擇。而本發(fā)明引入了二叉樹搜索機(jī)制,能 夠把碰撞的標(biāo)簽一一讀取,大大提高了一個(gè)周期內(nèi)讀取的個(gè)數(shù)。
圖1是現(xiàn)有技術(shù)中的隨機(jī)aloha算法的核心協(xié)議流程圖。圖2是本發(fā)明識(shí)別方法的主要步驟的流程圖。
具體實(shí)施例方式圖2是本發(fā)明識(shí)別方法的主要步驟的流程圖。白色背景的框圖代表讀寫器所做的 動(dòng)作;灰色背景的框圖代表標(biāo)簽所做的動(dòng)作。以下結(jié)合附圖和具體實(shí)施例對本發(fā)明做進(jìn)一 步的說明一種RFID閱讀器的多標(biāo)簽識(shí)別方法,應(yīng)用于包含RFID閱讀器和多個(gè)標(biāo)簽的RFID 系統(tǒng)中,本實(shí)施例中,我們假設(shè)在讀寫器射頻區(qū)域(RF Field)內(nèi)有5個(gè)標(biāo)簽,并且設(shè)定Q =7,則時(shí)隙編號(hào)為0 (27-1),即為0 127,包括以下步驟步驟1 讀寫器向標(biāo)簽群發(fā)送檢測命令Detect (7),標(biāo)簽收到檢測命令后,隨機(jī)從 時(shí)隙0到時(shí)隙(2q-1)的時(shí)隙序列中(本實(shí)施例中Q取值為7),選擇其中一個(gè)時(shí)隙編號(hào)k, 同時(shí)生成一個(gè)具有2Q個(gè)比特位的二進(jìn)制數(shù)據(jù)作為標(biāo)簽的時(shí)隙序列,將所述時(shí)隙序列中與標(biāo) 簽選取的時(shí)隙編號(hào)k對應(yīng)的比特位置1,其余比特位置0,并將該時(shí)隙序列以曼徹斯特編碼 的形式傳送給讀寫器,其中Q為自然數(shù),滿足2Q大于或等于標(biāo)簽數(shù)量。本實(shí)施例中,假定5個(gè)標(biāo)簽生成的時(shí)隙序列如表1所示,Tagl、Tag2、Tag3、Tag4和 Tag5分別表示標(biāo)簽1、標(biāo)簽2、標(biāo)簽3、標(biāo)簽4和標(biāo)簽5。Tagl00100…000
Tag200010…000
Tag301000…000
Tag400100 .000
Tag501000 .000
時(shí)隙檢測0XXX0 .000
時(shí)隙編號(hào)127126125124123 .210
表1
步驟2 讀寫器檢測標(biāo)簽的時(shí)隙序列的比特位是否發(fā)生沖突。標(biāo)簽君
Tag3、Tag4和Tag5)的時(shí)隙序列某個(gè)比特位的值全為0值時(shí)(如表1中的時(shí)隙編號(hào)0、時(shí)隙 編號(hào)1、時(shí)隙編號(hào)2、時(shí)隙編號(hào)123和時(shí)隙編號(hào)127),則讀寫器可以檢測該位為0,用0表示 該時(shí)隙,把該比特位所對應(yīng)的時(shí)隙作為空閑時(shí)隙,沒有標(biāo)簽選擇該時(shí)隙;如果標(biāo)簽群的時(shí)隙 序列中某個(gè)比特位既有1值又有0值時(shí)(如表1中時(shí)隙編號(hào)124、時(shí)隙編號(hào)125和時(shí)隙編號(hào) 126),則讀寫器將該比特位檢測為亂碼,把該比特位所對應(yīng)的時(shí)隙作為非空閑時(shí)隙,用χ表 示該時(shí)隙,此時(shí)至少有一個(gè)標(biāo)簽選擇了該時(shí)隙;如果時(shí)隙序列中某個(gè)比特位被所有標(biāo)簽置 為為1時(shí),讀寫器將檢測出該比特位為1(但當(dāng)Q值遠(yuǎn)大于標(biāo)簽個(gè)數(shù)時(shí),這種情況發(fā)生的概 率很小,故表中未示出),也把該比特位所對應(yīng)的時(shí)隙作為非空閑時(shí)隙,用χ表示該時(shí)隙;讀 寫器將所有非空閑時(shí)隙組成一個(gè)非空閑時(shí)隙編號(hào)表項(xiàng){S” S2, S3,...,SJ,其中Si表示非空 閑時(shí)隙對應(yīng)的編號(hào),i的取值范圍為小于或等于最大時(shí)隙編號(hào)的自然數(shù).本實(shí)施例中,Tagl 選擇了時(shí)隙125 ;Tag2選擇了時(shí)隙124 ;Tag3選擇了時(shí)隙126 ;Tag4選擇了時(shí)隙125 ;Tag5選 擇了時(shí)隙126。其余的時(shí)隙沒有被標(biāo)簽選中,因此對應(yīng)的比特位全部為0。因此,讀寫器檢 測到時(shí)隙126,時(shí)隙125,時(shí)隙124為非空閑時(shí)隙(用χ表示),其余的時(shí)隙數(shù)全部檢測為空 閑時(shí)隙。然后,讀寫器將在一個(gè)讀取周期內(nèi)獲得一個(gè)非空閑時(shí)隙編號(hào)表項(xiàng){124,125,126}, 所述時(shí)隙編號(hào)表項(xiàng)表示時(shí)隙124、時(shí)隙125和時(shí)隙126所對應(yīng)的時(shí)隙為非空閑時(shí)隙。
步驟3 讀寫器根據(jù)非空閑時(shí)隙編號(hào)表項(xiàng){124,125,126}開始識(shí)別標(biāo)簽,讀寫器 按照時(shí)隙編號(hào)從小到大的順序,依次發(fā)送詢問命令Query(Si)給標(biāo)簽群,第一次發(fā)送時(shí)Si =S1,所述詢問命令包含了非空閑時(shí)隙編號(hào)S1,收到詢問命令的標(biāo)簽比較本標(biāo)簽的時(shí)隙編 號(hào)是否與詢問命令中的非空閑時(shí)隙編號(hào)S1相等,如果時(shí)隙編號(hào)相等,則向讀寫器響應(yīng)自己 的一個(gè)隨機(jī)序列RN16 ;讀寫器如果檢測到只有一個(gè)隨機(jī)序列RN16,將啟動(dòng)對單個(gè)標(biāo)簽的 讀取過程;讀寫器如果檢測到有兩個(gè)或兩個(gè)以上隨機(jī)序列RN16,將啟動(dòng)二叉樹搜索過程, 逐個(gè)讀取該時(shí)隙上的所有標(biāo)簽,然后讀寫器依次發(fā)送詢問命令Query(S2)、Query(S3)、…,Query(Si),并在每個(gè)時(shí)隙上重復(fù)本步驟,當(dāng)遍歷完了所有的時(shí)隙編號(hào)之后,讀寫器就可以 將所有的標(biāo)簽一一讀取。下面進(jìn)一步描述本步驟的具體過程,讀寫器發(fā)送Query (124),此時(shí) S1 = 124,處于時(shí)隙編號(hào)為124的標(biāo)簽Tag2經(jīng)過對比,判斷出自己選擇的時(shí)隙編號(hào)與詢問 命令中的非空閑時(shí)隙編號(hào)均等于124,因此隨機(jī)產(chǎn)生一個(gè)隨機(jī)序列RN16并發(fā)送給讀寫器, 其余的標(biāo)簽因?yàn)闀r(shí)隙數(shù)不等于124,不做任何響應(yīng)。讀寫器在檢測到單個(gè)隨機(jī)序列RN16之 后,把該標(biāo)簽正確讀取。接著讀寫器調(diào)整Si = 125,此時(shí)有Tagl和Tag4分別向讀寫器響應(yīng) 一個(gè)RN16,讀寫器檢測到隨機(jī)序列RN16沖突,將啟動(dòng)二叉樹搜索過程。本實(shí)施例中的二叉 樹搜索過程包括以下步驟步驟31 讀寫器首先向標(biāo)簽群發(fā)送請求命令Request (EPC),該命令同樣帶有先前 的時(shí)隙編號(hào),在時(shí)隙編號(hào)內(nèi)的所有標(biāo)簽向讀寫器響應(yīng)發(fā)送自己的EPC數(shù)據(jù)。步驟32 讀寫器檢測到多個(gè)EPC數(shù)據(jù)沖突,即收到兩個(gè)或兩個(gè)以上的標(biāo)簽向讀寫 器發(fā)送EPC數(shù)據(jù),讀寫器收到發(fā)生沖突的多個(gè)標(biāo)簽響應(yīng)的EPC值之后,將對采用曼徹斯特編 碼的EPC值進(jìn)行比特位的校驗(yàn),根據(jù)曼徹斯特編碼的性質(zhì),如果某比特位全為0,則可以檢 測出該比特位為0 ;如果某比特位全為1,則可以檢測出該比特位為1 ;其它情況下,將檢測 出亂碼,用y值表示亂碼。然后讀寫器將y所在的最高比特位T置0,高于T的比特位保持不 變,低于T的比特位全部置1,從而讀寫器生成用戶身份證明(UID,User Identification) 比特序列,讀寫器將用戶身份證明比特序列以請求命令RequestR印(UID)的形式發(fā)送給 標(biāo)簽群,同樣RequestRep(UID)帶有當(dāng)前的時(shí)隙編號(hào)Si,在時(shí)隙Si內(nèi)的標(biāo)簽收到請求命令 RequestRep (UID)之后,首先比較標(biāo)簽的EPC值與UID的大小,如果EPC值小于或等于UID, 則標(biāo)簽向讀寫器響應(yīng)發(fā)送自己的EPC值,否則不響應(yīng)。假設(shè)對應(yīng)時(shí)隙編號(hào)125的Tagl和Tag4發(fā)送的EPC比特序列如表2所示Tagl10 10 110Tag410 10 0 11檢測結(jié)果IOlOylyUID10 10 0 11表2讀寫器把y所在的最高比特位(設(shè)高位位于表2的左側(cè))置為0,即表2中的比 特位2,高于比特位2的所有比特保留原值,低于比特位2的比特全部置為1。按照本步驟 的規(guī)則,生成一個(gè)UID比列序列,其具體值為1010011。讀寫器發(fā)送RequestR印(1010011) 命令給標(biāo)簽群,同時(shí)該命令帶有當(dāng)前所處的時(shí)隙數(shù)125。在時(shí)隙125內(nèi)的Tagl和Tag4比 較EPC值與UID的大小關(guān)系。Tagl的EPC值1010110大于UID比特序列的值1010011,不 做響應(yīng)。Tag4的EPC值1010011處于小于或等于UID比特序列的值1010011的范圍,故做 響應(yīng)將自己的EPC數(shù)值發(fā)送給讀寫器。此時(shí),讀寫器檢測到只有單個(gè)EPC值,故將Tag4正 確的讀取,Tag4轉(zhuǎn)入休眠狀態(tài),在接下來的非空閑時(shí)隙中,它將不會(huì)有任何響應(yīng)。步驟33 在讀寫器發(fā)送了請求命令RequestR印(UID)之后,如果接收到單個(gè)標(biāo)簽 的EPC比特序列,則進(jìn)入單個(gè)標(biāo)簽的識(shí)別;如果接收到多個(gè)EPC比特序列,則再次按照步驟 32調(diào)整UID的值,并發(fā)送請求命令RequestRep (UID),直到只有單個(gè)標(biāo)簽響應(yīng)EPC請求命 令,最后進(jìn)行單個(gè)標(biāo)簽的識(shí)別并讀取正確的EPC比特序列。在本實(shí)施例的具體實(shí)施過程中,完成時(shí)隙編號(hào)125對應(yīng)的Tag4的EPC響應(yīng)和讀取后,讀寫器繼續(xù)發(fā)送Request(EPC),此時(shí)帶有時(shí)隙編號(hào)125,發(fā)現(xiàn)沒有任何標(biāo)簽響應(yīng)。隨即 調(diào)整時(shí)隙編號(hào)Si = 126,進(jìn)入下一個(gè)非空閑時(shí)隙編號(hào)的識(shí)別流程,其過程按照步驟32進(jìn)行。 在讀寫器發(fā)送了 Query (124)、Query (125)、Query (126)之后。所有的標(biāo)簽都都被正常的識(shí) 別。步驟33中單個(gè)標(biāo)簽識(shí)別的具體過程是讀寫器每正確讀取一個(gè)EPC值后,將發(fā)送 確認(rèn)命令A(yù)CK (EPC)命令給該標(biāo)簽,并通知該標(biāo)簽轉(zhuǎn)入休眠狀態(tài),然后將重復(fù)發(fā)送請求命令 Request(EPC),如果讀寫器檢測不到EPC比特序列,說明在該時(shí)隙內(nèi)的標(biāo)簽已經(jīng)被正確讀 取,讀寫器調(diào)整Si的值為Si+1,從而進(jìn)入下一個(gè)時(shí)隙編碼的識(shí)別流程,直到將所有時(shí)隙編號(hào) 內(nèi)的全部標(biāo)簽一一讀取。本實(shí)施例中,在{S1; S2,S3, ...,St} = {124,125,126}的前提下。 讀寫器在時(shí)隙編號(hào)124檢測到?jīng)]有隨機(jī)序列RN16沖突之后,讀寫器將進(jìn)入單個(gè)標(biāo)簽識(shí)別階 段。此時(shí),讀寫器再向標(biāo)簽群發(fā)送發(fā)送請求命令Request(EPC),同時(shí)該命令帶有當(dāng)前的時(shí)隙 編號(hào)124,只有Tag2響應(yīng)自己的EPC比特序列。讀寫器檢測到單個(gè)EPC比特序列,并將其正 確識(shí)別之后,讀寫器向Tag2發(fā)送確認(rèn)命令A(yù)CK,向Tag2確認(rèn)其EPC已經(jīng)被正確識(shí)別,并通知 Tag2轉(zhuǎn)入休眠狀態(tài)。讀寫器調(diào)整Si的值為Si+1 = 125,讀寫器在時(shí)隙125檢測到隨機(jī)序列RN16沖突。讀 寫在發(fā)送完Request(EPC)和RequestR印(1010011)之后,檢測單個(gè)EPC比特序列,將其正 確識(shí)別之后,隨即發(fā)送確認(rèn)命令A(yù)CK,向標(biāo)簽Tag4確認(rèn)其EPC已被正確識(shí)別,同時(shí)通知Tag4 轉(zhuǎn)入休眠狀態(tài)。本領(lǐng)域的普通技術(shù)人員將會(huì)意識(shí)到,這里所述的實(shí)施例是為了幫助讀者理解本發(fā) 明的原理,應(yīng)被理解為本發(fā)明的保護(hù)范圍并不局限于這樣的特別陳述和實(shí)施例。本領(lǐng)域的 普通技術(shù)人員可以根據(jù)本發(fā)明公開的這些技術(shù)啟示做出各種不脫離本發(fā)明實(shí)質(zhì)的其它各 種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
一種RFID閱讀器的多標(biāo)簽識(shí)別方法,應(yīng)用于包含RFID閱讀器和多個(gè)標(biāo)簽的RFID系統(tǒng)中,其特征在于,包括以下步驟步驟1讀寫器向標(biāo)簽群發(fā)送檢測命令,標(biāo)簽收到檢測命令后隨機(jī)從時(shí)隙0到時(shí)隙(2Q 1)的時(shí)隙序列中選擇其中一個(gè)時(shí)隙編號(hào),同時(shí)生成一個(gè)具有2Q個(gè)比特位的二進(jìn)制數(shù)據(jù)作為標(biāo)簽的時(shí)隙序列,將所述時(shí)隙序列中與標(biāo)簽選取的時(shí)隙編號(hào)所對應(yīng)的比特位置1,其余比特位置0,并將該時(shí)隙序列以曼徹斯特編碼的形式傳送給讀寫器,其中Q為自然數(shù),滿足2Q大于或等于標(biāo)簽數(shù)量。步驟2讀寫器收到標(biāo)簽發(fā)送的時(shí)隙序列后,檢測標(biāo)簽的時(shí)隙序列的比特位沖突,如果標(biāo)簽群的時(shí)隙序列的某個(gè)比特位的值全為0值時(shí),則讀寫器可以檢測該位為0,用0表示該時(shí)隙,把該比特位所對應(yīng)的時(shí)隙作為空閑時(shí)隙;如果標(biāo)簽群的時(shí)隙序列的某個(gè)比特位既有1值又有0值時(shí),則讀寫器將檢測該位為亂碼,把該比特位所對應(yīng)的時(shí)隙作為非空閑時(shí)隙,用x表示該時(shí)隙;如果標(biāo)簽群的時(shí)隙序列的某個(gè)比特位的值全為1時(shí),讀寫器將檢測出該比特位全為1,同時(shí)也把該比特位所對應(yīng)的時(shí)隙作為非空閑時(shí)隙,也用x表示該時(shí)隙;讀寫器將所有非空閑時(shí)隙組成一個(gè)非空閑時(shí)隙編號(hào)表項(xiàng){S1,S2,S3,...,Si},其中S表示非空閑時(shí)隙對應(yīng)的編號(hào),i的取值范圍為小于或等于最大時(shí)隙編號(hào)的自然數(shù)。步驟3讀寫器根據(jù)非空閑時(shí)隙編號(hào)表項(xiàng)將開始識(shí)別標(biāo)簽,讀寫器按照時(shí)隙編號(hào)從小到大的順序,依次發(fā)送詢問命令Query(S1)給標(biāo)簽群,所述詢問命令包含了時(shí)隙編號(hào)S1;收到詢問命令的標(biāo)簽將比較自己的時(shí)隙編號(hào)與詢問命令中的時(shí)隙編號(hào)S1是否相等,如果標(biāo)簽自己的時(shí)隙編號(hào)等于S1,則該標(biāo)簽向讀寫器響應(yīng)發(fā)送自己的一個(gè)隨機(jī)序列RN16;讀寫器如果檢測到只有一個(gè)隨機(jī)序列RN16,將啟動(dòng)對單個(gè)標(biāo)簽的讀取過程,讀寫器如果檢測到有兩個(gè)或兩個(gè)以上隨機(jī)序列RN16,將啟動(dòng)二叉樹搜索過程,逐個(gè)讀取響應(yīng)該時(shí)隙上的所有標(biāo)簽,然后讀寫器依次發(fā)送詢問命令Query(S2)、Query(S3)、…、Query(St),并在每個(gè)時(shí)隙上重復(fù)本步驟,直到遍歷完所有的時(shí)隙編號(hào)之后,讀寫器就可以將所有的標(biāo)簽一一讀取。
2.根據(jù)權(quán)利要求1所述的一種RFID閱讀器的多標(biāo)簽識(shí)別方法,上述步驟3中二叉樹搜 索過程又包括以下步驟步驟31 讀寫器首先向標(biāo)簽群發(fā)送請求命令Request(EPC),該命令同樣帶有先前的時(shí) 隙編號(hào),在時(shí)隙編號(hào)內(nèi)的所有標(biāo)簽向讀寫器響應(yīng)發(fā)送自己的EPC數(shù)據(jù)。步驟32 讀寫器檢測到多個(gè)EPC數(shù)據(jù)沖突,即收到兩個(gè)或兩個(gè)以上的標(biāo)簽向讀寫器發(fā) 送EPC數(shù)據(jù),讀寫器收到發(fā)生沖突的多個(gè)標(biāo)簽響應(yīng)的EPC值之后,將對采用曼徹斯特編碼 的EPC值進(jìn)行比特位的校驗(yàn),根據(jù)曼徹斯特編碼的性質(zhì),如果某比特位全為0,則可以檢測 出該比特位為0 ;如果某比特位全為1,則可以檢測出該比特位為1 ;其它情況下,將檢測出 亂碼,用y值表示亂碼。然后讀寫器將y所在的最高比特位T置0,高于T的比特位保持不 變,低于T的比特位全部置1,從而讀寫器生成用戶身份證明(UID,User Identification) 比特序列,讀寫器將UID比特序列以請求命令RequestR印(UID)的形式發(fā)送給標(biāo)簽 群,同樣RequestR印(UID)帶有當(dāng)前的時(shí)隙編號(hào)Si,在時(shí)隙Si內(nèi)的標(biāo)簽收到請求命令 RequestRep (UID)之后,首先比較標(biāo)簽的EPC值與UID的大小,如果EPC值小于或等于UID, 則標(biāo)簽向讀寫器響應(yīng)發(fā)送自己的EPC值,否則不響應(yīng)。步驟33 在讀寫器發(fā)送了請求命令RequestRep (UID)之后,如果接收到單個(gè)標(biāo)簽的EPC 比特序列,則進(jìn)入單個(gè)標(biāo)簽的識(shí)別;如果接收到多個(gè)EPC比特序列,則再次按照步驟32調(diào)整UID的值,并再次發(fā)送請求命令RequestR印(UID),直到只有單個(gè)標(biāo)簽響應(yīng)EPC請求命令,最 后進(jìn)行單個(gè)標(biāo)簽的識(shí)別并讀取正確的EPC比特序列。
3.根據(jù)權(quán)利要求2所述的一種RFID閱讀器的多標(biāo)簽識(shí)別方法,其特征在于,步驟 33中單個(gè)標(biāo)簽的識(shí)別的具體過程是讀寫器每正確讀取一個(gè)EPC值后,將發(fā)送確認(rèn)命令 ACK (EPC)給該標(biāo)簽,并通知該標(biāo)簽轉(zhuǎn)入休眠狀態(tài),然后重復(fù)發(fā)送請求命令Request (EPC), 如果讀寫器檢測不到EPC比特序列,說明在該時(shí)隙內(nèi)的標(biāo)簽已經(jīng)被正確讀取,則讀寫器調(diào) 整31的值為Si+1,從而進(jìn)入下一個(gè)時(shí)隙編碼的識(shí)別流程,直到將所有時(shí)隙編號(hào)內(nèi)的全部標(biāo)簽 一一讀取。
全文摘要
本發(fā)明涉及一種RFID閱讀器的多標(biāo)簽識(shí)別方法。包括以下步驟步驟1讀寫器向標(biāo)簽群發(fā)送檢測命令,標(biāo)簽收到檢測命令后隨機(jī)從時(shí)隙0到時(shí)隙(2Q-1)的時(shí)隙序列中選擇其中一個(gè)時(shí)隙編號(hào),同時(shí)生成一個(gè)具有2Q個(gè)比特位的二進(jìn)制數(shù)據(jù)作為標(biāo)簽的時(shí)隙序列。步驟2讀寫器收到標(biāo)簽發(fā)送的時(shí)隙序列后,檢測標(biāo)簽的時(shí)隙序列的比特位沖突。步驟3讀寫器根據(jù)非空閑時(shí)隙編號(hào)表項(xiàng)將開始識(shí)別標(biāo)簽,讀寫器按照時(shí)隙編號(hào)從小到大的順序,依次發(fā)送詢問命令Query(S1)給標(biāo)簽群。本發(fā)明的有益效果是本發(fā)明繼承了二叉樹算法識(shí)別率高的特點(diǎn),在標(biāo)簽進(jìn)行識(shí)別的過程中,結(jié)合了二叉樹算法高識(shí)別精度和隨機(jī)aloha算法快速識(shí)別的優(yōu)勢。
文檔編號(hào)G06K17/00GK101944171SQ20101022112
公開日2011年1月12日 申請日期2010年7月8日 優(yōu)先權(quán)日2010年7月8日
發(fā)明者冷甦鵬, 葉景超, 楊坤, 段景山, 毛玉明 申請人:電子科技大學(xué)