ISO/IEC 18000 6C超高頻電子標簽閱讀器防沖突
在現(xiàn)實生活中,滿載貨物的貨車在通過讀卡器識別范圍時,要求系統(tǒng)快速有效地讀取貨車上所有貨物的物品信息。貨車通過RFID讀卡器的速度直接影響系統(tǒng)的工作效率,快速通過能節(jié)約大量時間和成本。
所以,如果要提高系統(tǒng)效率并且保證系統(tǒng)可靠性,移動標簽群必須達到一個適中的速度,并且防沖突算法一定要對此種情況進行有效處理。本文研究ISO/IEC 18000 6C的防沖突處理算法,分析其對快速運動標簽群是否有可靠的對策和處理方式。
ISO/IEC 18000 6C防沖突算法
1、Aloha算法
常用的防沖突算法大多是基于Aloha算法——一種無規(guī)則的時分多址(TDMA)算法。Aloha算法規(guī)定標簽周期性地發(fā)送數(shù)據(jù)給讀卡器,數(shù)據(jù)傳輸時間只是周期時間的一小部分,標簽傳輸中有很長時間的停歇,因此有一定概率使兩個標簽在不同時隙傳輸數(shù)據(jù),以避免沖突。
基于Aloha算法出現(xiàn)了很多改進算法:時隙Aloha算法、幀時隙Aloha算法、動態(tài)幀時隙Aloha算法等。Type C采用的防沖突算法是隨機時隙防沖突算法,其本質(zhì)跟幀時隙Aloha機制一樣。
2、 隨機時隙防沖突算法(SR)
隨機時隙防沖突算法本質(zhì)上與幀時隙Aloha機制類似,其幀長度為2Q,并且該機制根據(jù)標簽應答情況來調(diào)整Q值,改變下一個識別周期的時隙數(shù), 讓未識別標簽重新選擇。當一幀中出現(xiàn)過多的沖突時隙時,讀卡器會提前結束該幀,并選擇一個更大的Q值發(fā)送給標簽群;當一個幀中出現(xiàn)過多的空閑時隙時,讀卡 器會提前結束該幀,并選擇一個比較小的Q值發(fā)送給標簽群。
隨機時隙防沖突算法命令包括Query、QueryAdjust、Query Rep等,主要參數(shù)為時隙計數(shù)參數(shù)Q。協(xié)議中的Q值決定了防沖突時所用的時隙數(shù),讀卡器通過給標簽發(fā)送相應命令改變標簽狀態(tài),完成防沖突工作。協(xié)議規(guī)定標簽有3個狀態(tài),如圖1所示。
當系統(tǒng)上電或信道空閑時,讀卡器發(fā)送Query命令,啟動清點周期,初始化一個識別周期,并決定哪些標簽參與本輪識別周期。Query命令包含時隙 計數(shù)參數(shù)Q,當接收到Quary命令時,讀卡器在識別區(qū)域內(nèi)隨機選擇進入識別周期的標簽,所有參與標簽在(0,2Q-1)范圍內(nèi)選擇一個隨機數(shù),并置入它 們的時隙計數(shù)器。選到0值的標簽變?yōu)閼馉顟B(tài),并響應讀卡器,回答一個16機制隨機數(shù)(RN16)給讀卡器;沒有選到0值的標簽變?yōu)橹俨脿顟B(tài),等待下一條 Query Adjust或Query Rep命令;沒有進入本輪識別周期的標簽保持休眠狀態(tài)。
處于仲裁狀態(tài)的標簽每接收到一條Query Rep命令,它們的時隙計數(shù)器減一次,當時隙計數(shù)器減到0000h時,標簽轉(zhuǎn)變?yōu)閼馉顟B(tài),響應讀卡器。當時隙計數(shù)器值為0000h,并且已經(jīng)應答,但沒 有得到確認時,標簽變?yōu)橹俨脿顟B(tài),當接收到下一條QueryRep命令時,簽時隙計數(shù)器減一變?yōu)?FFFh,防止隨后應答,直到標簽接收到Query Adjust命令或者進入下一個識別周期。在2Q-1條QueryRep命令中,所有標簽至少應答一次。
當標簽時隙計數(shù)器同時達到0000h,并同時應答,會產(chǎn)生沖突;當標簽時隙計數(shù)器都不等于0000h,讀卡器接收不到響應。面對這兩種情況,讀卡器可能需要重新選定Q值,讀卡器根據(jù)的自適應Q算法如圖2所示。
由自適應Q算法可知,當某一時隙出現(xiàn)沖突或者無響應的情況,Qfp的值會增大或減小,然后對Qfp四舍五入得到新的Q值。如果Q值發(fā)生變化,讀卡器發(fā)送 Query命令更新Q值,并使標簽重新選擇時隙計數(shù)器;否則繼續(xù)發(fā)送QueryRep命令,讓所有標簽時隙計數(shù)器減一。自適應Q算法通過根據(jù)標簽沖突以及 無響應情況動態(tài)地改變Q值,從而改變時隙數(shù),實現(xiàn)自適應防沖突。
存在的問題及解決方案
快速運動標簽群通過讀卡器射頻區(qū)域,該種情況必須注意的是,讀卡器范圍內(nèi)的標簽是動態(tài)變化的,隨時都有新標簽加入讀卡器的識別范圍,從而影響系統(tǒng)的 防沖突處理。通過對ISO180006 Type C防沖突算法過程的研究,發(fā)現(xiàn)該算法在面對快速標簽群時并未做有效的處理。
根據(jù)算法的工作過程,當讀卡器開始標簽的識別工作,首先發(fā)送Query命令開啟一個清點周期,高速運動標簽群進入讀卡器識別范圍,上電進入休眠 狀態(tài)。讀卡器在識別范圍內(nèi)選擇部分標簽進入清點周期,部分標簽沒有被選擇而保持休眠狀態(tài),等待下一個清點周期的到來。當上一個清點周期結束,讀卡器會發(fā)送 Query命令開啟新的清點周期,這時候讀卡器識別范圍內(nèi)會有新加入的標簽,讀卡器會從所有標簽中再次隨機選擇部分標簽進入清點周期。新標簽的加入導致部 分標簽可能始終無法進入清點周期,無法被識別到,然后離開讀卡器識別范圍。
另外一種情況是,標簽進入清點周期后,在標簽應答發(fā)生沖突或者未收到回復的情況下,時隙計數(shù)器由0000H減1變?yōu)镕FFFH,避免隨后應答。 這時候會有兩種情況:一種是由于碰撞或者無響應的情況導致Q值發(fā)生變化,這時允許所有標簽重新隨機選擇一個值放入時隙計數(shù)器,在清點周期內(nèi)獲得再一次被識 別的機會;如果沖突以及無響應現(xiàn)象沒有導致Q值發(fā)生變化,那么在本輪清點周期結束后,它會同新進標簽一起爭取下一次進入清點周期的機會,所以會有幾率無法 進入清點周期,直到離開讀卡器的識別范圍。
假設運動標簽群的運動速度為v,標簽在讀卡器識別范圍內(nèi)運動距離為d,那標簽在識別范圍內(nèi)的時間t=v/d。假設讀卡器進行一輪標簽讀取的時間為T,而標簽被識別所需的周期為n(n為正整數(shù)),那么當n·Tv/d,則會出現(xiàn)標簽不被識別的情況。
以上兩種情況的發(fā)生都可能會導致標簽群中部分標簽一段時間不被識別,通過讀卡器的識別范圍,從而造成系統(tǒng)的不可靠,出現(xiàn)漏讀。
3.2 解決方案
針對快速運動標簽群的識別,主要問題是新標簽與舊標簽爭搶進入清點周期的機會,而舊標簽在讀卡器識別范圍的時間有限。面對這種情況,解決問題切 入點是讓舊標簽比新標簽擁有更多的機會進入清點周期,或者直接不允許新標簽與舊標簽競爭,而是等待舊標簽完成識別才開始新標簽的識別工作。擬采用兩種方法 解決該問題。
第一種是基于標簽到場時間的解決方案。標簽進入射頻范圍內(nèi)上電,標簽內(nèi)到場計時器開始計時,計時值為t,讀卡器選定一個適當?shù)挠嫊r值T,發(fā)送Query命令開始清點周期的同時發(fā)送T,標簽把自己的計時值與讀卡器所要求的T大小作比較:如果t
第二種是基于標簽到場點名的辦法。當某一時刻系統(tǒng)啟動,讀卡器開始發(fā)送Query命令進入清點周期之前發(fā)送點名命令,讓識別范圍內(nèi)的標簽由休眠 狀態(tài)進入到場狀態(tài)。之后只選擇到場狀態(tài)的標簽進入清點周期,待所有到場標簽完成識別再進行新一輪點名。這種方案可以完全解決新舊標簽的競爭問題。