基于单片机的GPS定位系统要点.docx
- 文档编号:27396419
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:24
- 大小:490.78KB
基于单片机的GPS定位系统要点.docx
《基于单片机的GPS定位系统要点.docx》由会员分享,可在线阅读,更多相关《基于单片机的GPS定位系统要点.docx(24页珍藏版)》请在冰豆网上搜索。
基于单片机的GPS定位系统要点
大学实验室开放项目成果(论文)
题目:
基于单片机的GPS定位系统
摘要
全球定位系统(GPS)是美国研发的第二代卫星无线电导航系统。
其目的是在全球范围内对地面和空中目标进行准确定位和监测。
它能为用户提供全球性、全天候、连续、实时、高精度的三维坐标、三向速度和时间信息。
随着GPS的民用化与成本的降低,已经走入了人们的日常生活中,很多手机、PDA 等手持设备都配备了GPS功能。
本文主要研究GPS 的定位原理与技术,单片机的编程及其应用,液晶屏的功能及其实现方法本控制系统主要完成接受数据、时间显示、经度显示、纬度显示等常规功能。
此方案基于单片机、GPS模块和12864液晶显示屏等硬件,并应用C语言实现了GPS信号的提取、显示及基本的键盘控制操作等。
经过实践测试,这种接收机可以达到基本GPS信息的接收以及显示,可以做到体积小、精度高、连续导航,本设计在测控领域的应用开发中具有一定的实用价值和借鉴价值。
关键词:
GPS定位,液晶显示,单片机
Abstract
GlobalPositioningSystem(GPS)isaU.S.researchanddevelopmentofthesecondgenerationsatelliteradionavigationsystem.Itspurposeisworldwideonthegroundandairtargetsforaccuratepositioningandmonitoring.Itprovidesuserswithaglobal,all-weather,continuous,real-time,high-precisionthree-dimensionalcoordinates,threevelocityandtimeinformation.WiththeGPScivilianandcostreduction,hasbeenintopeople'sdailylife,manycellphone,PDAandotherhandhelddevicesareequippedwithGPS.ThispaperstudiestheprinciplesandtechniquesofGPSpositioning,microcontrollerprogramminganditsapplication,thefunctionoftheLCDscreenanditsimplementationmethodofthecontrolsystemismainlycompletetoacceptdata,timedisplay,displaylongitude,latitude,displayandotherregularfeatures.Thisschemeisbasedonsingle-chip,GPSmoduleand12,864LCDscreenandotherhardware,andapplytheClanguageimplementationoftheGPSsignalextraction,displayandkeyboardcontrolbasicoperations.Afterpracticetests,thisreceivercanmeetthebasicGPSreceiversanddisplay,youcandosmallsize,highaccuracy,continuousnavigation,monitoringandcontrolofthedesigninthefieldofapplicationdevelopmenthascertainpracticalvalueandreferencevalue.
Keywords:
GPSpositioning,LCD,microcontroller
目录
引言4
第一章、GPS系统简介6
1.1GPS系统的定位精度6
1.2GPS系统定位原理8
第二章、方案硬件设计10
2.1GPS技术参数10
2.2单片机最小系统11
2.3电源模块12
2.4液晶显示部分13
第3章系统软件设计15
3.1程序初始化模块15
3.2软件系统调试16
参考文献17
附 录18
引言
GPS起始于1958年美国军方的一个项目,1964年投入使用。
20世纪70年代,美国陆海空三军联合研制了新一代卫星定位系统GPS。
主要目的是为陆海空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的,经过20余年的研究实验,耗资300亿美元,到1994年,全球覆盖率高达98%的24颗GPS卫星星座己布设完成。
在机械领域GPS则有另外一种含义:
产品几何技术规范(GeometricalProductSpecifications)-简称GPS。
GPS的前身是美国军方研制的一种子午仪卫星定位系统(Transit),1958年研制,1964年正式投入使用。
该系统用5到6颗卫星组成的星网工作,每天最多绕过地球13次,并且无法给出高度信息,在定位精度方面也不尽如人意。
然而,子午仪系统使得研发部门对卫星定位取得了初步的经验,并验证了由卫星系统进行定位的可行性,为GPS的研制埋下了铺垫。
由于卫星定位显示出在导航方面的巨大优越性及子午仪系统存在对潜艇和舰船导航方面的巨大缺陷。
美国海陆空三军及民用部门都感到迫切需要一种新的卫星导航系统。
为此,美国海军研究实验室(NRL)提出了名为Tinmation的用12到18颗卫星组成10000km高度的全球定位网计划,并于67年、69年和74年各发射了一颗试验卫星,在这些卫星上初步试验了原子钟计时系统,这是GPS精确定位的基础。
而美国空军则提出了621-B的以每星群4到5颗卫星组成3至4个星群的计划,这些卫星中除1颗采用同步轨道外其余的都使用周期为24h的倾斜轨道,该计划以伪随机码(PRN)为基础传播卫星测距信号,其强大的功能,当信号密度低于环境噪声的1%时也能将其检测出来。
伪随机码的成功运用是GPS得以取得成功的一个重要基础。
海军的计划主要用于为舰船提供低动态的2维定位,空军的计划能供提供高动态服务,然而系统过于复杂。
由于同时研制两个系统会造成巨大的费用而且这里两个计划都是为了提供全球定位而设计的,所以1973年美国国防部将2者合二为一,并由国防部牵头的卫星导航定位联合计划局(JPO)领导,还将办事机构设立在洛杉矶的空军航天处。
该机构成员众多,包括美国陆军、海军、海军陆战队、交通部、国防制图局、北约和澳大利亚的代表。
最初的GPS计划在美国联合计划局的领导下诞生了,该方案将24颗卫星放置在互成120度的三个轨道上。
每个轨道上有8颗卫星,地球上任何一点均能观测到6至9颗卫星。
这样,粗码精度可达100m,精码精度为10m。
由于预算压缩,GPS计划不得不减少卫星发射数量,改为将18颗卫星分布在互成60度的6个轨道上,然而这一方案使得卫星可靠性得不到保障。
1988年又进行了最后一次修改:
21颗工作星和3颗备用星工作在互成60度的6条轨道上。
这也是GPS卫星所使用的工作方式。
第一章、GPS系统简介
1.1GPS系统的定位精度
GPS导航系统是以全球24颗定位人造卫星为基础,向全球各地全天候地提供三维位置、三维速度等信息的一种无线电导航定位系统。
它由三部分构成,一是地面控制部分,由主控站、地面天线、监测站及通讯辅助系统组成。
二是空间部分,由24颗卫星组成,分布在6个轨道平面。
三是用户装置部分,由GPS接收机和卫星天线组成。
民用的定位精度可达10米内。
GPS导航系统的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。
要达到这一目的,卫星的位置可以根据星载时钟所记录的时间在卫星星历中查出。
而用户到卫星的距离则通过记录卫星信号传播到用户所经历的时间,再将其乘以光速得到(由于大气层电离层的干扰,这一距离并不是用户与卫星之间的真实距离,而是伪距(PR):
当GPS卫星正常工作时,会不断地用1和0二进制码元组成的伪随机码(简称伪码)发射导航电文。
GPS系统使用的伪码一共有两种,分别是民用的C/A码和军用的P(Y)码。
C/A码频率1.023MHz,重复周期一毫秒,码间距1微秒,相当于300m;P码频率10.23MHz,重复周期266.4天,码间距0.1微秒,相当于30m。
而Y码是在P码的基础上形成的,保密性能更佳。
导航电文包括卫星星历、工作状况、时钟改正、电离层时延修正、大气折射修正等信息。
它是从卫星信号中解调制出来,以50b/s调制在载频上发射的。
导航电文每个主帧中包含5个子帧每帧长6s。
前三帧各10个字码;每三十秒重复一次,每小时更新一次。
后两帧共15000b。
导航电文中的内容主要有遥测码、转换码、第1、2、3数据块,其中最重要的则为星历数据。
当用户接受到导航电文时,提取出卫星时间并将其与自己的时钟做对比便可得知卫星与用户的距离,再利用导航电文中的卫星星历数据推算出卫星发射电文时所处位置,用户在WGS-84大地坐标系中的位置速度等信息便可得知。
可见GPS导航系统卫星部分的作用就是不断地发射导航电文。
然而,由于用户接受机使用的时钟与卫星星载时钟不可能总是同步,所以除了用户的三维坐标x、y、z外,还要引进一个Δt即卫星与接收机之间的时间差作为未知数,然后用4个方程将这4个未知数解出来。
所以如果想知道接收机所处的位置,至少要能接收到4个卫星的信号。
GPS接收机可接收到可用于授时的准确至纳秒级的时间信息;用于预报未来几个月内卫星所处概略位置的预报星历;用于计算定位时所需卫星坐标的广播星历,精度为几米至几十米(各个卫星不同,随时变化);以及GPS系统信息,如卫星状况等。
GPS接收机对码的量测就可得到卫星到接收机的距离,由于含有接收机卫星钟的误差及大气传播误差,故称为伪距。
对0A码测得的伪距称为UA码伪距,精度约为20米左右,对P码测得的伪距称为P码伪距,精度约为2米左右。
GPS接收机对收到的卫星信号,进行解码或采用其它技术,将调制在载波上的信息去掉后,就可以恢复载波。
严格而言,载波相位应被称为载波拍频相位,它是收到的受多普勒频移影响的卫星信号载波相位与接收机本机振荡产生信号相位之差。
一般在接收机钟确定的历元时刻量测,保持对卫星信号的跟踪,就可记录下相位的变化值,但开始观测时的接收机和卫星振荡器的相位初值是不知道的,起始历元的相位整数也是不知道的,即整周模糊度,只能在数据处理中作为参数解算。
相位观测值的精度高至毫米,但前提是解出整周模糊度,因此只有在相对定位、并有一段连续观测值时才能使用相位观测值,而要达到优于米级的定位精度也只能采用相位观测值。
1.2GPS系统定位原理
GPS定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置。
如图所示,假设t时刻在地面待测点上安置GPS接收机,可以测定GPS信号到达接收机的时间△t,再加上接收机所接收到的卫星星历等其它数据可以确定四个数学方程式。
按定位方式,GPS定位分为单点定位和相对定位(差分定位)。
单点定位就是根据一台接收机的观测数据来确定接收机位置的方式,它只能采用伪距观测量,可用于车船等的概略导航定位。
相对定位(差分定位)是根据两台以上接收机的观测数据来确定观测点之间的相对位置的方法,它既可采用伪距观测量也可采用相位观测量,大地测量或工程测量均应采用相位观测值进行相对定位。
在GPS观测量中包含了卫星和接收机的钟差、大气传播延迟、多路径效应等误差,在定位计算时还要受到卫星广播星历误差的影响,在进行相对定位时大部分公共误差被抵消或削弱,因此定位精度将大大提高,双频接收机可以根据两个频率的观测量抵消大气中电离层误差的主要部分,在精度要求高,接收机间距离较远时(大气有明显差别),应选用双频接收机。
28颗卫星(其中4颗备用)早已升空,分布在6条交点互隔60度的轨道面上,距离地面约20000千米。
已经实现单机导航精度约为10米,综合定位的话,精度可达厘米级和毫米级。
但民用领域开放的精度约为10米。
GPS接收模块主要技术参数
GPS-NEO-6M-001奋斗嵌入式开发工作室出品的一款高性能GPS定位模块。
该模块采用
U-BLOXNEO-6M-001模组,模块自带25mmX25mm无源陶瓷天线,板载可充电后备电池(用
于支持温启动或热启动,后备电池在主电源断电后,可以维持半小时左右的GPS星历保存)。
默示条件,GPS模块SiRFStarIII接受每二输出位置的数据,通常$GPRMC精简数据格式的数据,包括纬度,经度的目的,速度(结),运动方向角,年,月,时,分,秒,毫秒,定位数据是有效的或无效的,和其他重要信息。
语句格式如下:
只需要知道位置信息,所以在阅读唯一的,可以实际应用。
<1>:
当地时间代表UTC。
格式“当每分钟,小时,分钟和秒2。
<2>:
工作代表国家。
”“显示可用的数据,“V”表示接受警报,没有可用的数据。
<3>:
代表纬度数据。
“子级的格式。
分分分。
”
<4>:
纬度半球为代表的“N”或“S”。
<5>:
代表经度数据。
格式和LD
现状;度分钟。
sub-sub-sub-sub.”
<6>:
代表经度半球,为“E”或“
软件读取经纬度数据,目前的位置停止分析,确定用户的当前位置在该地区建立和平。
的方法是基于用户的设置确定中心的纬度和经度和纬度和经度计算出活动维持当前的对象可以超过和平活动预定半径。
结果的基础上的歧视,设置相应的标志。
第二章、方案硬件设计
2.1GPS技术参数
GPS接收机要具有接收、处理、显示信息的功能。
硬件上必须有相应的接收处理部分、显示部分和配置输入部分,同时需要处理器实现各部分功能的联合。
模块自带了一个状态指示灯V1。
该指示灯连接在UBLOXNEO-6M模组的TIMEPULSE端口,
该端口的输出特性可以通过程序设置。
V1LED灯,在默认条件下,有2个状态:
GPS模块外观如下图
图2-1
通过V1LED灯,我们就可以很方便的判断模块的当前状态。
若led灯常亮,工作正常,未定位。
,若led灯闪烁,表示模块已经定位成功。
2.2单片机最小系统
单片机的复位有上电复位和按钮手动复位两种。
如图2-12(a)所示为上电复位电路,图(b)所示为上电按键复位电路。
上电复位是利用电容充电来实现的,即上电瞬间RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。
图2-12(a)中的R是施密特触发器输入端的一个10KΩ下拉电阻,时间常数为10×10-6×10×103=100ms。
只要VCC的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作。
图2-2
C51系列单片机的具体参数如下几点
(1)与MCS-51兼容。
(2)4K字节可编程闪烁存储器。
(3)寿命:
1000写/擦循环。
(4)数据保留时间:
10年。
(5)全静态工作:
0Hz-24MHz。
(6)三级程序存储器锁定。
(7)128×8位内部RAM。
(8)32可编程I/O线。
(9)两个16位定时器/计数器。
(10)5个中断源。
(11)可编程串行通道。
(12)低功耗的闲置和掉电模式。
(13)片内振荡器和时钟电路。
单片机最下系统如下图
图2-3
2.3电源模块
GPS模块的工作电压为3.3V,如果加上5V电压可能会造成该模块损坏,造成模块无法工作。
因此该模块应运而生。
由一对稳压器和一对电容组成的电源模块使得GPS可以安全正常运行。
同时为GPS的移动性提供了很大的方便。
图2-4
2.1液晶显示部分
LCD12864与单片机的接线原理图如图2-5所示:
图2-5
带中文字库的LCD12864是一种具有4位、8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块,其显示分辨率为128×64,内置8192个16×16点汉字,和128个16×8点ASCII字符集。
利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行、16×16点阵的汉字,也可完成图形显示。
低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁的多,且该模块的价格也略低于相同点阵的图形液晶模块。
液晶模块接口参数如下
管脚号
管脚名称
电平
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0+5V
电源正
3
V0
-
对比度(亮度)调整
4
RS(CS)
H/L
RS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR
6
E(SCLK)
H/L
使能信号
7
DB0
H/L
三态数据线
8
DB1
H/L
三态数据线
9
DB2
H/L
三态数据线
10
DB3
H/L
三态数据线
11
DB4
H/L
三态数据线
12
DB5
H/L
三态数据线
13
DB6
H/L
三态数据线
14
DB7
H/L
三态数据线
15
PSB
H/L
H:
8位或4位并口方式,L:
串口方式(见注释1)
16
NC
-
空脚
17
/RESET
H/L
复位端,低电平有效(见注释2)
18
VOUT
-
LCD驱动电压输出端
19
A
VDD
背光源正端(+5V)(见注释3)
20
K
VSS
背光源负端(见注释3)
*注释1:
如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。
第3章系统软件设计
3.1程序初始化模块
初始化模块完成开机上电后对单片机、液晶显示器和GPS模块的初始化工作。
对单片机设置串口工作模式、设置波特率和中断工作模式;对液晶显示器设置开机画面和显示模式;完成对GPS模块串口的成功通信。
数据接收处理模块负责处理从GPS接收到的数据。
在单片机串口收到信息后,先判别是否为语句引导头“$”,再接收信息内容,然后根据语句标识区分出信息类别以对收到ASCII码进行处理显示。
若整个数据接收正确,便对数据进行处理;若接收不正确,则重新进行接收。
全球定位系统的主程序流程如下图:
图3-1
3.2软件系统调试
在对GPS接收到的卫星信息进行处理时,碰到较为麻烦的问题是在对接收到的时间信息进行转换上。
直接从卫星接收到的时间是UTC时间,北京时间应在UTC时间上加上8小时才是准确的北京时,在超出24小时时应作减24小时处理。
刚开始将对时间转换的算法放在主函数中处理,程序如下:
if(g_Ptr==2)//接收到正确的数据帧
{
i=g_DisTime[0]-'0';//提取时间的小时位高位并转换码型
j=g_DisTime[1]-'0';//提取时间的小时位低位并转换码型
j=i*10+j+8;//在UTC时间上加上8个小时
if(j>=24)//判断得到的时间是否超过24小时,超出变作减24处理
{
j-=24;
}
g_DisTime[0]=j/10+'0';//将北京时间高一位作码型变换并赋予高一位显示
g_DisTime[1]=j%10+'0';//将北京时间高二位作码型变换并赋予高二位显示
}
在调试中出现一个问题,在做了以上的处理后,时间的小时位数据并不完全正确,高位显示的与北京时间相同,但低位却与UTC时间相同。
在做了各种尝试(如在UTC时间上做加9处理、直接给六位时间g_DisTime[5]赋值等)后总结出这样一个问题,以上的算法处理只对六位数据位的高一位处理有效,低五位的显示始终都是正确UTC时间。
经过分析,初步认定上面的程序并没有被完全的执行。
因GPS接收模块源源不断的传送数据给单片机处理,在运行过程中定位信息大约每秒钟更新一次,在主函数中对收到的时间进行处理时有可能会出现还没来得及处理完毕时便接收到下一帧数据,故时间的处理就可能会有只对高一位处理完成而没完成处理好低五位时又进入了串行口中断,那么液晶显示的结果就是经过处理的高一位(北京时间)和未经处理的低五位(UTC时间)。
考虑到以上原因,将原放在主函数的时间转换处理程序放置在到中断时一收到UTC时间就对其进行转换处理。
经过了调试,终于在液晶上显示出来正确的北京时间,证明了以上的分析、推断的正确性。
参考文献
[1]杨刚,电子系统设计与实践,电子工业出版社,2009.3
[2]何希才,新型实用电子电路400例,电子工业出版社,2000.8
[3]杨刚,电子系统设计与实践,电子工业出版社,2009.3
[2]高锋,单片微型计算机原理与接口技术,科学出版社,2003
[1]洪大永,GPS全球定位系统技术及应用,厦门大学出版社,1998
附 录
软件程序
ucharGPS_time[9];//UTC时间
ucharxdataGPS_wd[12];//纬度
ucharxdataGPS_jd[13];//经度
ucharGPS_warn;//定位警告
ucharGPS_quality;//定位质量
ucharGPS_status;//定位状态
ucharGPS_alt[8];//海拔
ucharGPS_sv[3];//使用卫星
ucharGPS_speed[10];//速度
ucharGPS_date[9];//UTC日期
ucharSegment;//逗号计数
ucharBytes_counter;
ucharCommand;
voidGPRMC(uchar);
voidGPGGA(uchar);
voidGPVTG(uchar);
voidGPGSA(uchar);
voidgps(uchar);
voidgps(uchartmp)
{
//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(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 GPS 定位 系统 要点