朱時立, 鄧 平
(西南交通大學 信息科學與技術學院,四川 成都 610031)
蜂窩網絡中眾多的增值業務都需要移動終端的位置信息,對移動終端的準確定位越來越受到人們的重視[1-2]。由于 TDOA、GPS等定位技術在室內、城市環境對移動終端進行定位存在的各種問題和不足,迫切需要一種精度高、適用范圍廣的移動定位技術,以滿足人們在室內、室外日益增長的定位需要[3]。
近年來,位置指紋定位技術(Fingerprint Location)以其實現簡單、抗多徑和非視距(NLOS)不利影響、精度高等諸多優點,受到人們的廣泛關注和深入研究[4],并成為室內WLAN移動終端定位的主要候選技術及 2G蜂窩手機定位的重要技術。目前,Google已為GSM用戶提供了基于該技術的手機定位服務,鵬潤科技等公司也為國內許多大中城市以及吉隆坡、雅加達、香港等境外城市的GSM手機用戶提供了基于該技術的定位服務,復雜城市環境中定位精度可以達到 50~300 m,能滿足用戶的一遍定位需求。但是,該技術目前僅限于2G網絡下的應用,還沒有見到3G網絡下該技術應用的報道。為此,文中基于位置指紋定位技術設計了一種應用于3G WCDMA網絡的位置指紋定位原型系統[5],完成了移動終端軟硬件的設計及系統實現,并進行了定位實驗及測試,達到了預期的效果。
位置指紋定位的應用過程必須包含兩個階段:離線采樣階段與在線定位階段。離線階段的目標是對定位區域中的樣點經行采集數據,數據信息包括樣點與各個基站小區的信號強度和基站小區唯一身份標示ID。并將數據按照特定格式存儲到定位中心的數據庫中。在線定位階段過程中,用戶在定位區域將附近基站小區信號強度信息采集起來后,發送至定位中心,定位中心從離線階段采集的數據中遍歷出相鄰的樣點通過以下不同的算法確定用戶位置:最相鄰樣點位置作為定位結果(NN算法)、取鄰近樣點位置平均值作為定位結果(KNN算法)、取鄰近樣點加權平均值作為定位結果(WKNN算法)。最后將定位結果反饋給用戶[4]。
基于位置指紋定位原理,這里設計了3G WCDMA網絡位置指紋定位系統架構如圖1所示。該系統由上位機、網關和定位兩套終端組成,上位機數據存儲采用微軟的SQLServer 2000數據庫格式,定位階段下終端ARM控制WCDMA負責監聽短消息、處理短消息命令、獲取基站信息、存儲離線數據等功能。網關負責與上位機軟件通過RS232協議進行通訊,主要負責監聽定位終端請求短消息,處理短消息命令,通過短消息發送命令給定位終端等任務。服務器上的定位中心采用 WKNN指紋定位算法準確地定位出待定位的移動終端的位置,實時顯示在定位中心系統的界面上,并把位置信息返回到待定位的移動終端實現定位[6-7]。

圖1 系統結構
為了實現具有位置指紋定位功能的移動終端,用Protel DXP2004設計、實現了嵌入式移動終端系統,其中CPU采用的是三星S3C2440A,主頻400 MHz;內存 64MB;NAND Flash 128MB,NOR Flash 4MB,兩個五線異步串行 232接口,SD卡接口[8]。WCDMA模塊采用SIMCOM生產的SIM5216E型號3GWCDMA工業通信模塊,可通過RS-232連接控制模塊收發短信和獲取基站信息。硬件結構如圖2所示。

圖2 硬件結構
為移動終端配置軟件需要搭建開發環境平臺及嵌入式軟件設計。開發環境搭建包括Linux系統移植、交叉編譯環境配置、運行環境連接等,嵌入式軟件則運行于Linux平臺下,實現定位相關的各種具體功能。
2.1.1 BootLoader 與Linux移植,系統配置
運行于TE2440-II ARM9開發板中的BootLoader相當于 PC機中的 BIOS,在啟動 Linux,Wince,Android等系統之前初始化硬件設備、建立內存空間映射圖,將系統的軟硬件環境配置到合適狀態,提供運行環境。BootLoader可用sjf2440.exe通過JTAG口燒寫到裸板中。通過DWN調試軟件USB連接,BootLoader引導將Linux系統下載到目標板,設置BootLoader的自啟動系統為Linux系統。
Linux系統移植后,系統很多服務進程默認關掉,為此如果要正常使用常見的進程,必須下發命令開啟服務進程。為了方便開發工作,筆者對Linux開機文件rcS作了相應的配置,增添控制代碼及說明如下:
/sbin/ifconfig eth1 192.168.1.16 up,啟動以太網口1;
那木偶沒多大事,只臉上被新漆過的鐵架子剮蹭了一些漆漬上去。王爺的臉卻變成了豬肝色,一邊嘴里咕咕叨叨罵起來,一邊從口袋里掏出平日里擦嘴用的手帕,沾了些唾沫,使勁在那木偶臉上擦。見擦不干凈,又從口袋里掏出一個小刀(不知道還能掏出啥來),把著力度輕輕地刮,竟然那漆漬就被刮掉了。
/sbin/vsftpd&,開啟嵌入式ftp服務,供復制拷貝文件;
/sbin/telnetd,開啟嵌入式telnet服務,可遠程查看系統運行狀況。
2.1.2 交叉編譯環境建立與Makefile編寫
作者采用在VMWave中Ubuntu 10.10系統下建立交叉編譯環境,采用arm-linux-gcc-3.4.1版本交叉編譯環境。解壓安裝包、添加PATH環境變量并驗證交叉環境成功即可進行代碼開發。由于工程中存在多個按類型、功能、模塊分別放于不同目錄的源文件,為減少編譯過程中輸入多個編譯命令,作者編寫一個Makefile文件進行自動化編譯。在工程文件目錄下輸入make命令,即可完成自動編譯,大大提高了軟件開發效率。下面是編寫的Makefile中一部分與注釋;
GCC:=/usr/local/arm/3.4.1/bin/arm-linuxgcc // 指出交叉環境路徑
WCDMA.o:$(CDMA)WCDMA.c $(CDMA)WCDMA.h$(GCC) -c $(CDMA)WCDMA.c//(其中CDMA為WCDMA.c文件的路徑)編譯WCDMA.c文件,生成WCDMA.o文件。這樣,將多個.O文件鏈接后即可成為Linux環境下的可執行文件。
終端軟件的功能包括:在線監聽和處理、離線采集數據、后臺操作WCDMA模塊。為了使離線采集數據或者后臺操作WCDMA模塊的過程中不遺漏網關發送過來的任何一條請求命令,軟件采用多線程處理。在線監聽作為單獨線程實時監聽,讀取新短信,解析短信內容命令,根據命令進行相應處理操作。離線采集數據和后臺操作 WCDMA模塊并用一個線程,兩個進程是互斥關系。離線采集數據可以選擇數據存儲和數據立即發送兩種方案,數據存儲是將離線采集到的數據保存在NAND Flash中,再從后臺文件中復制出來,導入至上位機數據庫。數據立即發送則是每采集一個指紋特征點就通過短信直接發送到網關,上位機自動解析保存到數據庫。后臺操作WCDMA則是通過軟件下發一些簡單的對WCDMA模塊操作控制的AT指令。系統流程圖如圖3所示。

