一種UHFRFID多標簽處理算法的改進
引 言
無源RFID(無線射頻識別技術(shù))是一種非接觸式自動識別技術(shù),根據(jù)頻段可分為 LFRFID(125kHz),HFRFID(13.56MHz)和UHF RFID(840~960 MHz)。其中,UHF RFID由于標簽讀取距離遠、存儲容量大、無需電池、多標簽處理能力強等優(yōu)點, 在物聯(lián)網(wǎng)信息識別系統(tǒng)方面的應(yīng)用日益廣泛。
在物流及倉儲等應(yīng)用中,由于標簽數(shù)據(jù)數(shù)量大、存放密度高,很容易引起多標簽響應(yīng)沖突,導(dǎo)致閱讀器無法有效識別標簽數(shù)據(jù)。為了有效解決該問題,需要在讀寫器的軟件設(shè)計中使用多標簽防沖突算法,而防沖突算法的好壞將直接影響系統(tǒng)對多標簽數(shù)據(jù)的處理效率。
目前,UHF RFID 國際標準分為ISO18000-6A/B/C 三類, 其中,ISO18000-6C 協(xié)議應(yīng)用最為廣泛。本文對ISO18000-6C 協(xié)議中的標簽防沖突算法進行了研究,并在此基礎(chǔ)上做出改進,以提高 UHF RFID 讀寫器對多標簽的識別處理能力。
1 UHF RFID多標簽算法
ISO18000-6C協(xié)議中的防沖突算法采用基于時隙 Aloha 協(xié)議的防沖突算法。標簽根據(jù)讀寫器盤點命令的參數(shù) Q值劃分時隙,可隨機在某一個時隙進行數(shù)據(jù)上報,當有多個標簽選擇同一個時隙上報數(shù)據(jù)導(dǎo)致讀寫器無法正常解析數(shù)據(jù)時即發(fā)生沖突,為解決該現(xiàn)象,在讀寫器端使用多標簽防沖突算法。目前,讀寫器端主流的防沖突算法主要包括固定時隙算法和動態(tài)時隙調(diào)節(jié)算法。
1.1 固定時隙算法
固定時隙算法處理標簽的原理相對比較簡單,大致分為以下幾個步驟:
(1) 讀寫器根據(jù)事先人為設(shè)置的標簽數(shù)量 N計算出參數(shù)Q 值,一般需滿足條件 :2Q≤ N<2Q+1,通過 Q 值計算得到標簽需劃分的時隙數(shù) Slots=2Q,然后將Slots 值通過Query 命令下發(fā)至標簽;
(2) 標簽在收到 Query命令中的 Slots參數(shù)后, 從 [0, 2Q- 1] 中隨機選擇一個整數(shù)載入其時隙計數(shù)器 SC,如果SC 中的時隙數(shù)為 0,則標簽立即產(chǎn)生一個隨機數(shù) RN16 返回應(yīng)答;
(3) 讀寫器正確解析標簽返回的RN16后,向標簽發(fā)出包含該RN16值的確認應(yīng)答ACK;
(4) 標簽收到ACK后返回包含標簽 EPC數(shù)據(jù)在內(nèi)的應(yīng)答幀;
(5) 讀寫器收到標簽返回的數(shù)據(jù)幀后發(fā)送 QueryRep命令通知該標簽改變識別標志位不再參與識別過程,其他標簽的時隙計數(shù)器 SC中的數(shù)值減 1;
(6) 當有標簽的時隙計數(shù)器 SC數(shù)據(jù)為 0時,返回應(yīng)答RN16,并重復(fù)(3)的操作;
(7) 讀寫器根據(jù)標簽識別情況或者預(yù)設(shè)時間參數(shù)判斷是否結(jié)束標簽識別過程。
1.2 動態(tài)時隙調(diào)節(jié)算法
固定時隙算法在事先預(yù)知標簽數(shù)量并且標簽數(shù)量不變的情況下可取得較好的效果,但在使用過程中,較多場合事先無法準確獲悉標簽數(shù)量或某些場合的標簽數(shù)量一直處于動態(tài)變化中,因此需要在識別過程中大致估算實時標簽數(shù)量并動態(tài)調(diào)節(jié)時隙參數(shù),從而保證讀寫器可快速有效地識別標簽。
目前,動態(tài)時隙調(diào)節(jié)算法的主要思路是在固定時隙算法的基礎(chǔ)上記錄標簽的應(yīng)答與沖突情況,并結(jié)合此時的參數(shù) Q 值與調(diào)節(jié)的門限閾值進行對比,當計算結(jié)果大于閾值時,對當前 Q 值進行調(diào)整并通知標簽根據(jù)新的時隙進行識別。具體過程如下:
(2)當 T<Slots/(2X)時,表明時隙數(shù)量相對于當前的標 簽數(shù)量過大,需減小 Q 值 ;
(3)當 T>Slots/X 時,表明時隙數(shù)量相對于當前的標簽 數(shù)量過小,需增大 Q 值 ;
(4)當 Slots/(2X)≤ T ≤ Slots/X 時,表明時隙數(shù)量相對 于當前的標簽數(shù)量處于合理區(qū)間內(nèi),無需調(diào)節(jié)。
(5)根據(jù)上述步驟的判斷結(jié)果及 Q 值調(diào)整下一輪 Query 命令參數(shù)中的時隙數(shù)量。
1.3 動態(tài)時隙算法的優(yōu)化
動態(tài)時隙算法在標簽數(shù)量未知及數(shù)量不固定的場合下能夠根據(jù)標簽數(shù)量動態(tài)調(diào)節(jié)時隙數(shù)量,減少標簽識別沖突,提高標簽識別效率。從實際應(yīng)用情況來看,該算法還存在一些問題,主要原因在于在一些標簽識別沖突嚴重的場合,算法對標簽量的估值存在較大偏差,導(dǎo)致算法判斷錯誤,因此時隙數(shù)與實際標簽量存在較大差異,雖然可通過多輪識別收集標簽量來接近真實的標簽情況,但該方法識別效率低下,且不適用標簽量動態(tài)變化較快的情況。
本文提出了一種基于動態(tài)時隙算法的優(yōu)化算法,通過讀寫器收集識別過程中各階段的狀態(tài)值,形成多層判斷條件, 通過各狀態(tài)值的變化情況綜合判斷當前時隙數(shù)量與標簽量是否相符,調(diào)整 Q 值,從而在短時間內(nèi)迅速提高多標簽處理能力。
通過實驗測試在一定量標簽時如何選取 Q 值時隙數(shù)。設(shè)置三組標簽場景,使其標簽量分別為100,300,500,記錄每組實驗在不同 Q值下 30s內(nèi)讀到的標簽數(shù)量,為避免實驗誤差, 每個 Q值測試 10次,最后取平均值。經(jīng)統(tǒng)計分析可知,當 Q 值對應(yīng)的時隙數(shù)約等于當前標簽量(即 N≈ Slots)時,讀寫器的多標簽處理能力最佳,同等時間內(nèi)讀取的標簽量最多。
在此基礎(chǔ)上進一步分析,記錄每組標簽單化過程中的狀態(tài)值,包括無應(yīng)答時隙數(shù) S1,有應(yīng)答時隙數(shù) S2 與標簽成功識別數(shù) S3,建立公式 Ns=aS1+bS2+cS3。將多次統(tǒng)計記錄數(shù)據(jù)代入公式,其中 Ns 為每次實驗的標簽總數(shù),據(jù)此計算求出 a,b,c 三個系數(shù)均值。
修改之前的 Q 值調(diào)整算法,過程如下:
(1)收集上一輪識別過程中的狀態(tài)值 S1,S2 和 S3,根據(jù) 公式 Ns=a×S1+b×S2+c×S3 求出當前標簽預(yù)估量 Ns。
(2)將 Ns 與當前 Q 值對應(yīng)的 Slots 值進行比較,將調(diào)整 閾值 X 設(shè)為 0.8,根據(jù)測試情況進行調(diào)整。
(3)當 Ns>2X×Slots 時,認為當前 Q 值過小,需增加 Q 值。
(4)當 Ns<X×Slots 時,認為當前 Q 值過大,需減小 Q 值。
(5)當 X×Slots ≤ Ns ≤ 2X×Slots 時,表明時隙數(shù)量相對 于當前的標簽數(shù)量處于合理區(qū)間內(nèi),無需調(diào)整。
2 結(jié) 語
本文對基于 ISO/IEC18000-6C 協(xié)議的標簽單化過程進行 了分析,對當前的多標簽固定時隙算法與動態(tài)時隙調(diào)整算法進 行了研究討論,并在此基礎(chǔ)上進行標簽分組測試,統(tǒng)計了大 量測試數(shù)據(jù),記錄后提出了新的多標簽處理算法,已通過實 驗測試對算法進行了驗證。實驗結(jié)果表明,相對于以前的多 標簽處理算法,新算法可較為準確地預(yù)估當前標簽量,并在 此基礎(chǔ)上對 Q 值進行動態(tài)分析調(diào)整,提高了標簽的識別效率, 減少了同等標簽量情況下標簽的識別時間,對解決 RFID 系統(tǒng) 中經(jīng)常遇到的大量標簽防碰撞問題具有一定的參考價值。