RFID 防沖突 算法
無線射頻識(shí)別(RFID)是一種非接觸式的自動(dòng)識(shí)別技術(shù),其基本原理是刺用射頻信號(hào)和空間耦合(電感或電磁耦合)的傳輸特性,實(shí)現(xiàn)對(duì)特定物體的自動(dòng)識(shí)別。RFID技術(shù)可以追溯至第二次世界大戰(zhàn)期間。后來發(fā)展應(yīng)用到鐵路、軍隊(duì)的貨物跟蹤甚至寵物識(shí)別上。在過去的半個(gè)多世紀(jì)里,RFID的發(fā)展經(jīng)歷了從技術(shù)探索、試驗(yàn)研究、商業(yè)應(yīng)用和標(biāo)準(zhǔn)化建立等幾個(gè)重要階段。從現(xiàn)有發(fā)展趨勢(shì)看,RHD將構(gòu)建虛擬世界與物理世界的橋梁??梢灶A(yù)見在不久的將來,RFID技術(shù)不僅會(huì)在各行各業(yè)被廣泛采用,最終RFID技術(shù)還將會(huì)與普適計(jì)算技術(shù)相融合,對(duì)人類社會(huì)產(chǎn)生深遠(yuǎn)影響。
RFID系統(tǒng)一般由電子標(biāo)簽和讀寫器兩個(gè)部分組成,讀寫器具有同時(shí)讀取多個(gè)電子標(biāo)簽的功能。在多標(biāo)簽對(duì)一個(gè)讀寫器的RFID系統(tǒng)中,標(biāo)簽經(jīng)常會(huì)同時(shí)向讀寫器傳輸數(shù)據(jù),這就要求RFID系統(tǒng)建立一種仲裁機(jī)制來避免數(shù)據(jù)發(fā)生碰撞??紤]到電子標(biāo)簽本身尺寸、能耗的限制,防碰撞機(jī)制在保障功能的同時(shí)還要求盡量簡單易行,這正是RFID系統(tǒng)設(shè)計(jì)的挑戰(zhàn)之一。
算法A基于隨機(jī)避讓、沖突檢測(cè)的原理,使用1個(gè)8位寄存器和1個(gè)8位隨機(jī)數(shù)產(chǎn)生器,最大可以仲裁標(biāo)簽的數(shù)量只有256個(gè)。算法B基于二進(jìn)制數(shù)的原理,使用1個(gè)8位寄存器和1個(gè)l位隨機(jī)數(shù)產(chǎn)生器,理論上最大可以實(shí)現(xiàn)2256個(gè)標(biāo)簽的仲裁。文獻(xiàn)提出了對(duì)該算法的一個(gè)實(shí)現(xiàn)方案,文獻(xiàn)對(duì)該算法做了很大改進(jìn)。算法C類似于算法A,使用1個(gè)16位寄存器和16個(gè)l位隨機(jī)數(shù)產(chǎn)生器,最大可以仲裁標(biāo)簽的數(shù)量是65536個(gè)。本文中,作者提出一種分群避讓、群內(nèi)沖突檢測(cè)的算法和其改進(jìn)算法,僅需要1個(gè)8位寄存器和1個(gè)1位隨機(jī)數(shù)產(chǎn)生器就可以實(shí)現(xiàn)最大1048 576個(gè)標(biāo)簽的仲裁.而且碰撞次數(shù)相對(duì)干算法B要大大減少。
1 仲裁機(jī)制描述
本方法的核心思想是:首先把電子標(biāo)簽隨機(jī)分群,并將群隨機(jī)排序以實(shí)現(xiàn)群問的隨機(jī)避讓,然后在群內(nèi)進(jìn)行沖突檢測(cè)和標(biāo)簽的仲裁。實(shí)現(xiàn)時(shí)標(biāo)簽僅需一個(gè)寄存器:利用其高位存儲(chǔ)群號(hào),低位存儲(chǔ)沖突檢測(cè)時(shí)退避的步數(shù),實(shí)現(xiàn)極為簡單。下面以8位寄存器為例具體說明本算法的仲裁機(jī)制。
當(dāng)讀寫器初始化標(biāo)簽時(shí),所有標(biāo)簽在0~15之間任選一個(gè)整數(shù)存人寄存器高4位(相當(dāng)于隨機(jī)選擇一個(gè)群)并把寄存器低4位設(shè)為全O,同時(shí)產(chǎn)生一個(gè)O或l的隨機(jī)數(shù)加到寄存器中。如果此時(shí)寄存器中的8比特?cái)?shù)為全0則圓傳該標(biāo)簽的ID(ID是指電子標(biāo)簽的惟一標(biāo)識(shí),在不同的編碼系統(tǒng)中有不同的含義)。如果多個(gè)標(biāo)簽同時(shí)回傳數(shù)據(jù),則沖突發(fā)生。發(fā)生沖突后,其他寄存器高4位為O的標(biāo)簽寄存器中的數(shù)加l,而寄存器中的8比特?cái)?shù)為全0的標(biāo)簽則再產(chǎn)生一個(gè)0或1的隨機(jī)數(shù)加到寄存器中。如果寄存器作加法后仍為全零。則繼續(xù)回傳該標(biāo)簽的ID;如果回傳時(shí)不發(fā)生碰撞,則其他寄存器高4位為O的標(biāo)簽僅把寄存器低4位減1后重復(fù)前面的回傳操作。當(dāng)寄存器高4位全為0的標(biāo)簽全部回傳完ID,則所有其他標(biāo)簽把寄存器高4位減1后重復(fù)前面的操作。
此外依本算法.由于所有標(biāo)簽隨機(jī)選擇群,有可能會(huì)出現(xiàn)某個(gè)群中的標(biāo)簽數(shù)目過大,使該群中的標(biāo)簽在仲裁過程中始終發(fā)生碰撞,標(biāo)簽寄存器始終加1,導(dǎo)致寄存器低4位向高4位進(jìn)位。進(jìn)位意味著所有進(jìn)位的標(biāo)簽的寄存器低4位清零而高4位加1,這使得這些標(biāo)簽不再屬于原有的群而歸人到下一個(gè)群中,從而優(yōu)化了因隨機(jī)選擇而產(chǎn)生的分布不均勻的群標(biāo)簽數(shù)。
本算法中,標(biāo)簽最大退讓步數(shù)為24=16步,因此每個(gè)群最大能仲裁的標(biāo)簽數(shù)目為216=65536,則本算法能仲裁的標(biāo)簽數(shù)理論上限是16×216=1048576。
2 算法步驟
給出算法步驟,假設(shè)使用一個(gè)8位寄存器,則本算法包括以下步驟:
(1)在所述RFID系統(tǒng)的被動(dòng)方一標(biāo)簽中設(shè)計(jì)一個(gè)4+4位的寄存器(Rel)和1個(gè)“0”、“l(fā)”隨機(jī)數(shù)產(chǎn)生器(RGI),如圖l所示。
(2)在所述RFID系統(tǒng)的主動(dòng)方一讀寫器向所有處在等待態(tài)的標(biāo)簽發(fā)送初始化命令。標(biāo)簽因此進(jìn)入仲裁態(tài),用RGI產(chǎn)生4比特隨機(jī)數(shù),加載到Rel高4位R7~R4,低4位R3~R0全部清零。
(3)讀寫器等待一定時(shí)間后發(fā)送允許回傳命令。
(4)Rel為全零的標(biāo)簽向讀寫器回傳標(biāo)簽ID。
(5)如果當(dāng)前只有一個(gè)標(biāo)簽回傳ID,讀寫器正確讀取該ID,則發(fā)送確認(rèn)命令,附加命令參數(shù)“低位減l”。回傳了ID的標(biāo)簽接收到該命令后,進(jìn)入確認(rèn)態(tài),其他高4位為全零的標(biāo)簽Re1低4位減1,回到步驟(4)重復(fù)操作。
(6)如果當(dāng)前有多個(gè)標(biāo)簽回傳ID,讀寫器通過CRC校驗(yàn)或碼長校驗(yàn),檢測(cè)到錯(cuò)誤的ID號(hào),則發(fā)送確認(rèn)命令,附加命令參數(shù)“寄存器加1”。接收到讀寫器這個(gè)命令后,所有在仲裁態(tài)且Rel為全零的標(biāo)簽由RGI產(chǎn)生1比特隨機(jī)數(shù)和寄存器上的數(shù)相加后重新載入到寄存器中;其他仲裁態(tài)且Rel高4位為零而低4位不為零的標(biāo)簽Rel加1,回到步驟(4)重復(fù)操作
(7)如果當(dāng)前沒有標(biāo)簽回傳ID,讀寫器等待一定時(shí)間后發(fā)送確認(rèn)命令,附加命令參數(shù)“低位減1”。所有在仲裁態(tài)且高4為全零的標(biāo)簽Rel低4位減1,回到步驟(4)重復(fù)操作。
(8)低4位減1操作重復(fù)L次(L是一個(gè)系統(tǒng)參數(shù),由系統(tǒng)設(shè)定,經(jīng)驗(yàn)值為4)后,讀寫器認(rèn)為所有在仲裁態(tài)且寄存器高4位為零的標(biāo)簽都已經(jīng)被正確讀取,則發(fā)送確認(rèn)命令,附加命令參數(shù)“高4位減l”,回到步驟(4)。
(9)標(biāo)簽接收到附加“高位減l”參數(shù)的確認(rèn)命令后,所有Rel高4位不為零的標(biāo)簽高4位減l,回到步驟4重復(fù)操作;在被要求高位減1前已為零的標(biāo)簽則回到等待態(tài)。
(10)重復(fù)15次高位減1操作后.讀寫器認(rèn)為所有在仲裁態(tài)的標(biāo)簽都已經(jīng)被讀取,則仲裁過程停止,所有還處于仲裁態(tài)的標(biāo)簽返回等待態(tài)。
算法步驟中所述等待態(tài)是指電子標(biāo)簽上電后的初始狀態(tài);仲裁態(tài)是指未被讀寫器鑒別的電子標(biāo)簽開始響應(yīng)讀寫器鑒別命令時(shí)進(jìn)入的狀態(tài);確認(rèn)態(tài)是指已被讀寫器鑒別的電子標(biāo)簽進(jìn)入的狀態(tài)。電子標(biāo)簽狀態(tài)轉(zhuǎn)移規(guī)則如下:上電后電子標(biāo)簽進(jìn)入等待態(tài);處于等待態(tài)的電子標(biāo)簽可以進(jìn)入仲裁態(tài);處于仲裁態(tài)的電子標(biāo)簽可以返回等待態(tài);處于仲裁態(tài)的電子標(biāo)簽可以進(jìn)入確認(rèn)態(tài);處于確認(rèn)態(tài)的電子標(biāo)簽不能返回仲裁態(tài);確認(rèn)態(tài)與等待態(tài)之間不能直接轉(zhuǎn)移。
針對(duì)上述算法步驟,在以下幾個(gè)地方加以改進(jìn),形成本算法的改進(jìn)算法。
A、步驟(1)中,隨機(jī)數(shù)產(chǎn)生器產(chǎn)生兩組隨機(jī)數(shù),分別加載到寄存器高位和低4位。其中高位加載的位數(shù)M可以動(dòng)態(tài)設(shè)為1、2、3或4。
B、步驟(10)中的重復(fù)操作次數(shù)為2M次。因?yàn)楦倪M(jìn)算法在寄存器低4位也加載了隨機(jī)數(shù),使得標(biāo)簽在群間轉(zhuǎn)移的概率(即低4位向高位進(jìn)位的概率)大大增加,特別如果最后一個(gè)群中標(biāo)簽的寄存器低4位在退讓步驟中進(jìn)位,則會(huì)產(chǎn)生一個(gè)新群,因此需要額外增加一次高位減l操作。
3 電路實(shí)現(xiàn)
算法實(shí)現(xiàn)的參考電路框圖見圖l,其中RGI是一個(gè)“0”“1”隨機(jī)數(shù)產(chǎn)生器;Rel是一個(gè)8位寄存器。加法器ADDl和ADD2的加減功能根據(jù)讀寫器命令來設(shè)定:當(dāng)執(zhí)行加法操作時(shí),低4位的ADD2需向高4位的ADDl進(jìn)位;當(dāng)執(zhí)行減法操作時(shí),兩個(gè)器件ADDl和ADD2相互獨(dú)立。加法器可以工作在同步狀態(tài)或異步狀態(tài),工作在同步狀態(tài)時(shí)可以使用電子標(biāo)簽的最大時(shí)鐘。
4 仿真結(jié)果
仿真l:為了評(píng)估本算法的優(yōu)劣,特設(shè)計(jì)以下仿真:標(biāo)簽使用8位寄存器,高4位為高位。定義0個(gè)、2個(gè)和2個(gè)以上的標(biāo)簽同時(shí)發(fā)送數(shù)據(jù)時(shí)為傳輸沖突;只有一個(gè)標(biāo)簽發(fā)送數(shù)據(jù)時(shí)為傳輸成功,平均沖突次數(shù)定義為傳輸沖突總次數(shù)和傳輸成功總次數(shù)的比;空傳率定義O個(gè)標(biāo)簽發(fā)送數(shù)據(jù)的次數(shù)與傳輸成功總次數(shù)的比。觀察標(biāo)簽數(shù)為20~10000時(shí)的平均沖突次數(shù)。
仿真結(jié)果如圖2所示,本文提出的算法與二進(jìn)制算法性能接近,平均每成功傳輸1次都要伴隨2次傳輸沖突;而改進(jìn)算法則在標(biāo)簽數(shù)為50~5000個(gè)時(shí)明顯減少了碰撞次數(shù)。同時(shí)也注意到當(dāng)標(biāo)簽個(gè)數(shù)少于50時(shí),改進(jìn)算法性能下降,這是因?yàn)榇藭r(shí)標(biāo)簽數(shù)接近分群的群數(shù)導(dǎo)致空傳率上升所致,解決的辦法是減少分群的群數(shù)。針對(duì)該問題,特設(shè)計(jì)仿真2來分析。
仿真2:為了分析低標(biāo)簽密度時(shí)改進(jìn)算法的性能,特設(shè)計(jì)以下仿真:采用改進(jìn)算法,分別使用5~8位寄存器。高l~4位為高位,即分群群數(shù)分別為2、4、8和16。仿真結(jié)果如圖3所示,可以看到當(dāng)標(biāo)簽總數(shù)為20時(shí),如果把高位寄存器的位數(shù)從4降到l,則平均碰撞次數(shù)從5 5回落到1.4。而當(dāng)標(biāo)簽總數(shù)為200和2000時(shí),高位寄存器位數(shù)的改變對(duì)平均碰撞次數(shù)的影響不大。因此如果在某次仲裁中出現(xiàn)多次空傳,根據(jù)這個(gè)先驗(yàn)知識(shí),讀寫器可以在下一次仲裁時(shí)指示標(biāo)簽改變寄存器高位個(gè)數(shù),以此降低空傳率,進(jìn)而可以降低平均碰撞次數(shù)。
本文提出的防碰撞算法僅需在電子標(biāo)簽中配置1個(gè)8位寄存器、1個(gè)l位“O”
評(píng)論