圖3 軟件流程

圖4 兩個典型幀格式
定位系統的實現分為離線和在線兩個階段。
離線階段主要進行指紋數據庫建立以及數據維護更新,在選定的實驗區域快速采集、提取 WCDMA網絡中位置指紋信息,供定位中心建立位置指紋數據庫。建立典型實驗區域,通過現場實驗研究單個位置指紋覆蓋區域大小對定位精度的影響,得到對應的推薦值。確定單個位置指紋覆蓋區域的大小,兼顧定位精度和算法計算復雜性兩個方面的要求。利用所設計的移動終端進行現場實測,并根據傳播模型校正,做進一步的分析和改進。
圖5為系統在線定位流程。在被動請求定位階段,上位機軟件通過RS232下發命令到網關,網關解析并將命令封裝通過SMS轉發至終端。終端獲取短信中命令,采集包含下行信號強度和基站ID的指紋特征信息原路返回到上位機,定位中心調用數據庫中指紋庫運用 WKNN指紋定位算法計算出定位結果并反饋給終端,實現終端被動定位。主動定位則是終端直接將指紋特征信息發送到網關。

圖5 定位流程
測試過程中,離線階段采集密度間隔為 10 m,每個采樣點采集 5次,采集到的數據按照幀格式如圖6所示。采集到的離線數據采用TXT文本格式存儲到終端SD卡,再導入到數據庫存儲,這樣可以減少離線數據通訊產生的費用,提高離線采集效率。數據采集經過后臺數據融合處理后,每個指紋間距為50 m。

圖6 離線采集數據
在實驗區域內分別用主動定位與被動定位方式對測試點進行定位驗證,各抽取10個定位結果如圖7所示。主動定位相比被動定位只少了被動觸發階段,后面流程是一致的,實驗數據也證明了此點。除去異常點,定位誤差在20 m到70 m之間,滿足了定位需求。

圖7 定位誤差
文中基于位置指紋定位原理設計了一套基于3G WCDMA網絡的位置指紋定位演示系統,并完成了移動終端軟硬件的設計、實現及系統測試,達到了預期的效果。基于該技術,對現有3G移動終端只需提供一應用程序、無需做軟硬件修改,即能在3G蜂窩網覆蓋的任何環境中實現對移動終端的準確有效定位。
[1] LI B,WANG Y,LEE H K,et al. Method for Yielding a Database of Location Fingerprints in WLAN[C]//Communications,IEEE Proceedings.[s.l.]:IEEE. 2005:580-586.
[2] 范平志,鄧平,劉林.蜂窩網無線定位[M].北京:電子工業出版社,2002.
[3] LAKMAL S D B,DIAS D. Database Correlation for GSM Location in Outdoor & Indoor Environments[C] //In Proceedings of the 4th International Conference on Information and Automation for Sustainability(ICIAFS).Colombo:Sri Lanka,2008:42-47.
[4] 鄭穎.常用移動定位技術的研究和應用[J].通信技術,2001(08):79-81.
[5] 黃楠,伍小芹.3G移動用戶定位技術研究[J].通信技術,2011,44(07):63-64.
[6] 張明華,張申生,曹健.無線局域網中基于信號強度的室內定位[J].計算機科學,2007(06):68-71.
[7] 湯麗,徐玉濱,周牧,等.基于 K近鄰算法的WLAN室內定位技術研究[J].計算機科學,2009(4B):54-55,92.
[8] 飛凌嵌入式有限公司.S3C2440 user manual[S].北京:飛凌嵌入式有限公司,2007:1-10.
[9] 翁雪清.GPS技術在移動定位業務中的應用中國科技信息[J].2009(03):106-107.