應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點新聞
企業(yè)注冊個人注冊登錄

RFID干貨專欄|16 碰撞算法、綜合解決方案

2022-01-01 09:46 物聯(lián)傳媒
關(guān)鍵詞:RFID

導讀:甘泉老師花費數(shù)年之功,撰寫的新書《物聯(lián)網(wǎng)UHF RFID技術(shù)、產(chǎn)品及應(yīng)用》正式出版發(fā)布,本書對UHF RFID最新的技術(shù)、產(chǎn)品與市場應(yīng)用進行了系統(tǒng)性的闡述,干貨滿滿!RFID世界網(wǎng)得到了甘泉老師獨家授權(quán),在RFID世界網(wǎng)公眾號特設(shè)專欄,陸續(xù)發(fā)布本書內(nèi)容。

RFID干貨專欄概述

經(jīng)過20多年的努力發(fā)展,超高頻RFID技術(shù)已經(jīng)成為物聯(lián)網(wǎng)的核心技術(shù)之一,每年的出貨量達到了200億的級別。在這個過程中,中國逐步成為超高頻RFID標簽產(chǎn)品的主要生產(chǎn)國,在國家對物聯(lián)網(wǎng)發(fā)展的大力支持下,行業(yè)應(yīng)用和整個生態(tài)的發(fā)展十分迅猛。然而,至今國內(nèi)還沒有一本全面介紹超高頻RFID技術(shù)的書籍。

為了填補這方面的空缺,甘泉老師花費數(shù)年之功,撰寫的新書《物聯(lián)網(wǎng)UHF RFID技術(shù)、產(chǎn)品及應(yīng)用》正式出版發(fā)布,本書對UHF RFID最新的技術(shù)、產(chǎn)品與市場應(yīng)用進行了系統(tǒng)性的闡述,干貨滿滿!RFID世界網(wǎng)得到了甘泉老師獨家授權(quán),在RFID世界網(wǎng)公眾號特設(shè)專欄,陸續(xù)發(fā)布本書內(nèi)容。


微信圖片_20220121094338.png


掃碼觀看本章節(jié)視頻講解

3.3.2基于實際場景的多標簽防碰撞算法——動態(tài)Q算法

01、標簽數(shù)量N與Q的概率分析

從13.56MHz頻段的ISO/IEC 14443協(xié)議、ISO/IEC 15693協(xié)議到900MHz頻段的ISO/IEC 18000-6B/C協(xié)議,防碰撞協(xié)議在現(xiàn)有的技術(shù)中一般都基于兩種基本算法:時隙ALOHA算法和二進制樹的搜索算法。

3.3.1節(jié)的多標簽碰撞算法是針對已知固定數(shù)量標簽場景中所使用的方法。在不知道天線覆蓋場內(nèi)有多少標簽時,Q怎么選擇,如何最有效率地讀取標簽,就需要一個可以自動調(diào)節(jié)的Q算法來實現(xiàn),稱之為動態(tài)Q算法。

考慮一下,在標簽數(shù)量未知的情況下如果Q是固定的一個數(shù)字,那么無論Q設(shè)什么樣的數(shù)字都會存在很大問題。比如我們把Q設(shè)為4,如果場內(nèi)有500張標簽,一定會出現(xiàn)碰撞嚴重導致很難讀全;如果場內(nèi)標簽只有1張或沒有,又需要浪費許多時隙時間。這個時候就需要動態(tài)Q算法,即閱讀器可以根據(jù)場內(nèi)讀取的標簽數(shù)量以及效果進行動態(tài)的調(diào)整,如果標簽多,Q就自動變大;如果標簽少,Q就自動變小。那如何判斷場內(nèi)的標簽數(shù)量呢?這需要從概率的角度著手進行分析。閱讀器對標簽的識別體現(xiàn)在每一個時隙上,根據(jù)3.2.1節(jié)中的分析,在一個時隙內(nèi)可能發(fā)生三種情況,分別是一個標簽返回:讀取;多個標簽返回:沖突;沒有標簽返回:空閑。在不考慮碰撞讀取率時(A=0),這三種情況下根據(jù)標簽數(shù)量為N、清點參數(shù)Q的清點效率F的概率表達式如下:

①只一個標簽返回——讀?。?/p>


image.png

②有多個標簽返回——沖突:


image.png

③沒有標簽返回——空閑:


image.png

