關(guān)鍵字:PXA270 GPS定位系統(tǒng)
將GPS與嵌入式技術(shù)融合在一起,,形成一個嵌入式的地理平臺,是當(dāng)前GPS領(lǐng)域的一個重要趨勢,。本文是在PXA270嵌入式開發(fā)板和GPS模塊上開發(fā)實現(xiàn)的,。在Linux下的嵌入式開發(fā)環(huán)境中,利用C++設(shè)計完成定位,。嵌入式系統(tǒng)利用軟件設(shè)計主要完成GPS定位信號的處理,、電子地圖的移植、地球坐標(biāo)的轉(zhuǎn)換,、定位的顯示等功能,。
1 系統(tǒng)概述
嵌入式系統(tǒng)是控制、監(jiān)視或者輔助裝置,、機器和設(shè)備運行裝置,;是軟件和硬件的綜合體,可涵蓋機械等附屬裝置,;有著友好的人機界面,,支持LCD及GPS模塊;主要完成提取GPS定位信號的數(shù)據(jù),、坐標(biāo)轉(zhuǎn)換,、電子地圖的顯示等功能。軟件設(shè)計流程如圖1所示。
2 嵌入式系統(tǒng)軟件設(shè)計
2.1 GPS模塊輸出的信息的提取
GPS模塊通電后,,會自動搜索衛(wèi)星信號,,并把計算數(shù)據(jù)從串口輸出。所有GPS接收機以通用的NMEA格式輸出數(shù)據(jù),。NMEA-0183協(xié)議定義的語句較多,,但常用且兼容性較廣的語句只有:$GPGGA、$GPGSA,、$GPGSV,、$GPRMC、$GPVTG,、$GPGLL等,。如圖2所示。
用串口連接宿主機與開發(fā)板的串口0,。宿主機進(jìn)入Linux,,打開Minicom終端。設(shè)置波特率115 200,,8位數(shù)據(jù),,1位停止,無校驗,,無流控,。串口的設(shè)備文件為/dev/ttyS*,其中,,ttyS0為串口1,,ttyS1為串口2,以此類推,。在對串口通信之前,,首先要對串口參數(shù)進(jìn)行初始化、設(shè)置它的屬性以保證通信雙方的通信參數(shù)保持一致,。初始化完串口,,就可以進(jìn)行讀取操作了。由于GPS發(fā)送的數(shù)據(jù)類型都是以&GPGGA符號開頭,,所以檢測&GPGGA符號,進(jìn)而進(jìn)行下一步的處理,。關(guān)鍵代碼如下:
2.2 坐標(biāo)轉(zhuǎn)換
GPS模塊輸出的地理坐標(biāo)是WGS-84坐標(biāo)系,。而國內(nèi)地圖一般是以54北京坐標(biāo)系作高斯-克呂格平面投影。所以必須作一個坐標(biāo)轉(zhuǎn)換,,即將GPS坐標(biāo)(WGS-84坐標(biāo)系)轉(zhuǎn)換到電子地圖坐標(biāo)(54北京坐標(biāo)系),。坐標(biāo)轉(zhuǎn)換的具體步驟如下:
(1)空間直角坐標(biāo)轉(zhuǎn)換成國家大地坐標(biāo),國家大地坐標(biāo)轉(zhuǎn)換成地圖平面坐標(biāo),。
(2)由于x,,y的具體推算過程復(fù)雜,,這里就不全部列舉,其結(jié)果如下
(3)地圖平面坐標(biāo)轉(zhuǎn)換成屏幕坐標(biāo),。例地圖比例尺為1:k,,窗口要顯示的區(qū)域長、寬各為M和N,,窗口像素點位A×B點,,則定位數(shù)據(jù)xs,ys在窗口上坐標(biāo)分別為
2.3 電子地圖重構(gòu)
一般來說,,電子地圖包含的數(shù)據(jù)格式都不能直接用在嵌入式平臺,,所以需要對電子地圖的數(shù)據(jù)進(jìn)行提取、存儲,、重構(gòu),。目前主要使用的是桌面電子地圖系統(tǒng)MapInfo,它是美國MapInfo公司的桌面地理信息系統(tǒng)軟件,,具有數(shù)據(jù)可視化,、信息地圖化的桌面解決方案。MapInfo數(shù)據(jù)格式主要分為tab和mif兩種格式,。MIF格式是MapInfo公司提供的一種與外界交換數(shù)據(jù)的機制,。它主要用于保存空間對象的幾何數(shù)據(jù)。將電子地圖的數(shù)據(jù)讀出后,,再在嵌入式平臺下,,用繪圖工具重新組成電子地圖即可。部分實現(xiàn)代碼如下
3 仿真測試
點測試,、線測試,、面測試如圖3所示。
4 結(jié)束語
由于本系統(tǒng)軟硬件平臺有較強的升級能力,,許多指標(biāo)與功能可以進(jìn)一步完善與提高,。從GPS定位數(shù)據(jù)到電子地圖數(shù)據(jù)的轉(zhuǎn)換,需要一系列復(fù)雜的算法,,這些算法有待進(jìn)一步改進(jìn)和簡化,,以提高系統(tǒng)運行效率和數(shù)據(jù)準(zhǔn)確性。