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