周 丹,鄭 欣,劉志杰
(貴州師范大學(xué) 貴州省信息與計算科學(xué)重點實驗室,貴州 貴陽 550001)
射頻識別(Radio Frequency Identification,RFID)是一種新興的自動識別技術(shù),具有無需視距通信,能夠承受惡劣的物理環(huán)境,允許多標(biāo)簽同時識別等特點,廣泛應(yīng)用于智能交通、物品跟蹤、防偽識別等領(lǐng)域。同時,不同的應(yīng)用需求造成了RFID系統(tǒng)的多樣性與復(fù)雜性。RFID系統(tǒng)中的一些關(guān)鍵問題,如標(biāo)簽碰撞、閱讀器碰撞、系統(tǒng)安全等問題都有待進一步研究和完善。網(wǎng)絡(luò)仿真實現(xiàn)了對真實環(huán)境的模擬,是協(xié)議算法評價和系統(tǒng)性能評估不可缺少的工具。
目前使用較為廣泛的網(wǎng)絡(luò)仿真工具有OPNET[1],NS-2[2]等。OPNET是一種功能強大的網(wǎng)絡(luò)仿真和建模工具,幾乎可以模擬任何網(wǎng)絡(luò)設(shè)備,支持各種網(wǎng)絡(luò)技術(shù),同時還支持面向?qū)ο蟮慕7绞?,并提供了圖形化的編輯界面。但是OPNET價格昂貴,當(dāng)仿真網(wǎng)絡(luò)規(guī)模和流量很大時,仿真效率會降低,且軟件所提供的模型庫也有限。NS-2同樣是面向?qū)ο蟮哪M器可以對固定、無線、衛(wèi)星以及混合等多種網(wǎng)絡(luò)進行仿真。與OPNET相比,NS-2是一種開源的網(wǎng)絡(luò)仿真工具,可擴展特性和開源特性賦予了其強大的生命力。但NS-2中存在不支持多類型接口節(jié)點,無線物理層模型過于簡化等問題。美國華盛頓大學(xué)Thomas R. Henderson教授及其項目組研究了新的網(wǎng)絡(luò)模擬工具NS-3[3]。NS-3是新型開源的離散事件網(wǎng)絡(luò)模擬器,重新改寫了NS-2網(wǎng)絡(luò)模塊,不支持NS-2的API,使用C++或Python語言。相比NS-2,NS-3使用更加方便,且提供了對網(wǎng)絡(luò)協(xié)議的更低抽象層次,使其更貼近真實系統(tǒng)[4]。因此本文選用NS-3建立RFID系統(tǒng)仿真平臺。
RFID系統(tǒng)基于NS-3模擬器仿真,采用模塊化設(shè)計,通過C++語言編程實現(xiàn)所需功能。閱讀器與標(biāo)簽之間通常采用詢問-應(yīng)答的半雙工通信方式,Reader先發(fā)送命令,Tag根據(jù)Reader發(fā)送的命令執(zhí)行相應(yīng)操作,需要時,發(fā)送響應(yīng)數(shù)據(jù)包[5]。閱讀器和標(biāo)簽是RFID仿真系統(tǒng)中兩種結(jié)構(gòu)相似但功能不同的無線節(jié)點,均由MAC層對象和物理層對象組成,通過信道層對象實現(xiàn)通信。通信架構(gòu)如圖1所示。
圖1 閱讀器與標(biāo)簽通信架構(gòu)
MAC層將數(shù)據(jù)包封裝成幀;完成幀的發(fā)送接收;完成閱讀器與標(biāo)簽的邏輯操作。
閱讀器的功能通過在MAC層對象中對標(biāo)簽的選擇、盤存和訪問操作實現(xiàn)[6],閱讀器的操作邏輯如圖2所示。閱讀器發(fā)送Select命令選擇查詢標(biāo)簽,廣播攜帶幀長參數(shù)Q的Query命令,盤存開始,收到命令的標(biāo)簽產(chǎn)生一個0~2Q-1的隨機數(shù),并裝入時隙計數(shù)器中,當(dāng)時隙計數(shù)器的值為0時,標(biāo)簽回復(fù)一個16位隨機數(shù)(RN16)。閱讀器判斷是否收到RN16,如果收到就立即發(fā)送ACK命令;如果沒有收到就判斷是否發(fā)生碰撞。若發(fā)生碰撞則采用Q算法防碰撞,若沒有發(fā)生碰撞則閱讀器發(fā)送QueryRep命令重復(fù)查詢。
圖 2 閱讀器的操作邏輯
標(biāo)簽的功能通過在MAC層對象中根據(jù)閱讀器命令轉(zhuǎn)換狀態(tài)實現(xiàn)[6]。從閱讀器開始查詢到獲取標(biāo)簽存儲的信息,標(biāo)簽共經(jīng)歷四個狀態(tài)的轉(zhuǎn)換,分別是就緒、仲裁、應(yīng)答和確認。標(biāo)簽的狀態(tài)轉(zhuǎn)換如圖3所示。標(biāo)簽進入射頻區(qū)后上電進入就緒狀態(tài),收到Query命令,若時隙計數(shù)器的值不為0,則進入仲裁狀態(tài)并等待QueryRep或QueryAdjust命令,直到時隙計數(shù)器的值為0并進入應(yīng)答狀態(tài)。若時隙計數(shù)器的值為0,則進入應(yīng)答狀態(tài)反向散射RN16,當(dāng)接收到正確RN16的ACK命令時進入確認狀態(tài),進入確認狀態(tài)的標(biāo)簽反向散射其存儲的信息。
圖3 標(biāo)簽的狀態(tài)轉(zhuǎn)換
物理層:定義了閱讀器與標(biāo)簽之間無線通信的鏈路,包括工作頻率、數(shù)據(jù)速率和編碼調(diào)制方式等技術(shù)參數(shù)以及數(shù)據(jù)的發(fā)送接收。
信道層:閱讀器與標(biāo)簽通過信道層互相通信。信道層中加入傳播損耗模型(Propagation Loss Model),并計算系統(tǒng)的最遠工作距離。通過式(1)計算標(biāo)簽芯片獲得的功率Pr:
暫時不考慮天線之間的極化損失,可以得出系統(tǒng)的最遠工作距離dmax為:
其中:Pt為閱讀器的發(fā)射功率;Gt為閱讀器天線增益;Gr和d為標(biāo)簽天線增益和工作距離;Pth為標(biāo)簽芯片的最低功耗。
為驗證基于NS-3的RFID系統(tǒng)仿真平臺的搭建功能,在此系統(tǒng)上運行一個實例,發(fā)現(xiàn)閱讀器與標(biāo)簽可成功通信,獲取標(biāo)簽信息,如圖4所示。Reader向Tag1發(fā)送Query命令開始查詢,收到命令后的Tag1在(0,2Q-1)范圍內(nèi)挑選一個隨機數(shù),并將該數(shù)值載入。
當(dāng)時隙計數(shù)器為0時,發(fā)送RN16;當(dāng)閱讀器收到RN16時發(fā)送含有相同RN16的ACK命令確認該標(biāo)簽,標(biāo)簽收到ACK命令后,發(fā)送存儲的ID。
圖4 閱讀器與標(biāo)簽通信
本文搭建了一個基于NS-3的RFID仿真系統(tǒng),對其MAC層對象、物理層對象、信道層對象給出了具體的仿真實現(xiàn),并通過實例驗證了此系統(tǒng)。NS-3模塊化設(shè)計的靈活性便于給RFID系統(tǒng)加入各種不同的模塊,有利于RFID系統(tǒng)的深入研究與探討,以及測試RFID系統(tǒng)性能,解決RFID相關(guān)問題。
[1]周慧.OPNET網(wǎng)絡(luò)仿真及其應(yīng)用研究[D]. 武漢:武漢科技大學(xué),2009.
[2] The network simulator NS-2:Documentation[DB].http://www.isi. edu/nsnam/ns /ns-documentation. html
[3] HENDERSON T R, LACAGE M,RILEY G F.Network simulations with the NS-3 simulator[C].ACM SIGCOMM’08, Seattle,Washington DC,2008.
[4] 張登銀,張保峰.新型網(wǎng)絡(luò)模擬器NS-3研究[J].計算機技術(shù)與發(fā)展,2009,19(11):80-84.
[5] 丁治國.RFID關(guān)鍵技術(shù)研究與實現(xiàn)[D].合肥:中國科學(xué)技術(shù)大學(xué),2009.
[6] 王崢.超高頻RFID空中接口協(xié)議的研究與系統(tǒng)設(shè)計[D].天津:天津大學(xué),2011.
[7] 潘琢金,吳昊,羅振,等. 無線Mesh網(wǎng)絡(luò)先驗式多樹路由協(xié)議的研究與NS-3仿真[J].微電子學(xué)與計算機,2016,33(8):45-49.
[8] 余騰,劉志敏. 基于NS-3的衛(wèi)星鏈路TCP仿真研究[J].計算機工程與應(yīng)用,2015(22):90-94.