基于单片机的GPS毕业设计论文.docx
《基于单片机的GPS毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的GPS毕业设计论文.docx(39页珍藏版)》请在冰豆网上搜索。
![基于单片机的GPS毕业设计论文.docx](https://file1.bdocx.com/fileroot1/2023-1/23/ca090122-0240-4862-8c73-7043c0bf815b/ca090122-0240-4862-8c73-7043c0bf815b1.gif)
基于单片机的GPS毕业设计论文
基于单片机的GPS毕业设计论文
第1章引言
1.1课题的背景及意义
1978年2月22日第一颗GPS试验卫星的入轨运行,开创了以导航卫星为动态已知点的无线电导航定位的新时代。
GPS卫星所发送的导航定位信号,是一种可供无数用户共享的空间信息资源。
陆地、海洋和空间的广大用户,只要持有一种能够接收、跟踪、变换和测量GPS信号的接收机,就可以全天时、全天候和全球性地测量运动载体的七维状态参数和三维状态参数。
其用途之广,影响之大,是任何其他无线电接收设备望尘莫及的。
不仅如此,GPS卫星的入轨运行,还为大地测量学、地球动力学、地球物理学、天体力学、载人航天学、全球海洋学和全球气象学提供了一种高精度、全天时、全天候的测量新技术。
纵观现状,GPS技术有下述用途。
1.GPS技术的陆地应用
各种车辆的行驶状态监控;旅游者或旅游车的景点导游;应急车辆(如公安、急救车等)的快速引导行驶;高精度时间比对和频率控制;大气物理观测;地球物理资源勘探;工程建设的施工放样测量;大型建筑和煤气田的沉降检测;板内运动状态和地壳形变测量;陆地以及海洋大地测量基准的测定;工程、区域、国家等各种类型大地测量控制网的测量和建设;请求救援在途实时报告;引导盲人行走;平整路面的实时监控,精细农业。
2.GPS技术的海洋应用
远洋船舶的最佳航线测定;远洋船队在途中航行的实时调度和监测;内河船只的实时调度和自主导航测量;海洋救援的搜索和定点测量;远洋渔船的结队航行和作业调度;海洋油气平台的就位和复位测定;海底沉船位置的精确探测;海底管道铺设测量;海岸地球物理勘探;水文测量;海底大地测量控制网的布测;海底地形的精细测量;船运货物失窃报警;净化海洋(如海洋溢油的跟踪报告);海洋纠纷或海损事故的定点测定;浮筒抛设和暗礁爆破等海洋工程的精确定位;港口交通管制;海洋灾难检测。
3.GPS技术的航空应用
民航飞机的在途自主导航;飞机精密着陆;飞机空中加油控制;飞机编队飞行的安全保护;航空援救的搜索和定点测量;机载地球物理勘探;飞机探测灾区大小和标定测量;摄影和遥感飞机的七维状态参数和三维姿态参数测量。
4.GPS技术的航天应用
低轨道通讯卫星群的实时轨道测量;卫星入轨和卫星回收的实时点位测量;载入航天器的在轨防护探测;星载GPS的遮掩天体大小和大气参数测量;对地观测卫星的七维状态参数和三维姿态参数测量。
由此可见GPS技术已经延伸到各个领域的方方面面,但是要完成以上所述的各种用途,最基本的就是要具备能够接收GPS信号并且能够调制输出的设备,而设备最基本的功能就是能显示当时所处地点的经纬度以及UTC标准时间。
现在世面上已经有许多基于GPS接收模块所开发的产品,GPS手持机、车载GPS导航仪等等,虽然其功能强大,如车载GPS导航系统都带有大比例尺地图,但价格都比较昂贵,而且对于普通应用完全没有必要。
所以基于这种情况本次设计针对普通用户使用GPS的切实需要,设计并制作实现了基于单片机采集与显示GPS定位信息的低成本手持GPS设备。
1.2总体方案的设计
该手持GPS设备硬件主要由GPS信号接收部分(SERFGS1100GPS信号接收模块)、控制芯片(AT89S51单片机)、显示部分(1602LCM液晶显示模块)、电平转换电路(MAX232)构成。
GPS接收模块将收到的GPS卫星导航电文调制解码,转换为标准格式后送到电平转换电路再由MAX232芯片进行RS-232——TTL的电平转换,再送给单片机串口接收,当单片机收到GPS发送过来的导航电文后,经过片内程序的识别筛选,将筛选出来的导航电文送到显示模块,并且最后通过液晶显示器按照要求的编排格式所显示。
第2章GPS全球定位系统介绍与接收GPS定位信号方案
2.1GPS全球定位系统及GPS接收模块的研究
2.1.1GPS全球定位系统
全球定位系统(GPS)是本世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统。
其主要目的是为陆、海、空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的,是美国独霸全球战略的重要组成。
经过20余年的研究实验,耗资300亿美元,到1994年3月,全球覆盖率高达98%的24颗GPS卫星星座己布设完成。
全球定位系统由三部分构成:
(1)地面控制部分,由主控站(负责管理、协调整个地面控制系统的工作)、地面天线(在主控站的控制下,向卫星注入寻电文)、监测站(数据自动收集中心)和通讯辅助系统(数据传输)组成;
(2)空间部分,由24颗卫星组成,分布在6个道平面上;(3)用户装置部分,主要由GPS接收机和卫星天线组成。
其系统的结构框图如图2-1所示。
图2-1由三大部分构成的GPS卫星全球定位系统
1978年2月22日,第一颗GPS试验卫星的发射成功,标志着工程研制阶段的开始。
1989年2月14日,第一颗GPS工作卫星的发射成功,宣告GPS系统进入了生产作业阶段。
GPS系统经过16年来的发射试验卫星,到开发GPS信号应用,进而发射工作卫星,终于在1994年3月建成了信号覆盖律达到了98%的GPS工作星座它由9颗Block2卫星和15颗Block2A卫星组成。
1985年11月以前发射的11颗Block1GPS试验卫星已经完成了它们的历史使命,于1993年12月31日全部停止了工作。
图2-2BlockⅡ/ⅡR卫星
全球定位系统的主要特点:
(1)全天候;
(2)全球覆盖;(3)三维定速定时高精度;(4)快速省时高效率:
(5)应用广泛多功能。
24颗GPS卫星在离地面2万公里的高空上,以12小时的周期环绕地球运行,使得在任意时刻,在地面上的任意一点都可以同时观测到4颗以上的卫星。
图2-3GPS卫星工作星座图
由于卫星的位置精确可知,在GPS观测中,我们可得到卫星到接收机的距离,利用三维坐标中的距离公式,利用3颗卫星,就可以组成3个方程式,解出观测点的位置(X,Y,Z)。
考虑到卫星的时钟与接收机时钟之间的误差,实际上有4个未知数,X、Y、Z和钟差,因而需要引入第4颗卫星,形成4个方程式进行求解,从而得到观测点的经纬度和高程。
事实上,接收机往往可以锁住4颗以上的卫星,这时,接收机可按卫星的星座分布分成若干组,每组4颗,然后通过算法挑选出误差最小的一组用作定位,从而提高精度。
由于卫星运行轨道、卫星时钟存在误差,大气对流层、电离层对信号的影响,以及人为的SA保护政策,使得民用GPS的定位精度只有100米。
美国政府宣布2000年起,在保证美国国家安全不受威胁的前提下,取消SA政策,GPS民用信号精度在全球范围内得到改善,利用C/A码进行单点定位的精度由100米提高到20米。
为了达到更高的定位精度,往往还采用了差分GPS(DGPS)技术,建立基准站(差分台)进行GPS观测,利用已知的基准站精确坐标,与观测值进行比较,从而得出一修正数,并对外发布。
接收机收到该修正数后,与自身的观测值进行比较,消去大部分误差,得到一个比较准确的位置。
实验表明,利用差分GPS,定位精度可提高到5米。
2.1.2GPS接收模块的研究
GPS接收模块是接收机的关键模块,而且型号很多,功能各异,一般的组成结构主要由低噪声下变频器、并行信号通道、CPU、储存器等组成。
GPS接收模块的工作原理是它接收天线获取的卫星信号,进过变频、放大、滤波、相关、混频等一系列处理,可以实现对天线视界内卫星的跟踪、锁定和测量。
在获取了卫星的位置信息和测算出卫星信号传播时间之后,即可计算出天线位置。
用户通过输入输出接口,采用异步异步串行通信方式与GPS接收模块进行信息交换。
图2-4GPS接收模块内部结构
2.2接收GPS定位信号方案
要实现在液晶显示器上显示出接收到的GPS地理信息,首先要实现GPS信号的接收和调制。
在接收GPS方案上我们可以有两种选择。
第一种方案是选择GPS接收芯片然后再根据芯片设计标准,设计外围电路和安装天线等,选择这个方案的优点是可以掌握到GPS接收部分的电路设计技术,但是这个方案的缺点也是显而易见的,首先实现的难度较大不容易成功,其次由于GPS接收芯片一般都是厂商直接供货,单独采购价格会很高。
第二种方案是选择成品的GPS接收模块,采用这个方案的优点是由于现阶段GPS接收模块的制造技术已经相当成熟,性能稳定并且使用非常方便,定位成功后直接就可以通过模块的串口输出GPS地理信息。
当然其缺点就体现在,由于GPS接收模块已经由厂家完成了设计与封装,所以其核心技术我们就不得而知。
不过对于我们也并不影响其应用。
并且在经过大规模的商业化生产后价格已经很低,这些模块在市面上也能够非常容易的购买到。
从上面的分析可以知道,GPS接收模块就能够很好的作为本次设计接收GPS定位信号的解决方案,经过大规模工厂生产后价格已经很低,并且这些模块在市面上也能够非常容易的购买到。
第3章基于单片机的GPS硬件设计
3.1基于单片机的GPS硬件总体结构
根据总体设计方案,该基于单片机的GPS硬件设计主要由GPS信号接收部分(SERFGS1100GPS信号接收模块)、控制芯片(AT89S51单片机)、显示部分(1602LCM液晶显示模块)、电平转换电路(MAX232)这几部分构成。
其大体结构框图如下。
图3-1基于单片机的GPS硬件总体结构框图
3.2基于单片机的GPS设计硬件部分介绍
3.2.1AT89S51微处理器主要性能
AT89S51是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(Flash)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89S51提供了高性价比的解决方案。
AT89S51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89S51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
图3-2AT89S51管脚示意图
AT89S51的主要特性:
·与MCS-51兼容
·4K字节可编程Flash存储器;寿命:
1000写/擦循环;数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·最高工作频率为33MHz
·ISP在线编程功能
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·内部集成看门狗计时器
·双数据指示器
·电源关闭标识
·全新的加密算法
·具有双工UART串行通道
·可编程串行通道
·低功耗的内置和掉电模式
·片内振荡器和时钟电路
3.2.2SERFGS1100GPS信号接收模块介绍
该设计中GPS信号接收模块所选用的是SERFGS1100GPS接收模块,该模块是由深圳市瑟孚电子有限公司所生产。
模块具有12通道并行接收能力,所接收的GPS信号属于民用频段的L1信号(1575.42MHz),在没有SA干扰的情况下平均定位误差为10米,动态速度误差为0.1米/秒,信号灵敏度更是高达-153dBm,冷启动定位时间为50秒,热启动时间为35秒,重新定位时间仅仅需要8秒。
而在数据输出方面信号电平是采用的标准的RS-232电平,为应用的通用性提供了便利,其波特率为常用的9600,GPS数据输出格式为标准的NMEA0183V3.0标准,采集地理信息的更新速率为每秒一次,地图坐标系为WGS-84坐标系。
天线采用的是体积小、可靠性高、灵敏度高的微带天线,该天线与整个模块封装在防水的塑料外壳里,更进一步的提高了整个模块的可靠性。
工作电压为5V±%10,工作电流仅为60mA,其优异的节能特性完全可以和AT89S51等芯片共用一组电池电源,使得这一模块在移动手持设备上有了更广泛的用途。
图3-3SERFGS1100GPS信号接收模块
3.2.31602液晶显示模块介绍
主要技术参数数和显示特性:
显示容量:
16×2个字符
芯片工作电压:
4.5~5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
配置LED背光
内带字符发生存储器(CGROM,CGRAM)能够显示160个不同的点阵字符图形
多种软件功能:
光标显示、画面移位、自定义字符
其字符与图形在CGROM和CGRAM中的对应的关系如表3-1所示。
图3-41602液晶显示模块
表3-1CGROM和CGRAM中字符代码与字符图形对应的关系
1602采用标准的16脚接口,其中:
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第15~16脚:
空脚。
第7~14脚:
D0~D7为8位双向数据线。
根据编程时我所采用的方法,决定采用图3-6的连接方式连接单片机和1602LCM液晶显示模块。
图3-6AT89S51与1602LCM液晶显示模块的连接方式
3.2.4电平转换电路介绍
由于我们所采用的SERFGS1100GPS信号接收模块输出信号为RS-232电平,而AT89S51单片机串口所使用的电平为TTL电平,所以为了能使单片机正常的与SERFGS1100GPS信号接收模块进行通讯,故需要对电平进行相互转换,经查阅资料后决定采用MAXIM公司生产的MAX232电平转换芯片。
图3-7MAX232芯片在单片机中的典型应用
该电路就可以实现GPS接收模块与AT89S51单片机之间的通讯。
3.2.5电源
考虑到该系统的移动便携性,因此决定使用电池作为电源,在电池的选择上我参考了单片机、液晶模块、GPS接收模块、232电平转换电路的最佳工作电压,选择了四节镍氢电池串连作为电源,该电池在充满电后实测电压为1.4V左右,四节电池串连后电压为5.6V左右,其最佳供电电压平台在5.2V左右,足以满足上述模块的电压要求。
镍氢电池可以反复充电,从而降低了该系统的使用成本。
3.3基于单片机的GPS硬件连接介绍
整个硬件设计要求GPS接收模块输出的信号通过电平转换电路及必要的连接器件将MCU(AT89C51)、GPS信号接收模块、液晶显示模块、电源相连接实现系统功能。
硬件电路设计详图请见附录一。
第4章基于单片机的GPS软件设计
4.1GPSNAEA0183数据格式介绍
NMEA-0183是美国国家海洋电子协会(NationalMarineElectronicsAssociation)为海用电子设备制定的标准格式。
它是在过去海用电子设备的标准格式0180和0182的基础上,增加了GPS接收机输出的内容而完成的。
目前广泛采用的是Ver2.00版本。
现在除少数早期的GPS接收机外,几乎所有的GPS接收机均采用了这一格式。
此协议是为了在不同的GPS导航设备中建立统一的RTCM标准。
这种格式的广泛使用使得GPS接收模块的通用化和互换性大大提高。
这种格式所输出的语句采用的是ASCⅡ字符码,包含了纬度、经度、速度、日期、时间、航向、以及卫星信号情况等信息。
语句多达10余种,由于在此次设计中只运用到了$GPRMC定位数据语句,其结构为:
$GPRMC,<1>,<2>,<2>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh
其中“GP”为交谈识别符;“RMC”为语句识别符;“hh”为校验和,其代表了“$”与“*”之间所有字符的按位异或值(不包括这两个字符)。
$GPRMC语句数据区的内容为:
<1>定位点的协调世界时间(UTC),hhmmss(时分秒)格式;
<2>定位状态,A=有效定位,V=无效定位;
<3>定位点纬度,ddmm.mmmm(度分)格式;
<4>纬度半球,N(北半球)或S(南半球);
<5>定位点经度,dddmm.mmmm(度分)格式;
<6>经度半球,E(东经)或W(西经);
<7>地面速率,000.0节~999.9节;
<8>地面航向,000.0度~359.9度;
<9>UTC日期,ddmmyy(日月年)格式;
<10>磁偏角,000.0度~180度;
<11>磁偏角方向,E(东)或W(西)。
4.2基于单片机的GPS软件开发环境
4.2.1程序编译环境――KeiluVision2
该软件采用了汇编语言编写,并在KeiluVision2开发环境下编译、调试。
KeiluVision2与同类开发环境具有以下优点:
①真正的集成调试环境,集成了编缉器、编译器、调试器;
②众多强大软硬件调试手段,包括逻辑分析仪、跟踪器、逻辑笔、波形发生器、影子
存储器、记时器、程序时效分析、数据时效分析、硬件测试仪、事件触发器;
③所有类型的单片机集成在一个调试环境下,支持汇编、C、PL/M源程序混合调试;
④支持软件模拟,支持项目管理;
⑤支持点屏功能,直接点击屏幕就可以观察变量的值,方便快捷;
⑥功能强大的观察窗口,支持所有的数据类型;
⑦树状结构显示,一目了然;
⑧在线直接修改、编译、调试源程序,错误指令定位
开发界面如图4-1所示。
图4-1KeiluVision2界面图
4.2.2串口通信调试工具――COMPortDebugerV2.00
由于本次设计要涉及到串口与单片机的数据通讯,所以在调试的时候有必要使用一款串口调试软件辅助软件的调试,我所选用的是COMPortDebugerV2.00。
该软件具有串口端口选择,波特率选择,数据位选择,停止和校验位选择等等,而且在发送区域内还可以设定自动发送数据的时间间隔,这些功能已经完全满足对串口进行简单的调试。
如图4-2,正在使用该软件模拟GPS向单片机发送GPS地理数据,以辅助调试程序和硬件。
图4-2COMPortDebugerV2.00界面图
4.2.3单片机程序编程软件――SLISPV1.3.2
在调试程序的过程中,通常要将已经用KeiluVision2编译连接好的程序写到单片机上去,然后安装在硬件系统上进行整体的调试,这时就需要一款编程软件和编程器来完成以上工作,由于选用的单片机是AT89S51(支持在系统ISP编程),所以我选择了SLISPV1.3.2这款编程配合烧录程序。
图4-3SLISPV1.3.2界面图
4.2.4GPS接收模块调试软件——uNavAnalyzer
由于该GPS接收模块在第一次使用时需要在电脑上进行初始化串口输率和测试接收GPS地理数据,故需要选择一款软件来配合。
SERFGS1100GPS信号接收模块生产商推荐的是uNavAnalyzer。
该软件可以对SERFGS1100GPS信号接收模块进行波特率选择,输出语句选择等设置。
还可以在GPS信号接收模块接收到GPS数据后,进行数据文本输出,卫星状态查看(卫星数量、可用数、信号强度),GPS信号漂移分析等。
图4-4uNavAnalyzer接收GPS地理数据
图4-5uNavAnalyzerGPS卫星信号以及漂移情况
4.3基于单片机的GPS软件设计思路
该GPS设计的核心部分是GPS接收模块与单片机的通讯,以及单片机将收到的信息筛选编排显示位置后送到LCM液晶模块显示。
在设计该软件时采用了模块化的思想,之所以采用的模块化的设计思想,主要是想到了软件模块化后方便软件的调试,同时也方便了该软件的移植,在不同的硬件平台上运行该软件只需要更改相应的软件模块就可以实现。
该软件分为了串口初始化模块,液晶模块初始化模块,数据接收模块,数据格式调整送显模块这四个主要模块。
该系统具体程序详见附录二。
图4-6软件程序流程图
4.4各模块软件设计
4.4.1串口初始化模块
在该模块中设置的波特率为9600(晶振频率为11.0592Mhz),所以选择定时器工作为工作方式2,给定时器1高位低位分别赋值#0FDH。
其程序如下:
MOVTMOD,#20H;定时器工作方式选择
MOVTH1,#0FDH;定时器初始赋值
MOVTL1,#0FDH;
MOVPCON,#00H;串口工作方式选择
SETBTR1
MOVSCON,#70H;串口工作方式选择
4.4.2液晶模块初始化模块
在该设计中所使用的是1602液晶模块,其初始化方法参阅了该模块的通用说明书,其标准初始化描述如下:
延时15ms
写指令38H(不检测忙信号)
延时15ms
写指令38H(不检测忙信号)
延时15ms
写指令38H(不检测忙信号)
写指令38H
写指令38H:
显示模式设置
写指令08H:
显示关闭
写指令01H:
显示清屏
写指令06H:
显示关标移动设置
写指令0CH:
显示开及光标设置
其中在实际使用中延时段程序的实际延时可以比15ms长些,对初始化并无影响。
程序如下:
MOVP0,#0H;清屏
ACALLENABLE
CALLdelay1
MOVP0,#38H
ACALLENABLE
MOVP0,#38H
ACALLENABLE
MOVP0,#38H
ACALLENABLE
MOVP0,#8H
ACALLENABLE
MOVP0,#1H
ACALLENABLE
MOVP0,#6H
ACALLENABLE
MOVP0,#0cH
ACALLENABLE
4.4.3数据接收模块
首先要对GPS接收模块串口是否有信号发送给单片机进行识别,而且由于GPS接收模块通过串口发送出来的数据不是我们全部需要的,所以有必要再对语句进行识别,然后取入我们所需要的语句$GPRMC,…………。
由于这些语句都是已$GP开头的,并且$GPRMC这条语句与别的语句差别的地方就是MC这两个字母,故从精简程序和节约CPU资源的角度考虑,在程序中也只判断M和C这两个字母。
其识别和储存的程序如下:
read:
callrec
cjneA,#04dH,read;'M'?
;判断是否M
callrec
cjneA,#043H,read;'C'?
;判断是否C
callrec
movr0,#10h;数据储存起始地址
movr1,#42h;数据位数
store:
;储存
callrec
mov@r0,a
incr0
djnzr1,store
RET
rec:
JBRI,goout
incr2
cjner2,#255,rec
movr2,#0h
incr3
cjner3,#255,rec
movr3,#0h
incr4
cjner4,#5,rec
movr4,#0h
callnosigna