基于单片机的GPS定位系统资料.doc

上传人:小飞机 文档编号:3867178 上传时间:2023-03-25 格式:DOC 页数:25 大小:538.50KB
返回 下载 相关 举报
基于单片机的GPS定位系统资料.doc_第1页
第1页 / 共25页
基于单片机的GPS定位系统资料.doc_第2页
第2页 / 共25页
基于单片机的GPS定位系统资料.doc_第3页
第3页 / 共25页
基于单片机的GPS定位系统资料.doc_第4页
第4页 / 共25页
基于单片机的GPS定位系统资料.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《基于单片机的GPS定位系统资料.doc》由会员分享,可在线阅读,更多相关《基于单片机的GPS定位系统资料.doc(25页珍藏版)》请在三一办公上搜索。

1、大学实验室开放项目成果(论文)题 目:基于单片机的GPS定位系统 摘要全球定位系统(GPS)是美国研发的第二代卫星无线电导航系统。其目的是在全球范围内对地面和空中目标进行准确定位和监测。它能为用户提供全球性、全天候、连续、实时、高精度的三维坐标、三向速度和时间信息。随着GPS的民用化与成本的降低,已经走入了人们的日常生活中,很多手机、PDA等手持设备都配备了GPS功能。本文主要研究GPS的定位原理与技术,单片机的编程及其应用,液晶屏的功能及其实现方法本控制系统主要完成接受数据、时间显示、经度显示、纬度显示等常规功能。此方案基于单片机、GPS模块和12864液晶显示屏等硬件, 并应用C语言实现了

2、GPS信号的提取、显示及基本的键盘控制操作等。经过实践测试 ,这种接收机可以达到基本GPS信息的接收以及显示,可以做到体积小、精度高、连续导航,本设计在测控领域的应用开发中具有一定的实用价值和借鉴价值。关键词:GPS定位,液晶显示,单片机AbstractGlobal Positioning System (GPS) is a U.S. research and development of the second generation satellite radio navigation system. Its purpose is worldwide on the ground and air

3、 targets for accurate positioning and monitoring. It provides users with a global, all-weather, continuous, real-time, high-precision three-dimensional coordinates, three velocity and time information. With the GPS civilian and cost reduction, has been into peoples daily life, many cell phone, PDA a

4、nd other handheld devices are equipped with GPS. This paper studies the principles and techniques of GPS positioning, microcontroller programming and its application, the function of the LCD screen and its implementation method of the control system is mainly complete to accept data, time display, d

5、isplay longitude, latitude, display and other regular features. This scheme is based on single-chip, GPS module and 12,864 LCD screen and other hardware, and apply the C language implementation of the GPS signal extraction, display and keyboard control basic operations. After practice tests, this re

6、ceiver can meet the basic GPS receivers and display, you can do small size, high accuracy, continuous navigation, monitoring and control of the design in the field of application development has certain practical value and reference value.Keywords: GPS positioning, LCD, microcontroller目录引言4第一章、GPS系统

7、简介61.1GPS系统的定位精度61.2GPS系统定位原理8第二章、方案硬件设计102.1GPS技术参数102.2 单片机最小系统112.3 电源模块122.4液晶显示部分13第3章 系统软件设计153.1程序初始化模块153.2软件系统调试16参考文献17附录18引言GPS起始于1958年美国军方的一个项目,1964年投入使用。20世纪70年代,美国陆海空三军联合研制了新一代卫星定位系统GPS 。主要目的是为陆海空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的,经过20余年的研究实验,耗资300亿美元,到1994年,全球覆盖率高达98%的24颗G

8、PS卫星星座己布设完成。在机械领域GPS则有另外一种含义:产品几何技术规范(Geometrical Product Specifications)-简称GPS。GPS的前身是美国军方研制的一种子午仪卫星定位系统(Transit),1958年研制,1964年正式投入使用。该系统用5到6颗卫星组成的星网工作,每天最多绕过地球13次,并且无法给出高度信息,在定位精度方面也不尽如人意。然而,子午仪系统使得研发部门对卫星定位取得了初步的经验,并验证了由卫星系统进行定位的可行性,为GPS的研制埋下了铺垫。由于卫星定位显示出在导航方面的巨大优越性及子午仪系统存在对潜艇和舰船导航方面的巨大缺陷。美国海陆空三军

