《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于WinCE的GPS導(dǎo)航信息處理軟件的實(shí)現(xiàn)
基于WinCE的GPS導(dǎo)航信息處理軟件的實(shí)現(xiàn)
摘要: 摘要:GPSOEM板一般以原始的二進(jìn)制格式提供導(dǎo)航報(bào)文,,為了得到最終的定位結(jié)果,,需要對(duì)報(bào)文進(jìn)行解碼,獲得相關(guān)測(cè)量量以及衛(wèi)星參數(shù),,再構(gòu)成計(jì)算方程組進(jìn)行求解,。本文提出了一種在WinCE環(huán)境下的GPS導(dǎo)航信息處理
Abstract:
Key words :

摘要: GPS OEM 板一般以原始的二進(jìn)制格式提供導(dǎo)航報(bào)文, 為了得到最終的定位結(jié)果,, 需要對(duì)報(bào)文進(jìn)行解碼,, 獲得相關(guān)測(cè)量量以及衛(wèi)星參數(shù), 再構(gòu)成計(jì)算方程組進(jìn)行求解,。本文提出了一種在WinCE 環(huán)境下的GPS 導(dǎo)航信息處理的軟件實(shí)現(xiàn)方案,, 描述了嵌入式處理器與GPS OEM 板的連接方式與串口通信方法,, 分析了GPS 導(dǎo)航電文的格式, 最后,, 設(shè)計(jì)了導(dǎo)航解算軟件流程并給出了解算結(jié)果的顯示,。此設(shè)計(jì)方案已經(jīng)在車載導(dǎo)航型GPS 接收機(jī)的研制中得到應(yīng)用, 工作穩(wěn)定,, 并滿足精度要求,。

0   引言

衛(wèi)星發(fā)出的信號(hào)通過(guò)GPS 接收機(jī)基帶處理程序后, 可以獲得相關(guān)的衛(wèi)星星歷和偽距,、偽距律,、載波相位、多普勒頻移等原始觀測(cè)量,, 如何利用這些信息解算出接收機(jī)的位置,、速度、時(shí)間等定位信息,, 是定位解算程序的主要目的,。

本文主要介紹了GPS OEM 接收機(jī)原始導(dǎo)航信息的獲取、GPS 報(bào)文的解碼以及位置速度等信息的解算程序設(shè)計(jì),。

1   平臺(tái)設(shè)計(jì)

系統(tǒng)采用的操作系統(tǒng)為WinCE, WinCE 是一個(gè)多任務(wù),、完全搶占式的32 位嵌入式操作系統(tǒng), 支持WinCEMFC,、ATL,、WinCE API 和一些附加的編程接口以及各種通信技術(shù)。開(kāi)發(fā)工具采用eVC, eVC ( embedded visualC+ + ) 是Windows CE 上的主流開(kāi)發(fā)工具,, 封裝了網(wǎng)絡(luò)底層通訊,、COM 互操作、RAPI 等,。eVC 支持MFC 類庫(kù)的子集,, 使Win32 平臺(tái)上的VC 程序可以很容易地遷移到WinCE 平臺(tái)上。

硬件平臺(tái)采用基于xscale PXA255 處理器的嵌入式系統(tǒng),, 采用NOVAT EL OEM4 接收機(jī)獲得原始的GPS 導(dǎo)航數(shù)據(jù),, 兩個(gè)平臺(tái)間采用串口進(jìn)行通訊。

1. 1   串口通信設(shè)置

eVC 在實(shí)現(xiàn)串口數(shù)據(jù)通信中存在2 個(gè)局限性: 一是eVC 不支持串口通信控件MScomm, 另外,, WinCE 不支持重疊I/ O 操作,。因此, 要采用WinCE A PI 函數(shù)和多線程技術(shù)進(jìn)行數(shù)據(jù)串口通信的底層開(kāi)發(fā),。

