張穎,李凱
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
定位技術(shù)是一種應(yīng)用廣泛的高科技技術(shù)。目前常見的定位技術(shù)主要有GPS衛(wèi)星定位、紅外定位、超聲波定位、WiFi網(wǎng)絡(luò)定位、GPRS/CDMA移動(dòng)通訊技術(shù)定位等,但是受定位時(shí)間、定位精度以及復(fù)雜室內(nèi)環(huán)境等條件的限制,并考慮到精度、成本、可行性等因素,這些方法都存在一定的局限性,尤其是在一些室內(nèi)和屏蔽物遮擋的局域定位的場合。無線射頻識(shí)別RFID(Radio Frequency Identification)定位技術(shù)以其非接觸、高靈敏度和低成本等優(yōu)點(diǎn),在許多場合下成為一種重要技術(shù)選擇,受到越來越多的關(guān)注。
因RFID定位系統(tǒng)涉及多標(biāo)簽識(shí)別的問題,系統(tǒng)必然會(huì)出現(xiàn)多個(gè)標(biāo)簽同時(shí)與讀寫器通信產(chǎn)生信號(hào)碰撞的情況。目前RFID多標(biāo)簽防碰撞算法有多種:多址技術(shù)、ALOHA防碰撞算法、二進(jìn)制防碰撞算法等。多址防碰撞算法是以增加系統(tǒng)的復(fù)雜性和提高成本為代價(jià),且有無法克服的缺陷;ALOHA防碰撞算法有時(shí)會(huì)導(dǎo)致讀寫器出現(xiàn)錯(cuò)誤判斷,對(duì)某個(gè)標(biāo)簽是否在讀寫范圍內(nèi)產(chǎn)生誤判,同時(shí)還存在沖突概率較大的問題;簡單的二進(jìn)制防碰撞算法有時(shí)并不能取得很好的避碰效果。本文采用基于序列號(hào)對(duì)時(shí)隙數(shù)運(yùn)算的排序算法,該算法可以克服誤判問題,且易于實(shí)現(xiàn)、效率高,不受標(biāo)簽數(shù)量的限制。RFID定位算法有:LANDMARC、基于信號(hào)達(dá)到角度的定位法(AOA)圓周定位算法等[3-4]。這里采用圓周定位算法,該方法簡單可靠,易于在線實(shí)施。
本系統(tǒng)主要由讀寫器和有源標(biāo)簽組成。讀寫器與標(biāo)簽之間的射頻信號(hào)通過空間耦合實(shí)現(xiàn)無接觸信息傳遞,讀寫器通過與標(biāo)簽的無線通信獲得接收信號(hào)強(qiáng)度指示(RSSI)值[5],這是對(duì)待定位標(biāo)簽進(jìn)行位置計(jì)算的重要參數(shù)。微控制器PIC16F877A控制CC2500射頻收發(fā)模塊的數(shù)據(jù)發(fā)送與接收[6-7]。讀寫器網(wǎng)關(guān)節(jié)點(diǎn)可通過RS232接口與上位機(jī)相連。系統(tǒng)結(jié)構(gòu)如圖1所示。
系統(tǒng)控制器采用Microchip公司的8 bit高性價(jià)比微控制器PIC16F877A作為主控芯片,它在架構(gòu)上采用哈佛總線結(jié)構(gòu),數(shù)據(jù)總線與指令總線分離,便于實(shí)現(xiàn)全部指令的單字節(jié)化、單周期化,從而有利于提高CPU執(zhí)行指令的速度。此外,片上數(shù)據(jù)存儲(chǔ)空間比較大,可以方便通信協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)。內(nèi)部看門狗定時(shí)器,提高了程序執(zhí)行的穩(wěn)定性;低功耗休眠模式,大大降低了系統(tǒng)的功耗。它具有驅(qū)動(dòng)能力強(qiáng)、外接電路簡潔、功耗低等特點(diǎn)。因此適合作為RFID讀寫器的控制器來使用。
射頻收發(fā)器選用德州儀器公司的CC2500[7-8]作為控制芯片,CC2500集成了一個(gè)數(shù)據(jù)傳輸可達(dá)500 kb/s的高度可配置的調(diào)制解調(diào)器,大大加強(qiáng)了數(shù)據(jù)傳輸?shù)男阅?,同時(shí)通過開啟集成在調(diào)制解調(diào)器上的前向誤差校正選項(xiàng),使性能得到大幅度提升。MCU通過SPI接口向CC2500發(fā)送操作命令,配置其調(diào)制方式、工作頻率等參數(shù),通過指令將其配置為接收狀態(tài)、發(fā)送狀態(tài)、空閑狀態(tài)或休眠狀態(tài)。CC2500的引腳SO和SI分別為數(shù)據(jù)傳輸?shù)妮敵龊洼斎胄盘?hào)線,CSN為片選信號(hào)引腳,SCLK為時(shí)鐘信號(hào)引腳。當(dāng)其接收到一個(gè)數(shù)據(jù)或發(fā)送完一個(gè)數(shù)據(jù)時(shí),都會(huì)通過引腳GDO0和GDO2輸出相應(yīng)的狀態(tài)脈沖,MCU據(jù)此來判斷CC2500的狀態(tài)。
基于序列號(hào)對(duì)時(shí)隙數(shù)運(yùn)算的排序算法[8]是時(shí)分復(fù)用方法的一種,具有易于實(shí)現(xiàn)、執(zhí)行效率高等特點(diǎn)。利用PIC16F877A通過SPI接口來控制CC2500數(shù)據(jù)的發(fā)送時(shí)隙,將標(biāo)簽作為應(yīng)答器,基于序列號(hào)對(duì)時(shí)隙數(shù)運(yùn)算的排序算法的實(shí)現(xiàn)流程如下:在爭用周期內(nèi),首先用標(biāo)簽序列號(hào)除以爭用周期時(shí)隙數(shù)所得的余數(shù)來確定標(biāo)簽在爭用數(shù)據(jù)幀內(nèi)的發(fā)送時(shí)隙;然后用標(biāo)簽序列號(hào)除以爭用周期時(shí)隙數(shù)所得的商確定標(biāo)簽在爭用幀內(nèi)相應(yīng)時(shí)隙的發(fā)送位,然后在爭用周期內(nèi)發(fā)送的爭用數(shù)據(jù)幀的相應(yīng)時(shí)隙發(fā)送位填充數(shù)據(jù)“1”;最后利用填充過的爭用數(shù)據(jù)幀確定標(biāo)簽在整個(gè)數(shù)據(jù)發(fā)送周期內(nèi)的發(fā)送順序 (即標(biāo)簽的發(fā)送順序 =其發(fā)送位及其前面各發(fā)送位中 “1”的總數(shù)),從而給不同序列號(hào)的標(biāo)簽分配不同的發(fā)送時(shí)序。例如采用9個(gè)待定位標(biāo)簽,利用上述算法進(jìn)行標(biāo)簽識(shí)別排序,具體流程如圖2所示。
圖2倒數(shù)第二行為9個(gè)標(biāo)簽的發(fā)送時(shí)序,發(fā)送的時(shí)序是 A0,A4,A8,A1,A5,A2,A6,A3,A7。
設(shè)標(biāo)簽序列號(hào)長度為 LID(序列號(hào)以二進(jìn)制形式表示),標(biāo)簽 j的序列號(hào)為 Ij,標(biāo)簽數(shù)量為 M(M≤2LID),信道爭用開始指令的發(fā)送時(shí)間為T0,休眠指令的發(fā)送時(shí)間為T1,數(shù)據(jù)發(fā)送周期的數(shù)據(jù)幀長度為T;爭用周期的時(shí)隙數(shù)為MTS(MTS2≥2LID),時(shí)隙長度為 t(設(shè)每個(gè)時(shí)隙內(nèi)的發(fā)送數(shù)據(jù)長度為 MTS位,位時(shí)間長度為 tb,即 t=MTStb),時(shí)隙 i內(nèi)有Pi個(gè)標(biāo)簽要發(fā)送數(shù)據(jù);標(biāo)簽j在爭用周期內(nèi)的發(fā)送時(shí)隙為 Sj,發(fā)送位為 Dj,序列號(hào)對(duì) MTS的商為 Qj,標(biāo)簽 j在整個(gè)數(shù)據(jù)發(fā)送周期中的發(fā)送順序?yàn)?Tj,則Sj=Ij%MTS,Qj=Ij%MTS,,Qj=Ij/MTS,Pi=爭用數(shù)據(jù)幀中的 i時(shí)隙內(nèi) 1的個(gè)數(shù),Tj與Pi的關(guān)系和系統(tǒng)效率E表達(dá)式如下:
對(duì)于時(shí)隙數(shù)固定的系統(tǒng)而言,當(dāng)M較少時(shí),E會(huì)隨著M的增加而快速增加;當(dāng)應(yīng)答器數(shù)目較多時(shí),E會(huì)隨著M的增大而緩慢增大;而M接近滿荷時(shí),時(shí)隙數(shù)對(duì)E沒有顯著影響。但是對(duì)于同一系統(tǒng),如果取不同的時(shí)隙數(shù),則隨著時(shí)隙數(shù)的增大,E會(huì)有所下降,這是因?yàn)闀r(shí)間利用率下降了。只要選取合適的時(shí)隙數(shù)和應(yīng)答器數(shù)量(即接近于系統(tǒng)滿負(fù)荷情況M=(MTS)2,就可以優(yōu)化系統(tǒng)性能。
本系統(tǒng)采用圓周定位法。它是利用讀寫器接收標(biāo)簽信號(hào)得到RSSI值,通過相關(guān)的定位計(jì)算公式來進(jìn)行定位的一種方法。
無線信號(hào)的接收信號(hào)強(qiáng)度與信號(hào)傳輸距離的關(guān)系可以用式(3)表示,其中RSSI是接收信號(hào)的強(qiáng)度,d是收發(fā)節(jié)點(diǎn)之間的距離,n是信號(hào)傳播因子,EAF是環(huán)境因子。
由式(3)可以看出,射頻參數(shù)A和n用于描述通信操作環(huán)境,它們決定了接收信號(hào)強(qiáng)度和信號(hào)傳輸距離的關(guān)系。射頻參數(shù)A被定義為dBm,表示距發(fā)射機(jī)1 m時(shí)接收到信號(hào)平均能量的絕對(duì)值,如平均接收能量是-10 dBm,則定義參數(shù)A為10。射頻參數(shù)n表征了信號(hào)能量隨著到收發(fā)器距離增加而衰減的速率,其數(shù)值的大小取決于無線信號(hào)傳播的環(huán)境。依據(jù)式(3)可得到待定位標(biāo)簽到讀寫器的直線距離。如3個(gè)讀寫器的位置已知,分別是p1(x1,y1)、p2(x2,y2)和 p3(x3,y3),則待定位標(biāo)簽的坐標(biāo)計(jì)算如式(4):
由式(4)可以計(jì)算出標(biāo)簽的坐標(biāo)位置為:
實(shí)驗(yàn)中將三個(gè)讀寫器放在坐標(biāo)為 (2,2)、(2,4)、(4,4)的位置上,依次對(duì)9個(gè)待定位標(biāo)簽進(jìn)行定位實(shí)驗(yàn)。9個(gè)待定位標(biāo)簽放在4 m×4 m的正方形區(qū)域內(nèi),相鄰的待定位標(biāo)簽相互之間相隔2 m,如圖3所示。
分別對(duì)每個(gè)標(biāo)簽到讀寫器的RSSI值測試20次,并記錄其數(shù)據(jù),通過上述圓周定位算法對(duì)得到的RSSI值進(jìn)行處理,得到各個(gè)待定位標(biāo)簽的坐標(biāo)值(這里EAF取13.5,A取 45,n取 3.5)。實(shí)驗(yàn)結(jié)果如圖4所示。
圖4中圓圈表示標(biāo)簽的理論位置,星點(diǎn)表示標(biāo)簽的定位位置,每一個(gè)標(biāo)簽定位實(shí)驗(yàn)20次。從圖中可以看出,每個(gè)區(qū)域的20個(gè)星點(diǎn)都圍繞在圓圈附近,說明定位位置相比于理論位置存在定位誤差。分別對(duì)9個(gè)標(biāo)簽點(diǎn)的20次定位測試結(jié)果進(jìn)行均方差統(tǒng)計(jì),均方差的范圍為 0.236~0.541。
基于低功耗微控制器PIC16F877A和射頻收發(fā)器CC2500構(gòu)造的RFID局域定位系統(tǒng)具有結(jié)構(gòu)簡單、成本和功耗較低、可擴(kuò)展性好、適應(yīng)性強(qiáng)、易于實(shí)施等特點(diǎn)。利用基于序列號(hào)對(duì)時(shí)隙數(shù)運(yùn)算的排序算法解決了多標(biāo)簽識(shí)別的防碰撞問題;利用圓周定位算法對(duì)待定位標(biāo)簽進(jìn)行局域定位。實(shí)際測試表明該設(shè)計(jì)方法能夠通過對(duì)多標(biāo)簽信號(hào)的識(shí)別有效實(shí)現(xiàn)無線局域定位的功能。
[1]BONUCCELLI M A,LONETTI F,MARTELLI F.Instant collision resolution for tag identification in RFID networks[J].Ad Hoc Networks,2007(5):1220-1230.
[2]SHIH D H,Sun Poling,YEN D C,et al.Taxonomy and survey of RFID anti-collision protocols,Computer Communications,2006(29):2150-2166.
[3]CHOI J,LEE W,Comparative evaluation of probabilistic and deterministic tag anti-collision protocols for RFID networks[J].Lecture Notes in Computer Science,2007(4809):538-549.
[4]NI L M,LIU Y H,LAU Y C,et al.LANDMARC:Indoor location sensing using active RFID,proceedings of the First IEEE international conference[C].Washingtion DC:IEEE Computer Society,2003:407-415.
[5]AWAD A,FRUNZKE T,DRESSLER F.Adaptive distance estimation and localization in WSN using RSSI measures[C].10th Euromicro Conference on Digital System Design Architectures,Methods and Tools,DSD 2007,29-31:471-478.
[6]Microchip.PIC16F87XA Data Sheet[R].2003.
[7]Texas Instruments.CC2500 Datasheet[R].2007.
[8]劉振文,鄧毅華,彭友斌.基于 CC2500的 2.45 GHz RFID系統(tǒng)設(shè)計(jì)[D].電子技術(shù)應(yīng)用,2008,34(7):76-78,81.
[9]王曉華,周曉光,孫百生.射頻識(shí)別系統(tǒng)中的防碰撞算法設(shè)計(jì)[D].北京:北京郵電大學(xué),2007.