應用

技術

物聯網世界 >> 物聯網新聞 >> 物聯網熱點新聞
企業(yè)注冊個人注冊登錄

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

2022-01-01 09:46 物聯傳媒
關鍵詞:RFID

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

RFID干貨專欄概述

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

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


微信圖片_20220121094338.png


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

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

01、標簽數量N與Q的概率分析

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

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

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

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


image.png

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


image.png

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


image.png

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

從表3-13中可以明顯的看到在標簽數量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的調整。

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


image.png


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

在正常的多標簽動態(tài)算法的過程中,如果連續(xù)兩個時隙的狀態(tài)都是碰撞狀態(tài),就說明當前的Q相對于N太小,需要增大Q。也可以通過表3-14計算得出結論,假定當前狀態(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為最合適的,剛好與之前的結論想吻合。

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


image.png


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

在正常的多標簽動態(tài)算法的過程中如果連續(xù)兩個時隙的狀態(tài)都是空閑狀態(tài),就說明當前的Q相對于N太大,需要減小Q。讀者也可以通過表3-15計算得出結論,假定當前狀態(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為最合適,剛好與之前的結論相吻合。

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


image.png


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

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

①Q=0 檢測場內是否有標簽;

②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,看場內是否有標簽,會出現3個情況,如果沒有標簽則跳轉到⑤進行下一輪盤點;如果有一個標簽則讀取該標簽數據跳轉到④,確認場內沒有標簽后再跳轉到⑤進行下一輪盤點;如果場內有多張標簽則跳轉到②Q=3 初始化Q狀態(tài)進行識別標簽再到③、④、⑤。

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

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

運行①Q=0,發(fā)生沖突、場內存在多個標簽(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個(根據表(3-13)中Q=6、N=100概率給出數據33%×64=21,實際情況略有不同)(N=79;M=64);

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

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

運行③ Q=6時繼續(xù)進行讀取,第四輪讀取標簽20個還剩12個(根據表(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個(根據表(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個(根據表(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個(根據表(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 確定全部識別;

掉電重復下一輪盤點。

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

為了讓讀者了解動態(tài)Q的優(yōu)勢,將其與固定Q算法進行對比。此處采用固定Q的最優(yōu)方式,假設閱讀器已知場內標簽數量。在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,對應的標簽時隙比為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,對應的標簽時隙比為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,對應的標簽時隙比為20.8%。

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

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

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

首先將所有超高頻RFID識別的應用場景和需求總結如下:

場內標簽數量:沒有標簽、1個標簽,幾十個標簽,幾百個標簽或一兩千個標簽等多種可能性。

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

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

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

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

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

Session會話層,可以使已經被識別到的標簽不再重復響應閱讀器的命令。

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

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

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

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

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

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

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

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

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

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

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

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

⑧、②到⑤。

⑨、⑥。

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

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

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

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

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

image.png