国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2011-04-23 01:37:06
海峽科學(xué) 2011年2期
關(guān)鍵詞:開發(fā)板電子地圖串口

郭 堃

?

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

郭 堃

仰恩大學(xué)計(jì)算機(jī)與信息學(xué)院

隨著GPS推廣應(yīng)用,嵌入式GPS系統(tǒng)是目前的一個(gè)發(fā)展趨勢(shì)。GPS模塊結(jié)合PXA270嵌入式開發(fā)系統(tǒng)對(duì)GPS信號(hào)進(jìn)行處理,對(duì)電子地圖進(jìn)行定位、重構(gòu)并最終顯示在LCD上。

GPS PXA270 嵌入式 定位

作為一種成熟的衛(wèi)星導(dǎo)航系統(tǒng),GPS具有性能好、精度高、應(yīng)用廣的特點(diǎn),是迄今為止應(yīng)用最多的導(dǎo)航定位系統(tǒng)。把GPS與嵌入式技術(shù)融合在一起,形成一個(gè)嵌入式的地理平臺(tái),是當(dāng)前GPS領(lǐng)域的一個(gè)重要趨勢(shì)。本文是在PXA270嵌入式開發(fā)板和GPS模塊上開發(fā)實(shí)現(xiàn)。在Linux下的嵌入式開發(fā)環(huán)境中利用C++設(shè)計(jì)完成定位。嵌入式系統(tǒng)利用軟件設(shè)計(jì)主要完成GPS定位信號(hào)的處理、電子地圖的移植、地球坐標(biāo)的轉(zhuǎn)換、定位的顯示等功能。

1 系統(tǒng)概述

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

圖1 設(shè)計(jì)流程圖

2 嵌入式系統(tǒng)軟件設(shè)計(jì)

2.1 GPS模塊輸出的信息的提取

GPS模塊上電后,會(huì)自動(dòng)搜索衛(wèi)星信號(hào),并且把計(jì)算好的數(shù)據(jù)從串口輸出。所有GPS接收機(jī)最通用的數(shù)據(jù)輸出格式是NMEA[1]。NMEA-0183協(xié)議定義的語(yǔ)句非常多,但是常用的或者說(shuō)兼容性最廣的語(yǔ)句只有:$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。如圖2。

圖2 數(shù)據(jù)塊

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

if (c==’c’)

{GPS->latitude=get_double_number(&buf[GetComma(3,buf)]);

GPS->NS =buf[GetComma(4,buf)];

GPS->longitude=get_double_number(&buf[GetComma(5,buf)]);

GPS->EW =buf[GetComma(6,buf)];

…}

2.2 坐標(biāo)轉(zhuǎn)換

GPS模塊輸出的地理坐標(biāo)是WGS-84坐標(biāo)系。而國(guó)內(nèi)地圖一般是以54北京坐標(biāo)系作高斯-克呂格平面投影。所以必須作一個(gè)坐標(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)換成國(guó)家大地坐標(biāo),國(guó)家大地坐標(biāo)轉(zhuǎn)換成地圖平面坐標(biāo)。

(2)x,y的具體推算過(guò)程很復(fù)雜,在這里就不全部列舉出來(lái),只給出結(jié)果:

(3)地圖平面坐標(biāo)轉(zhuǎn)換成屏幕坐標(biāo)。例如,地圖比例尺為1:k,窗口要顯示的區(qū)域長(zhǎng)、寬各為M、Nkm,窗口像素點(diǎn)位A*B點(diǎn),則定位數(shù)據(jù)xs,ys(平面高斯坐標(biāo))在窗口上坐標(biāo)分別為:

下面給出部分代碼:

#include "stdlib.h"

const double a=6378137.0;

const double flattening=1/298.257223563;

const double delta=0.0000001;

typedef struct tagCRDCARTESIAN{

double x;

double y;

double z;

}CRDCARTESIAN;

typedef CRDCARTESIAN *PCRDCARTESIAN;…

2.3 電子地圖重構(gòu)