9、及民用部门都感到迫切需要一种新的卫星导航系统。为此,美国海军研究实验室(NRL)提出了名为Tinmation的用12到18颗卫星组成10000km高度的全球定位网计划,并于67年、69年和74年各发射了一颗试验卫星,在这些卫星上初步试验了原子钟计时系统,这是GPS精确定位的基础。而美国空军则提出了621-B的以每星群4到5颗卫星组成3至4个星群的计划,这些卫星中除1颗采用同步轨道外其余的都使用周期为24h的倾斜轨道,该计划以伪随机码(PRN)为基础传播卫星测距信号,其强大的功能,当信号密度低于环境噪声的1%时也能将其检测出来。伪随机码的成功运用是GPS得以取得成功的一个重要基础。海军的计划主要

10、用于为舰船提供低动态的2维定位,空军的计划能供提供高动态服务,然而系统过于复杂。由于同时研制两个系统会造成巨大的费用而且这里两个计划都是为了提供全球定位而设计的,所以1973年美国国防部将2者合二为一,并由国防部牵头的卫星导航定位联合计划局(JPO)领导,还将办事机构设立在洛杉矶的空军航天处。该机构成员众多,包括美国陆军、海军、海军陆战队、交通部、国防制图局、北约和澳大利亚的代表。最初的GPS计划在美国联合计划局的领导下诞生了,该方案将24颗卫星放置在互成120度的三个轨道上。每个轨道上有8颗卫星,地球上任何一点均能观测到6至9颗卫星。这样,粗码精度可达100m,精码精度为10m。由于预算压缩

11、,GPS计划不得不减少卫星发射数量,改为将18颗卫星分布在互成60度的6个轨道上,然而这一方案使得卫星可靠性得不到保障。1988年又进行了最后一次修改:21颗工作星和3颗备用星工作在互成60度的6条轨道上。这也是GPS卫星所使用的工作方式。第一章、GPS系统简介1.1 GPS系统的定位精度GPS导航系统是以全球24颗定位人造卫星为基础,向全球各地全天候地提供三维位置、三维速度等信息的一种无线电导航定位系统。它由三部分构成,一是地面控制部分,由主控站、地面天线、监测站及通讯辅助系统组成。二是空间部分,由24颗卫星组成,分布在6个轨道平面。三是用户装置部分,由GPS接收机和卫星天线组成。民用的定位

