基于A(yíng)RM9與WinCE的GPS定位信息采集系統
因為繪制的是二維圖形,故只能將半球坐標系壓縮到觀(guān)測者所在的平面內(稱(chēng)這個(gè)面為基礎面),圖上所表示出的衛星的位置實(shí)際為衛星在該平面的投影點(diǎn),該坐標系的參數有2個(gè),一個(gè)是表達衛星的投影點(diǎn)和觀(guān)測者的方位關(guān)系的方位角;另一個(gè)是表達衛星真實(shí)所在位置以基礎面為準與觀(guān)測者所構成的仰角關(guān)系的仰角。有了這2個(gè)參數就能在該坐標系中唯一確定一個(gè)具有物理意義的點(diǎn)。本系統設計中,設計簡(jiǎn)單的坐標系,它有2個(gè)同心圓和4條直線(xiàn)組成。繪制出衛星視圖之前進(jìn)行的簡(jiǎn)單的坐標變換算法思想為:將衛星實(shí)際的方位角、仰角立體坐標轉換為平面內的橫縱(PX、PY)坐標,具體表示如式(2)所示。其中,(POX,POY)分別為兩同心圓原點(diǎn)(看作是觀(guān)測點(diǎn))在LCD上的像素坐標,而T為對話(huà)框窗體客戶(hù)區長(cháng)度的1/4。
3.5 串口接收的實(shí)現
完成GPS定位信息的采集,需要實(shí)現的串口主要的API函數包括:
1)打開(kāi)串口函數。原型為Open(LPT OpenPort(LPCTSTRPort,int BaudRate,int DataBits,int StopBits,int Parity)。其中,Port代表串口名,如COMl等,BaudRate為波特率,DataBits為數據位;StopBits為停止位,Parity為奇偶校驗。
2)關(guān)閉串口函數。該函數在程序操作串口發(fā)生錯誤時(shí)使用,用于關(guān)閉該串口。實(shí)現的主要方法是:先判斷串口操作句柄hComm的值是否為INVALID_HANDLE_VALUE,如果是,則調用SetCommMask(),將上述代碼段中的EV_RXCHAR改為0,然后清除緩沖區,再利用CloseHandle函數關(guān)閉串行口操作句柄。
3)添加打開(kāi)串口單擊事件代碼,通過(guò)創(chuàng )建一個(gè)串口接收線(xiàn)程和顯示線(xiàn)程來(lái)實(shí)現。
4)串口接收線(xiàn)程CommRecvTread()與回調函數OnCommRecv()。串口接收線(xiàn)程為一個(gè)無(wú)限循環(huán),它不斷查詢(xún)串口接收線(xiàn)程退出事件m_Exit-ThreadEvent。如果退出事件有效,則該循環(huán)結束退出。如果調用讀串口函數查詢(xún)得知接收到數據,則調用串口接收成功回調函數0nCommRecv()。
4 實(shí)驗數據及分析
設置好串口參數后,打開(kāi)串口COMl,既可獲取實(shí)驗數據。圖7為在某型軍車(chē)上一次實(shí)測的數據。實(shí)測數據界面拍攝的時(shí)間為2009年11月10日晚上9點(diǎn)45分,地點(diǎn)為某訓練場(chǎng)。數據在靜止的狀態(tài)下測得。該定位顯示的數據包括“原始數據”和解析后“經(jīng)緯度、時(shí)間、海拔”等信息。通過(guò)分析圖7(a)界面的數據發(fā)現,$GPGSV語(yǔ)句有兩條,而在“星數”對應的Edit框中顯示的定位所用衛星數為8,由于每一條GPGSV最多能顯示4顆衛星的信息,故$GPGSV語(yǔ)句為兩條。這說(shuō)明星數與$GPGSV語(yǔ)句數是吻合的。而獲取有效的GPS定位信息,至少需要4顆定位衛星。這也說(shuō)明此次數據是有效的定位數據。
該界面顯示的經(jīng)緯度信息分別為N:38°3.6788’,E:114°29.1765’;其中,N代表北緯,E代表東經(jīng)。而用GoolgeEarth軟件查閱數據可知,石家莊軍械學(xué)院南門(mén)的精確經(jīng)度/緯度信息為:北緯38°3.1650’,東經(jīng)114°29.0046’,軍械學(xué)院西門(mén)的精確經(jīng)度/緯度信息為:北緯38°3.394O’,東經(jīng)114°28.5432’。通過(guò)與二者的經(jīng)緯度信息比對發(fā)現,界面實(shí)時(shí)顯示的精度和緯度信息非常精確。通過(guò)實(shí)時(shí)比對標準的北京時(shí)間,說(shuō)明時(shí)間和日期信息顯示也完全正確。
速度信息在靜止情況下測得,故理想的速度為0 k/s。而實(shí)際測得數據分別為0.060 00 k/s,前文已論述,1 k/s換算成標準的速度信息約0.514 444 m/s,故測得的速度誤差分別約為O.030 867 m/s??梢钥闯?,測量的速度誤差相對而言是很小的。
界面顯示的海拔信息為:68.800 00 m。而通過(guò)石家莊市規劃局提供的資料可知:石家莊市區二環(huán)路內地勢西北高,海拔高度為81.5 m,東南低,海拔高度為64.3 m。測得的海拔高度還是存在微小的誤差。這可能跟接收的GPS信號的漂移有關(guān)。從圖7(b)部分的衛星視圖可以看出,衛星與觀(guān)測點(diǎn)的方位關(guān)系能清晰的表示,而且衛星的編號也能實(shí)時(shí)顯示,從上到下依次分別為:23、17、3、4、19、20、32、11。
5 結論
GPS定位為單點(diǎn)定位,用一臺接收機觀(guān)測衛星,獨立定出觀(guān)測點(diǎn)在WGS-84(地心坐標)中的絕對位置。系統以ARM9為嵌入式微處理器,以WindowsCE為嵌入式操作系統,通過(guò)串行口實(shí)現GPS接收機與ARM之間的通信,構建了某型軍車(chē)的GPS定位信息采集系統。實(shí)驗表明:該系統能實(shí)時(shí)顯示精度較高、持久有效的GPS定位數據,具有重要的實(shí)用價(jià)值和參考意義。=
參考文獻:
[1].ARM920Tdatasheethttp://www.dzsc.com/datasheet/ARM920T_139814.html.
[2].S3C2440datasheethttp://www.dzsc.com/datasheet/S3C2440_589562.html.
[3].HY57V561620datasheethttp://www.dzsc.com/_390336.html.
[4].RS232datasheethttp://www.dzsc.com/datasheet/RS232_585128.html.
評論