謝劍鋒,胡鋼,馬勝
(1.河海大學物聯網工程學院,常州213022;2.常州市傳感網與環境感知重點實驗室)
Android移動終端操作系統自2007年發布以來,由于其開放性、應用程序無界限、高級圖形顯示、簡單控制操作等性能已經被越來越多的用戶所接受,在Android平臺上開發車載導航應用,有利于開發人員理解平臺框架,降低設備終端的成本。
系統以ARM11內核的S3C6410為中央處理器,配置7英寸觸摸顯示屏,外圍設備還包括北斗/GPS接收模塊、電源模塊、數據存儲模塊、輸入/輸出模塊等。設計思路是先開發Boothloader引導程序,然后下載Android文件系統,將裁剪過的Android操作系統內核成功移植到開發板后,進行北斗/GPS模塊驅動的開發,最后在Android平臺上通過編寫的導航應用程序,實現對北斗/GPS模塊接收到的經緯度信息的提取。經過相應的數據處理和解析獲得所需的定位信息,并且通過電子地圖配合Android系統軟件的API接口,將定位的信息在地圖上實時、準確地顯示。系統整體結構如圖1所示。

圖1 北斗/GPS導航系統框圖
北斗/GPS定位信號的接收采用的是和芯通公司的UM220雙系統導航/授時模塊,能夠支持BD2B1、GPS L1兩個頻點,其集成度高,功耗低,重量輕,體積小,非常適合北斗系統大規模應用的需求。
GPS導航系統具有在海、陸、空進行全方位實時三維導航與定位能力[2],其定位的基本原理是:應用無線電測距交會的原理,衛星不斷地發送自身的星歷參數和時間信息,用戶在收到該信號之后采用空間距離后方交會的方法,計算出接收機的三維位置,用戶就在以該發射信號衛星為圓心,用戶到衛星的距離為半徑的球面上。原理上若用戶同時接收來自3 個衛星的信號,就能確定用戶的位置,但由于衛星接收機的時鐘差,還需要第4顆衛星對時間進行更正,故GPS定位至少需要4顆以上的衛星。圖2是以4顆衛星為例的GPS定位原理圖,由圖可確定下列方程組:


圖2 GPS定位原理圖
式(1)中已知的數據有衛星的空間坐標(xi,yi,zi),信號傳播速度c,用戶到衛星的距離di以及衛星發出信號的時間ti,ti為各衛星時間,t為用戶接收時間。通過最小二乘法解以上非線性方程組可以計算出用戶的坐標(x,y,z,t),從而實現定位。
北斗導航系統具有快速定位、簡短通信和精密授時的三大功能,采用3球交會測星原理進行定位,分別以2顆定位衛星和地心為球心,當用戶定位時,需要向兩顆衛星發送申請服務的信息,衛星再將用戶的申請信息轉發到地面控制中心,地面控制中心解調出用戶信號,并解算出用戶到這兩顆衛星的距離。
以這兩顆衛星為球心,到用戶的距離為半徑作兩個球面,由于衛星軌道面與赤道面重合,所以用戶必定在球面相交的圓上,且相交圓和赤道面垂直。再以地心為球心,到地球表面高度為半徑得到一個非均勻的球面,該球面和相交圓在地球南北半球各有一個交點,我國處于北半球,所以北半球的交點即是用戶的位置。這樣就解算出用戶的三維坐標,地面控制中心將解算出的坐標信息通過衛星轉發給用戶。
北斗導航系統和GPS導航系統雖然是不同的兩個系統,但它們之間仍有許多共性,這就為它們可以兼容成雙模式導航系統提供了依據。相同點如下:
①兩個系統的組成相同,都是由空間部分、地面中心控制系統、用戶終端組成的。
②編碼方式相同,北斗系統和GPS系統都是采用碼分多址編碼方式。
③定位原理相同,都是通過測量用戶和衛星之間的偽距,解算出定位結果。
④發送的載波信號頻率相近,北斗導航系統分別在1 159~1 610 MHz、1 209~1 300 MHz兩個頻段發送無線電載波信號,GPS則在1 575 MHz和1 227 MHz發送信號[4]。
北斗/GPS雙模式定位原理如圖3所示。

圖3 北斗/GPS雙模式定位原理圖
UM220終端接收來自北斗和GPS兩種頻率的衛星信號,既可以北斗或GPS單系統定位,又可以北斗和GPS聯合定位。在系統接收不到北斗信號或GPS信號時,采用的是單系統定位。當能接收到兩種信號時,采用的是聯合定位。
聯合定位時將接收到的北斗信號的數據格式轉換成GPS數據格式,用北斗導航系統的輸出直接校正GPS系統的輸出。模塊通過相關器、快速傅里葉變換FFT(Fast Fourier Transform)和匹配濾波器混合應用以及算法優化,使系統在各種復雜環境下保持出色的跟蹤能力和快速定位TTFF(Time To First Fix)功能;先進的多路徑抑制技術,確保了定位導航的精度。
考慮到目前北斗導航系統相對于GPS導航系統而言并未成熟覆蓋全球且用戶容量的限制等因素,本設計采用聯合定位而不采用北斗單獨定位,作為車載導航設計的過渡階段。圖4是在PC 機上通過Unicore Control信號測試軟件分別測試GPS模塊和北斗/GPS模塊的定位情況。GPS定位的接收模塊采用SIRF StarⅢ芯片組,測試定位的位置是固定的。