12、精度可达10米内。GPS导航系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。要达到这一目的,卫星的位置可以根据星载时钟所记录的时间在卫星星历中查出。而用户到卫星的距离则通过记录卫星信号传播到用户所经历的时间,再将其乘以光速得到(由于大气层电离层的干扰,这一距离并不是用户与卫星之间的真实距离,而是伪距(PR):当GPS卫星正常工作时,会不断地用1和0二进制码元组成的伪随机码(简称伪码)发射导航电文。GPS系统使用的伪码一共有两种,分别是民用的C/A码和军用的P(Y)码。C/A码频率1.023MHz,重复周期一毫秒,码间距1微秒,相当于3

13、00m;P码频率10.23MHz,重复周期266.4天,码间距0.1微秒,相当于30m。而Y码是在P码的基础上形成的,保密性能更佳。导航电文包括卫星星历、工作状况、时钟改正、电离层时延修正、大气折射修正等信息。它是从卫星信号中解调制出来,以50b/s调制在载频上发射的。导航电文每个主帧中包含5个子帧每帧长6s。前三帧各10个字码;每三十秒重复一次,每小时更新一次。后两帧共15000b。导航电文中的内容主要有遥测码、转换码、第1、2、3数据块,其中最重要的则为星历数据。当用户接受到导航电文时,提取出卫星时间并将其与自己的时钟做对比便可得知卫星与用户的距离,再利用导航电文中的卫星星历数据推算出卫星

14、发射电文时所处位置,用户在WGS-84大地坐标系中的位置速度等信息便可得知。可见GPS导航系统卫星部分的作用就是不断地发射导航电文。然而,由于用户接受机使用的时钟与卫星星载时钟不可能总是同步,所以除了用户的三维坐标x、y、z外,还要引进一个t即卫星与接收机之间的时间差作为未知数,然后用4个方程将这4个未知数解出来。所以如果想知道接收机所处的位置,至少要能接收到4个卫星的信号。GPS接收机可接收到可用于授时的准确至纳秒级的时间信息;用于预报未来几个月内卫星所处概略位置的预报星历;用于计算定位时所需卫星坐标的广播星历,精度为几米至几十米(各个卫星不同,随时变化);以及GPS系统信息,如卫星状况等。

15、GPS接收机对码的量测就可得到卫星到接收机的距离,由于含有接收机卫星钟的误差及大气传播误差,故称为伪距。对0A码测得的伪距称为UA码伪距,精度约为20米左右,对P码测得的伪距称为P码伪距,精度约为2米左右。GPS接收机对收到的卫星信号,进行解码或采用其它技术,将调制在载波上的信息去掉后,就可以恢复载波。严格而言,载波相位应被称为载波拍频相位,它是收到的受多普勒频 移影响的卫星信号载波相位与接收机本机振荡产生信号相位之差。一般在接收机钟确定的历元时刻量测,保持对卫星信号的跟踪,就可记录下相位的变化值,但开始观测时的接收机和卫星振荡器的相位初值是不知道的,起始历元的相位整数也是不知道的,即整周模糊

16、度,只能在数据处理中作为参数解算。相位观测值的精度高至毫米,但前提是解出整周模糊度,因此只有在相对定位、并有一段连续观测值时才能使用相位观测值,而要达到优于米级的定位 精度也只能采用相位观测值。1.2 GPS系统定位原理GPS定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置。如图所示,假设t时刻在地面待测点上安置GPS接收机,可以测定GPS信号到达接收机的时间t,再加上接收机所接收到的卫星星历等其它数据可以确定四个数学方程式。按定位方式,GPS定位分为单点定位和相对定位(差分定位)。单点定位就是根据一台接收机的观测数据来确定接收机位置的

17、方式,它只能采用伪距观测量,可用于车船等的概略导航定位。相对定位(差分定位)是根据两台以上接收机的观测数据来确定观测点之间的相对位置的方法,它既可采用伪距观测量也可采用相位观测量,大地测量或工程测量均应采用相位观测值进行相对定位。在GPS观测量中包含了卫星和接收机的钟差、大气传播延迟、多路径效应等误差,在定位计算时还要受到卫星广播星历误差的影响,在进行相对定位时大部分公共误差被抵消或削弱,因此定位精度将大大提高,双频接收机可以根据两个频率的观测量抵消大气中电离层误差的主要部分,在精度要求高,接收机间距离较远时(大气有明显差别),应选用双频接收机。28颗卫星(其中4颗备用)早已升空,分布在6条交

18、点互隔60度的轨道面上,距离地面约20000千米。已经实现单机导航精度约为10米,综合定位的话,精度可达厘米级和毫米级。但民用领域开放的精度约为10米。GPS接收模块主要技术参数GPS-NEO-6M-001 奋斗嵌入式开发工作室出品的一款高性能GPS 定位模块。该模块采用U-BLOX NEO-6M-001模组,模块自带25mmX25mm无源陶瓷天线,板载可充电后备电池(用于支持温启动或热启动,后备电池在主电源断电后,可以维持半小时左右的GPS 星历保存)。 默示条件,GPS模块SiRFStarIII接受每二输出位置的数据,通常$GPRMC精简数据格式的数据,包括纬度,经度的目的,速度(结),运

19、动方向角,年,月,时,分,秒,毫秒,定位数据是有效的或无效的,和其他重要信息。语句格式如下:只需要知道位置信息,所以在阅读唯一的,可以实际应用。:当地时间代表UTC。格式“当每分钟,小时,分钟和秒2。:工作代表国家。”“显示可用的数据,“V”表示接受警报,没有可用的数据。:代表纬度数据。“子级的格式。分分分。”:纬度半球为代表的“N”或“S”。:代表经度数据。格式和LD现状;度分钟。sub-sub-sub-sub.”:代表经度半球,为“E”或“软件读取经纬度数据,目前的位置停止分析,确定用户的当前位置在该地区建立和平。的方法是基于用户的设置确定中心的纬度和经度和纬度和经度计算出活动维持当前的对

20、象可以超过和平活动预定半径。结果的基础上的歧视,设置相应的标志。第二章、方案硬件设计2.1 GPS技术参数GPS接收机要具有接收、处理、显示信息的功能。硬件上必须有相应的接收处理部分、显示部分和配置输入部分,同时需要处理器实现各部分功能的联合。模块自带了一个状态指示灯V1。该指示灯连接在UBLOX NEO-6M模组的TIMEPULSE端口,该端口的输出特性可以通过程序设置。V1 LED灯,在默认条件下,有2个状态: GPS模块外观如下图图2-1通过V1 LED灯,我们就可以很方便的判断模块的当前状态。若led灯常亮,工作正常,未定位。,若led灯闪烁,表示模块已经定位成功。 2.2 单片机最小

21、系统单片机的复位有上电复位和按钮手动复位两种。如图2-12(a)所示为上电复位电路,图(b)所示为上电按键复位电路。上电复位是利用电容充电来实现的,即上电瞬间RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。图2-12 (a)中的R是施密特触发器输入端的一个10K下拉电阻,时间常数为1010-610103=100ms。只要VCC的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作。图2-2C51系列单片机的具体参数如下几点(1) 与MCS-51兼容。 (2) 4K字节可编程闪烁存储器。 (3) 寿命:1000写/擦循环。(4) 数据保留时间

22、:10年。(5) 全静态工作:0Hz-24MHz。(6) 三级程序存储器锁定。(7) 1288位内部RAM。(8) 32可编程I/O线。(9) 两个16位定时器/计数器。(10) 5个中断源。 (11) 可编程串行通道。(12) 低功耗的闲置和掉电模式。(13) 片内振荡器和时钟电路。单片机最下系统如下图图2-32.3 电源模块GPS模块的工作电压为3.3V,如果加上5V电压可能会造成该模块损坏,造成模块无法工作。因此该模块应运而生。由一对稳压器和一对电容组成的电源模块使得GPS可以安全正常运行。同时为GPS的移动性提供了很大的方便。图2-42.1 液晶显示部分LCD12864与单片机的接线原

23、理图如图2-5所示: 图2-5带中文字库的LCD12864是一种具有4位、8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块,其显示分辨率为12864,内置8192个1616点汉字,和128个168点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行、1616点阵的汉字,也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁的多,且该模块的价格也略低于相同点阵的图形液晶模块。液晶模块接口参数如下管脚号管

24、脚名称电平管脚功能描述1VSS0V电源地2VCC3. 0+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7DB0R/W=“L”,E=“HL”, DB7DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位

25、并口方式,L:串口方式(见注释1)16NC-空脚17/RESETH/L复位端,低电平有效(见注释2)18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)(见注释3)20KVSS背光源负端(见注释3)*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。第3章 系统软件设计3.1 程序初始化模块初始化模块完成开机上电后对单片机、液晶显示器和GPS 模块的初始化工作。对单片机设置串口工作模式、设置波特率和中断工作模式;对液晶显示器设置开机画面和显示模式;完成对GPS 模块串口的成功通信。数据接收处理模块负责处理从GPS接收到的

