0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式WinCE的GPS導(dǎo)航軟件方案及應(yīng)用介紹

電子設(shè)計 ? 作者:電子設(shè)計 ? 2018-09-23 15:23 ? 次閱讀

引言

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

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

1 平臺設(shè)計

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

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

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

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

對串口的操作都映射成對文件的操作, 因此, 讀取串口的數(shù)據(jù)相當(dāng)于讀取文件的數(shù)據(jù)。在eVC 環(huán)境中, 通過調(diào)用CreateFile 函數(shù)來打開串口, 設(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)

因為WinCE 不支持重疊I/ O, 所以CreateFile 的第6個參數(shù)不能設(shè)置為:

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

打開串口后, 可以通過串口的初始化函數(shù)SetCommStat e( ) 來配置各項串口參數(shù), 如波特率、奇偶校驗方法、數(shù)據(jù)位和停止位數(shù)等。

1. 2 線程同步

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

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

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

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

BOOL ReleaseMutex( HANDLE hMutex)

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

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

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

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

嵌入式WinCE的GPS導(dǎo)航軟件方案及應(yīng)用介紹

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

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

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

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

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

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

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

3 軟件編制

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

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

嵌入式WinCE的GPS導(dǎo)航軟件方案及應(yīng)用介紹

圖2 軟件主要流程

4 測試結(jié)果

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

嵌入式WinCE的GPS導(dǎo)航軟件方案及應(yīng)用介紹

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

嵌入式WinCE的GPS導(dǎo)航軟件方案及應(yīng)用介紹

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

嵌入式WinCE的GPS導(dǎo)航軟件方案及應(yīng)用介紹

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

5 結(jié)論

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5046

    文章

    18817

    瀏覽量

    298535
  • gps
    gps
    +關(guān)注

    關(guān)注

    22

    文章

    2847

    瀏覽量

    165498
  • 導(dǎo)航
    +關(guān)注

    關(guān)注

    7

    文章

    512

    瀏覽量

    42159