對(duì)串口的操作都映射成對(duì)文件的操作,, 因此, 讀取串口的數(shù)據(jù)相當(dāng)于讀取文件的數(shù)據(jù),。在eVC 環(huán)境中,, 通過(guò)調(diào)用CreateFile 函數(shù)來(lái)打開(kāi)串口,, 設(shè)置讀寫模式:

H ANDL E m_hCom=CreateFile( STrCom, GENERIC _READ | GEN ERIC_WRITE, 0, NU LL, OPEN _ EXIST _ ING, FILE _AT TRIBU TE_NORMAL, NU LL)

因?yàn)閃inCE 不支持重疊I/ O, 所以CreateFile 的第6個(gè)參數(shù)不能設(shè)置為:

FILE_FLAG_OVER_LAPPED, 否則串行通信處理將被系統(tǒng)信息阻塞。

打開(kāi)串口后,, 可以通過(guò)串口的初始化函數(shù)SetCommStat e( ) 來(lái)配置各項(xiàng)串口參數(shù),, 如波特率、奇偶校驗(yàn)方法,、數(shù)據(jù)位和停止位數(shù)等,。

1. 2   線程同步

WinCE 的API 不支持重疊I/ O 操作, 因此,, 要采用多線程模式解決大量數(shù)據(jù)讀寫時(shí)產(chǎn)生的困難。當(dāng)主線程忙時(shí),,可以使用單獨(dú)的線程來(lái)處理串口,, 也就是異步I/ O 模式。

為了保證在數(shù)據(jù)讀取線程向主線程傳遞數(shù)據(jù)時(shí)所傳遞的變量不會(huì)被新的串口數(shù)據(jù)所覆蓋,, 可以采用互斥體技術(shù),。通過(guò)以下代碼創(chuàng)建互斥體:

H ANDL ECreateMutex ( LPSECU RITY _ AT T RIBU T ESlpMutexAt tr ibutes,BOOL bInitialOwner , LPCTSTR lpN ame) .

線程通過(guò)一個(gè)等待函數(shù)來(lái)獲得互斥體的所有權(quán), 互斥體的線程是不會(huì)被阻斷的,, 完成對(duì)數(shù)據(jù)的處理后,, 需要調(diào)用函數(shù)釋放互斥體, 可以使用如下函數(shù):

BOOL ReleaseMutex( HANDLE hMutex)

2   GPS 導(dǎo)航電文解碼

2. 1   導(dǎo)航電文的格式

由衛(wèi)星發(fā)出的導(dǎo)航電文是用戶用來(lái)定位和導(dǎo)航的基礎(chǔ)數(shù)據(jù),。導(dǎo)航電文一般包含衛(wèi)星的星歷和歷書數(shù)據(jù),、工作狀態(tài)、時(shí)鐘改正,、電離層時(shí)延修正,、大氣層折射修正以及相應(yīng)的觀測(cè)信息, 在報(bào)文中還包括奇偶校驗(yàn)信息,, 用來(lái)驗(yàn)證報(bào)文接收的正確性,。電文處理模塊的功能, 就是根據(jù)接收從基帶處理模塊中獲得的導(dǎo)航電文,, 并進(jìn)行奇偶校驗(yàn),, 確定報(bào)文完整后, 根據(jù)電文格式,, 對(duì)二進(jìn)制電文進(jìn)行解析,, 從而獲得電文中的導(dǎo)航信息。

導(dǎo)航電文的格式是主幀,、子幀,、字碼和頁(yè)碼, 如圖1 所示,。每主幀電文長(zhǎng)度為1 500 b, 傳送速率為50 b/ s, 所以發(fā)播一幀電文需要30 s 時(shí)間,。

     1.jpg

                       圖1  導(dǎo)航電文幀結(jié)構(gòu)

每幀導(dǎo)航電文包括5 個(gè)子幀,, 每個(gè)子幀長(zhǎng)6 s, 共有300 b.第1、2,、3 子幀各有10 個(gè)字碼,。這3 個(gè)子幀的內(nèi)容每30 s 重復(fù)一次, 每小時(shí)更新一次,。第4,、5 子幀各有25頁(yè), 共有15 000 b.一幀完整的電文共有37 500 b.

