何 烜,王紅軍,王倫文
(國(guó)防科技大學(xué)電子對(duì)抗學(xué)院,合肥 230037)
射頻識(shí)別(Radio Frequency Identification,RFID)技術(shù)作為物聯(lián)網(wǎng)感知層的核心技術(shù)之一,是一種通過(guò)電磁波自動(dòng)識(shí)別目標(biāo)的技術(shù)[1]。其基本原理是利用天線間的近場(chǎng)耦合或反向調(diào)制耦合的方式來(lái)傳遞信息,以實(shí)現(xiàn)對(duì)目標(biāo)物體的認(rèn)證。與傳統(tǒng)的識(shí)別技術(shù)相比,射頻識(shí)別技術(shù)具有操作簡(jiǎn)單、穿透性強(qiáng)和自動(dòng)化程度高等優(yōu)點(diǎn),在物流、門(mén)禁、工業(yè)生產(chǎn)、智能倉(cāng)庫(kù)以及車(chē)聯(lián)網(wǎng)等領(lǐng)域得到廣泛應(yīng)用。
在實(shí)際應(yīng)用中,經(jīng)常會(huì)有大量標(biāo)簽等待識(shí)別,當(dāng)讀寫(xiě)器發(fā)出請(qǐng)求命令后,標(biāo)簽就會(huì)立刻響應(yīng)該讀寫(xiě)器,標(biāo)簽碰撞問(wèn)題不可避免。很多學(xué)者對(duì)標(biāo)簽防碰撞問(wèn)題展開(kāi)了研究,主流算法分為兩大類(lèi):基于二進(jìn)制樹(shù)的搜索算法和時(shí)隙ALOHA算法[2]。基于二進(jìn)制樹(shù)的搜索算法是利用曼徹斯特的編碼特性去識(shí)別標(biāo)簽ID的碰撞位,然后通過(guò)不斷確定碰撞位從而可以識(shí)別此標(biāo)簽。但是讀寫(xiě)器修改多次碰撞位只能識(shí)別一個(gè)標(biāo)簽,則該算法吞吐率較低,識(shí)別時(shí)間長(zhǎng),性能較差,難以對(duì)大量標(biāo)簽進(jìn)行識(shí)別。動(dòng)態(tài)二進(jìn)制樹(shù)搜索(Dynamic Binary Search,DBS)算法[3]、自調(diào)整混合樹(shù)(Adjustive Hybrid Tree,AHT)算法[4]對(duì)該算法進(jìn)行了改進(jìn),改進(jìn)算法在識(shí)別效率上有一定的提升,但依然存在識(shí)別時(shí)間長(zhǎng)的問(wèn)題。
時(shí)隙ALOHA算法是讓標(biāo)簽在不同時(shí)隙內(nèi)響應(yīng),當(dāng)某個(gè)時(shí)隙內(nèi)只有一個(gè)標(biāo)簽響應(yīng)時(shí),則讀寫(xiě)器可成功識(shí)別此標(biāo)簽。然而當(dāng)標(biāo)簽數(shù)量很多時(shí),多個(gè)標(biāo)簽會(huì)在同一時(shí)隙中響應(yīng),則會(huì)出現(xiàn)碰撞,讀寫(xiě)器就無(wú)法成功識(shí)別。針對(duì)此算法的改進(jìn)算法有很多,如幀時(shí)隙 ALOHA(Frame Slotted ALOHA,F(xiàn)SA)算法[5]、基于標(biāo)簽分組的幀時(shí)隙ALOHA(Grouped Frame Slotted ALOHA,GFSA)算法[6]、動(dòng)態(tài)幀時(shí)隙 ALOHA(Dynamic Frame Slotted ALOHA,DFSA)算法[7]及基于FSA或者DFSA算法的改進(jìn)算法[8-9]等。文獻(xiàn)[8]對(duì)DFSA算法進(jìn)行改進(jìn),提出分組動(dòng)態(tài)幀時(shí)隙ALOHA(Grouped Dynamic Frame Slotted ALOHA,GDFSA)算法,該算法將標(biāo)簽分組方法應(yīng)用到DFSA算法中,但是其吞吐率沒(méi)有超過(guò)DFSA最大吞吐率36.8%這一范圍;文獻(xiàn)[9]將二叉樹(shù)算法和FSA算法結(jié)合起來(lái),在碰撞時(shí)隙中利用二叉樹(shù)算法進(jìn)行識(shí)別,其不足在于讀寫(xiě)器在利用二叉樹(shù)算法對(duì)碰撞時(shí)隙里的標(biāo)簽識(shí)別時(shí),會(huì)影響下一時(shí)隙內(nèi)的標(biāo)簽識(shí)別。
針對(duì)上述算法的缺陷與不足,本文提出基于標(biāo)簽分組和碼分多址的幀時(shí)隙ALOHA(Frame Slotted ALOHA based on TagGroupingand CDMA,G-CD-FSA)算法。該算法將標(biāo)簽分組算法與碼分多址技術(shù)高效的應(yīng)用到幀時(shí)隙ALOHA算法中,具有良好的性能。本文先對(duì)算法中的核心方法進(jìn)行闡述,再對(duì)算法進(jìn)行理論分析,最后進(jìn)行仿真對(duì)比實(shí)驗(yàn)并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析。
算法首先通過(guò)標(biāo)簽分組控制標(biāo)簽響應(yīng)的數(shù)量,即使標(biāo)簽數(shù)量很多,只要進(jìn)行合理分組,標(biāo)簽之間的碰撞概率也會(huì)降低許多;然后將幀時(shí)隙ALOHA算法與碼分多址技術(shù)有效融合,可以使讀寫(xiě)器具備在同一時(shí)隙中處理多個(gè)標(biāo)簽的能力。
在對(duì)標(biāo)簽進(jìn)行分組之前,首先對(duì)標(biāo)簽數(shù)量進(jìn)行估計(jì),數(shù)量估計(jì)的目的是為了對(duì)標(biāo)簽進(jìn)行合理分組??梢圆捎肰ogt算法[10]實(shí)現(xiàn)標(biāo)簽數(shù)量估計(jì)。估計(jì)方法是讀寫(xiě)器發(fā)送一個(gè)幀長(zhǎng)為L(zhǎng)的試探幀,讀寫(xiě)器范圍內(nèi)的標(biāo)簽進(jìn)行響應(yīng)。此時(shí),時(shí)隙會(huì)呈現(xiàn)3種狀態(tài):碰撞時(shí)隙、成功識(shí)別時(shí)隙和空閑時(shí)隙。讀寫(xiě)器將幀中的碰撞時(shí)隙、成功識(shí)別時(shí)隙與空閑時(shí)隙的個(gè)數(shù)與理論期望值作比較,當(dāng)誤差最小時(shí),就可以確定標(biāo)簽數(shù)量。具體實(shí)現(xiàn)公式如下:
其中,a0、a1、ak分別為空閑時(shí)隙、成功識(shí)別時(shí)隙和碰撞時(shí)隙的理論期望值,c0、c1、ck為實(shí)際測(cè)量值。理論期望值可以進(jìn)行如式(2)確定。設(shè)幀長(zhǎng)為L(zhǎng),因?yàn)镹個(gè)標(biāo)簽中有m個(gè)標(biāo)簽響應(yīng)同一時(shí)隙的概率服從二項(xiàng)分布,則:
當(dāng)m=0時(shí)表示空閑時(shí)隙,m=1時(shí)表示成功識(shí)別時(shí)隙,其余為碰撞時(shí)隙,可以表示為:
可根據(jù)式(1)~式(3)估計(jì)出標(biāo)簽數(shù)量。因?yàn)閹L(zhǎng)L確定,只有N為未知變量,取誤差最小時(shí)的N,就是標(biāo)簽的估計(jì)數(shù)量。
標(biāo)簽數(shù)量已知后,可以對(duì)不同數(shù)量的標(biāo)簽進(jìn)行合理分組。分組原則如下:以吞吐率為標(biāo)準(zhǔn),當(dāng)分組后的吞吐率大于分組前的吞吐率,則進(jìn)行分組,否則不分組。
設(shè)N為標(biāo)簽數(shù)量,L為固定幀長(zhǎng),s為擴(kuò)頻碼的個(gè)數(shù),吞吐率Ps可以表示為:
設(shè)分為r1組的吞吐率大于分為r2組的吞吐率,則將大量標(biāo)簽分為r1組。設(shè)r1>r2,比較過(guò)程如下式:
可化簡(jiǎn)為:
根據(jù)式(6),可以確定不同分組數(shù)下的標(biāo)簽數(shù)量區(qū)間。由上文分析可知,標(biāo)簽數(shù)量可以估計(jì)出來(lái),則可以反推該標(biāo)簽數(shù)量下合適的分組數(shù),從而可以確定分組數(shù)。
圖1 不同分組數(shù)下的吞吐率
圖1表示本文算法不同分組數(shù)下的吞吐率,從而可以分析不同分組數(shù)下所對(duì)應(yīng)的合適的標(biāo)簽數(shù)量區(qū)間。實(shí)驗(yàn)參數(shù)設(shè)置為:標(biāo)簽數(shù)量N=3 000,幀長(zhǎng)L=64,擴(kuò)頻碼個(gè)數(shù) s=4,r分別取 1、2、4、8、16 等。
從圖1可以看出,不同分組數(shù)下的吞吐率曲線的交點(diǎn)即是臨界標(biāo)簽數(shù)量,當(dāng)N≤354時(shí),則不分組,當(dāng)354<N≤709時(shí),則平均分為兩組,依此類(lèi)推。如表1所示,表1對(duì)圖2進(jìn)行了總結(jié)歸納。臨界標(biāo)簽數(shù)量也可以通過(guò)式(6)計(jì)算出來(lái),從而驗(yàn)證了理論推導(dǎo)的正確性。
表1 不同標(biāo)簽數(shù)量范圍下的分組情況
經(jīng)過(guò)合理分組后,讀寫(xiě)器利用幀時(shí)隙ALOHA算法對(duì)每組標(biāo)簽進(jìn)行識(shí)別,幀時(shí)隙ALOHA算法是時(shí)分多址防碰撞算法,其原理為:讀寫(xiě)器發(fā)送一個(gè)請(qǐng)求幀,設(shè)幀長(zhǎng)為L(zhǎng),標(biāo)簽收到讀寫(xiě)器的命令后,在(0,L-1)之間隨機(jī)選擇一個(gè)數(shù),隨機(jī)數(shù)為0的標(biāo)簽在0號(hào)時(shí)隙立即響應(yīng),響應(yīng)結(jié)束后,隨機(jī)數(shù)為1的標(biāo)簽在1號(hào)時(shí)隙響應(yīng),依次進(jìn)行。然而標(biāo)簽選擇的數(shù)具有隨機(jī)性,則可能會(huì)出現(xiàn)多個(gè)標(biāo)簽在同一時(shí)隙響應(yīng),使用該算法就無(wú)法識(shí)別??蓪⒋a分多址技術(shù)融合到該算法中,利用不同的擴(kuò)頻碼對(duì)標(biāo)簽ID進(jìn)行調(diào)制,當(dāng)多個(gè)標(biāo)簽在同一時(shí)隙響應(yīng)時(shí),讀寫(xiě)器利用擴(kuò)頻碼的正交性識(shí)別不同的標(biāo)簽,這樣可以識(shí)別更多的標(biāo)簽。如圖2所示。
圖2 標(biāo)簽響應(yīng)示意圖
設(shè)擴(kuò)頻碼的個(gè)數(shù)為4,圖2中0-L-1表示幀的時(shí)隙號(hào),1、3、5、0表示在不同時(shí)隙內(nèi)響應(yīng)的標(biāo)簽數(shù)量,S、I、C表示成功識(shí)別時(shí)隙、空閑時(shí)隙和碰撞時(shí)隙。在1號(hào)時(shí)隙只有1個(gè)標(biāo)簽響應(yīng),則被成功(success)識(shí)別;在4號(hào)時(shí)隙沒(méi)有標(biāo)簽響應(yīng),則該時(shí)隙為空閑(idle)時(shí)隙,在2號(hào)和3號(hào)時(shí)隙中,分別有3個(gè)和5個(gè)標(biāo)簽響應(yīng),則出現(xiàn)碰撞(collision),只能通過(guò)碼分多址技術(shù)來(lái)進(jìn)行區(qū)分。由于標(biāo)簽尺寸和存儲(chǔ)量小等原因,要使擴(kuò)頻碼在射頻識(shí)別系統(tǒng)中易于實(shí)現(xiàn),一般只使用數(shù)量有限的擴(kuò)頻碼[11]。使用數(shù)量有限的擴(kuò)頻碼,不僅對(duì)標(biāo)簽的硬件電路改動(dòng)小,而且可以降低讀寫(xiě)器的計(jì)算復(fù)雜度。然而碼分多址技術(shù)并不一定能全部識(shí)別碰撞時(shí)隙內(nèi)的標(biāo)簽,當(dāng)碰撞時(shí)隙內(nèi)的部分標(biāo)簽同時(shí)使用了相同的擴(kuò)頻碼進(jìn)行調(diào)制,即在時(shí)域和碼域同時(shí)發(fā)生碰撞,此種情況下,讀寫(xiě)器無(wú)法進(jìn)行全部識(shí)別,只能識(shí)別該時(shí)隙內(nèi)使用不同擴(kuò)頻碼調(diào)制的標(biāo)簽,未被成功識(shí)別的標(biāo)簽只能在下一幀中繼續(xù)響應(yīng)讀寫(xiě)器。
將幀時(shí)隙ALOHA算法與碼分多址技術(shù)結(jié)合起來(lái),可以很好地解決處于碰撞時(shí)隙中的標(biāo)簽識(shí)別問(wèn)題,從而提高算法吞吐率。
綜合標(biāo)簽分組原則、幀時(shí)隙ALOHA算法和碼分多址技術(shù)等關(guān)鍵方法的分析,可將算法步驟進(jìn)行如下總結(jié):1)讀寫(xiě)器先發(fā)送試探性的幀,對(duì)標(biāo)簽數(shù)量進(jìn)行估計(jì)。估計(jì)出標(biāo)簽數(shù)量后,再根據(jù)標(biāo)簽數(shù)量所在的區(qū)間范圍,確定分組數(shù),進(jìn)行合理分組。2)讀寫(xiě)器發(fā)送幀長(zhǎng)為L(zhǎng)的請(qǐng)求幀,則只有一組標(biāo)簽進(jìn)行響應(yīng)。這一組之內(nèi)的每個(gè)標(biāo)簽在(0,L-1)隨機(jī)選擇一個(gè)數(shù)加載自身的時(shí)隙計(jì)數(shù)器,只有自己的隨機(jī)數(shù)和時(shí)隙號(hào)相同才去響應(yīng)讀寫(xiě)器,響應(yīng)時(shí)將經(jīng)過(guò)擴(kuò)頻碼調(diào)制后的信號(hào)發(fā)送給讀寫(xiě)器,否則處于等待狀態(tài)。3)讀寫(xiě)器從0號(hào)時(shí)隙到L-1號(hào)時(shí)隙依次識(shí)別,并進(jìn)行判斷,如果某一時(shí)隙中只有一個(gè)標(biāo)簽響應(yīng),則直接讀取標(biāo)簽的ID;如果某一時(shí)隙內(nèi)沒(méi)有標(biāo)簽響應(yīng),則跳過(guò)此時(shí)隙,進(jìn)行下一時(shí)隙的識(shí)別;如果某一時(shí)隙內(nèi)有多個(gè)標(biāo)簽響應(yīng),則出現(xiàn)碰撞。4)利用碼分多址技術(shù)對(duì)碰撞時(shí)隙內(nèi)的標(biāo)簽進(jìn)行區(qū)分,只有使用不同擴(kuò)頻碼的標(biāo)簽才能被惟一確定,然后讀取這些標(biāo)簽的ID,使用相同擴(kuò)頻碼的標(biāo)簽則不能被識(shí)別。5)被成功識(shí)別的標(biāo)簽則處于靜默狀態(tài),即不再響應(yīng)讀寫(xiě)器。未被成功識(shí)別的標(biāo)簽則在下一幀中繼續(xù)響應(yīng)讀寫(xiě)器。當(dāng)一組標(biāo)簽全部被識(shí)別后,再進(jìn)行下一組標(biāo)簽的識(shí)別,直到標(biāo)簽全部被識(shí)別為止。
吞吐率越大表明該算法在一定幀長(zhǎng)中所處理的標(biāo)簽數(shù)量就越多,則該防碰撞算法的性能就越好,因此,本節(jié)僅對(duì)本文算法吞吐率進(jìn)行推導(dǎo),從理論上對(duì)算法的性能進(jìn)行分析。
假設(shè)有N個(gè)標(biāo)簽,標(biāo)簽被分為r組,分組過(guò)程服從均勻分布,那么每組的標(biāo)簽數(shù)量為k=N/r,讀寫(xiě)器發(fā)送的幀長(zhǎng)為L(zhǎng),則k個(gè)標(biāo)簽中有m個(gè)標(biāo)簽在同一時(shí)隙的概率為:
不同的標(biāo)簽采用不同的擴(kuò)頻碼也服從均勻分布,設(shè)擴(kuò)頻碼的數(shù)量為s個(gè),則同一時(shí)隙中,第i個(gè)標(biāo)簽使用第j個(gè)擴(kuò)頻碼進(jìn)行調(diào)制的概率為:
如果有m個(gè)標(biāo)簽選擇同一時(shí)隙,因?yàn)閙個(gè)標(biāo)簽使用的擴(kuò)頻碼具有隨機(jī)性,則只能用均值c來(lái)代替[12]。則在同一時(shí)隙里被成功識(shí)別的均值c為:
因?yàn)椴煌瑪?shù)量的標(biāo)簽響應(yīng)同一時(shí)隙時(shí),被成功識(shí)別出其中某個(gè)標(biāo)簽或幾個(gè)標(biāo)簽都存在一定概率,從概率角度分析,則在標(biāo)簽分組和碼分多址條件下的吞吐率Sc應(yīng)是不同數(shù)量的標(biāo)簽響應(yīng)情況的總和為:
求Sc對(duì)t的偏導(dǎo),則其另外一種表達(dá)式為:
式(12)和式(4)一樣,從而嚴(yán)格證明了本文算法的吞吐率。為求吞吐率的最大值,可令其對(duì)k的導(dǎo)數(shù)為0:
可得:
當(dāng)滿足式(15)時(shí),可以得到最大吞吐率。將式(15)代入式(12),則吞吐率最大值為:
由式(16)可以得知:本文算法吞吐率的最大值為s/e。從理論分析可知,由于將碼分多址技術(shù)和FSA算法有效融合,本文算法的最大吞吐率是FSA算法的s倍。此外,本文算法還利用標(biāo)簽分組技術(shù)對(duì)大量標(biāo)簽進(jìn)行合理分組,當(dāng)標(biāo)簽數(shù)量較多時(shí),吞吐率不會(huì)隨著標(biāo)簽數(shù)量的增多而急劇下降,依然保持較高的吞吐率。
在本次仿真實(shí)驗(yàn)中,主要對(duì)以下兩個(gè)方面進(jìn)行仿真:1)吞吐率。如果該算法的吞吐率越大,則其性能越好。2)所需總時(shí)隙數(shù)量和碰撞時(shí)隙數(shù)量。在實(shí)際情況中,成功識(shí)別時(shí)隙、碰撞時(shí)隙和空閑時(shí)隙所消耗的時(shí)間是不同的,其中碰撞時(shí)隙消耗的時(shí)間最長(zhǎng),其次是成功識(shí)別時(shí)隙,最后是空閑時(shí)隙。當(dāng)某種算法所需的總時(shí)隙數(shù)量少,而且碰撞時(shí)隙數(shù)量也少,則代表該算法的識(shí)別時(shí)間短,則性能越好。本文主要進(jìn)行了2組仿真實(shí)驗(yàn),來(lái)探討本文算法的效果。第1組實(shí)驗(yàn)將本文算法與其他算法進(jìn)行吞吐率的比較;第2組實(shí)驗(yàn)是識(shí)別相等數(shù)量的標(biāo)簽,本文算法與其他算法所需要的總時(shí)隙數(shù)量和碰撞時(shí)隙數(shù)量進(jìn)行比較。實(shí)驗(yàn)采用Matlab2013仿真軟件,進(jìn)行了1 000次的仿真實(shí)驗(yàn)。
主要對(duì)分組幀時(shí)隙ALOHA(GFSA)算法、動(dòng)態(tài)幀時(shí)隙ALOHA(DFSA)算法、分組動(dòng)態(tài)幀時(shí)隙ALOHA(GDFSA)算法、基于碼分多址的幀時(shí)隙ALOHA(CD-FSA)算法和本文算法進(jìn)行了仿真實(shí)驗(yàn)分析。參數(shù)設(shè)置如表2所示,其中DFSA算法和GDFSA算法中幀長(zhǎng)的動(dòng)態(tài)調(diào)整是根據(jù)Schoute算法[13]調(diào)整的。實(shí)驗(yàn)結(jié)果如圖3所示。
表2 各算法參數(shù)設(shè)置
圖3 不同算法吞吐率比較
從圖3中可以看出,本文算法一直保持較高的吞吐率。本文算法與CD-FSA算法相比較,本文算法有標(biāo)簽分組的過(guò)程,通過(guò)合理分組,控制了標(biāo)簽響應(yīng)的數(shù)量,碰撞變少,那么在相同擴(kuò)頻碼數(shù)量下準(zhǔn)確識(shí)別的標(biāo)簽數(shù)量就會(huì)增加,所以依然保持很高的吞吐率。而CD-FSA算法沒(méi)有這一過(guò)程,當(dāng)標(biāo)簽數(shù)量很大時(shí),其吞吐率迅速下滑,所以當(dāng)標(biāo)簽數(shù)量為2 000時(shí),該算法吞吐率趨于0。本文算法與GDFSA算法相比,本文算法結(jié)合了碼分多址技術(shù),所以吞吐率保持在s/e附近,而GDFSA算法只能保持在36.8%附近。綜上所述,本文算法在吞吐率方面優(yōu)于其他算法。
由于CD-FSA算法在標(biāo)簽數(shù)量為2 000時(shí),吞吐率趨于0,性能很差,難以全部識(shí)別,所以在本次實(shí)驗(yàn)中不再對(duì)其進(jìn)行實(shí)驗(yàn)分析。本次實(shí)驗(yàn)將本文算法和GFSA算法、DFSA算法和GDFSA算法進(jìn)行比較,實(shí)驗(yàn)環(huán)境與實(shí)驗(yàn)1相同,參數(shù)設(shè)置與表2相同,來(lái)探討各個(gè)算法所需的總時(shí)隙數(shù)量和碰撞時(shí)隙數(shù)量,實(shí)驗(yàn)結(jié)果如圖4和圖5所示。
圖4 不同算法所需的總時(shí)隙數(shù)量
圖5 不同算法下碰撞時(shí)隙數(shù)量比較
表3 N=2 000時(shí)所需時(shí)隙數(shù)量比較
如圖4和圖5所示,隨著標(biāo)簽數(shù)量的增大,各個(gè)算法所需的總時(shí)隙數(shù)量和碰撞時(shí)隙數(shù)量也在增大,然而本文算法增大的速度慢,主要因?yàn)楸疚乃惴刂屏藰?biāo)簽的響應(yīng)數(shù)量,而且應(yīng)用了碼分多址技術(shù),在碰撞時(shí)隙內(nèi)也可識(shí)別標(biāo)簽,所以本文算法在所需總時(shí)隙數(shù)量和碰撞時(shí)隙數(shù)量上都明顯優(yōu)于其他算法。表3是標(biāo)簽數(shù)量為2 000時(shí),各個(gè)算法所需的總時(shí)隙數(shù)量和碰撞時(shí)隙數(shù)量比較。從表中可以看出,本文算法識(shí)別所需的總時(shí)隙數(shù)量少,而且碰撞數(shù)量也很少,從而驗(yàn)證了本文算法的優(yōu)勢(shì)。
本文提出了一種新型的射頻識(shí)別防碰撞算法,即基于標(biāo)簽分組和碼分多址的幀時(shí)隙ALOHA算法,通過(guò)對(duì)大量標(biāo)簽進(jìn)行合理分組,再將幀時(shí)隙ALOHA算法與碼分多址技術(shù)有效融合,這樣不但可以對(duì)大量標(biāo)簽進(jìn)行識(shí)別,而且可以對(duì)碰撞時(shí)隙內(nèi)的標(biāo)簽進(jìn)行識(shí)別。理論分析和仿真實(shí)驗(yàn)都表明:本文算法具有較高的吞吐率,而且所需總時(shí)隙數(shù)量和碰撞時(shí)隙數(shù)量少,即識(shí)別時(shí)間短,優(yōu)于其他ALOHA算法,具有一定的實(shí)際應(yīng)用價(jià)值。