井下RFID定位系統的讀寫器防碰撞技術研究
射頻識別技術(RFID) ,又稱電子標簽,是一種非接觸式自動識別技術。它利用射頻(Radio) 方式進行非接觸雙向通信, 以達到目標識別和數據交換目的,無需人工干預。基本的RFID 系統(見圖1) ,由射頻卡標簽(Tag) ,RFID 讀寫器(Reader Writer De2vice) ,天線(Antenna) 以及應用支撐軟件等組成。
圖1 RFID 系統
注:虛線框代表可選項
1 讀寫器碰撞分析
讀寫器的碰撞其實是頻率干擾問題。在實際應用中,由于RFID 系統本身作用距離較小,讀寫器相互間比較靠近,尤其是在UHF 以上頻段還存在傳輸的多徑問題,這樣來自一個讀卡器的信號很可能受到另外一個或多個讀寫器的干擾,出現讀寫器碰撞,造成對標簽信息讀取失敗。
圖2 讀寫器與讀寫器間的干擾
(1) 讀寫器與讀寫器之間的干擾 這指的是當一個讀寫器發(fā)射較強的信號與一個射頻標簽反射回的微弱信號相干擾時,就引起了讀寫器與讀寫器之間的干擾,如圖2 所示。讀寫器R1 位于讀寫器R2 干擾區(qū)。從射頻標簽T1 反射回的信號到達讀寫器R1 ,很容易被讀寫器R2 發(fā)射的信號干擾。這種干擾即使2 個讀寫器閱讀范圍沒有重疊也有可能產生。
(2) 多個讀寫器對標簽的干擾 是指當多個讀寫器同時閱讀同一個標簽時引起了多讀寫器到標簽間的干擾,如圖3 所示,2 個讀寫器閱讀范圍重疊。從讀寫器R1 和R2 發(fā)射的信號可能在射頻標簽T1處產生干擾。在這種情況下,標簽T1 不能解密任何查詢信號并且讀寫器R1 和R2 都不能閱讀T1。因為讀寫器沖突,讀寫器R1 能閱讀標簽T2 和T3 ,但是不能閱讀標簽T1 ,因此,讀寫器R1 指示2 個射頻標簽存在而不是3 個。
圖3 讀寫器到射頻卡間的干擾
圖4 讀寫器沖突使載波偵聽無效
從上可見,除了誤操作外,讀寫器防碰撞從根本上說就是避免頻率干擾。因此,如何找到一種分配有限的頻率資源的算法,使得這種碰撞減到最小就成了REID 應用最為關鍵技術。
2 二進制搜索算法
二進制搜索算法的方法類似于在天平中采用的逐次比較方法。通過多次比較,不斷篩選出不同的序列號,時分復用地進行讀寫器和射頻卡之間的信號交換,以一個獨特的序列號來識別射頻卡為基礎。為了從一組射頻卡中選擇其中之一,讀寫器發(fā)出一個請求命令有意識地將射頻卡序列號傳輸時的數據碰撞引導到讀寫器上,即通過讀寫器判斷是否有碰撞發(fā)生。如果有碰撞,則縮小范圍進行進一步的搜索。
二進制搜索算法由一個讀寫器和多個射頻卡之間規(guī)定的一組命令和應答規(guī)則構成,目的在于從多卡中選出任一個實現數據通信。該算法有3 個關鍵要素: (1) 選用適當的基帶編碼(易于識別碰撞) ; (2)利用射頻卡卡序列號唯一的特性; (3) 設計一組有效的指令規(guī)則,高效、迅速地實現選卡。
2. 1 曼徹斯特編碼
為了快速穩(wěn)定地實現防碰撞操作,讀卡器必須能夠對射頻卡返回數據時發(fā)生碰撞的位置進行比特級的檢測,采用曼徹斯特(Manchester) 編碼方式可以方便地實現碰撞檢測。該編碼的特點是通過在位持續(xù)時間中間電平的跳變來表示數值位,其中下降沿編碼表示邏輯1 ,上升沿編碼表示邏輯0 ,如果沒有電平跳變則視為非法數據,調制后在每一位只有高電平部分有副載波信號。當2 個或多個射頻卡同時返回其唯一的序列號時,一定會在某一位(或某幾位) 上有不同的值,疊加之后上升沿和下降沿相互抵消,以至無電平跳變,讀寫器判斷該位出現碰撞。圖5 為2 個射頻卡序列號的Manchester 編碼及出現碰撞的示意圖。
圖5 2 個射頻卡序列號的Manchester 編碼及其位碰撞的示意圖
2. 2 防碰撞指令規(guī)則
(1) REQUEST(SNR) 發(fā)送一序列號作參數給射頻卡。標簽把自己序列號跟接收的序列號比較,如果小于或等于,則此標簽返回其序列號給讀寫器。這樣可以縮小預選的射頻卡范圍,如果大于則不響應。
(2) SELECT(SNR) 用某個(事先確定的) 序列號作為參數發(fā)給標簽。相同序列號的標簽將以此作為執(zhí)行其他命令的切入開關,即選擇這個標簽。具有其他序列號的射頻卡只對REQUEST 命令應答。
(3) READ - DATA 選中的標簽將存儲的數據發(fā)送給讀寫器。
(4)UNSELECT 取消事先選中的標簽,使該標簽進入“無聲”狀態(tài)。在該狀態(tài)下標簽對收到的RE2QUEST 命令不作應答。為了重新激活標簽,將標簽移出讀寫器的作用范圍再進入,以實行復位。
2. 3 動態(tài)二進制搜索算法
動態(tài)二進制搜索算法考慮的是在UID 位數不變的情況下,盡量減少傳輸的數據量,使傳送時間縮短,提高RFID系統的效率。其改進思路是把數據分成兩部分,收發(fā)雙方各自傳送其中一部分數據,可把傳輸的數據量減小到一半,達到縮短傳送時間的目的。
通常序列號的規(guī)模在8 字節(jié)以上。為選擇一個單獨的射頻卡,每次都不得不傳輸大量的數據,效率非常低。根據二進制搜索算法的思路進行改良,可以減少每次傳送的位數,也可縮短傳送的時間和防碰撞執(zhí)行時間。具體動態(tài)二進制搜索算法的步驟如下:
(1) 讀寫器第1 次發(fā)出一個完整的UID 位數碼N ,每個位上的碼全為1 ,讓所有射頻卡都發(fā)回響應。
(2) 讀寫器判斷有碰撞的最高位數X ,把該位置0。然后傳輸N~ X 位的數據后即中斷傳輸。射頻卡接到這些數據后馬上響應,回傳的信號位是X -1~1。即讀卡器和射頻卡以最高碰撞位為界分別傳送前后信號。傳遞的總數據量可減小一半。
(3) 讀寫器檢測第2 次返回的最高碰撞位X′是否小于前一次檢測回傳的次高碰撞位數。若不是,則直接把該位置“0”;若是,則要把前一次檢測的次高位也填“0”。然后向射頻卡發(fā)出信號。發(fā)出信號的位數為N~ X′,射頻卡接收到信號這一級信號出現小于或等于相應數據時后馬上響應,回傳的信號只是序列號中最高碰撞位后的數,即X - 1~1 位。若射頻卡返回信號表示無碰撞,則對該序列號的射頻卡進行讀P寫處理,然后使其進入“不響應狀態(tài)”。
(4) 重復步驟(1) ,多次重復后可完成射頻卡的交換數據工作。
3 二進制搜索算法性能分析
3. 1 實現該算法的技術關鍵
實現該算法的前提是能辨認出在讀寫器中數據碰撞比特的準確位置,因此必須有合適的位編碼方法,Manchester 編碼具有這方面的優(yōu)點。為了能夠檢測出多張卡的存在,每張卡的返回數據必須具有唯一性,且所有卡在傳送其序列號時必須同步。
3. 2 重復操作的次數
重復操作的平均次數L 取決于讀寫器作用范圍內射頻卡總數N ,其對應關系為:L ( N) = log N/ log 2 + 1
3. 3 數據傳輸時間
數據傳輸時間主要取決于射頻卡序列號長度和循環(huán)次數,如果一次傳輸完整的序列號所需時間為T ,防碰撞的循環(huán)次數為N ,則每次都完整傳輸序列號的通信時間:t = TN
當采用動態(tài)二進制搜索算法時,由于射頻卡發(fā)生碰撞數據位置是等概率分布的,當每一位都發(fā)生碰撞時, N 為最大值,此時, t = ( N + 1) TP2 ,該結果表明,動態(tài)算法可減少傳輸數據所需時間,最高可減少50 %。
4 結語
防碰撞是RFID 技術中的一項重要技術。本文提出的二進制搜索算法,在設計和實現上兼顧了讀寫器和射頻卡通信的速度和可靠性,根據這一算法進行編程,結構比較簡單,容易實現防碰撞功能,使得讀寫器碰撞得到有效的控制。采用動態(tài)二進制搜索方法可進一步提高執(zhí)行防碰撞的速度,實現高效率的控制,因此這種算法具有廣泛應用的價值。