<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于PXA270嵌入式開發(fā)板的GPS定位系統(tǒng)設(shè)計

          基于PXA270嵌入式開發(fā)板的GPS定位系統(tǒng)設(shè)計

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

          技術(shù)融合在一起,形成一個的地理平臺,是當(dāng)前領(lǐng)域的一個重要趨勢。本文是在板和模塊上實現(xiàn)的。在Linux下的嵌入式環(huán)境中,利用C++完成。嵌入式利用軟件主要完成GPS信號的處理、電子地圖的移植、地球坐標(biāo)的轉(zhuǎn)換、的顯示等功能。

          1 概述
          嵌入式是控制、監(jiān)視或者輔助裝置、機器和設(shè)備運行裝置;是軟件和硬件的綜合體,可涵蓋機械等附屬裝置;有著友好的人機界面,支持LCD及GPS模塊;主要完成提取GPS定位信號的數(shù)據(jù)、坐標(biāo)轉(zhuǎn)換、電子地圖的顯示等功能。軟件流程如圖1所示。
          基于PXA270嵌入式開發(fā)板的GPS定位系統(tǒng)設(shè)計流程

          2 嵌入式系統(tǒng)軟件設(shè)計
          2.1 GPS模塊輸出的信息的提取
          GPS模塊通電后,會自動搜索衛(wèi)星信號,并把計算數(shù)據(jù)從串口輸出。所有GPS接收機以通用的NMEA格式輸出數(shù)據(jù)。NMEA-0183協(xié)議定義的語句較多,但常用且兼容性較廣的語句只有:$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。如圖2所示。

          無標(biāo)題2.bmp


          用串口連接宿主機與開發(fā)板的串口0。宿主機進入Linux,打開Minicom終端。設(shè)置波特率115 200,8位數(shù)據(jù),1位停止,無校驗,無流控。串口的設(shè)備文件為/dev/ttyS*,其中,ttyS0為串口1,ttyS1為串口2,以此類推。在對串口通信之前,首先要對串口參數(shù)進行初始化、設(shè)置它的屬性以保證通信雙方的通信參數(shù)保持一致。初始化完串口,就可以進行讀取操作了。由于GPS發(fā)送的數(shù)據(jù)類型都是以GPGGA符號開頭,所以檢測GPGGA符號,進而進行下一步的處理。關(guān)鍵代碼如下:

          無標(biāo)題1.bmp


          2.2 坐標(biāo)轉(zhuǎn)換
          GPS模塊輸出的地理坐標(biāo)是WGS-84坐標(biāo)系。而國內(nèi)地圖一般是以54北京坐標(biāo)系作高斯-克呂格平面投影。所以必須作一個坐標(biāo)轉(zhuǎn)換,即將GPS坐標(biāo)(WGS-84坐標(biāo)系)轉(zhuǎn)換到電子地圖坐標(biāo)(54北京坐標(biāo)系)。坐標(biāo)轉(zhuǎn)換的具體步驟如下:
          (1)空間直角坐標(biāo)轉(zhuǎn)換成國家大地坐標(biāo),國家大地坐標(biāo)轉(zhuǎn)換成地圖平面坐標(biāo)。

          無標(biāo)題0000.bmp


          (2)由于x,y的具體推算過程復(fù)雜,這里就不全部列舉,其結(jié)果如下

          無標(biāo)題000.bmp

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();