基于wince的GPS系统设计毕业设计论文Word下载.docx

上传人:b****5 文档编号:18219905 上传时间:2022-12-14 格式:DOCX 页数:32 大小:10.13MB
下载 相关 举报
基于wince的GPS系统设计毕业设计论文Word下载.docx_第1页
第1页 / 共32页
基于wince的GPS系统设计毕业设计论文Word下载.docx_第2页
第2页 / 共32页
基于wince的GPS系统设计毕业设计论文Word下载.docx_第3页
第3页 / 共32页
基于wince的GPS系统设计毕业设计论文Word下载.docx_第4页
第4页 / 共32页
基于wince的GPS系统设计毕业设计论文Word下载.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

基于wince的GPS系统设计毕业设计论文Word下载.docx

《基于wince的GPS系统设计毕业设计论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于wince的GPS系统设计毕业设计论文Word下载.docx(32页珍藏版)》请在冰豆网上搜索。

基于wince的GPS系统设计毕业设计论文Word下载.docx

1.1.1嵌入式系统定义

国内对嵌入式系统的一般定义是:

以应用为中心,一计算机技术为基础,软硬件可剪切,从而能够适应实际应用中对功能,可靠性,成本,体积,功耗等眼科的要求的专业计算机系统.

1.1.2嵌入式系统的组成

嵌入式系统通常是由嵌入式处理器,外围设备,嵌入式操作系统和应用软件等几大部分组成.

1.嵌入式处理器

嵌入式处理器是嵌入式系统的核心部件.嵌入式处理器与通用处理器的最大不同点在于嵌入式处理器大多工作在为特定的用户群设计的系统中.它通常把通用计算机中许多部件集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,并具有高效率,高可靠性等特征.

2.外设备

外围设备是指在一个嵌入式系统中,嵌入式处理器以外的完成存储,通信,调试,显示等辅助功能的其他部件.根据外围设备的功能可分为以下3类:

1)存储器,2)接口,3)人机交互

3.嵌入式操作系统

在大型嵌入式应用系统中,为了使嵌入式开发更兼方便,快捷,需要具备一种稳定,安全的软件模块集合,用来管理存储器分配,中断处理,任务间通信和定时器响应,以及提供多任务处理等,这样的软件模块集合就是嵌入式操作系统.嵌入式操作系统的引入大大扩展了嵌入式系统的功能,方便了应用软件的设计,但同时也占用了嵌入式系统的宝贵资源.一般在比较大型或多任务的应用场合,才考虑使用嵌入式操作系统.

4.应用软件

嵌入式系统的应用软件是针对特定的实际专业领域的,基于相应的嵌入式硬件平台,并能完成用户预期的任务的计算机软件.用户的任务可能有时间和精度的要求,因此,有些应用软件需要嵌操作系统的支持.

1.1.3嵌入式系统的特点

嵌入式系统是应用于特定环境下,面对专业领域的应用系统,它具有以下特点:

1)功耗低

2)体积小

3)集成度高

4)成本低

1.2课题意义

通过以上介绍,在WINDOWSCE操作系统上开发显示从GPS模块上下载的位置信息,这可以为以后开发诸如车载导航系统,防盗定位系统等产品提供有力的参考.从这个设计中,我们不仅能够了解和掌握有关GPS方面的有关信息,还能掌握在WINDOWSCE系统上,如何编写程序,以及深刻理解操作系统的基本原理.在通信领域中,如何通过嵌入式系统在与各种器件通信.

第二章GPS硬件系统方案设计

根据题目的要求,确定一下方案:

采用又由S3C2440做主控芯片的TQ2440开发板做主要载体,再配上GPS模块构成整体的硬件结构,主机搭载wince6.0操作系统,已达到我们所需要的软硬件要求.

这种方案能实现系统进行定位,可满足对系统的各项要求.

2.1主板芯片的选择

主机的主控芯片市面上流行的主要有基于arm7的s3c2410和基于arm9的s3c2440以及基于arm11以上的ok6410等,由于我们是基于wince系统,arm7主要用于工业控制更多的时候我们只把它当做“高级的单片机”用,对于有操作系统的消费类电子它已不太合适,而arm11主要是是用于跑android系统这样的智能设备,所以说arm9对我们所要实现的设备是完全可以的,基于以上,我们选择以s3c2440作为主板芯片,选取TQ2440开发板作为我们的主板.