只是通過這樣枯燥的算式,發(fā)現(xiàn)不了任何規(guī)律。不妨假設(shè)場內(nèi)標簽的數(shù)量為固定的一些數(shù)量,選用不同的Q時碰撞和無返回的概率是多少。假定場內(nèi)的標簽數(shù)量分別是:N=1、2、5、10、20、50、100、200、500、1000;動態(tài)Q=1、2、3、4、5、6、7、8、9、10。將這些參數(shù)帶入式(3-6)得到讀取的概率如表3-13所示;同理,帶入式(3-7)和式(3-8)可得到表3-14碰撞概率和表3-15空閑概率。

從表3-13中可以明顯的看到在標簽數(shù)量N不同時,不同的Q的讀取率是不同的,且讀取率比較高的Q一般在附近。如N=10,在Q=3和Q=4 之間,此時讀取率最高的為Q=3時的0.38和Q=4時的0.35。從表3-13中也可以看到,表格的左下角和右上角的概率基本都是0,左下角為時隙多標簽少空閑的概率大導致讀取率低;右上角時隙少標簽多碰撞概率大導致讀取率低。

在正常的多標簽動態(tài)算法的過程中如果連續(xù)兩個時隙的狀態(tài)都是讀取狀態(tài),就說明當前的Q與N非常合適,不需要進行Q的調(diào)整。

表3-13讀取Q、N概率表


image.png


從表3-14碰撞Q、N概率中可以發(fā)現(xiàn)N越大碰撞概率越大,Q越小碰撞概率越大,該表格的右上角碰撞概率基本都為1,就是說100%發(fā)生碰撞,就需要把Q調(diào)大。

在正常的多標簽動態(tài)算法的過程中,如果連續(xù)兩個時隙的狀態(tài)都是碰撞狀態(tài),就說明當前的Q相對于N太小,需要增大Q。也可以通過表3-14計算得出結(jié)論,假定當前狀態(tài)為N=10,Q=2,碰撞概率為0.76,連續(xù)兩次碰撞的概率為0.76×0.76=0.57,此概率大于50%,就需要將Q增大為3。通過表3-11已知N=10時Q=3或4為最合適的,剛好與之前的結(jié)論想吻合。

表3-14碰撞Q、N概率表


image.png


從表3-15中可知標簽N越多空閑概率越小,Q越大空閑概率越大,該表格的左下角概率值都為1,就是說100%發(fā)生空閑,就需要把Q調(diào)小。

在正常的多標簽動態(tài)算法的過程中如果連續(xù)兩個時隙的狀態(tài)都是空閑狀態(tài),就說明當前的Q相對于N太大,需要減小Q。讀者也可以通過表3-15計算得出結(jié)論,假定當前狀態(tài)為N=10,Q=5,碰撞概率為0.73,連續(xù)兩次碰撞的概率為0.73×0.73=0.53,此概率大于了50%,就需要將Q減小為4。通過表3-11已知N=10時Q=3或4為最合適,剛好與之前的結(jié)論相吻合。

表3-15空閑Q、N概率表


image.png


02、動態(tài)Q的實例分析

經(jīng)過上述的算法和概率分析,已經(jīng)了解了Q變化的基本要領(lǐng),但是在實際的案例中,閱讀器的動態(tài)Q是如何設(shè)置的呢?筆者通過對主流閱讀器的動態(tài)Q算法研究,總結(jié)了一套非常適合工程應(yīng)用的動態(tài)Q方法,其步驟如下:

①Q(mào)=0 檢測場內(nèi)是否有標簽;

②Q=3 初始化Q狀態(tài)識別標簽;

③連續(xù)碰撞2次,則Q+1;連續(xù)空閑2次,則Q-1,無連續(xù)碰撞和連續(xù)空閑則讀取識別;

④連續(xù)發(fā)3次Q=0為空,確定全部識別,場中不剩下任何標簽;

⑤掉電開啟下一輪盤點。

該動態(tài)算法中,①首先發(fā)Q=0,看場內(nèi)是否有標簽,會出現(xiàn)3個情況,如果沒有標簽則跳轉(zhuǎn)到⑤進行下一輪盤點;如果有一個標簽則讀取該標簽數(shù)據(jù)跳轉(zhuǎn)到④,確認場內(nèi)沒有標簽后再跳轉(zhuǎn)到⑤進行下一輪盤點;如果場內(nèi)有多張標簽則跳轉(zhuǎn)到②Q=3 初始化Q狀態(tài)進行識別標簽再到③、④、⑤。