一般來(lái)說(shuō),電子地圖包含的數(shù)據(jù)格式都不能直接用在嵌入式平臺(tái),所以需要對(duì)電子地圖的數(shù)據(jù)進(jìn)行提取、存儲(chǔ)、重構(gòu)[3]。目前主要使用的是桌面電子地圖系統(tǒng)MapInfo。MapInfo是美國(guó)MapInfo公司的桌面地理信息系統(tǒng)軟件,是一種數(shù)據(jù)可視化、信息地圖化的桌面解決方案。MapInfo數(shù)據(jù)格式主要分為TAB和MIF兩種格式。 MIF格式是MapInfo公司提供的一種與外界交換數(shù)據(jù)的機(jī)制。它主要用來(lái)保存空間對(duì)象的幾何數(shù)據(jù)。將電子地圖的數(shù)據(jù)讀出后,再在嵌入式平臺(tái)下,用繪圖工具重新組成電子地圖即可。下面給出一部分實(shí)現(xiàn)代碼:

int n;

int x,y; …

fopen("D:\\data\\XXXX.mif","r");

while(!feof(fp2))

{ fscanf(fp2,"%s",str);

if(strcmp(str,"pline")==0)

{fscanf(fp2,"%d",&n); …

void CMapText::Draw(CDC *pDC)

{ long x1, y1;

long x2, y2;

long fontheight;

m_pDoc->ConvToXY(m_fMaxX, m_fMaxY,x2, y1);

m_pDoc->ConvToXY(m_fMinX, m_fMinY, x1, y2);

m_pDoc->LPtoDP(x1, y1);

m_pDoc->LPtoDP(x2, y2);

CRect rect(x1, y1, x2, y2);//

fontheight=rect.Width() * 2 / m_strText.GetLength();

…}

3 仿真測(cè)試

點(diǎn)測(cè)試,線測(cè)試,面測(cè)試如圖3所示。

圖3 仿真測(cè)試

4 結(jié)論

整個(gè)測(cè)距定位系統(tǒng)在PXA270嵌入式開發(fā)系統(tǒng)下完成,工程系統(tǒng)比較龐大,整個(gè)系統(tǒng)基本功能已實(shí)現(xiàn),由于本系統(tǒng)軟硬件平臺(tái)有很強(qiáng)的升級(jí)能力,許多指標(biāo)與功能可以進(jìn)一步完善與提高。GPS定位數(shù)據(jù)到電子地圖數(shù)據(jù)的轉(zhuǎn)換,需要一系列復(fù)雜的算法。該算法有待進(jìn)一步改進(jìn)和簡(jiǎn)化,以提高系統(tǒng)運(yùn)行效率和數(shù)據(jù)準(zhǔn)確性。

[1] 田家林,陳利學(xué),寇向輝.LINUX嵌入式操作系統(tǒng)在ARM上的移植[J].微計(jì)算機(jī)信息,2007,23(4):60-61.

[2] 陳未峰,李兵.ARM-Linux平臺(tái)下GPS信號(hào)的采集與處理研究[J].信息化縱橫,2009,(13): 41-44.

[3] 胡菲菲.SQLite在嵌入式電子地圖中的應(yīng)用[J].工程地質(zhì)計(jì)算機(jī)應(yīng)用,2008,(2): 31-36.

猜你喜歡
開發(fā)板電子地圖串口
中國(guó)公豬站引種指南電子地圖
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
基于Mapserver的增強(qiáng)現(xiàn)實(shí)電子地圖的設(shè)計(jì)與實(shí)現(xiàn)
Microchip最新推出兩款PIC32 Curiosity開發(fā)板
淺析單片機(jī)開發(fā)板的設(shè)計(jì)與制作
電子制作(2017年22期)2017-02-02 07:10:14
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
電子地圖在初中地理教學(xué)中的應(yīng)用實(shí)踐
Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
勃利县| 固镇县| 曲靖市| 姚安县| 六安市| 乌兰县| 肇庆市| 松桃| 惠东县| 泽州县| 枝江市| 大埔区| 辽源市| 乳山市| 芒康县| 台北县| 墨玉县| 藁城市| 五峰| 西昌市| 辰溪县| 蒙山县| 海盐县| 科技| 淄博市| 全椒县| 敦煌市| 垦利县| 台中县| 广宁县| 汤原县| 日土县| 讷河市| 盐亭县| 阜康市| 晋城| 泗水县| 新田县| 诸暨市| 全南县| 长泰县|