2.2GPS搜星选择

方案一选用usb蓝牙gps,需要适配蓝牙模块,将蓝牙作为串口.

方案二选用串口gps,TQ2440提供了一个串口,选择其作为gps的接口.这里我们选择串口gps模块.

2.3系统设计方案

本系统由TQ2440开发板和GPS模块构成.

2.3.1硬件系统设计框图如图一所示:

图一

2.3.2开发板构成:

TQ2440开发板是由s3c2440a作为主控芯片,外加SDRAM作为内存芯片,以及3.3V供电电路、复位电路、Jtag电路、Nor/Nandfalsh启动选择电路、串口电路等构成,以下简单介绍其中部分相关芯片及其电路.

主控芯片s3c2440a芯片如下,它由128个管脚组成,内部集成了LCD控制器、UART控制器、Jtag控制器、nand控制器等。

1、s3c2440A芯片如下:

图二

2.、供电电路如下:

图三3.3v电源电路

图四1.25v电源电路

3、复位电路如下:

图五复位电路

4、Jtag接口电路如下:

图六

5、开发板带有一个五线异步接口和一个UART扩展接口,其电路如下:

图七

6、lcd液晶屏接口电路:

图八

其中跳线J4可以在3.3v与5v间选择液晶屏的供电电压.

7、系统时间电路:

系统时钟源直接采用外部晶振,内部PLL电路可以调整系统时钟,使系统运行速度更快.系统时钟电路如下图

图九

8、usb接口电路

Usb模块集成在s3c2440A芯片中,所以使用S3C2440A时,可以直接利用其中的usb模块。

实验板上有个HOSTUSB1.1接口和一个DeviceUSB1.1接口,USB接口电路如下:

图十

以上为开发板基本的一些模块,当然还有一些其他的电路比如说SD卡接口电路、IIC接口电路等在这不再敖述。

2.3.3GPS模块

GPS信息协议:

NMEA是全国海洋电子协会(NationalMarineElectronicsAssociation);

国际海上电子协会(NationalMarineElectronicsAssociation)或(NationalMarineElectronicsAssociation)获得国际海事电子协会

缩写,同时也是数据传输标准工业协会,在这里,实际上应为NMEA0183。

它是一套定义接收机输出的标准信息,有几种不同的格式,每种都是独立相关的ASCII格式,逗点隔开数据流,数据流长度从30-100字符不等,通常以每秒间隔选择输出,最常用的格式为"

GGA"

,它包含了定位时间,纬度,经度,高度,定位所用的卫星数,DOP值,差分状态和校正时段等,其他的有速度,跟踪,日期等。

NMEA实际上已成为所有的GPS接收机和最通用的数据输出的格式。

NMEA数据如下:

$GPGGA,111342.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5.7,M,,0000*77

$GPRMC,111342.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,,,A*54

$GPVTG,359.95,T,,M,15.15,N,28.0,K,A*04

$GPGGA,121253.000,3937.3090,N,11611.6057,E,1,06,1.2,44.6,M,-5.7,M,,0000*72

$GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.7*3D

$GPGSV,3,1,10,18,84,067,23,09,67,067,27,22,49,312,28,15,47,231,30*70

$GPGSV,3,2,10,21,32,199,23,14,25,272,24,05,21,140,32,26,14,070,20*7E

$GPGSV,3,3,10,29,07,074,,30,07,163,28*7D

说明:

NMEA0183格式以“$”开始,主要语句有GPGGA,GPVTG,GPRMC等

1、GPSDOPandActiveSatellites(GSA)当前卫星信息

$GPGSA,A,3,14,15,05,22,18,26,2.1,1.2,1.7*3D

$GPGSA,<

1>

<

2>

3>

4>

5>

6>

7>

CR>

LF>

<

模式:

M=手动,A=自动。

定位型式1=未定位,2=二维定位,3=三维定位。

PRN数字:

01至32表天空使用中的卫星编号,最多可接收12颗卫星信息。

PDOP位置精度因子(0.5~99.9)

HDOP水平精度因子(0.5~99.9)

VDOP垂直精度因子(0.5~99.9)

Checksum.(检查位).

2、GPSSatellitesinView(GSV)可见卫星信息

$GPGSV,<

?

8>