這里將步驟③和④的組合稱之為基礎(chǔ)動態(tài)Q策略,這個策略是最常用的動態(tài)Q策略,讀者也可以開發(fā)類似的動態(tài)Q策略,比如監(jiān)控多次識別的結(jié)果判斷Q是否跳轉(zhuǎn)等,不過實際測結(jié)果比基礎(chǔ)動態(tài)Q策略的提升不會超過10%(筆者驗證過大量AI動態(tài)Q策略,雖然優(yōu)于基礎(chǔ)動態(tài)Q策略,但進步不大且較為復(fù)雜)。

假定場內(nèi)標簽數(shù)量N=100,但是閱讀器未知該信息,此時的多標簽動態(tài)Q識別過程如下:

運行①Q(mào)=0,發(fā)生沖突、場內(nèi)存在多個標簽(N=100;時隙M=1);

運行②Q=3,(N=100);

運行③ Q=3時連續(xù)兩次沖突Q=4(N=100;M=2);

運行③ Q=4時連續(xù)兩次沖突Q=5(N=100;M=2);

運行③ Q=5時連續(xù)兩次沖突Q=6(N=100;M=2);

運行③ Q=6時連續(xù)進行讀取,第一輪讀取標簽21個還剩79個(根據(jù)表(3-13)中Q=6、N=100概率給出數(shù)據(jù)33%×64=21,實際情況略有不同)(N=79;M=64);

運行③ Q=6時繼續(xù)進行讀取,第二輪讀取標簽23個還剩56個(根據(jù)表(3-13)中Q=6、N=79概率為36%×64=23,實際情況略有不同)(N=56;M=64);

運行③ Q=6時繼續(xù)進行讀取,第三輪讀取標簽24個還剩32個(根據(jù)表(3-13)中Q=6、N=56概率為37%×64=24,實際情況略有不同)(N=32;M=64);

運行③ Q=6時繼續(xù)進行讀取,第四輪讀取標簽20個還剩12個(根據(jù)表(3-13)中Q=6、N=32概率為31%×64=20,實際情況略有不同)(N=12;M=64);

運行③ Q=6時連續(xù)兩次空閑,Q=5(N=12;M=2);

運行③ Q=5時繼續(xù)進行讀取,第五輪讀取標簽8個還剩4個(根據(jù)表(3-13)中Q=5、N=12概率為26%×32=8,實際情況略有不同)(N=4;M=32);

運行③ Q=5時連續(xù)兩次空閑,Q=4(N=4;M=2);

運行③ Q=4時連續(xù)兩次空閑,Q=3(N=4;M=2);

運行③ Q=3時繼續(xù)進行讀取,第六輪讀取標簽3個還剩1個(根據(jù)表(3-13)中Q=3、N=4概率為33%×8=3,實際情況略有不同)(N=1;M=8);

運行③ Q=3時連續(xù)兩次空閑,Q=2(N=1;M=2);

運行③ Q=2時繼續(xù)進行讀取,第七輪讀取標簽1個還剩0個(根據(jù)表(3-13)中Q=2、N=1概率為25%×4=1,實際情況略有不同)(N=0;M=4);

運行③ Q=2時連續(xù)兩次空閑,Q=1(N=0;M=2);

運行③ Q=1時連續(xù)兩次空閑,Q=0(N=0;M=2);

運行④取連續(xù)發(fā)3次Q=0 確定全部識別;

掉電重復(fù)下一輪盤點。

從上述識別過程中Q先變大再變小最終將所有標簽都識別到,并確認場內(nèi)沒有遺漏的標簽。雖然看起來非常繁瑣,但是大大提高了識別效率。對識別效率的評估可以通過標簽時隙比實現(xiàn),即總共標簽數(shù)量與總共時隙的比值,比值越高說明效率越高。標簽數(shù)量N=100個,間隙數(shù)量就是把從1)到20)的所有時隙加起來M=319,那么標簽時隙比為100÷319=31.3%,這是一個非常高的效率值。

為了讓讀者了解動態(tài)Q的優(yōu)勢,將其與固定Q算法進行對比。此處采用固定Q的最優(yōu)方式,假設(shè)閱讀器已知場內(nèi)標簽數(shù)量。在N=100時,已知Q=7具有最高的識別率,那么:

Q=7,N=100,讀取率0.36*128=46個,(N=54;M=128);

Q=7,N=54,讀取率0.28*128=36個,(N=18;M=128);

