射頻識別系統(tǒng)的防沖突算法改進與實現(xiàn)
1 引言
本文引用地址:http://2s4d.com/article/87579.htm射頻識別技術(shù)(RFID)是一種非接觸式自動識別技術(shù),它通過無線射頻方式對目標加以識別并交換數(shù)據(jù),主要應(yīng)用于較短時間內(nèi)在射頻區(qū)域中識別一個目標。當(dāng)多個電子標簽同時到達射頻有效區(qū)域時,標簽會同時響應(yīng)讀寫器指令并發(fā)送信號,導(dǎo)致閱讀器不能正確接收數(shù)據(jù),也不能正確識別標簽,發(fā)生沖突。需要一種可靠的防沖突(Anti-collision)算法,解決在識別多個電子標簽時出現(xiàn)的數(shù)據(jù)沖突而導(dǎo)致閱讀器無法正確識別標簽的問題。
無源電子標簽數(shù)字集成電路結(jié)構(gòu)框圖如圖1所示,主要由通信安全、信息安全、存儲以及控制等4個單元組成。其中防沖突模塊位于通信信息安全單元,用于解決多個標簽與閱讀器進行數(shù)據(jù)交換所引起的數(shù)據(jù)沖突問題。
2 ALOHA算法
ALOHA算法足一種簡便的防沖突算法,如圖2所示。它既沒有檢測機制也沒有恢復(fù)機制,只是以一定概率確保電子標簽發(fā)出的信息準確地被閱讀器接收。ALOHA算法僅用于只讀閱讀器,標簽將數(shù)據(jù)(序列號)傳輸給閱讀器,并且在一個周期中將數(shù)據(jù)不斷發(fā)送給閱讀器,數(shù)據(jù)傳輸時間只是重復(fù)時間的一小部分,使得在傳輸中產(chǎn)生相當(dāng)長的間歇,因此,存在一定概率,使兩個應(yīng)答器可以在不同的時隙傳輸其數(shù)據(jù),從而避免沖突。
從圖2可以看到,閱讀器首先發(fā)送讀指令,處于射頻區(qū)域的多個標簽收到指令,立即在隨后多個時隙中隨機選擇一個將信息上傳給閱讀器,并且標簽在一個周期循環(huán)時隙內(nèi)完成數(shù)據(jù)上傳。增加時隙數(shù)量可降低RF終端發(fā)生沖突的概率,但是信道大部分時間將處于空閑狀態(tài),使得防沖突識別速度變慢。反之,減少時隙數(shù)量導(dǎo)致射頻終端沖突明顯增加。運用時隙算法的關(guān)鍵在于尋找一個有效的折衷方案,使得防沖突的可靠性和速度滿足要求。隨著RFID系統(tǒng)復(fù)雜程度的加大,防沖突的可靠性顯著降低,沖突不可避免,所以這種沒有檢測恢復(fù)機制的抗沖突算法僅適用于簡單系統(tǒng)。
3 二進制搜索防沖突算法
ALOHA算法由于效率低,實際RFID系統(tǒng)并未采用,而是采用更加高效的二進制搜索算法。二進制搜索算法靈活,不會發(fā)生防沖突失敗情況。對于N個應(yīng)答器發(fā)生沖突的情況,最多只需要N-1次防沖突循環(huán)就能準確識別出適合的應(yīng)答器。二進制搜索算法的基本思想是閱讀器判斷出發(fā)送應(yīng)答器的序列號產(chǎn)生數(shù)據(jù)沖突位置。然后強制命令在沖突位置發(fā)送信息為"0"或"1"的應(yīng)答器退出沖突。當(dāng)N-1個應(yīng)答器退出沖突后信道則被剩下的一個應(yīng)答器完全占有并由閱讀器識別出。
為了防止數(shù)據(jù)沖突的發(fā)生,首先確定發(fā)生沖突的數(shù)據(jù)比特位的具體位置。這里使用Manchester編碼如圖3所示。這種編碼通過電平的上升沿和下降沿表示高、低電平。上升沿為邏輯"1",下降沿為邏輯"0",不存在狀態(tài)不變的情況。因此數(shù)據(jù)傳輸過程中檢測到編碼狀態(tài)不跳變,則認為在數(shù)據(jù)傳輸過程中發(fā)生了沖突。兩個發(fā)生沖突的數(shù)據(jù)比特位必定有一個為邏輯"0",另一個為邏輯"1",這樣Manchester碼的上升沿和下降沿相互抵消,使接收器在持續(xù)時間內(nèi)接收到狀態(tài)持續(xù)不變的副載波信號,即出現(xiàn)狀態(tài)不跳變,這在Manchester編碼中是不允許的,可以肯定該處出現(xiàn)了沖突。因此可以用這種方法按位跟蹤發(fā)生沖突的數(shù)據(jù)比特位的具體位置。
當(dāng)應(yīng)答器進入射頻區(qū)域時,閱讀器開始針對所有的應(yīng)答器進行檢測識別。其工作進程主要有如下五個狀態(tài):
POWER OFF(斷電)狀態(tài):應(yīng)答器尚未獲得能量(未進入閱讀器工作區(qū)),而處于斷電狀態(tài),因此也不能發(fā)射副載波:
IDLE(空閑)狀態(tài):應(yīng)答器進入閱讀器工作區(qū),電磁場激活獲得能量,形成電壓,進入空閑狀態(tài),同時能對已調(diào)制的信號解調(diào),并識別來自閱讀器的RE-QUEST命令和WAKE UP命令;
READY(就緒)狀態(tài):當(dāng)接收到一個有效的REQA或WAKE UP命令時,進入就緒狀態(tài),在該狀態(tài)采用防沖突方法,用UID(惟一標識符)從多張IC卡中選擇出一張應(yīng)答器,此時該張應(yīng)答器就進入ACTIVE(激活)狀態(tài);
ACTIVE(激活)狀態(tài):在本狀態(tài)完成本次應(yīng)用(一次交易)所要求的全部操作;
HALT(停止)狀態(tài):閱讀器完成一次交易后,處于停止狀態(tài)。
應(yīng)答器各狀態(tài)間的轉(zhuǎn)換圖如圖4所示。
4 改進后的防沖突算法實現(xiàn)步驟
這里采用SEL+NVB方式傳輸。SEL為指令碼,其代碼為93;NVB的前半字節(jié)表示字節(jié)數(shù),后半字節(jié)表示沖突的位置。
改進后的算法具體實現(xiàn)步驟如下:
第1步:閱讀器分配SEL值,選定反沖突類型和級聯(lián)級數(shù);
第2步:閱讀器分配給NVB值'20'(定義了閱讀器將發(fā)出命令迫使場內(nèi)所有應(yīng)答器響應(yīng)完整的序列號);
第3步:閱讀器發(fā)出SEL和NVB命令;
第4步:場內(nèi)所有應(yīng)答器以完整序列號響應(yīng);
第5步:假定場內(nèi)的應(yīng)答器都有唯一的序列號,
則當(dāng)多個應(yīng)答器響應(yīng)時,就會發(fā)生沖突。如果無沖突,第6步到第10步可以跳過。
第6步:閱讀器確認第一個沖突的位置X并記錄下來。
第7步:閱讀器分配NVB值,其中NVB前半字節(jié)為該命令的字節(jié)數(shù),后半字節(jié)為沖突X的位置。
第8步:閱讀器發(fā)出SEL和NVB,要求應(yīng)答器中第X位為'1'的作出響應(yīng)。
第9步:只有該部分序列號中第X位為'1'的應(yīng)答器才會發(fā)出它們序列號剩余的部分。
第10步:若有沖突發(fā)生,第6~9步重復(fù)執(zhí)行。
第11步:若無沖突發(fā)生,閱讀器為NVB分配一個值'70'。
第12步:閱讀器發(fā)出SEL和NVB,要求應(yīng)答器傳送完整的序列號。
第13步:應(yīng)答器傳送完整的序列號、聞讀器收到后完成對該標簽的識別工作。
改進后的防沖突算法流程圖如圖5所示。
5 改進后防沖突算法的仿真與實現(xiàn)
改進后主要實現(xiàn)Manchester碼和防沖突算法。Manchester碼是一種適合傳輸?shù)幕鶐Тa型,是實現(xiàn)防沖突檢測所采用的碼型。Manchester編碼可用兩個不同相位的二進制碼代替一個二進制碼。而防沖突算法則是采用編寫程序進行算法驗證。實驗證明,算法正確。
6 結(jié)束語
改進后的二進制防沖突算法能夠?qū)⑸漕l區(qū)域內(nèi)的多個應(yīng)答器準確地識別出來,并且使系統(tǒng)的傳輸數(shù)據(jù)量和傳輸時間大大減少,有效節(jié)省了傳輸信道,這是其他算法難以達到的。因此,改進后的二進制防沖突算法比其他算法更準確、更高效地解決射頻識別系統(tǒng)中的標簽應(yīng)答數(shù)據(jù)沖突問題。
評論