秦艷珊 寧彬 徐凱 谷瓊
摘 ?要: 基站定位已成為手機(jī)軟件研發(fā)的熱點(diǎn)。研究了手機(jī)蜂窩網(wǎng)絡(luò)通信原理、基站信息的獲取、單基站定位技術(shù)以及地圖標(biāo)示的基本原理與實(shí)現(xiàn)方法。通過(guò)創(chuàng)建Json串、激活手機(jī)GPRS、訪問(wèn)google服務(wù)器等獲取單基站的主要信息,進(jìn)而獲得基站的經(jīng)緯度,實(shí)現(xiàn)了手機(jī)定位技術(shù)。
關(guān)鍵詞: 蜂窩網(wǎng)絡(luò); 單基站定位; 基站信息; 地圖標(biāo)示
中圖分類(lèi)號(hào):TN965 ? ? ? ? ?文獻(xiàn)標(biāo)志碼:A ? ? 文章編號(hào):1006-8228(2015)07-20-03
Research and implementation of cellular network single base station positioning technology
Qin Yanshan1,2, Ning Bin 1, Xu Kai 2, Gu Qiong1,3
(1. School of Mathematics and Computer Science, Hubei University of Arts and Science, Xiangyang, Hubei 441053, China;
2. School of Computing, China University of Geosciences; 3. Center for the Study of Logic and Intelligence)
Abstract: Base station positioning has become a hotspot of mobile software development, this paper studies the mobile cellular network communication principle, acquisition of base station information, single base station positioning technology, and the basic principle and realization method for map marking. By creating a Json string, activating mobile phone GPRS, accessing Google servers,the main information of single base station is obtained, then the latitude and longitude of the base station is obtained, and mobile phone positioning technology is realized.
Key words: cellular network; single base station positioning; base station information; map marking
0 引言
隨著第三代移動(dòng)通信技術(shù)的飛速發(fā)展,基于蜂窩網(wǎng)絡(luò)的移動(dòng)端定位技術(shù)成為了目前研究和應(yīng)用的熱點(diǎn),手機(jī)作為目前日常生活中的通信工具,被廣泛應(yīng)用于其中?;径ㄎ患夹g(shù)不僅應(yīng)用于消費(fèi)者自身的定位,而且用于緊急救援、汽車(chē)導(dǎo)航、智能交通、蜂窩系統(tǒng)優(yōu)化設(shè)計(jì)等方面,實(shí)現(xiàn)對(duì)安全事故的及時(shí)反應(yīng),從而保障人民的生命和財(cái)產(chǎn)安全[1]。手機(jī)基站定位作為無(wú)需手機(jī)額外硬件只需軟件支持的功能軟件,其優(yōu)點(diǎn)明顯,受到移動(dòng)供應(yīng)商及開(kāi)發(fā)人員的親睞。
基站定位技術(shù)主要有:①COO(單基站定位),即根據(jù)設(shè)備當(dāng)前連接的蜂窩基站的位置來(lái)確定設(shè)備的位置;②TOA(到達(dá)時(shí)間)、TDOA(到達(dá)時(shí)間差)都是基于電波傳播時(shí)間的定位方法,同時(shí)也都是三基站定位方法,二者的定位需要同時(shí)有三個(gè)已知位置的基站合作才能進(jìn)行;③AOA(Angle of Arrival,到達(dá)角度)定位是一種兩基站定位方法,基于信號(hào)的入射角度進(jìn)行定位;④基于場(chǎng)強(qiáng)的定位,該方法是通過(guò)測(cè)出接收到的信號(hào)場(chǎng)強(qiáng)和已知的信道衰落模型及發(fā)射信號(hào)的場(chǎng)強(qiáng)值估計(jì)收發(fā)信短的距離,根據(jù)多個(gè)三個(gè)距離值就可以得到設(shè)備的位置;⑤混合定位,就是同時(shí)使用兩種以上的定位方法來(lái)進(jìn)行定位。本文采用COO(Cell of Origin,單基站定位)方法,通過(guò)連接Google服務(wù)器獲得單基站的主要信息,進(jìn)而獲得基站地址和經(jīng)緯度,并利用該信息在手機(jī)地圖上標(biāo)出當(dāng)前經(jīng)緯度以及坐標(biāo),實(shí)現(xiàn)手機(jī)定位。
1 單基站定位技術(shù)原理
1.1 GSM蜂窩通信
GSM網(wǎng)絡(luò)包括移動(dòng)業(yè)務(wù)交換中心MSC,基站系統(tǒng)BSS,以及移動(dòng)臺(tái)MS[2]。蜂窩網(wǎng)絡(luò)中的移動(dòng)臺(tái)處在“小區(qū)”中,每個(gè)BSS能提供一個(gè)或多個(gè)小區(qū),這取決于廠商的設(shè)備。小區(qū)一般被畫(huà)作六邊形,但實(shí)際上小區(qū)是不規(guī)則形狀,這主要是受周?chē)匦胃蓴_的影響或是取決于網(wǎng)絡(luò)規(guī)劃者的設(shè)計(jì)。小區(qū)全球識(shí)別碼(Cell Global Identity)主要由MCC、MNC、LAC、CELL_ID幾部分構(gòu)成[3]。其中,LAC與CELL_ID之間的關(guān)系如圖1所示。
[
LAC\&][CELL_ID
… …\&]
圖1 ?LAC與CELL-ID關(guān)系
每個(gè)LAC包含多個(gè)基站小區(qū),它們均為二字節(jié)編碼,共同確定一個(gè)基站位置信息。為了在同一地理區(qū)域內(nèi)獲得更大的容量,可以采用一種稱為“扇區(qū)化”的技術(shù),扇區(qū)化即是將一個(gè)基站分成多個(gè)小區(qū),每個(gè)小區(qū)都有自己的發(fā)射和接收天線。扇區(qū)化的小區(qū)使用特制的定向天線,使該小區(qū)發(fā)射的無(wú)線電波集中在一個(gè)特定的方向上[4]。這樣做可以使小區(qū)發(fā)射的無(wú)線電波能量集中到了一個(gè)更小的區(qū)域如60度,120度,而不是以360度全向發(fā)射,便于獲得更強(qiáng)的信號(hào),有利于“室內(nèi)覆蓋”等?;拘^(qū)扇區(qū)化幾種方式如圖2所示。
圖2 ?基站小區(qū)扇區(qū)化
1.2 獲取基站信息的數(shù)據(jù)結(jié)構(gòu)介紹
為了方便獲取基站信息,定義一個(gè)數(shù)據(jù)結(jié)構(gòu)PS_BASIC_T如表1所示。
表1 ?基站信息數(shù)據(jù)結(jié)構(gòu)
移動(dòng)國(guó)家碼(MCC),中國(guó)的編碼為460;移動(dòng)網(wǎng)碼(MNC),中國(guó)移動(dòng)公司為00,而中國(guó)聯(lián)通公司為01;位置區(qū)域碼(LAC)和基站小區(qū)編碼(CELL-ID)可以共同確定惟一一個(gè)基站的位置信息;時(shí)間前置量(TA),顯示手機(jī)和基站間距離。該數(shù)值乘以500可換算為米,TA值范圍0~63。定義獲取當(dāng)前基站信息的API函數(shù)為:MNPHONE_GetCurrentPLMNInfoEx (MN_DUAL_SYS_E)。通過(guò)此函數(shù)可以獲得數(shù)據(jù)結(jié)構(gòu)PS_BASIC_T中結(jié)構(gòu)體成員變量的值,其中MN_DUAL_SYS_E為一枚舉類(lèi)型,取值范圍為MN_DUAL_SYS_1和MN_DUAL_SYS_2,分別表示SIM卡1和SIM卡2。
1.3 單基站定位技術(shù)流程
單基站定位技術(shù)的基本流程如圖3所示。
[開(kāi)始][手機(jī)搜索進(jìn)入GSM網(wǎng)][開(kāi)啟定位][獲取基站cell-id][獲取基站經(jīng)緯度][地圖顯示當(dāng)前位置][結(jié)束并返回]
圖3 ?單基站定位基本流程
基站定位技術(shù)是基于蜂窩網(wǎng)絡(luò)的無(wú)線定位技術(shù)。由于每個(gè)基站都有其惟一的CELL-ID,手機(jī)每次開(kāi)機(jī)入網(wǎng)時(shí)工程模式中的信息被儲(chǔ)存在手機(jī)內(nèi)存的特定區(qū)域。通過(guò)基站定位得到工程模式中的CELL-ID、LAC(位置區(qū)編碼)、TA(經(jīng)緯度)等一些參數(shù),并將CELL-ID與基站所在的地區(qū)相對(duì)應(yīng),其中還需要一個(gè)數(shù)據(jù)庫(kù)的支持,這個(gè)數(shù)據(jù)庫(kù)是CELL-ID、LAC與具體的基站位置間的對(duì)應(yīng),通過(guò)CELL-ID、LAC可以在這個(gè)數(shù)據(jù)庫(kù)中查處相應(yīng)的基站位置[5],它可以是本地創(chuàng)建的數(shù)據(jù)庫(kù),也可以同網(wǎng)上服務(wù)器鏈接,訪問(wèn)數(shù)據(jù)庫(kù)得到基站位置的詳細(xì)信息。本研究選擇的是google服務(wù)器(http://www.google.com/loc/json)。
基站的位置確定后,通過(guò)TA換算得到移動(dòng)臺(tái)距離基站的大概距離。根據(jù)移動(dòng)臺(tái)與基站的大概距離就可得到移動(dòng)臺(tái)所處的軌跡如圖4所示。
[酒店][大樓] [商店] [cell-id] [TA×500] [市場(chǎng)][Phone] [某某大道]
圖4 ?移動(dòng)臺(tái)位置確定原理圖
2 基站定位軟件的實(shí)現(xiàn)
2.1 獲取基站地址及經(jīng)緯度
基站地址及經(jīng)緯度信息的獲取是通過(guò)訪問(wèn)google服務(wù)器獲得的,其流程如下。
⑴ 創(chuàng)建Json串
Json的全稱是JavaScript Object Notation,是一種輕量級(jí)的數(shù)據(jù)交換格式。Json易于人編寫(xiě)和閱讀,易于機(jī)器生成和解析,它完全獨(dú)立于編程語(yǔ)言,使用文本格式保存[6]。本文采用C語(yǔ)言組合創(chuàng)建Json串,創(chuàng)建Json串默認(rèn)的為中國(guó)移動(dòng)的基站信息。
⑵ 激活手機(jī)GPRS
MNGPRS_SetAndActivePdpContextEx()為激活手機(jī)GPRS的API函數(shù),激活GPRS,需要開(kāi)通相關(guān)業(yè)務(wù)。
⑶ 連接google服務(wù)器
連接到google服務(wù)器并不是直接和其連接,而是通過(guò)代理服務(wù)器連接(中國(guó)移動(dòng)為“cmwap”)。同代理服務(wù)器連接成功后,向其發(fā)送http請(qǐng)求,代理服務(wù)器將代為訪問(wèn)目的服務(wù)器,再將收到的信息發(fā)送到手機(jī)客服端。
⑷ POST發(fā)送請(qǐng)求報(bào)文
向http服務(wù)器發(fā)送請(qǐng)求報(bào)文有多種方式,常見(jiàn)的有三種方式,定義枚舉類(lèi)型HTTP_METHOD,如表2所示。
表2 ?http請(qǐng)求方式
[成員變量\&成員變量說(shuō)明\&GET\&請(qǐng)求讀取由URL標(biāo)志的信息\&HEAD\&請(qǐng)求方式請(qǐng)求讀取由URL所標(biāo)志的信息的首部\&POST\&給服務(wù)器添加信息\&]
URL是用來(lái)表示從因特網(wǎng)上得到的資源位置和訪問(wèn)這些資源的方法。HTTP的URL的一般形式是:http://<主機(jī)>:<端口>/<路徑>。HTTP的默認(rèn)端口號(hào)為80,通??墒÷浴1狙芯吭L問(wèn)的URL為:http://www.google.com/loc/json。HTTP的報(bào)文結(jié)構(gòu)有:請(qǐng)求報(bào)文和響應(yīng)報(bào)文。它們都由開(kāi)始行、首部行、實(shí)體主體三部分組成。開(kāi)始行用于區(qū)分這兩種報(bào)文,首部行用來(lái)說(shuō)明瀏覽器、服務(wù)器或報(bào)文主體的一些信息,實(shí)體主體在請(qǐng)求報(bào)文中一般不使用這個(gè)字段,而在響應(yīng)報(bào)文中也可能沒(méi)有這個(gè)字段[7],本研究的基站信息Json串就位于此字段。
⑸ 接收google響應(yīng)報(bào)文(圖5)
[創(chuàng)建定時(shí)器][定時(shí)器監(jiān)聽(tīng)socket][是否有數(shù)據(jù)] [調(diào)用回調(diào)函數(shù)接收][是否都接收] [關(guān)閉socket][關(guān)閉定時(shí)器][結(jié)束] [是][是] [否][否]
圖5 ?接收響應(yīng)報(bào)文
圖6 ?google返回Json串格式
接收響應(yīng)報(bào)文需要時(shí)刻監(jiān)聽(tīng)socket中是否有數(shù)據(jù)到來(lái),如果有則接收,直到將響應(yīng)報(bào)文中的所有內(nèi)容接收完畢。如果接收數(shù)據(jù)較多則需不停調(diào)用回調(diào)函數(shù),回調(diào)函數(shù)中標(biāo)識(shí)HTTP事件狀態(tài)的成員變量應(yīng)包括連接事件、發(fā)送數(shù)據(jù)事件、接收頭部事件、接收?qǐng)?bào)文實(shí)體事件、緩存區(qū)溢出事件、報(bào)文接收完事件以及關(guān)閉連接。接收?qǐng)?bào)文時(shí),首先接收?qǐng)?bào)文頭部,必須先對(duì)報(bào)文首部字段的“content-type”和“content-length”進(jìn)行解析?!癱ontent-type”判斷報(bào)文實(shí)體部分的文本類(lèi)型,便于對(duì)其進(jìn)行解碼;“content-length”判斷報(bào)文實(shí)體部分所占空間大小,便于分配內(nèi)存接收數(shù)據(jù)。其流程如圖7。
⑹ 解析返回Json串
解析google返回的Json串實(shí)際是從報(bào)文實(shí)體文本類(lèi)型中提取有用信息,google返回的Json串格式如圖8所示,在解析時(shí)通過(guò)編程提取有用信息并連接起來(lái)組成基站地址。
2.2 地圖標(biāo)示
2.2.1 地圖標(biāo)示的基本原理
地圖是由許多的相同大小的圖片按照一定的規(guī)律拼湊起來(lái)的。在地圖上顯示位置,實(shí)際上是在圖片上畫(huà)出所在地方的點(diǎn)。這個(gè)點(diǎn)的位置是根據(jù)圖片的經(jīng)緯度信息和基站所在經(jīng)緯度的值計(jì)算出來(lái)的。地圖共分“四層”,可以放大縮小,越往下一層,圖片給出的地址信息越詳細(xì)。每點(diǎn)擊放大,便調(diào)出下一層中對(duì)應(yīng)的圖片,將其顯示出來(lái),反之,縮小則調(diào)出上一層中對(duì)應(yīng)的圖片。每點(diǎn)擊上下左右鍵,地圖便相應(yīng)的移動(dòng),所在位置的點(diǎn)也會(huì)隨之移動(dòng)。因?yàn)槊繌垐D片的大小確定,所以在移動(dòng)時(shí)如若到達(dá)圖片的邊緣,則會(huì)調(diào)用對(duì)應(yīng)相鄰的圖片顯示。
2.2.2 地圖標(biāo)示的實(shí)現(xiàn)方法
定義一個(gè)結(jié)構(gòu)體IMAGE_INFO_T用來(lái)描述每張圖片的信息。結(jié)構(gòu)體應(yīng)包含每張圖片的橫向縱向序號(hào)、寬度、高度、經(jīng)緯度等。在調(diào)用每張圖片時(shí),必須對(duì)其顯示區(qū)域初始化。變量image_rect為結(jié)構(gòu)體類(lèi)型GUI_RECT_T,四個(gè)成員變量left、right、top、bottom分別表示區(qū)域左、右、頂端和底部坐標(biāo)。當(dāng)坐標(biāo)點(diǎn)不在圖片上時(shí),便做相應(yīng)的調(diào)整。display_point為顯示位置的點(diǎn),當(dāng)顯示區(qū)域變化時(shí),顯示點(diǎn)也要做相應(yīng)的變化。對(duì)地圖進(jìn)行放大縮小,實(shí)際上是對(duì)層數(shù)和圖片的更換。讓地圖上下左右移動(dòng),實(shí)際是每點(diǎn)擊一次移動(dòng)鍵,立馬更新圖片的顯示區(qū)域,如果到達(dá)一張圖片的邊緣,則換相鄰圖片。
2.3 實(shí)驗(yàn)結(jié)果
將程序拷入手機(jī)中,安裝SIM卡并開(kāi)通GPRS業(yè)務(wù),進(jìn)入基站定位主界面,點(diǎn)擊“查詢”出現(xiàn)界面如圖7所示,點(diǎn)擊“刷新”鍵,手機(jī)重新對(duì)當(dāng)前位置進(jìn)行定位。如果要用地圖顯示當(dāng)前位置,則點(diǎn)擊“地圖”鍵,地圖顯示效果如圖8所示,通過(guò)放大/縮小鍵更進(jìn)一步定位。
圖7 ?基站定位結(jié)果 ? ? ? ? ?圖8 ?地圖顯示效果
3 結(jié)束語(yǔ)
本文研究了單基站定位技術(shù)的實(shí)現(xiàn)原理以及技術(shù)流程,通過(guò)單基站定位技術(shù)獲取手機(jī)當(dāng)前地址以及經(jīng)緯度信息,并進(jìn)一步介紹了將當(dāng)前地址標(biāo)示在地圖上的基本原理和實(shí)現(xiàn)方法,最終實(shí)現(xiàn)對(duì)移動(dòng)端的定位。通過(guò)實(shí)驗(yàn)手機(jī)定位和地圖標(biāo)示驗(yàn)證了本技術(shù)的有效性,可為手機(jī)定位提供一定程度上的幫助,但該方法只能用于手機(jī)基站定位的粗定位,對(duì)于精確定位技術(shù)有待進(jìn)一步探索與研究。
參考文獻(xiàn):
[1] 何林娜,尹偉.CDMA蜂窩網(wǎng)無(wú)線定位技術(shù)的研究[J].無(wú)線電工程,
2001.5:36-37,41
[2] 韓斌杰,杜新顏,張建斌.GSM通信原理及網(wǎng)絡(luò)優(yōu)化[M].機(jī)械工業(yè)出
版社,2009.
[3] GSM原理基礎(chǔ)培訓(xùn)(初級(jí))[Z],2004.1.
[4] 3GPP TS 25.331(V7.2.0) Radio Resource Control(RRC)Protocol
Specification(Release 7)[J],2006.
[5] Robert Berezdivin, Robert Breinig, and Randy Topp,Raytheon.
Next-Generation Wireless Communications Concepts and Technologies[J].IEEE Communications Magazine,March 2002.
[6] 李德賢,陸歌皓,姚紹文.JSON-RPC協(xié)議分析、擴(kuò)展及其應(yīng)用[J].中
國(guó)科技論文在線,2008.2:125-130
[7] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)(第5版)[M].電子工業(yè)出版社,2007.