《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > GPS導航數據提取的設計與研究
GPS導航數據提取的設計與研究
來源:微型機與應用2010年第20期
牛 立, 王景中
(北方工業大學 信息工程學院多媒體實驗室, 北京100144)
摘要: 為解決盲用定位模塊在嵌入式平臺下實現的問題,根據串口通信同步方式實現Windows CE 5.0操作系統下GPS導航數據的提取,并對獲得的數據提出一種格式轉換的方法。以PXA270嵌入式系統平臺實現系統原型,在有限硬件條件下驗證了系統的功能及可行性。實驗結果表明,該系統運行穩定,實驗數據可靠有效,可以有效結合電子地圖數據提取出周邊的位置信息。
Abstract:
Key words :

摘   要: 為解決盲用定位模塊在嵌入式平臺下實現的問題,根據串口通信同步方式實現Windows CE 5.0操作系統下GPS導航數據的提取,并對獲得的數據提出一種格式轉換的方法。以PXA270嵌入式系統平臺實現系統原型,在有限硬件條件下驗證了系統的功能及可行性。實驗結果表明,該系統運行穩定,實驗數據可靠有效,可以有效結合電子地圖數據提取出周邊的位置信息。
關鍵詞: Windows CE; GPS; 串口通信; 同步方式

    Windows CE 是一個開放的、可裁剪的、32位實時嵌入式窗口操作系統,具有可靠性好、實時性高、內核體積小的特點,廣泛應用于各種智能式設備的開發。系統通過微軟提供的Platform Builder定制需要的Windows CE5.0系統,運行在硬件平臺上。硬件平臺采用博創科技PXA270實驗箱,該實驗箱嵌入式處理器是基于ARMV5E的Xscale核心PXA270,并支持串口通信。
    GPS導航芯片采用天寶iQ 46240,將接收到的數據通過串口發送給處理器。串口是計算機系統與外部串行設備之間的數據傳輸通道,是嵌入式通信最可靠、最通用的通信方式。程序員利用Windows API函數可以編寫出高效、可移植性的應用程序。Windows CE不支持Windows下常用的串行通信異步I/O方式(Overlapped,非阻塞),因此在嵌入式環境下采用了同步I/O方式的通信程序設計方法。
    實驗設計根據GPS導航數據有效性確認的標準,對提取的數據進行處理,把緩存中接收到的GPS數據格式轉化為電子地圖上常用的浮點型格式。此設計已應用于智能閱讀器盲用定位模塊中。
1 串口通信同步I/O方式的程序設計
    串口通信是串行通信的一種,串行通信的模式一般分為上位機和下位機通信。上位機可以讀取下位機的狀態數據,也可以設置下位機的狀態。一般串行通信協議可分為兩類,即讀和寫。讀寫協議的描述如圖1所示,常用的效驗碼有異或、累加和、CRC等[1]。

    在實驗設計中,GPS接收裝置作為下位機只負責提供固定格式的數據,實驗箱作為上位機不必發送指令,只負責定時讀取GPS接收裝置發送的數據。即可以簡化通信協議,提高工作效率。
1.1 設計開發環境
    在Windows NT/ME環境下安裝eVC4.0編程環境,設置順序如下:
    (1)安裝同步軟件Microsoft ActiveSync 4.0;
    (2)安裝eVC4.0;
    (3)利用PB(Platform Builder5.0)定制Wince系統對應的SDK并安裝;
    (4)利用PB將定制的wince系統下載到實驗箱上,并與PC機同步[2]。
1.2 同步I/O方式讀取的設計方法
     為完成串口通信同步I/O方式程序設計,分為三個部分,每個部分有一個函數完成其對應的功能[3]。函數原型為:
     OnOpenCom();                                          //打開并設置串口
     ReadThreadFunc(LPVOID lparam);          //串口接收線程
     OnSeriesRead(CWnd *pWnd, BYTE *buf, int bufLen);
                                                                      //串口接收數據成功回調函數
    串口接收的具體流程圖如圖2所示,圖中對應了串口設置的三個功能函數。