$GPGSV,3,3,12,25,00,000,00,20,00,000,28,00,000,00,30,-01,000,00*5A

GSV语句的总数

本句GSV的编号

可见卫星的总数,00至12。

卫星编号,01至32。

卫星仰角,00至90度。

卫星方位角,000至359度。

实际值。

讯号噪声比(C/No),00至99dB;

无表未接收到讯号。

Checksum.(检查位).

3、GlobalPositioningSystemFixData(GGA)GPS定位信息

$GPGGA,<

9>

M,<

10>

11>

12>

*hh<

UTC时间,hhmmss(时分秒)格式

纬度ddmm.mmmm(度分)格式(前面的0也将被传输)

纬度半球N(北半球)或S(南半球)

经度dddmm.mmmm(度分)格式(前面的0也将被传输)

经度半球E(东经)或W(西经)

GPS状态:

0=未定位,1=非差分定位,2=差分定位,6=正在估算

正在使用解算位置的卫星数量(00~12)(前面的0也将被传输)

海拔高度(-9999.9~99999.9)

地球椭球面相对大地水准面的高度

差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)

差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)

4、RecommendedMinimumSpecificGPS/TRANSITData(RMC)推荐定位信息

$GPRMC,<

定位状态,A=有效定位,V=无效定位

地面速率(000.0~999.9节,前面的0也将被传输)

地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输)

UTC日期,ddmmyy(日月年)格式

磁偏角(000.0~180.0度,前面的0也将被传输)

磁偏角方向,E(东)或W(西)

模式指示(仅NMEA01833.00版本输出,A=自主定位,D=差分,E=估算,N=

数据无效)

5、TrackMadeGoodandGroundSpeed(VTG)地面速度信息

$GPVTG,<

T,<

N,<

K,<

以真北为参考基准的地面航向(000~359度,前面的0也将被传输)

以磁北为参考基准的地面航向(000~359度,前面的0也将被传输)

地面速率(0000.0~1851.8公里/小时,前面的0也将被传输)

GPS模块电路:

本设计主要用HX-87manual-GPSENGINEBOARD模块作为GPS模块.

产品介绍:

SIRFHX-87seriesGPS模块具有高精度,高性能的SIRFSTarIII芯片组解决方案.该模块在同一时间跟踪20个人造卫星,同时提供快速时钟校准和1赫兹程序导航控制及电源管理系统.全球定位系统所需的硬件连接图:

图十一

第3章软件系统设计

3.1装载wince操作系统

开始时用uboot启动开发板,然后通过uboot命令一步一步的实现wince镜像的烧写,在这里我们是首先通过norflash的方式启动开发板。

基本的步骤如下:

第一步烧写stepldr镜像:

在命令列表里选择:

【1】Downloadu_bootorSTEPLDR.nb1orotherbootloadertoNandFlash.

第二步烧写eboot镜像:

在命令列表中选择:

【2】DownloadEboot(eboot.nb0)toNandFlash

第三步烧写logo镜像:

【b】DownloadLOGOPicture.bintoNandFlash

第四步烧写NK镜像:

关闭TQ2440开发板电源选择由nandflash重新启动分别通过:

命令b-》命令9-》命令u完成NK镜像的烧写

当然除了上述主要步骤外还需要其他的地方配合比如USB下载软件DNW的配合,在此我们不再敖述,下面我们主要介绍一下应用程序的开发。

3.2应用程序流程图

在本系统设计中,软件系统是我们非常重要的一环,本系统主要由三个部分组成分别是:

GPS主窗口处理、串口设置、GPS数据读线程,下面介绍软件系统主要流程思想.

3.2.1GPS主窗口流程图

图十二

3.2.2串口设置流程

图十三

在我们的串口设置中,我们做了些出错处理,在此我们没有列出来.

3.2.3GPS读线程流程

图十四

3.3开发环境及应用程序各个部分源代码

3.3.1软件开发环境介绍

VisualStudio2005是基于.NET2.0框架的。

它同时也能开发跨平台应用程序,如开发使用wince的程序等。

总体来说是一个非常庞大的软件,甚至包含代码测试功能。

这个版本的VisualStudio包含有众多版本,分别面向不同的开发角色。

同时还永久提供免费的VisualStudioExpress版本。

.Microsoft?

Windows?

