隨著科技的進步和社會經濟的發展,人們對定位服務的要求越來越高,傳統的定位系統已經不能滿足室內定位的需求。GPS在戶外環境的定位中應用廣泛,但是由于混凝土等障礙物對電磁波的阻擋,它在室內環境中是完全失效的。筆者基于有源RFID技術,采用PIC系列單片機PIC16F877A和TI公司的射頻收發器芯片CC2500,設計出了一種低成本、低功耗,可以適用于室內環境的無線定位系統。
1總體設計
RFID室內定位系統由讀寫器和標簽組成。其中讀寫器按照功能劃分可以分為4個模塊,如圖1所示。分別是控制模塊、射頻通信模塊、定位信息顯示模塊、電源模塊??刂颇K負責控制系統的運行,包括對各種外設的控制,以及完成定位算法的運行等。射頻通信模塊負責數據的收發,采用ASK調制方式,實現讀寫器和標簽之間的數據傳輸。定位信息顯示模塊主要是顯示定位目標的信息。電源模塊用來給系統的各個單元提供工作電源。另外,與上位機連接的讀寫器通過RS-232串口與上位機進行通信,所以部分讀寫器還帶有串口通信模塊。
圖1讀寫器系統結構
標簽主要由控制模塊、射頻通信模塊、電源模塊組成,如圖2所示。
圖2標簽系統結構
控制模塊中的微控制器通過SPI接口與射頻收發器通信,在控制模塊的統一調度下,讀寫器與標簽節點之間通過無線射頻通信交換信息。在讀寫器的無線信號覆蓋區域內,標簽節點收到來自讀寫器的廣播信號后會處于激活狀態,處于激活狀態的標簽節點會將自己的ID號發送給讀寫器,然后接收讀寫器的請求命令,將存儲于節點中的信息傳送給讀寫器;或者接收讀寫器的寫命令,將來自讀寫器的信息寫入自己的存儲器中。
2系統硬件設計
2.1控制器部分
在系統設計中,考慮到系統的功耗、成本及性能等要求,選擇Microchip公司的PIC16F877A作為系統的微控制器。
PIC16F877A是一款具有RISC結構的16位高性能單片機,內部集成了一個在線調試器(In-CircuitDebugger),可以實現在線調試和在線編程。擁有35條單字指令,8k×14個字節的FLASH程序存儲器,368×8字節的RAM,8級硬件堆棧,內部看門狗定時器,低功耗休眠模式,高達25mA的吸入/拉出電流,外部具有3個定時器模塊,擁有10位多通道A/D轉換器,通用同步異步接收/發送器等功能模塊。它具有功耗低、驅動能力強、外接電路簡潔等特點,同時具有哈佛總線結構、尋址簡單、指令條數少等優點。
微控制器模塊主要由PIC16F877A單片機及其外圍電路組成。其電路原理圖如圖3所示。在讀寫器系統在中,PIC16F877A的RB0~RB3及RC7,RD4~RD7用作向顯示模塊發送顯示數據的通信接口;OSC1和OSC2擴展外部時鐘電路;PIC16F877A單片機通過SPI接口設置CC2500的工作參數并與CC2500交換數據。
圖3單片機外圍電路原理圖
2.2射頻通信模塊
考慮到功耗、接收靈敏度、傳輸速率和芯片成本等因素,系統采用了TI公司的無線射頻收發芯片CC2500作為無線通信模塊控制器。CC2500是TI公司推出的一款低成本、低功耗、體積小的2.4GHz無線通信頻段的收發器,工作頻率波段為2400~2483.5MHz。RF收發器集成了一個數據傳輸率可達500kbit/s的高度,可配置的調制解調器和一個64位傳輸/接收FIFO(先進先出堆棧)。CC2500的寄存器配置可通過SPI接口控制。它具有載波監聽和休眠模式,非常適合低功耗應用。
射頻通信模塊主要由CC2500收發器、傳輸與接收天線及其外圍濾波、匹配網絡組成,其中天線采用了Rainsun公司的貼片天線,系統電路原理圖如圖4所示。
圖4CC2500外圍電路原理圖
CC2500通過4線SPI兼容接口(SI,SO,SCLK和CSN)與PIC16F877A相連,這個接口用作寫入和讀取數據。SI為數據輸入線,SO為數據輸出線,SCLK為時鐘線,CSN為片選信號線,低電平有效。SPI接口的狀態控制線還包含一個讀/寫信號控制線。CC2500的狀態寄存器里指示一些系統的工作狀態信息。
2.3電源模塊
RFID室內定位系統一般主要布置在樓宇、倉儲建筑物等的內部,有些具有移動性,所以節點大多數需要采用電池供電,在元器件的選取中,盡量選擇低功耗器件以降低系統功耗,2.4~3.6V的電壓可以使系統中所有的器件和模塊正常工作。因此,實際中采用與之電壓匹配的高能紐扣鋰電池作為供電電源。
2.4電磁兼容與抗干擾設計
在設計2.45GHz的RFID系統時要考慮電磁兼容性(EMC),以保證讀寫器和標簽在設定的電磁環境和規定的安全界限內運行。在系統設計中,元件的選擇和電路設計是影響電磁兼容的重要因素,對于射頻通信模塊需要去耦電容來去除元件狀態轉換引起的噪聲電壓,并且要注意信號源和信號終端的阻抗匹配。PCB上的導線同樣具有阻抗、電感、電容特性,因此在PCB布局和布線也考慮了電磁兼容性等問題。布局是按照信號流程放置元件,盡量縮短元件之間的連接,CC2500底部通過多個過孔與地層連接。濾波電容盡量靠近器件放置,同時,為了抗電磁干擾,把數字電源和模擬電源、數字地和模擬地隔離開來。RFID定位系統節點的布設位置應盡量避開高大障礙物,以減少對電磁波的阻隔,影響傳輸性能。
3系統軟件設計
3.1定位算法的選擇
本RFID定位系統采用LANDMARC定位原理。LANDMARC定位算法適用于有源RFID室內定位。它將具有固定位置信息的標簽作為定位系統中的坐標參考點,通過參考點標簽與移動讀寫器之間的通信,獲取兩者之間的無線射頻信號強度值RSSI,繼而獲取讀寫器與多個參考標簽之間的RSSI值,根據RSSI與通信距離之間的對應關系,獲取讀寫器與多個參考標簽之間的距離關系。LANDMARC算法可以通過比較讀寫器與參考標簽之間RSSI值的大小來獲得離讀寫器距離最近的幾個參考標簽,然后根據這幾個最鄰近參考標簽的坐標,并結合它們的權重,可計算出讀寫器的坐標。
3.2RFID定位算法
無線信號的接收信號強度和信號傳輸距離的關系可以用式(1)來表示,其中RSSI是接收信號強度,d是收發節點之間的距離,n是信號傳播因子。
由式(1)中可以看出,常數A和n的值決定了接收信號強度和信號傳輸距離的關系。射頻參數A和n用于描述網絡操作環境。射頻參數A被定義為用dBm表示的距發射器1m時接收到信號平均能量的絕對值。如平均接收能量為-40dBm,那么參數A被定為40。射頻參數n指出了信號能量隨著距收發器距離增加而衰減的速率,其數值的大小取決于無線信號傳播的環境。
RSSI值受周圍環境的影響較大,具有時變特性,有時會偏離式(1)的描述,根據接收信號強度估計出的距離d就會有較大誤差。通過大量數據分析,采用了-個噪聲模型,即環境衰減因素模型,可有效補償環境影響帶來的誤差,如式(2)所示。
上式中EAF(dBm)為環境影響因素,它的值取決于室內環境,是靠大量的數據累積的經驗值。EAF(dBm)是一個隨機變量,但為了增強實用性,將其固定為-個值。通過大量比較實驗環境下測得的RSSI值與理想狀態下的RSSI值,得到試驗環境EAF(dBm)大概為11dBm,A取值45,n取值3.5。
在采集到RSSI值后,依據式(2)就可以得到讀寫器到標簽的距離,通過LANDMARC三邊測量定位算法就可以定位出讀寫器的位置。如圖5所示。
圖5三邊測量定位示意圖
假設標簽1的坐標為p1(x1,y1),標簽2的坐標為p2(x2,y2),標簽3的坐標為p3(x3,y3),讀寫器坐標為p(x,y)。則讀寫器坐標計算公式為:
由式(2)可以計算出讀寫器的坐標位置為:
3.3RFID定位系統的工作流程
定位算法以MPLABIDE7.4為開發平臺,采用C語言編寫,經過編譯、連接后生成機器代碼,下載到讀寫器程序存儲器中。RFID定位系統軟件流程圖如圖6所示。
圖6定位系統流程圖
4結束語。
筆者介紹了一種基于PIC16F877A和CC2500的有源RFID讀寫器和標簽的硬件系統設計及室內RFID定位方法,對讀寫器和標簽系統的各個模塊及運行于讀寫器中的定位算法及其工作流程進行了詳細介紹。該有源RFID定位系統在小規模的室內實驗中表現出較好的定位精度。