Q=7,N=18,讀取率0.12*128=15個,(N=3;M=128);

Q=7,N=3,讀取率0.023*128=3個,(N=0;M=128);

Q=7,N=0,讀取率0個,(N=0;M=128)

從Q=7的固定Q可以看到一共運行5輪確定所有標簽都被識別且M=640,對應(yīng)的標簽時隙比為15.6%。

再對比一下Q=6,N=100的情況,固定Q=6,那么:

Q=6,N=100,讀取率0.33*64=21個,(N=79;M=64);

Q=6,N=79,讀取率0.36*64=23個,(N=56;M=64);

Q=6,N=56,讀取率0.37*64=24個,(N=32;M=64);

Q=6,N=32,讀取率0.31*64=20個,(N=12;M=64);

Q=6,N=12,讀取率0.16*64=10個,(N=2;M=64);

Q=6,N=2,讀取率0.031*64=2個,(N=0;M=64);

Q=6,N=0,讀取率0個,(N=0;M=64)。

從Q=6的固定Q可以看到一共運行7輪確定所有標簽都被識別且M=448,對應(yīng)的標簽時隙比為22.3%。

再對比一下Q=5,N=100的情況,固定Q=5,那么:

Q=5,N=100,讀取率0.135*32=4個,(N=96;M=32);

Q=5,N=96,讀取率0.147*32=5個,(N=91;M=32);

Q=5,N=91,讀取率0.163*32=5個,(N=86;M=32);

Q=5,N=86,讀取率0.181*32=6個,(N=80;M=32);

Q=5,N=80,讀取率0.204*32=7個,(N=73;M=32);

Q=5,N=73,讀取率0.232*32=7個,(N=66;M=32);

Q=5,N=66,讀取率0.262*32=8個,(N=58;M=32);

Q=5,N=58,讀取率0.297*32=9個,(N=49;M=32);

Q=5,N=49,讀取率0.334*32=11個,(N=38;M=32);

Q=5,N=38,讀取率0.367*32=12個,(N=26;M=32);

Q=5,N=26,讀取率0.367*32=12個,(N=14;M=32);

Q=5,N=14,讀取率0.290*32=9個,(N=5;M=32);

Q=5,N=5,讀取率0.138*32=4個,(N=1;M=32);

Q=5,N=1,讀取率0.031*32=1個,(N=0;M=32);

Q=5,N=0,讀取率0個,(N=0;M=32)。

從Q=5的固定Q可以看到一共運行15輪確定所有標簽都被識別且M=480,對應(yīng)的標簽時隙比為20.8%。

關(guān)于其它固定Q的標簽時隙比,這里不做更多的計算,但明顯可以推論Q大于7時會有更多的空閑,導致M偏大,而Q小于5的會有大量的沖突,同樣導致M偏大。在未知場內(nèi)標簽數(shù)量的情況下使用動態(tài)Q算法會比即使已知場內(nèi)標簽數(shù)量的固定Q算法效率高50%。因此應(yīng)用中合理使用動態(tài)Q會大大提高多標簽識別的效率和準確性。

3.3.3 多標簽識別綜合解決方案

由于近些年來超高頻RFID的應(yīng)用場景越來越多,面臨的多標簽識別和環(huán)境干擾等諸多挑戰(zhàn),尤其是閱讀器廠商在設(shè)計和生產(chǎn)閱讀器時并不知道客戶的最終應(yīng)用場景。因此閱讀器的適應(yīng)性需要很強,能夠根據(jù)具體情況在多個場景中自動切換。本節(jié)將給出一套完整的解決方案,通過算法調(diào)節(jié)多個參數(shù)最終實現(xiàn)閱讀器可以應(yīng)對絕大多數(shù)的標簽識別場景。

首先將所有超高頻RFID識別的應(yīng)用場景和需求總結(jié)如下:

場內(nèi)標簽數(shù)量:沒有標簽、1個標簽,幾十個標簽,幾百個標簽或一兩千個標簽等多種可能性。

識別率:需要保證每一輪的識別將場中的標簽全部都清點完畢,不能存在遺漏。

識別速度:在保證識別率的前提下需要保證盡可能最快的方式實現(xiàn)場內(nèi)的標簽識別。

現(xiàn)場環(huán)境:無論在實驗室的良好環(huán)境中,還是在惡劣的工廠干擾環(huán)境中,都保證最優(yōu)的識別率和識別速度。