1.3 程序設計的核心代碼實現
1.3.1 打開并設置通信串口參數

    以同步讀取方式打開串口COM1
    m_hComm=CreateFile(_T("COM1:"), GENERIC_READ|GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
         //配置串口,得到打開串口的當前屬性參數,修改后再重新設置串口。
    DCB portDCB;
    portDCB.DCBlength=sizeof(DCB);            //DCB結構大小
         portDCB.BaudRate=CBR_4800;                  //波特率
       portDCB.ByteSize=8;                                     //字符位
         portDCB.Parity=NOPARITY;                     //奇偶校驗位
         portDCB.StopBits=ONESTOPBIT;                      //停止位
                                       //設置串口讀寫時間,配置超時
    COMMTIMEOUTS CommTimeouts;
    GetCommTimeouts(m_hComm,&CommTimeouts);
    CommTimeouts.ReadIntervalTimeout= MAXDWORD;
    CommTimeouts.ReadTotalTimeoutMultiplier=0;
    CommTimeouts.ReadTotalTimeoutConstant=0;
                                              //指定端口監測的事件集
    SetCommMask (m_hComm, EV_RXCHAR);
                                                       //分配設備緩沖區
    SetupComm(m_hComm,512,512);
                                             //初始化緩沖區中的信息
    PurgeComm(m_hComm,PURGE_TXCLEAR|PURGE_
          RXCLEAR);
        m_hReadCloseEvent=CreateEvent(NULL,TRUE,FALSE,
       NULL);
1.3.2 GPS定位信息的接收
     在成功打開并設置通信口后,在主程序中創建線程函數ReadThreadFunc(LPVOID lparam):
     //創建串口接收線程
    hRecvThread=CreateThread(0, 0, CommRecvTread, this, 0, &IDThread);
    然后在線程函數中采取事件觸發方式進行接收處理,通過等待EV_RXCHAR事件的發生來啟動ReadFile函數完成對GPS定位信息的接收:
         while (TRUE){
         if (evtMask & EV_RXCHAR){
    ClearCommError(m_hComm,&dwReadErrors,&cmState);
    willReadLen = cmState.cbInQue ;
                 //接收緩沖區中存儲的待讀取的字符數
    readBuf = new BYTE[willReadLen+1];
    ReadFile(m_hComm,readBuf,willReadLen,&actualReadLen,0);
         readBuf[willReadLen]=0;        //如果讀取的數據大于0,
    if (actualReadLen>0){                   //觸發讀取回調函數        m_OnSeriesRead(ceSeries->m_pPortOwner,readBuf,actualReadLen); }}
    如果收到讀線程退出信號,則退出線程
    if(WaitForSingleObject(ceSeries->m_hReadCloseEvent,500) == WAIT_OBJECT_0) break;
2 對導航數據的格式進行處理
     對于實驗中所使用的iQ46240接收芯片,其發送到計算機的數據(采用NEMA0183語句)主要由幀頭、幀尾和幀內數據組成。根據數據幀的不同,幀頭也不相同,主要有“$GPGGA”、“$GPGSA”、“$GPRMC”等。這些幀頭標識了后續幀內數據的組成結構,各幀均以回車符和換行符作為幀尾識別一幀的結束。本文中,定位數據經緯度、速度、時間等均可以從“$GPGGA”幀中獲取得到。該幀的結構及各字段釋義如下[4]:
    $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10,<11>,<12>,<13>,<14>*hh
     <1>當前位置的格林尼治時間
     <2>緯度值
     <3>緯度標識,N或者S(南北)
     <4>經度值
     <5>經度標識,E或者W(東西)
     <6>衛星接收信號質量
     <7>正在使用衛星的數量
2.1 GPS導航數據有效性確認標準
    GPS定位的基本原理是根據高速運動衛星的瞬間位置作為已知的起算數據,采用空間距離后方交會的方法確定待測點的位置。假設t時刻在地面待測點安置GPS接收機,可以測定GPS信號到達接收機的時間,加上接收機所接收到的衛星星歷等其他數據可以確定以下4個方程式。衛星定位示意圖如圖3所示。



    xi,yi,zi(i=1,2,3,4)分別代表衛星1、2、3、4在t時刻的空間直角坐標,可由衛星導航電文求得,Vti代表衛星鐘差,Vt0為接收機的鐘差。
    由以上4個方程式可計算出待測點的坐標x、y、z和接收機的鐘差Vt0。因此導航數據能夠有效計算必須保證接收到4個衛星的星歷。對固定格式的導航電碼中提取衛星符號進行確認,如果滿足4個衛星的接收狀態即可確定當前接收的導航電碼可用于數據處理。通常,3顆衛星可以在二維平面上得到經度緯度坐標,為精確起見,4顆衛星可以保證獲得三維空間坐標。
2.2 有效數據提取和數據格式轉化  
 有效數據的提取和數據格式轉化都是在回調函數中進行的[5]。幀內各數據段由逗號分割,因此在處理緩存數據時,可以通過搜索ASCII碼“$”來判斷是否是幀頭。對幀頭類別進行識別后,再通過對所經歷逗號的個數計數來判斷當前處理的是哪一種定位導航參數,并做相應的處理。eVC支持CString類型格式,由于定位信息格式固定,本文先利用mbstowcs函數將緩存中的字符型數據轉換為寬字符型,然后強制轉化為字符串類型。
    WCHAR wszbuf[512];
    mbstowcs(wszbuf,(char*)buf,strlen((char*)buf));字符串類型進行處理,然后利用Find函數,搜索"$GPGGA",
         strRecv.Find(_T("$GPGGA"),1);
         state=strRecv.Mid(pos+37,1);
         得到GPS 質量指示指標
         strSatelliteNum=strRecv.Mid(pos+39,1) ;
     得到接收到的衛星數量字符,將衛星數量字符型轉化為整型判斷衛星數量是否大于4,作為判斷是否為有效數據的標準。
     int iSatelliteNum=atoi((LPSTR)(LPCTSTR)strSatelliteNum);
     當iSatelliteNum>3&& state = =‘1’時說明接收到的是有效數據,可對strRecv中的數據進行提取,并賦給經緯度和時間變量。
     strLatitude =strRecv.Mid(pos+16,8);
     strLongitude=strRecv. Mid(pos+27,9);
     將提取到得經度緯度字符型數據轉化為浮點型數據,通過atof函數實現。
    double Longitude_new = (atof(strLongitude))/100;
    double Latitude_new = (atof(strLatitude))/100;
    這樣將經度緯度信息提取到GPS結構數組中,后續的處理和高層決策可根據該結構中存儲的數據作出相應的處理。
3 程序運行結果分析
    程序運行后,在實驗平臺上收集的部分數據如表1所示。

    對以上結果分析,可知通過串口在不同時段接收的數據是比較穩定的,能夠以此為基礎提取到有效的數據和定位信息,本系統結合超圖格式(pwr,pmw)的北京市公交站點地圖數據,在編寫程序時調用超圖接口函數打開電子地圖數據,將串口接收到的數據讀入,得到附近的公交站點并以文本方式輸出到界面。
    本文結合相關程序代碼陳述了基于eVC環境下串口通信程序的設計,對GPS全球定位系統定位信息的接收和數據提取進行了詳細的分析和討論。主要解決了EVC編程環境下實現串口通信功能、對GPS定位信息的提取和處理的問題。實驗對wince5.0自定義平臺下開發GPS接收裝置給出了代碼樣例供參考,并已應用于智能閱讀器項目中盲用定位模塊。
參考文獻
[1] 張文軍.GPS與嵌入式系統軟硬件接口及導航信息提取軟件[J].計算機工程,2005,31(18):210-212.
[2] 張冬泉,譚南林,蘇樹強.WindowsCE實用開發技術[M]. 北京:電子工業出版社,2009.
[3] 錢燕,張繼鋒.基于EVC環境的串口通信程序設計[J].科學技術與工程.2007,7(10):2361-2364.
[4] 翟羽佳,張曉林,李宏偉.基于Wince的GPS導航信息處理軟件的實現[J].電子測量技術.2007,30(10):93-95.
[5] 李現勇.Visual c++串口通信技術與工程實踐[M].北京:人民郵電出版社,2004.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久久国产精品一区二区中文| 欧美激情视频网站| 欧美日本免费一区二区三区| 欧美日韩国产成人精品| 亚洲美女中文字幕| 欧美激情自拍| 亚洲精品一区二区三区四区高清| 久久婷婷国产综合精品青草| 亚洲电影中文字幕| 亚洲一区在线观看视频| 欧美日韩成人免费| 亚洲欧美一区二区在线观看| 久热成人在线视频| 国产一区二区精品| 亚洲日本无吗高清不卡| 久久天天狠狠| 亚洲国产天堂久久综合网| 西西人体一区二区| 亚洲免费av网站| 最新国产乱人伦偷精品免费网站| 欧美在线视频免费| 亚洲美女在线一区| 久久精品日产第一区二区| 另类尿喷潮videofree| 国产伦一区二区三区色一情| 日韩视频―中文字幕| 日韩午夜av电影| 欧美精品一区二区久久婷婷| 欧美丝袜一区二区| 亚洲黄色免费| 91久久久一线二线三线品牌| 久久久精品一品道一区| 亚洲砖区区免费| 国产日韩精品在线| 欧美在线免费播放| 久热re这里精品视频在线6| 欧美色道久久88综合亚洲精品| 亚洲女同同性videoxma| 欧美一区二区三区免费大片| 久久精品国产亚洲一区二区三区| 国产精品xxxav免费视频| 老色批av在线精品| 免费成人小视频| 欧美高清不卡| 一区二区三区视频在线观看| 亚洲欧美日本国产有色| 久久视频一区| 久久精品国产第一区二区三区最新章节| 欧美午夜大胆人体| 欧美a级片网| 欧美激情a∨在线视频播放| 国产精品久久久久国产a级| 欧美精品国产| 99精品99久久久久久宅男| 久久亚洲私人国产精品va媚药| 亚洲国产黄色片| 在线观看的日韩av| 亚洲区在线播放| 国产视频精品va久久久久久| 亚洲国产精品ⅴa在线观看| 一区二区三区|亚洲午夜| 欧美成人久久| 国产精品二区二区三区| 亚洲国产日韩在线一区模特| 国产精品影视天天线| 欧美日韩ab片| 国产一区二区三区最好精华液| 伊人久久大香线蕉av超碰演员| 亚洲高清视频一区| 久久激情久久| 久久久久久日产精品| 欧美激情一级片一区二区| 中文亚洲欧美| 欧美日本网站| 国产精品v片在线观看不卡| 国产香蕉97碰碰久久人人| 国产精品国产三级国产aⅴ无密码| 久久精品国产一区二区三区免费看| 亚洲女ⅴideoshd黑人| 亚洲欧美电影在线观看| 亚洲精品免费在线观看| 亚洲电影在线播放| 亚洲国产免费| 欧美日本在线看| 久久成人人人人精品欧| 欧美绝品在线观看成人午夜影视| 欧美一站二站| 今天的高清视频免费播放成人| 一区二区欧美激情| 欧美一区二区三区免费在线看| 久久久最新网址| 国产性天天综合网| 欧美日韩国产首页| 亚洲美女91| 国产精品入口日韩视频大尺度| 欧美国产精品劲爆| 亚洲精品综合| 欧美日韩激情网| 欧美精品免费视频| 亚洲国产另类久久久精品极度| 国产精品一二三四区| 欧美黄色日本| 黄色综合网站| 欧美日韩三区| 国产一区二区黄| 亚洲欧美色婷婷| 亚欧成人精品| 亚洲精品激情| 国产欧美日韩专区发布| 欧美久久在线| 亚洲精品一区在线观看香蕉| 在线播放中文字幕一区| 日韩特黄影片| 亚洲视频免费在线观看| 国产欧美日韩综合一区在线播放| 麻豆精品视频在线观看| 欧美成人精品在线观看| 狠狠色狠狠色综合系列| 欧美日本三级| 在线综合+亚洲+欧美中文字幕| 亚洲老司机av| 亚洲国产一区二区三区青草影视| 亚洲精品日韩精品| 久久激情视频| 欧美日韩在线一区| 午夜精彩视频在线观看不卡| 久久尤物电影视频在线观看| 在线成人亚洲| 国内精品模特av私拍在线观看| 国产精品av久久久久久麻豆网| 亚洲乱码久久| 亚洲欧洲av一区二区| 亚洲欧洲日本mm| 欧美日一区二区在线观看| 国产一区二区三区在线观看免费视频| 亚洲激情视频在线播放| 国产欧美精品| 麻豆成人小视频| 一本色道久久88综合日韩精品| 91久久亚洲| 国产免费亚洲高清| 欧美日韩福利视频| 浪潮色综合久久天堂| 久久美女艺术照精彩视频福利播放| 日韩亚洲视频| 国产精品日韩欧美一区| 久久综合色天天久久综合图片| 国产精品久久久久高潮| 久久视频一区二区| 国产精品久久久久久久久| 欧美午夜免费电影| 国产欧美在线观看| 欧美日韩精品二区| 伊人久久大香线| 国产精品推荐精品| 亚洲婷婷综合色高清在线| 国产亚洲精品bv在线观看| 亚洲一区二区三区在线看| 久久精品99国产精品| 国产精品视频xxx| 国产精品久久一区主播| 亚洲午夜性刺激影院| 亚洲美女视频网| 一区二区三区欧美成人| 韩日午夜在线资源一区二区| 亚洲欧美日韩国产一区二区三区| 国产精品专区第二| 亚洲精品在线观| 欧美视频不卡中文| 午夜视频在线观看一区| 国产精品国产亚洲精品看不卡15| 久久久欧美一区二区| 久久久久久精| 免费一级欧美片在线播放| 欧美日韩免费观看一区=区三区| 久久精品中文字幕一区二区三区| 欧美日韩一级黄| 亚洲一区在线观看免费观看电影高清| 国产精品一区二区男女羞羞无遮挡| 麻豆成人91精品二区三区| 蜜桃av一区二区三区| 午夜精品电影| 亚洲国产三级网| 欧美日韩在线视频观看| 亚洲激情第一区| 国产精品极品美女粉嫩高清在线| 亚洲国产三级在线| 国产精品久久久久永久免费观看| 国产精品国产馆在线真实露脸| 午夜在线精品偷拍| 国产欧美一级| 久久国产一区二区三区| 久久精品在这里| 欧美大片在线观看一区二区| 国产精品久久久久久久免费软件| 99精品视频免费观看视频| 母乳一区在线观看| 欧美成人高清| 欧美丝袜一区二区| 亚洲狼人综合| 国产精品日韩欧美| 久久精品国内一区二区三区| 性一交一乱一区二区洋洋av| 亚洲一级黄色片| 欧美三级视频在线播放| 久久综合激情| 欧美三区免费完整视频在线观看| 久久亚洲综合色一区二区三区| 亚洲日本va午夜在线影院| 国产日产亚洲精品系列| 国产精品免费一区二区三区在线观看| 欧美片在线观看| 亚洲女性喷水在线观看一区| 中文国产成人精品久久一| 亚洲欧洲三级电影| 欧美在线精品一区| 亚洲大胆在线| 正在播放日韩| 日韩视频一区二区三区在线播放免费观看| 日韩天堂在线观看| 国内精品久久久久影院优| 亚洲一区三区视频在线观看| 国产日韩欧美一区二区| 久久久久久久久综合| 99精品国产一区二区青青牛奶| 久久天堂精品| 亚洲国产欧洲综合997久久| 亚洲免费一级电影| 亚洲网址在线| 久久9热精品视频| 国产精品视频免费观看www| 欧美精品久久一区二区| 一区二区免费看| 黄色成人在线免费| 在线成人性视频| 亚洲经典视频在线观看| 亚洲视频电影图片偷拍一区| 欧美精品一区二| 欧美精品系列| 欧美一区二区精品| 亚洲影院在线观看| 欧美成人国产| 欧美一区深夜视频| 国产欧美日本一区视频| 亚洲性人人天天夜夜摸| 亚洲午夜在线观看| 黑人巨大精品欧美一区二区小视频| 亚洲一区二区日本| 免费观看一级特黄欧美大片| 国产精品a级| 国产精品丝袜91| 欧美一区二区三区免费视| 亚洲精品中文字幕在线| 9色porny自拍视频一区二区| 国内伊人久久久久久网站视频| 精品不卡一区二区三区| 亚洲一区二区久久| 老司机久久99久久精品播放免费| 国产精品vip| 欧美一级在线播放| 欧美在线观看你懂的| 亚洲国产电影| 在线电影欧美日韩一区二区私密| 国产一区二区黄色| 老司机成人在线视频| 国模私拍视频一区| 欧美日韩日韩| 日韩视频永久免费观看| 免费91麻豆精品国产自产在线观看| 亚洲免费在线视频一区 二区| 亚洲一区3d动漫同人无遮挡| 国产一区二区三区四区三区四| 欧美日韩一区二区三区在线观看免| 极品少妇一区二区三区| 一区二区日韩免费看| 韩国v欧美v日本v亚洲v| 亚洲综合日韩中文字幕v在线| 欧美日韩在线精品一区二区三区| 亚洲一区3d动漫同人无遮挡| 欧美午夜精品久久久久久人妖| 欧美精品色一区二区三区| 亚洲盗摄视频| 先锋影院在线亚洲| 国产精品视频九色porn| 99re视频这里只有精品| 亚洲欧美日韩人成在线播放| 亚洲视频一区二区在线观看| 亚洲精品日韩激情在线电影| 亚洲激情综合| 日韩视频―中文字幕| 国产乱理伦片在线观看夜一区| 欧美日韩精品一二三区| 一区二区免费看| 欧美日韩免费在线视频| 亚洲精品一二三区| 亚洲缚视频在线观看| 久久亚洲国产精品日日av夜夜| 国产精品福利在线| 一区二区三区高清不卡| 欧美日韩国产在线观看| 国产一区二区三区高清| 欧美色精品天天在线观看视频| 一区二区日韩欧美| 国内精品美女av在线播放| 欧美精品色综合| 久久综合狠狠| 黄色成人免费网站| 亚洲视频在线视频| 伊人狠狠色j香婷婷综合| 亚洲精品综合久久中文字幕| 韩国v欧美v日本v亚洲v| 欧美日韩亚洲一区在线观看| 一区二区三区日韩欧美| 久久www免费人成看片高清| 亚洲激情电影在线| 免费91麻豆精品国产自产在线观看| 欧美激情精品久久久六区热门| 最新中文字幕亚洲| 9l视频自拍蝌蚪9l视频成人| 久久久人成影片一区二区三区| 在线欧美三区| 欧美精品自拍偷拍动漫精品| 亚洲精品日韩一| 一区免费在线| 久久久久欧美| 国外成人免费视频| 久久久久久久高潮| 日韩一级黄色大片|