2. 2   導(dǎo)航電文的內(nèi)容

導(dǎo)航電文的內(nèi)容包括遙測(cè)碼,、轉(zhuǎn)換碼,、第1 數(shù)據(jù)塊、第2 數(shù)據(jù)塊和第3 數(shù)據(jù)塊5 部分:

第1 子幀的第3~ 10 個(gè)字碼為第1 數(shù)據(jù)塊,。它的主要內(nèi)容是: 標(biāo)志碼,、數(shù)據(jù)齡期、衛(wèi)星時(shí)鐘改正系數(shù),、衛(wèi)星測(cè)距精度,、大氣傳播時(shí)延改正。

第2 數(shù)據(jù)塊包括第2 和第3 子幀,, 它載有衛(wèi)星的星歷,,用來(lái)計(jì)算衛(wèi)星的位置。

第3 數(shù)據(jù)塊是由第4 和第5 兩個(gè)子幀構(gòu)成的,, 它提供了GPS 衛(wèi)星的歷書數(shù)據(jù),。當(dāng)接收機(jī)捕獲到某顆衛(wèi)星后, 利用第3 數(shù)據(jù)塊的信息可以得到其他衛(wèi)星的概略星歷,、時(shí)鐘改正,、碼分地址和衛(wèi)星狀態(tài)等數(shù)據(jù)。用戶可以根據(jù)衛(wèi)星歷書和自己所在的位置,, 計(jì)算出該時(shí)刻能觀測(cè)到的衛(wèi)星及其方位角和高度角,, 從而選擇, 以快速捕獲和定位,。

3   軟件編制

通過(guò)串口接收到GPS 導(dǎo)航電文并且經(jīng)過(guò)奇偶驗(yàn)證和解碼后,, 就可以獲得GPS 衛(wèi)星的星歷和觀測(cè)信息, 包括偽距,、載波相位,、多普勒頻移。利用衛(wèi)星的星歷,, 可以計(jì)算出當(dāng)前可見(jiàn)衛(wèi)星的坐標(biāo)和在運(yùn)行速度,。一般情況下, 可見(jiàn)的衛(wèi)星數(shù)都大于解算所需的衛(wèi)星數(shù), 為了獲得最優(yōu)的定位精度,, 要對(duì)當(dāng)前可見(jiàn)的衛(wèi)星進(jìn)行選擇,。本系統(tǒng)中, 采用最小GDOP 法進(jìn)行選星,, 選出的最優(yōu)星座的衛(wèi)星信息結(jié)合觀測(cè)量,, 通過(guò)誤差修正程序進(jìn)行偽距修正后, 就可以構(gòu)成接收機(jī)位置的解算方程組,。解出此方程組,, 即可獲得接收機(jī)的當(dāng)前位置和速度以及接收機(jī)鐘差。

軟件基本流程如圖2 所示,。

   2.jpg

                 圖2  軟件主要流程


4   測(cè)試結(jié)果

2006 年7 月4 日,, 在北航對(duì)系統(tǒng)進(jìn)行了測(cè)試。經(jīng)過(guò)測(cè)試,, 系統(tǒng)工作正常,, 解算結(jié)果散布在較小的范圍內(nèi)。結(jié)果顯示如圖3~ 5 所示,。

     3.jpg


                圖3   衛(wèi)星位置示意圖和定位結(jié)果

          4.jpg

                   圖4  衛(wèi)星信息顯示圖

  5.jpg

                圖5   計(jì)算結(jié)果輸出

5   結(jié)論

本文提出的基于嵌入式WinCE 的GPS 導(dǎo)航信息處理方案已經(jīng)在某導(dǎo)航接收機(jī)的研制中得到應(yīng)用, 系統(tǒng)工作穩(wěn)定,, 能夠滿足可靠性和實(shí)時(shí)性要求,, 達(dá)到預(yù)期效果。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。