新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > GPS導(dǎo)航數(shù)據(jù)抽取的設(shè)計與研究

GPS導(dǎo)航數(shù)據(jù)抽取的設(shè)計與研究

作者: 時間:2012-02-08 來源:網(wǎng)絡(luò) 收藏

摘 要: 為解決盲用定位模塊在嵌入式平臺下實現(xiàn)的問題,根據(jù)串口通信同步方式實現(xiàn)Windows CE 5.0操作系統(tǒng)下的提取,并對獲得的提出一種格式轉(zhuǎn)換的方法。以PXA270嵌入式系統(tǒng)平臺實現(xiàn)系統(tǒng)原型,在有限硬件條件下驗證了系統(tǒng)的功能及可行性。實驗結(jié)果表明,該系統(tǒng)運行穩(wěn)定,實驗可靠有效,可以有效結(jié)合電子地圖數(shù)據(jù)提取出周邊的位置信息。

本文引用地址:http://www.butianyuan.cn/article/149753.htm

Windows CE作業(yè)系統(tǒng)是Windows家族中最新的成員,專門給掌上型電腦(HPCs)所使用的電腦環(huán)境。這樣的作業(yè)系統(tǒng)可使完整的可攜式技術(shù)與現(xiàn)有的Windows桌面技術(shù)整合工作。 Windows CE 被成針對小型設(shè)備(它是典型的擁有有限內(nèi)存的無磁盤系統(tǒng))的通用操作系統(tǒng),

Windows CE 可以通過一層位于內(nèi)核和硬件之間代碼來用設(shè)定硬件平臺,這即是眾所周知的硬件抽象層(HAL)(在以前解釋時,這被稱為 OEMC (原始設(shè)備制造)適應(yīng)層,即 OAL; 內(nèi)核壓縮層,即 KAL。 以免與微軟的 Windows NT 操作系統(tǒng) HAL 混淆) 。

Windows CE 是一個開放的、可裁剪的、32位實時嵌入式窗口操作系統(tǒng),具有可靠性好、實時性高、內(nèi)核體積小的特點,廣泛應(yīng)用于各種智能式設(shè)備的開發(fā)。系統(tǒng)通過微軟提供的Platform Builder定制需要的Windows CE5.0系統(tǒng),運行在硬件平臺上。硬件平臺采用博創(chuàng)科技PXA270實驗箱,該實驗箱嵌入式處理器是基于ARMV5E的Xscale核心PXA270,并支持串口通信。

芯片采用天寶iQ 46240,將接收到的數(shù)據(jù)通過串口發(fā)送給處理器。串口是計算機系統(tǒng)與外部串行設(shè)備之間的數(shù)據(jù)傳輸通道,是嵌入式通信最可靠、最通用的通信方式。程序員利用Windows API函數(shù)可以編寫出高效、可移植性的應(yīng)用程序。Windows CE不支持Windows下常用的串行通信異步I/O方式(Overlapped,非阻塞),因此在嵌入式環(huán)境下采用了同步I/O方式的通信程序設(shè)計方法。

實驗設(shè)計根據(jù)數(shù)據(jù)有效性確認的標(biāo)準(zhǔn),對提取的數(shù)據(jù)進行處理,把緩存中接收到的GPS數(shù)據(jù)格式轉(zhuǎn)化為電子地圖上常用的浮點型格式。此設(shè)計已應(yīng)用于智能閱讀器盲用定位模塊中。

1 串口通信同步I/O方式的程序設(shè)計

串口通信是串行通信的一種,串行通信的模式一般分為上位機和下位機通信。上位機可以讀取下位機的狀態(tài)數(shù)據(jù),也可以設(shè)置下位機的狀態(tài)。一般串行通信協(xié)議可分為兩類,即讀和寫。

串口通信的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠距離通信。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設(shè)備線總長不得超過20米,并且任意兩個設(shè)備間的長度不得超過2米;而對于串口而言,長度可達1200米。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗。

在實驗設(shè)計中,GPS接收裝置作為下位機只負責(zé)提供固定格式的數(shù)據(jù),實驗箱作為上位機不必發(fā)送指令,只負責(zé)定時讀取GPS接收裝置發(fā)送的數(shù)據(jù)。即可以簡化通信協(xié)議,提高工作效率。

1.1 設(shè)計開發(fā)環(huán)境

在Windows NT/ME環(huán)境下安裝eVC4.0編程環(huán)境,設(shè)置順序如下:

(1)安裝同步軟件Microsoft AcTIveSync 4.0;

(2)安裝eVC4.0;

(3)利用PB(Platform Builder5.0)定制Wince系統(tǒng)對應(yīng)的SDK并安裝;

(4)利用PB將定制的wince系統(tǒng)下載到實驗箱上,并與PC機同步[2]。

1.2 同步I/O方式讀取的設(shè)計方法