收藏 人收藏

    評論

    相關(guān)推薦

    基于嵌入式Linux系統(tǒng)的導(dǎo)航軟件設(shè)計思路

    相結(jié)合的GPS導(dǎo)航終端機的設(shè)計方法,同時給出了基于嵌入式Linux系統(tǒng)的導(dǎo)航軟件設(shè)計思路。##地圖匹配的關(guān)鍵是確定匹配點,設(shè)計時可以用投影法
    發(fā)表于 04-17 10:37 ?4969次閱讀

    嵌入式車載導(dǎo)航信息系統(tǒng)研究

    【作者】:衛(wèi)小偉;【來源】:《電子設(shè)計工程》2010年02期【摘要】:分析研究嵌入式車載導(dǎo)航信息系統(tǒng)體系結(jié)構(gòu),以實時多任務(wù)嵌入式操作系統(tǒng)Windows CE.NET為嵌入式
    發(fā)表于 04-24 09:31

    嵌入式導(dǎo)航系統(tǒng)DIY分享

    地理整合性應(yīng)用與其因應(yīng)方案,也就是手持、車載 GPS 全球衛(wèi)星導(dǎo)航系統(tǒng),便可解決對此人們急迫的需求性?;?S3C2440A 微處理器和 Win CE 5.0
    發(fā)表于 12-10 14:25

    DIY分享:嵌入式導(dǎo)航系統(tǒng)硬件+軟件設(shè)計教程

    地理整合性應(yīng)用與其因應(yīng)方案,也就是手持、車載 GPS 全球衛(wèi)星導(dǎo)航系統(tǒng),便可解決對此人們急迫的需求性。基于 S3C2440A 微處理器和 Win CE 5.0
    發(fā)表于 02-12 08:00

    怎么實現(xiàn)嵌入式GPS導(dǎo)航系統(tǒng)的設(shè)計?

    怎么實現(xiàn)嵌入式GPS導(dǎo)航系統(tǒng)的設(shè)計?
    發(fā)表于 05-26 07:07

    基于嵌入式ARM & WinCE 的小型監(jiān)控系統(tǒng)的設(shè)計

    本文介紹嵌入式操作系統(tǒng)WinCE 的技術(shù)特性、構(gòu)建基于WinCE嵌入式平臺以及在構(gòu)建的平臺上開發(fā)
    發(fā)表于 06-10 14:02 ?22次下載

    ARM嵌入式-WinCE開發(fā)教程

    ARM嵌入式-WinCE開發(fā)教程
    發(fā)表于 02-09 14:37 ?331次下載
    ARM<b class='flag-5'>嵌入式</b>-<b class='flag-5'>WinCE</b>開發(fā)教程

    基于GPS和電子海圖的嵌入式船舶導(dǎo)航系統(tǒng)設(shè)計

    介紹了一種基于GPS和電子海圖、使用嵌入式Linux操作系統(tǒng)的船舶導(dǎo)航系統(tǒng),討論了船舶導(dǎo)航GUI、電子海圖數(shù)據(jù)的預(yù)處理和海圖顯示等關(guān)鍵技術(shù),
    發(fā)表于 07-05 16:39 ?18次下載

    基于ARM嵌入式GPS導(dǎo)航系統(tǒng)軟硬件設(shè)計

    基于ARM嵌入式GPS導(dǎo)航系統(tǒng)軟硬件設(shè)計
    發(fā)表于 11-19 14:36 ?13次下載

    基于嵌入式ARM&WinCE的小型監(jiān)控系統(tǒng)的設(shè)計

    本文介紹嵌入式操作系統(tǒng)WinCE的技術(shù)特性、構(gòu)建基于WinCE嵌入式平臺以及在構(gòu)建的平臺上開發(fā)嵌入式
    發(fā)表于 04-18 14:12 ?1次下載

    基于嵌入式GPS 導(dǎo)航信息處理方案的實現(xiàn)

    GPS 導(dǎo)航信息處理的軟件實現(xiàn)方案, 描述了嵌入式處理器與GPS OEM板的連接方式與串口通信
    發(fā)表于 09-07 14:41 ?9次下載
    基于<b class='flag-5'>嵌入式</b> 的<b class='flag-5'>GPS</b> <b class='flag-5'>導(dǎo)航</b>信息處理<b class='flag-5'>方案</b>的實現(xiàn)

    SQLite在嵌入式Wince中的應(yīng)用

    應(yīng)該盡量小,SQLite[1]在Linux中的應(yīng)用很廣泛,本設(shè)計介紹了SQLite作為一款小巧的嵌入式數(shù)據(jù)庫在Wince[2]中的應(yīng)用實例。 1 SQLite數(shù)據(jù)庫的介紹與選擇 1.1
    發(fā)表于 11-30 08:55 ?501次閱讀
     SQLite在<b class='flag-5'>嵌入式</b><b class='flag-5'>Wince</b>中的應(yīng)用

    嵌入式軟件是什么意思_嵌入式軟件的分類有哪些

    本文首先闡述了嵌入式軟件的概念,其次介紹嵌入式軟件的特征,最后介紹
    發(fā)表于 08-31 15:54 ?1.6w次閱讀

    探究SQLite在嵌入式系統(tǒng)Wince中的應(yīng)用

    首先介紹了SQLite嵌入式數(shù)據(jù)庫的結(jié)構(gòu)和特點與選擇必要性及應(yīng)用到嵌入式系統(tǒng)Wince中的優(yōu)點;其次介紹以ARM9與
    的頭像 發(fā)表于 03-31 10:39 ?2217次閱讀
    探究SQLite在<b class='flag-5'>嵌入式</b>系統(tǒng)<b class='flag-5'>Wince</b>中的應(yīng)用

    基于嵌入式Linux的GPS車載定位導(dǎo)航系統(tǒng)設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于嵌入式Linux的GPS車載定位導(dǎo)航系統(tǒng)設(shè)計.pdf》資料免費下載
    發(fā)表于 10-13 10:29 ?0次下載
    基于<b class='flag-5'>嵌入式</b>Linux的<b class='flag-5'>GPS</b>車載定位<b class='flag-5'>導(dǎo)航</b>系統(tǒng)設(shè)計