CE.NET是WindowsCE3.0的后续产品,它不仅是一个功能强劲的实时嵌入式操作系统,而且提供了众多强大工具,允许用户利用它快速开发出下一代的智能化小体积连接设备。

借助于完善的操作系统功能和开发工具,WindowsCE.NET为开发人员提供了构建、调试和部署基于WindowsCE.NET的定制设备所需的一切特性。

平台开发工具PlatformBuilder是一个完全集成的开发环境(IDE),并且包括一个软件开发工具包(SDK)导出工具。

WindowsCE.NET支持MicrosofteMbeddedVisualC++?

和MicrosoftVisualStudio?

.NET,为面向Microsoft.NETCompactFramework(Microsoft.NETFramework的一个子集)的Web服务和应用程序开发提供了一个完整的开发环境。

利用这些工具,开发人员可以迅速开发出能够在最新硬件上运行各种应用程序的智能化设计。

3.3.2源代码开发过程介绍

1.在PC机的Windows中打开vs2005集成开发环境。

2.打开环境后,选择文件,然后选择新建,在项目选项中选择智能设备项目在勾上空项目,在ProjectName框中填写本工程的名称:

myGPS;

再选择当前Win32(WCEARMV4I),建立工程名为myGPS的工程.

图十五新建项目界面

建立好工程后,在资源中添加一个设置串口的对话框:

图十六串口设置对话框

3.在myGPS工程项目中创建gps.h头文件,主要内容如下:

LRESULTCALLBACKMainWndProc(HWND,UINT,WPARAM,LPARAM);

//主窗口处理函数

BOOLCALLBACKDialogProc(HWNDhwndDlg,UINTuMsg,WPARAMwParam,LPARAMlParam);

//串口处理函数

DWORDReadThread(LPVOIDlpParameter);

//读线程函数

LRESULTDoPaintMain(HWND,UINT,WPARAM,LPARAM);

//主窗口刷新处理函数

LRESULTDoDestroyMain(HWND,UINT,WPARAM,LPARAM);

//主窗口销毁处理函数

LRESULTDoCreate(HWND,UINT,WPARAM,LPARAM);

//主窗口创建处理函数

LRESULTDoCommand(HWND,UINT,WPARAM,LPARAM);

//主窗口命令处理函数

voidSetCom(HWNDhh);

//串口设置函数

intfindchar(char*s,intlen,inti);

//在GPS解析函数内用来寻找'

'

的函数

intfindstr(TCHAR*s,TCHAR*s1);

//在GPS数据中寻找字串的函数

BOOLGPS_jiexi(TCHAR*buf);

//GPS解析函数

4.在工程中新建gps.c文件,在该文件中主要实现头文件声明的各个函数,下面对主要函数进行介绍:

intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,

LPWSTRlpCmdLine,intnCmdShow){

MSGmsg;

intrc=0;

//HWNDhwndMain;

hwndMain=InitInstance(hInstance,lpCmdLine,nCmdShow);

if(hwndMain==0)return0x10;

while(GetMessage(&

msg,NULL,0,0)){

TranslateMessage(&

msg);

DispatchMessage(&

}

//Instancecleanup

returnTermInstance(hInstance,msg.wParam);

}这个是整个应用程序的入口函数,主要用来创建主窗口并实现消息循环.

串口设置函数SetCom()的主体部分如下:

//配置串口

DCBPortDCB;

PortDCB.DCBlength=sizeof(DCB);

GetCommState(hcom,&

PortDCB);

PortDCB.BaudRate=Mbuad;

PortDCB.StopBits=Mstop;

PortDCB.Parity=Mjo;

PortDCB.ByteSize=Mdata;

if(!

SetCommState(hcom,&

PortDCB))

{//配置串口失败

MessageBox(hdlg1,TEXT("

串口配置失败"

),TEXT("

错误"

),MB_OK);

return;

}

//配置超时值

COMMTIMEOUTSCommTimeouts;

GetCommTimeouts(hcom,&

CommTimeouts);

CommTimeouts.ReadIntervalTimeout=MAXDWORD;

CommTimeouts.ReadTotalTimeoutMultiplier=10;

CommTimeouts.ReadTotalTimeoutConstant=10;

SetCommTimeouts(hcom,&

CommTimeouts))

{

串口设置超时失败"

),TEXT

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1