為完成串口通信同步I/O方式程序設(shè)計,分為三個部分,每個部分有一個函數(shù)完成其對應(yīng)的功能[3]。函數(shù)原型為:

  ONOpenCom(); //打開并設(shè)置串口

  ReadThreadFunc(LPVOID lparam); //串口接收線程

  OnSeriesRead(CWnd *pWnd, BYTE *buf, int bufLen);

  //串口接收數(shù)據(jù)成功回調(diào)函數(shù)

其主要功能是能夠捕獲到按一定衛(wèi)星截止角所選擇的待測衛(wèi)星,并跟蹤這些衛(wèi)星的運行。當(dāng)接收機捕獲到跟蹤的衛(wèi)星信號后,就可測量出接收天線至衛(wèi)星的偽距離和距離的變化率,解調(diào)出衛(wèi)星軌道參數(shù)等數(shù)據(jù)。根據(jù)這些數(shù)據(jù),接收機中的微處理計算機就可按定位解算方法進行定位計算,計算出用戶所在地理位置的經(jīng)緯度、高度、速度、時間等信息。接收機硬件和機內(nèi)軟件以及GPS 數(shù)據(jù)的后處理軟件包構(gòu)成完整的GPS 用戶設(shè)備。

xi,yi,zi(i=1,2,3,4)分別代表衛(wèi)星1、2、3、4在t時刻的空間直角坐標(biāo),可由衛(wèi)星導(dǎo)航電文求得,Vti代表衛(wèi)星鐘差,Vt0為接收機的鐘差。

由以上4個方程式可計算出待測點的坐標(biāo)x、y、z和接收機的鐘差Vt0。因此導(dǎo)航數(shù)據(jù)能夠有效計算必須保證接收到4個衛(wèi)星的星歷。對固定格式的導(dǎo)航電碼中提取衛(wèi)星符號進行確認,通常,3顆衛(wèi)星可以在二維平面上得到經(jīng)度緯度坐標(biāo),為精確起見,4顆衛(wèi)星可以保證獲得三維空間坐標(biāo)。

2.2 有效數(shù)據(jù)提取和數(shù)據(jù)格式轉(zhuǎn)化

有效數(shù)據(jù)的提取和數(shù)據(jù)格式轉(zhuǎn)化都是在回調(diào)函數(shù)中進行的[5]。eVC支持CString類型格式,由于定位信息格式固定,本文先利用mbstowcs函數(shù)將緩存中的字符型數(shù)據(jù)轉(zhuǎn)換為寬字符型,然后強制轉(zhuǎn)化為字符串類型。

  WCHAR wszbuf[512];

  mbstowcs(wszbuf,(char*)buf,strlen((char*)buf));字符串類型進行處理,然后利用Find函數(shù),搜索$GPGGA,

  strRecv.Find(_T($GPGGA),1);

  state=strRecv.Mid(pos+37,1);

  得到GPS 質(zhì)量指示指標(biāo)

  strSatelliteNum=strRecv.Mid(pos+39,1) ;

  int iSatelliteNum=atoi((LPSTR)(LPCTSTR)strSatelliteNum);

當(dāng)iSatelliteNum>3 state = =‘1’時說明接收到的是有效數(shù)據(jù),可對strRecv中的數(shù)據(jù)進行提取,并賦給經(jīng)緯度和時間變量。

  strLatitude =strRecv.Mid(pos+16,8);

  strLongitude=strRecv. Mid(pos+27,9);

  double Longitude_new = (atof(strLongitude))/100;

這樣將經(jīng)度緯度信息提取到GPS結(jié)構(gòu)數(shù)組中,后續(xù)的處理和高層決策可根據(jù)該結(jié)構(gòu)中存儲的數(shù)據(jù)作出相應(yīng)的處理。

3 程序運行結(jié)果分析

結(jié)果分析,可知通過串口在不同時段接收的數(shù)據(jù)是比較穩(wěn)定的,能夠以此為基礎(chǔ)提取到有效的數(shù)據(jù)和定位信息,本系統(tǒng)結(jié)合超圖格式(pwr,pmw)的北京市公交站點地圖數(shù)據(jù),在編寫程序時調(diào)用超圖接口函數(shù)打開電子地圖數(shù)據(jù),將串口接收到的數(shù)據(jù)讀入,得到附近的公交站點并以文本方式輸出到界面。

本文結(jié)合相關(guān)程序代碼陳述了基于eVC環(huán)境下串口通信程序的設(shè)計,對GPS全球定位系統(tǒng)定位信息的接收和數(shù)據(jù)提取進行了詳細的分析和討論。主要解決了EVC編程環(huán)境下實現(xiàn)串口通信功能、對GPS定位信息的提取和處理的問題。實驗對wince5.0自定義平臺下開發(fā)GPS接收裝置給出了代碼樣例供參考,并已應(yīng)用于智能閱讀器項目中盲用定位模塊。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