圖4 GPS定位和聯合定位對比
從圖4(a)、(b)中用戶的歷史定位軌跡可以看出GPS定位的歷史軌跡沒有北斗/GPS聯合定位集中,說明GPS單獨定位的誤差較高;從圖(c)、(d)可以看出,北斗/GPS聯合定位相對于GPS定位除垂直精度因子(VDOP)、較高外,時間精度因子(HDOP)位置精度因子(PDOP)都有明顯減小,而精度因子越小說明定位精度越高,北斗/GPS雙模式定位精度相對于GPS定位有明顯的改善。
設計是以Android操作系統為基礎,在此平臺上開發導航應用程序要通過Android SDK 中提供的代碼和工具進行,而且還要搭建合適的開發環境。Android應用程序的開發通常使用Google提供的集成了編譯器、調試器和模擬器的Android SDK 工具集,由于它是基于JAVA 底層的操作系統,因此需要JAVA 開發環境的支持,一般情況下使用Eclipse和ADT 插件作為集成開發環境,能方便快捷地開發所要求的應用軟件。圖5是北斗/GPS導航的軟件功能結構圖。
3.2.1 查詢功能的實現

圖5 北斗/GPS導航軟件功能結構圖
查詢功能包括周邊查詢和駕車路線查詢。周邊查詢可以是查詢當前位置附近的餐廳、加油站、景點、酒店、超市等信息。系統可以根據用戶輸入的關鍵詞在周邊搜索,并將結果標記在地圖上。所用的函數是百度地圖提供的MKSearch函數。例如要搜索當前位置附近的餐廳,調用MKSearch.poiSearchInCity(editCity.getText().toString(),editSearchKey.getText().toString())即可。圖6是查詢結果。

圖6 查詢周邊結果圖
路線查詢和查詢周圍相似,所用的函數仍然是MKSearch,系統可以根據用戶輸入的起點和終點,按時間最短的原則為用戶尋找最優路徑,并標注在地圖上。如起點輸入“常州”,終點輸入“南京”,調用mSearch.driving-Search可得到常州到南京的時間最短線路。圖7是查詢的結果。
3.2.2 一鍵回家功能的實現
所謂一鍵回家,即只要一按鍵系統就能自動找到最優回家的路線。在已經設置目的地——家的經緯度基礎上,系統可以根據當前用戶所處的位置為起點,家的位置為終點,自動為用戶尋找最優的回家線路。要實現該功能首先要確定終點家的位置。家的位置可以通過網絡查詢家的經緯度信息,手動輸入并保存到Android自帶的SQLite數據庫中,如果不知道家的經緯度信息,也可以利用系統自動輸入,在家的位置處系統軟件可以定位得到家的位置信息,用戶可以根據提示保存家的位置,完成終點確定。

圖7 查詢路線結果圖
其次要確定起點,即當前定位的位置,由系統自動完成。根據起始點,完成路線標注。主要代碼如下:

測試UM220模塊的可用性,采用的是Unicore Control信號測試軟件,通過串口將其連接到PC 上。圖8是軟件顯示的效果。
左上是接收的北斗衛星的個數和信號強度,左下是GPS衛星的個數和信號強度,中間是衛星的星座圖,顯示接收機當前跟蹤的所有衛星,右邊是軌跡及精度因子。圖中顯示的當前經度為119.978 684 000,緯度為31.818 590 00,對應的是常州某高校實驗室的位置。
將導航應用程序下載安裝到OK6410開發板,保證開發板網絡連通,程序運行效果略——編者注。通過驗證,“查詢周圍”、“查詢路線”、“一鍵回家”、“地圖切換”、“重新定位”等功能基本達到了預定的工作效果,實現了雙模式衛星定位的功能。
但也發現很多需要改進的地方,如定位精度沒有理想的準確;由于地圖數據涵蓋范圍的局限,使查詢功能有一定的限制;路徑選擇的精度也需要提高。

圖8 UM220模塊在Unicore Control測試結果
將北斗和GPS結合起來服務于我國的車載導航事業,對于發展我國的國民經濟和國家安全有重要的研究意義和實用價值。
編者注:本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。
[1]龍昌生.北斗_GPS 雙模導航終端關鍵模塊的設計與實現[D].重慶:重慶大學軟件學院,2011.
[2]劉偉.基于“北斗一號”的車載導航終端系統設計與實現[D].成都:電子科技大學,2010.
[3]陳磊.車載GPS動態導航算法及其應用研究[D].北京:北京交通大學,2012.
[4]陳新保.北斗衛星導航系統民用市場建設的思考[J].中國航天,2010(1):17-19.
[5]郭宏志.Android應用開發詳解全[M].北京:電子電子工業出版社,2010.
[6]關東升,趙志榮.Android開發案例驅動教程基[M].北京:機械工業出版社,2011.
[7]徐光俠,封雷,涂演,等.基于Android和Google Maps的生活輔助系統的設計與實現[J].重慶郵電大學學報,2012(2):243-245.
[8]Sun FuPing,Liu Shuai,Zhu XinHui.Research and progress of Beidou satellite navigation system[J].Science China(Earth Sciences),2012(12):2900-2904.
[9]吳想想.基于Android 平臺軟件開發方法的研究與應用[D].北京:北京郵電大學,2011.
[10]劉莉,戰興群,劉衛,等.北斗衛星導航系統和GPS兼容性評估(英文)[J].測繪學報,2011(S1):12-15.