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