26、数据。在单片机串口收到信息后,先判别是否为语句引导头“$”,再接收信息内容,然后根据语句标识区分出信息类别以对收到ASCII码进行处理显示。若整个数据接收正确,便对数据进行处理;若接收不正确,则重新进行接收。全球定位系统的主程序流程如下图:图3-13.2 软件系统调试在对GPS接收到的卫星信息进行处理时,碰到较为麻烦的问题是在对接收到的时间信息进行转换上。直接从卫星接收到的时间是UTC时间,北京时间应在UTC时间上加上8小时才是准确的北京时,在超出24小时时应作减24小时处理。刚开始将对时间转换的算法放在主函数中处理,程序如下:if(g_Ptr = 2) /接收到正确的数据帧i = g_Dis

27、Time0-0 ;/提取时间的小时位高位并转换码型j = g_DisTime1-0;/提取时间的小时位低位并转换码型j = i*10 + j+ 8; /在UTC时间上加上8个小时if (j = 24) /判断得到的时间是否超过24小时,超出变作减24处理 j - = 24; g_DisTime0 = j/10+0; /将北京时间高一位作码型变换并赋予高一位显示 g_DisTime1 = j%10 +0;/将北京时间高二位作码型变换并赋予高二位显示在调试中出现一个问题,在做了以上的处理后,时间的小时位数据并不完全正确,高位显示的与北京时间相同,但低位却与UTC时间相同。在做了各种尝试(如在UTC

28、时间上做加9处理、直接给六位时间g_DisTime5赋值等)后总结出这样一个问题,以上的算法处理只对六位数据位的高一位处理有效,低五位的显示始终都是正确UTC时间。经过分析,初步认定上面的程序并没有被完全的执行。因GPS接收模块源源不断的传送数据给单片机处理,在运行过程中定位信息大约每秒钟更新一次,在主函数中对收到的时间进行处理时有可能会出现还没来得及处理完毕时便接收到下一帧数据,故时间的处理就可能会有只对高一位处理完成而没完成处理好低五位时又进入了串行口中断,那么液晶显示的结果就是经过处理的高一位(北京时间)和未经处理的低五位(UTC时间)。考虑到以上原因,将原放在主函数的时间转换处理程序放