覆蓋范圍:許多場景中標簽分布比較分散,或標簽的位置較差,需要更大的覆蓋范圍,保證對弱標簽的識別效果。

根據(jù)上述需求,可以從本章學習的多個參數(shù)中找到解決問題的手段:

Session會話層,可以使已經(jīng)被識別到的標簽不再重復(fù)響應(yīng)閱讀器的命令。

BLF鏈路速率,既可以提供較高的鏈路速率實現(xiàn)高速識別,又可以提供較低的鏈路速率實現(xiàn)較高的靈敏度。

FM0/Miller編碼,F(xiàn)M0可以提供高的鏈路速率實現(xiàn)高速識別,Miller8可以提供較好的抗干擾特性。

動態(tài)Q算法,可以實現(xiàn)不同數(shù)量的多標簽識別率和最高效的清點率。

多天線場景:在多天線的場景中,不僅實現(xiàn)區(qū)域的覆蓋,同時滿足識別率和識別速度(增加多個天線可以增加覆蓋范圍和識別率,但多天線的場景中有大量的標簽是重復(fù)覆蓋的,需要采用Session解決重復(fù)識別的問題)。

上面的幾條需求看似不可能完成的任務(wù),但在超高頻RFID的技術(shù)專家多年的努力研究下,最終找到了完美的解決方案。解決方案如下:

①、配置初始參數(shù)Session=1;TargetA到B; 初始天線=1。

②、配置BLF=640kHz;編碼=FM0;Q=4。

③、基礎(chǔ)動態(tài)Q策略(連續(xù)碰撞2次Q+1;連續(xù)空閑2次Q-1,無連續(xù)碰撞和連續(xù)空閑則讀取識別;直至3次Q=0為空)。

④、配置BLF=40kHz;編碼=Miller8;Q=3。

⑤、基礎(chǔ)動態(tài)Q策略。

⑥、若存在多天線則跳轉(zhuǎn)為下一個天線重復(fù)②到⑤,直至所有天線輪詢一遍。

⑦、配置初始參數(shù)Session=1;TargetB到A; 初始天線=1。

⑧、②到⑤。

⑨、⑥。

⑩、掉電繼續(xù)下一輪盤點。

上述策略的步驟為,首先采用最高速率的配置參數(shù)組合BLF=640kHz、編碼=FM0將場中絕大多數(shù)容易識別的標簽快速盤點完成,采用初始Q=4是工程經(jīng)驗選擇,具有最好的適應(yīng)性。第二次識別采用系統(tǒng)中抗干擾和靈敏度最高的配置參數(shù)組合BLF=40kHz、編碼=Miller8將場中的一些信號較弱的標簽實現(xiàn)盤點,Q=3的初始值是因為剩下未盤點的標簽一般數(shù)量較小,采用較小的初始Q足夠滿足需求。

此時再跳轉(zhuǎn)到另外一個天線重復(fù)前面的操作,由于所有已經(jīng)被天線1盤點到的標簽已經(jīng)在Session1跳轉(zhuǎn)到了B狀態(tài),新的天線在盤點時不會發(fā)出響應(yīng),故不會因為重復(fù)覆蓋而影響盤點速度。當所有天線都完成上述操作后,場內(nèi)的標簽已經(jīng)全部完成盤點,則進入下一輪反向盤點。最終所有的標簽狀態(tài)又回到了Target A,一次完整的盤點結(jié)束。

本節(jié)提供的多標簽識別綜合解決方案是市面上最優(yōu)的解決方案,如果還要提升系統(tǒng)性能,則需要優(yōu)化多標簽碰撞識別率A和基礎(chǔ)動態(tài)Q策略,前者可以通過提升閱讀器的靈敏度和數(shù)字信號處理算法實現(xiàn),后者可以通過AI學習算法增強也可以使用Matlab多次仿真取最優(yōu)策略,但這兩者投入較大,對于系統(tǒng)的識別率和識別速度提升空間有限。

3.3節(jié)中幾種基于Gen2的多標簽算法是筆者經(jīng)過多年的研究和許多項目實踐經(jīng)驗總結(jié)出來的結(jié)論,在應(yīng)用和閱讀器的開發(fā)中會有幫助。雖然本節(jié)有許多計算內(nèi)容,但都是比較簡單的基礎(chǔ)計算,如果讀者也能自己推導,并根據(jù)推導的結(jié)果用閱讀器和標簽進行驗證,對這部分知識的理解會更有幫助。

image.png