基于JP7-T的GPS接收機和定位系統設計
0引言
本文引用地址:http://www.104case.com/article/85350.htm作為導航領域內一種全新的技術,GPS全球定位系統主要利用衛星進行定位。GPS最初由美國政府機構控制使用,是目前世界上最為成熟和完好的全球衛星導航系統。它由30顆(4顆為備份星)在軌衛星組成。早期的GPS系統對民用信號的定位精度限制為100米左右,2000年后則取消這一限制。目前,GPS可以提供的民用信號定位精度為10米左右。GPS現可應用于多領域(如民用航空,車輛調度管理,深海海運等整個海陸空范圍內的導航等),特別是在目前的車載導航領域,GPS全球衛星定位技術更是具有廣泛的應用。隨著應用領域的日益擴大,中國衛星導航儀的市場規模已從2000年的不到10億元增長到了2005年的120億元。因此,對GPS進行研究和二次開發勢在必行。
1 JP7-T型GPS OEM板的組成
本設計根據實際項目需要將所調研的幾種GPS資料進行了比較權衡,最后選擇了德國FALCOM公司生產的JP7-T(SIRF2)GPS模塊。該模塊有12個信道GPS接收模塊、完整的溫度補償晶體振蕩器、SiRF2型芯片一低功率芯片集、高級TIFF頻率、3種不同供電模式、更小的體積、PIN腳與JP7-LP兼容并有記憶功能,同時內嵌Falcom記憶查詢軟件。利用此模塊作為核心部分,筆者還設計了一塊demo板進行測試。FAL-COM公司生產的JP7-T(SIRF2)GPS模塊的內部信號流的處理過程如圖1所示。
JP7-TX系列GPS定位系統采用的是L1信號頻率(1575.42 MHz)。該模塊可以分為四大塊:RF信號下轉換器、數字基帶解調、嵌入式ARM微處理器和用于存儲內置GPS軟件的8MBit Flash存儲器。其中前兩者用于硬件電路處理,而ARM微處理器則可采用內置GPS軟件來計算GPS的位置、速度、時間等。
系統中的射頻部分用作GPS信號(通常是一130 dBm)的補償和過濾,然后將其轉換成中頻信號并輸出到信號處理部分。數字基帶解調器的功能是載有量化了的GPS信號和檢測衛星的串行比特流數據和伴隨偽序列。這個過程通過擴展譜和信號多普勒頻率部分的移動來獲得串行數據。ARM微處理器用來監督信道的分配,并提取原始的衛星跟蹤數據,同時在計算出位置和時間后,將其采用串行方式發送到高層應用部分。支持微處理器處理過程的硬件電路包括RTC和復位脈沖產生器電路。內置的GPS軟件用來管理信道分配,并可采用衛星的偽序列來計算位置、速度和時間,并重定數據格式后輸出到串行口或用于本地決策。
2 JP7-T GPS接收機的Demo板設計
在了解了JP7-T GPS模塊的內部原理后,要知道是否適合產品的設計需要,還要再設計一塊demo板來進行性能測試。Demo板的基本硬件設計框圖如圖2所示。
通過分析GPS模塊的內部電路和引腳可知,其4、5引腳為第一組I/O口,分別是SDI1和SDO1,其中SDI1是主要的接收信道。用來接收GPS板的軟件命令,SDO1是主要的傳輸信道,用來將導航數據傳輸到用戶程序;6,7號引腳為第二組I/O口,分別是SDI2和SDO2;17號引腳是RF_IN,用于為GPS提供從天線接收到的信號;19號引腳用于為天線提供電源。其中SDI和SDO都是TTL電平,故在將其通過RS-232串口與PC機相連以進行測試前,必須將TTL標準信號轉換成232標準信號才能與PC機進行通信,本設計采用MAX3232電平轉換芯片,其轉換電路如圖3所示。鑒于GPS模塊的頻率和項目產品的設計需要,本設計選擇了5米GPS車用磁性吸盤天線,其中心頻率也是L1,它接收衛星定位信息的定位精度小于15米。
圖4所示是基于JP7-T的最小啟動電路而設計的GPS接收機電路。圖5給出了該電路的電源部分電路圖。
3軟件設計
本系統的軟件部分主要完成對經緯度、UTC時間、GPS定位有效性、移動端速度的采集、解碼和顯示。本設計將WGS-84坐標的經緯度都轉換成以度為單位,UTC時間轉換為北京時間,并將速度的knop單位轉化為以km/h為單位。
3.1 JP7-T的GPS數據格式
NMEA-0183協議是美國國家海洋電子協會(NationaIMarineElectronlcsAssociation)制定的GPS接口協議標準。NMEA-0183協議中定義了若干代表不同含義的語句,每個語句實際上就是一個ASCII碼串。這種碼比較直觀,易于識別和應用。其發送到計算機的數據主要由幀頭、幀尾和幀內數據組成,根據數據幀的不同,幀頭也不相同。幀頭主要有"$GPGGA"、"$GPGSA"、"$GPGSV"以及"$GPRMC"等。這些幀頭標識了后續幀內數據的組成結構,各幀均以回車符和換行符作為幀尾來標識一幀的結束。使用中不需要了解NMEA-0183通信協議的全部信息,僅需要從中挑選出需要的那部分定位數據即可,而將其余的信息忽略掉。
本項目中所使用的GPS導航數據可以在"$GPRMC"幀中獲得,其幀格式如下:
格式中各字段的解釋如下:
(1)當前位置的格林尼治時間,格式為hh-mmss;
(2)狀態,A為有效位置,V為非有效接收警告,即當前天線視野上方的衛星個數少于3顆;
(3)緯度,格式為ddmm.mmmm;
(4)用于標明南北半球,N為北半球、S為南半球;
(5)徑度,格式為dddmm.mmmm;
(6)用于標明東西半球,E為東半球、W為西半球;
(7)地面上的速度,范圍為0.0到999.9;
(8)方位角,范圍為000.0到359.9度;
(9)日期,格式為ddmmyy;
(10)地磁變化,從000.0到180.0度;
(11)地磁變化方向,為E或W
3.2定位信息系統設計流程
JP7-T手冊中提示該GPS的NMEA要使用的波特率為4800,所以,在軟件中可以將串口波特率設置成4800定值。
(1)時間轉換
GPS接收到的時間是UTC制時間,故應將它轉換為北京時間。其核心算法為:hour+8;year+2000;設計時,如hour大于24,則dav+1,hour-24;接著根據月份和是否閏年來判斷day處理后是否有相應月份要相繼處理;然后根據處理后的月份判斷年份是否要相繼處理等等。需要注意的是:不要忘記判斷平年和閏年。
(2) WGS-84經緯度單位轉換
本設計選用的電子地圖采用的是WGS84坐標系,而GPS測量得到的是WGS-84中的地心空間直角坐標系下的數據,所以,不用坐標轉換。但由于GPS接收到的經緯度是以度和分為單位的,而我們日常生活中都是以度為計量單位,所以要進行單位轉換。單位轉換的算法(以緯度為例)是將接收到的緯度格式(ddmm.mmmm)除以100,以得到dd.mmmmmm,然后再調用modf函數分離出度和分,最后將分乘100并除以60,從而將分化成度。
(3)速度單位轉換
本GPS獲得的速度是以knot為單位的。而通常除了航海采用knot單位之外,陸空一般都是采用km/h為單位(1knot=1.8519 km/h),所以,設計時還要將獲得的速度乘以該單位轉換參數。
本系統的軟件設計流程圖如圖6所示。
3.3測試
軟件編寫完后,應先在PC機上用gcc編譯,編譯過程一般沒有什么大問題。然后,可以將做好的GPS接收機通過串口接在PC機上進行軟件和硬件的調試。本設計的GPS機經過連續幾天運行都沒有什么問題,非常穩定。但是,做這個demo板的最終目的是為設計一款基于ARM9處理器的手持機。所以,筆者又將該軟件交叉編譯。采用的編譯器是3.3.2版本的arm-linux-gcc。為了驗證測試板和軟件在嵌入式系統下的可行性,筆者還將其與廣州Friendly-arm生產的S3C2410實驗箱相連并進行了測試。測試結果十分穩定,定位非常精確。
4結束語
設計本硬件和軟件的主要目的是為一款手持導航儀的GPS選型作準備的。結果表明,選用該型號的GPS和本軟件設計的系統十分穩定.定位快,熱啟動條件下首次定位只要8 s;冷啟動時。首次定位時間也只要45 s,定位精度為10 m,是目前民用GPS中精度較高的了;而且可以在不影響功能的條件下設計出外觀精美的產品。設計的軟件可以將GPS定位信息通過GPS接收機完整接收,而且靈活性較大。如果換用其它坐標系的電子地圖,則可以在描點前一步加坐標系轉換模塊。所處理的數據對于高層決策且有重要作用,可廣泛用于導航、軌跡回放、中心車輛監控與調度等。
評論