29、置在到中断时一收到UTC时间就对其进行转换处理。经过了调试,终于在液晶上显示出来正确的北京时间,证明了以上的分析、推断的正确性。参考文献1杨 刚,电子系统设计与实践,电子工业出版社,2009.32何希才,新型实用电子电路400例,电子工业出版社,2000.83杨 刚,电子系统设计与实践,电子工业出版社,2009.32高 锋,单片微型计算机原理与接口技术,科学出版社, 20031洪大永,GPS全球定位系统技术及应用, 厦门大学出版社, 1998附录软件程序uchar GPS_time9; /UTC时间uchar xdata GPS_wd12; /纬度uchar xdata GPS_jd13; /

30、经度uchar GPS_warn; /定位警告uchar GPS_quality; /定位质量uchar GPS_status; /定位状态uchar GPS_alt8; /海拔uchar GPS_sv3; /使用卫星uchar GPS_speed10; /速度uchar GPS_date9; /UTC日期 uchar Segment; /逗号计数uchar Bytes_counter;uchar Command;void GPRMC(uchar);void GPGGA(uchar);void GPVTG(uchar);void GPGSA(uchar);void gps(uchar);voi

31、d gps(uchar tmp) /com_send_byte(tmp); if(tmp = $)/起始标志 Command = 0; ReceivingF = 1; Bytes_counter = 0; Segment = 0; /清空语句段计数器 return; if(ReceivingF) if(tmp = ,) +Segment; Bytes_counter = 0; /清空段字节计数器 return; if(tmp = *)/收到结束标志 ReceivingF = 0; EndF = 1; return; if(Segment = 0) if(Bytes_counter = 3) /

32、段0,语句类型判断 switch(tmp) case G:Command = 1;/语句类型 $GPGGA GGAF = 1; break; case M:Command = 2;/语句类型 $GPRMC RMCF = 1; break; case T:Command = 3;/语句类型 $GPVTG VTGF = 1; break; case S:break; default:Command = 0; /非有效数据类型,终止当前数据接收 ReceivingF = 0; break; if(Bytes_counter = 4) if(Command=0 & tmp=A) Command = 4

33、;/语句类型 $GPGSA GSAF = 1; else switch(Command) case 1:GPGGA(tmp); break; case 2:GPRMC(tmp); break; case 3:GPVTG(tmp); break; case 4:GPGSA(tmp); break; default:break; +Bytes_counter; NewByteF = 0; return;void GPGGA(uchar tmp) switch(Segment) case 1: if(Bytes_counter = 2 | Bytes_counter = 5) /$GPGGA段1,U

34、TC时间,hhmmss(时分秒)格式,取前6位 转换为HH:MM:SS格式 GPS_timeBytes_counter = :; +Bytes_counter; if(Bytes_counter8) GPS_timeBytes_counter = tmp; GPS_time8 = 0; break; case 2: if(Bytes_counter = 3) /$GPGGA 段2处理 纬度ddmm.mmmm(度分)格式 GPS_wdBytes_counter = .; /接收第二个字节后插入. +Bytes_counter; GPS_wd11 = 0; if(Bytes_counter = 0

35、) +Bytes_counter; GPS_wdBytes_counter = tmp; break; case 3: GPS_wd0 = tmp; /$GPGGA第3段处理 纬度半球N(北半球)或S(南半球) break; case 4: if(Bytes_counter = 4) /$GPGGA 段4处理 经度dddmm.mmmm(度分)格式 GPS_jdBytes_counter = .; /接收第3个字节后插入. +Bytes_counter; GPS_jd12 = 0; if(Bytes_counter = 0) +Bytes_counter; GPS_jdBytes_counter = tmp; break; case 5: GPS_jd0 = tmp; /$GPGGA第5段处理 经度半球E(东经)或W(西经) break; case 6: GPS_quality = tm

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号