RFID中解決無(wú)線(xiàn)信道爭用問(wèn)題的防碰撞算法研究
摘要:RFID技術(shù)中的防碰撞算法分為閱讀器的防碰撞以及標簽的防碰撞兩種。文章通過(guò)對RFID中各種主流防碰撞方法的思想、實(shí)現及算法的研究,在現有的二進(jìn)制搜索算法的基礎之上,提出了一種改進(jìn)算法,并對改進(jìn)算法的實(shí)現進(jìn)行了Matlab仿真。結果證實(shí):改進(jìn)后的算法相較其他算法在標簽長(cháng)度較短的情況下,可以表現出極其優(yōu)越的性能。
關(guān)鍵詞:RFID;防碰撞;二進(jìn)制搜索算法;改進(jìn)算法
0 引言
RFID系統主要由讀寫(xiě)器和射頻卡兩部分組成,它們之間可以通過(guò)無(wú)線(xiàn)方式進(jìn)行通信。其中,射頻卡中存儲了需要識別、交互的數據,并且可以實(shí)時(shí)寫(xiě)入或擦除。RFID系統工作時(shí),若有多個(gè)電子標簽同時(shí)在同一個(gè)閱讀器的作用范圍內向閱讀器發(fā)送數據,則往往會(huì )出現信號的干擾,這個(gè)干擾就被稱(chēng)為碰撞,其結果將會(huì )導致此次數據傳輸的失敗,因而必須采用適當的技術(shù)防止碰撞。最近,有人提出了動(dòng)態(tài)二進(jìn)制搜索法、跳躍式類(lèi)二進(jìn)制搜索法等二進(jìn)制防碰撞算法的改進(jìn)算法。國際上廣泛應用的防碰撞算法是ALOHO法和二進(jìn)制搜索法及對這兩種算法的改進(jìn)方法,如時(shí)隙ALOHO法、動(dòng)態(tài)二進(jìn)制搜索法、后退式二進(jìn)制法搜索等。其中,動(dòng)態(tài)二進(jìn)制法是國際標準所推薦的防碰撞方法。就此,本文提出了一種二進(jìn)制搜索法的改進(jìn)型算法。
1 二進(jìn)制搜索算法
1.1 二進(jìn)制搜索算法(BS)原理
二進(jìn)制搜索算法又稱(chēng)為二叉樹(shù)搜索算法。由于它要求能夠在閱讀器中確定數據碰撞位的準確位置,因此,必須要有合適的位編碼法。曼徹斯特碼用上升沿表示0,用下降沿表示1,在數據傳輸過(guò)程中不允許“沒(méi)有改變”的狀態(tài)。如果采用ASK調制方式,當多個(gè)電子標簽同時(shí)發(fā)送的數據位值不同時(shí),則對應的曼徹斯特碼的上升沿和下降沿相互抵消,造成一種錯誤的狀態(tài),從而可以確定碰撞位置。假設有兩個(gè)編碼為8位的電子標簽,利用曼徹斯特編碼識別碰撞位的原理如圖1所示。閱讀器檢出的碰撞位為D6位和D5位。
一般情況下,二進(jìn)制搜索算法必須先能辨認出閱讀器中數據沖突的確切位置,這一點(diǎn)是下面算法的基礎。這里主要對以下幾個(gè)命令以及原理流程進(jìn)行簡(jiǎn)述:
REQUEST(某序列號Q):如果標簽序列號小于或等于Q,則該標簽進(jìn)入識別狀態(tài),將發(fā)自己的序列號給閱讀器,否則處于等待狀態(tài);
SELECT(某序列號Q):如果標簽序列號等于Q,則該標簽進(jìn)入選中狀態(tài),否則繼續等待識別;
READ:選中的標簽與閱讀器進(jìn)行數據通信;
UNSELECT:取消前選中標簽,該標簽進(jìn)入靜默狀態(tài),待所有標簽完成通信或者該標簽重新入場(chǎng)后,才能進(jìn)入等待狀態(tài)。
1.2 二進(jìn)制搜索算法的深入分析
閱讀器和標簽之間的通信次數決定了識別速度。從眾多標簽中識別出一個(gè)標簽的平均通信次數為L(cháng)。在二進(jìn)制搜索算法中,我們知道:
L=log2N+1 (1)
由于二進(jìn)制搜索算法的識別獨立性,N個(gè)標簽的全部識別平均通信次數為:
當標簽數目很多的時(shí)候,由于每次獨立識別浪費了大量通信次數,算法總的通信次數必然會(huì )增長(cháng)很快。二進(jìn)制搜索算法還有一個(gè)很明顯的弱點(diǎn):閱讀器發(fā)送給每個(gè)標簽的比較序列,其實(shí)有用的信息只包含在高于上次碰撞位X的高位之中,低于碰撞位的通信產(chǎn)生冗余。
2 動(dòng)態(tài)二進(jìn)制搜索算法
2.1 動(dòng)態(tài)二進(jìn)制搜索算法原理
前面所述的二進(jìn)制搜索算法,每次搜索都需要完整的傳輸標簽的序列號ID。但在實(shí)際應用中,標簽的序列號長(cháng)度不再像前所述那樣為8位,而可能是長(cháng)達10個(gè)字節甚至更大的規模。這樣采用BS算法,RFID系統標簽的傳輸量將大增,為此動(dòng)態(tài)二進(jìn)制搜索(DBS)算法應運而生。D BS算法是IS014443A這一國際標準所推薦的防碰撞算法。序列號ID中的全部信息對于成功識別出標簽不是不可或缺的。根據編碼規律可以去掉序列號中的冗余信息,留下有用的信息傳輸。通過(guò)觀(guān)察上面BS算法實(shí)例中標簽的識別過(guò)程可知:命令中的碰撞位及其低位因為總是被置位為1,不包含有用的信息,這樣就不要傳輸;標簽應答的序列號最高位至碰撞位是已知的前綴信息,不包括補充信息,也不需要傳輸。由上面的分析可知,序列號ID中的冗余部分是不需要傳輸的??梢詫BS算法由雙向的完整傳輸加以改進(jìn),只傳輸部分有用信息。Request命令中,讀寫(xiě)器只需以要搜索的序列號ID的碰撞位至最高位部分為參數。所有相應位與此命令中參數相符的標簽,則傳輸序列號的碰撞位以下部分作為應答。
2.2 DBS算法的命令
與BS算法的命令相比,DBS算法的命令做了一些改進(jìn):主要是DBS算法把第一個(gè)命令改成Request(IDn-x,X)。讀寫(xiě)器發(fā)送參數IDn-x(ID的N-X位)給作用范圍內的所有標簽,相應位與IDn-x符合的標簽做出響應,返回剩余的位信息。其余三條命令與前面所述BS算法一致。
2.3 DBS算法的性能分析
DBS算法與BS算法的規則相同,所以?xún)烧咧貜筒僮鞯倪^(guò)程也相同。因此,DBS算法的總搜索次數為:
DBS算法在識別過(guò)程開(kāi)始時(shí),即算法的第一步,工作范圍內的標簽是需要傳輸整個(gè)序列號的;在這之后的識別過(guò)程中,標簽只需要傳輸ID的有用部分位。整個(gè)識別過(guò)程平均下來(lái),DBS的信息量只有BS算法的一半。DBS算法中,標簽要傳輸的數據量和所需時(shí)間比起BS算法減少了近50%。
評論