文档 2 - 图文

更新时间:2024-05-07 07:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学校代码: 11059 学 号:0805070058

Hefei University

毕业论文(设计)

BACHELOR DISSERTATION

论文题目: 基于单片机的GPS定位信息显示系统设计 学位类别:____ _ _____工 学 学 士_____________ ___ 年级专业(班级):__ 08级自动化(1)班 ___ 作者姓名:____ _ ___王 致 忠_____________ _ ____ 导师姓名:____ _ ___王 庆 龙_____________ _ ___ 完成时间:___ _ ___ 2012年5月20日_____ __ _ ___

基于单片机的GPS定位信息显示系统设计

中 文 摘 要

GPS全球定位系统在实际生活中被广泛应用,是当今信息时代发展中的重要组成部分。因其具有性能好、精度高、应用广的特点,使其成为了迄今为止最好的定位导航系统。

本论文详细介绍了一种基于单片机、GPS接收模块、12864液晶显示模块等器件的GPS实时显示功能的实现。分别从硬件设计和软件设计等方面对其作了详细的阐述,并且结合硬件的特点研究了MCS-51系列单片机如何与GPS接收模块实现串行通信,该系统是根据GPS模块数据输出基本原理设计而成的。它是一台体积小巧、携带方便、可以独立使用的全天候实时的定位导航设备。

关键词: GPS;单片机;GPS接收模块;12864液晶屏

I

Microcontroller-based GPS Positioning Information Display System Design

ABSTRACT

GPS Global Positioning System is widely used in real life, is an important part in the development of today's information age. Because of its good performance, high accuracy, wide application, making it by far the best navigation and positioning system.

This thesis is described in detail based on microcontroller GPS receiver module, 12,864 LCD displays and other devices GPS real-time display function implementation. From hardware and software implementation gave a detailed exposition of the design, and combined with the hardware features of the MCS-51 series microcontroller GPS receiver module to achieve serial communication, the system design is based on the basic principle of the GPS module data output . It is a compact, portable, and can be used independently, all-weather real-time positioning and navigation equipment.

KEY WORD:GPS; microcontroller;GPS receiver module; 12864 LCD

II

目 录

第一章 引言 ........................................................................ 1

1.1 GPS背景及意义 .............................................................................................................................. 1 1.2 论文主要内容.................................................................................................................................. 2

第二章 GPS方案设计 3

2.1 GPS全球定位系统简介 .................................................................................................................. 3 2.2 GPS信号接收方案选择 .................................................................................................................. 5 2.3 GPS接收模块的研究 ...................................................................................................................... 5 2.4 总体方案的设计.............................................................................................................................. 6 第三章 基于单片机的GPS硬件电路设计 ................................................. 8

3.1 基于单片机的GPS硬件电路总体结构 ........................................................................................ 8 3.2 基于单片机的GPS定位信息显示系统设计硬件电路简介 ......................................................... 8

3.2.1 STC89C52简介 ..................................................................................................................... 8 3.2.2 SiRF Star II GPS信号接收模块 ......................................................................................... 12 3.2.3 12864液晶显示模块介绍 ................................................................................................... 13 3.3 基于单片机的GPS硬件连接介绍 .............................................................................................. 15 第四章 基于单片机的GPS软件设计 .................................................... 17

4.1 NMEA-0183数据格式 .................................................................................................................. 17

4.1.1 输入语句............................................................................................................................. 17 4.1.2 输出语句............................................................................................................................. 18 4.2 基于单片机的GPS定位系统软件开发环境―Keil uVision2 ................................................... 20

4.2.1 8051开发工具 ..................................................................................................................... 20 4.2.2 uVision2集成开发环境 ...................................................................................................... 20 4.2.3 编辑器和调试器 ................................................................................................................. 21 4.2.4 测试程序............................................................................................................................. 22 4.2.5 Keil C编译步骤 .................................................................................................................. 23 4.3 基于单片机的GPS软件设计思路 .............................................................................................. 25 4.4 模块软件设计................................................................................................................................ 26

4.4.1 液晶模块初始化模块 ......................................................................................................... 26 4.4.2 GPS数据接收模块 ............................................................................................................. 29

第五章 系统调试与实验结果 .......................................................... 31

5.1 硬件调试 ....................................................................................................................................... 31 5.2 软件调试 ....................................................................................................................................... 31 5.3 实验结果 ....................................................................................................................................... 32 5.4 实验结果分析................................................................................................................................ 33 第六章 总结 ....................................................................... 34 致谢 .............................................................................. 35 参考文献 .......................................................................... 36 附录 .............................................................................. 37

III

第一章 引言

1.1 课题背景及意义

1978年2月22日第一颗GPS试验卫星的入轨运行,开创了以导航卫星为动态已知点的无线电导航定位的新时代。GPS卫星所发送的导航定位信号,是一种可供无数用户共享的空间信息资源[1]。陆地、海洋和空间的广大用户,只要持有一种能够接收、跟踪、变换和测量GPS信号的接收机,就可以全天时、全天候和全球性的测量运动载体的七维状态参数和三维状态参数。其用途之广,影响之大,是其他无线电接收装置都望尘莫及的。不仅如此,GPS卫星的入轨运行,还为大地测量学、地球动力学、地球物理学、天体力学、载人航天学、全球海洋学和全球气象学提供了一种高精度、全天时、全天候的测量新技术。纵观现状,GPS技术有如下用途。

GPS技术的陆地应用

GPS技术在陆地上的开发应用可以体现在许多方面,如:各种车辆的行驶状态监控;旅游者或旅游车的景点导游;应急车辆的快速引导行驶;高精度时间比对和频率控制;大气物理观测;地球物理资源勘探;工程建设的施工放样测量;大型建筑和煤气田的沉降检测;板内运动状态和地壳形变测量;陆地以及海洋大地测量基准的测定;工程、区域、国家等各种类型大地测量控制网的测量和建设等。

GPS技术的海洋应用

GPS技术在海洋方面有着极其重要的作用,比如:远洋船舶的最佳航线测定;远洋船队在途中航行的实时调度和监测;内河船只的实时调度和自主导航测量;海洋救援的搜索和定点测量;远洋渔船的结队航行和作业调度;海洋油气平台的就位和复位测定;海底沉船位置的精确探测;海底管道铺设测量;海岸地球物理勘探;水文测量;海底大地测量控制网的布测;海底地形的精细测量;船运货物失窃报警;净化海洋;海洋纠纷或海损事故的定点测定;港口交通管制;海洋灾难检测等。

GPS技术的航空应用

GPS技术在航空方面的应用主要体现在:民航飞机的在途自主导航;飞机精密着陆;飞机空中加油控制;飞机编队飞行的安全保护;航空援救的搜索和定点测量;机载地球物理勘探;飞机探测灾区大小和标定测量;摄影和遥感飞机的七维状态参数和三维姿态参数测量等。

GPS技术的航天应用

GPS技术在航天方面同样也有着很重要的作用:低轨道通讯卫星群的实时轨道测

1

量;卫星入轨和卫星回收的实时点位测量;载入航天器的在轨防护探测;星载GPS的遮掩天体大小和大气参数测量;对地观测卫星的七维状态参数和三维状态参数测量[2]。

由此可见,GPS技术已经延伸到各个领域的方方面面,但是要完成以上所述的各种用途,最基本的就是要具备能够接收GPS信号并且能够调制输出的设备,而这种设备最基本的功能就是能够显示当时所处地点的经纬度以及UTC标准时间。现在世面上已经有许多基于GPS接收模块所开发的产品,如GPS手持机、车载GPS导航仪等等,虽然其功能强大,但价格相对而言比较昂贵,而且对于普通应用没有必要。所以基于这种情况下,本次设计针对普通用户使用GPS的切实需要,设计并制作基于单片机的GPS定位信息显示系统。

1.2 论文主要内容

本次设计的主要任务是在GPS和单片机的理论知识基础上,选择合适的单片机提取GPS接收模块接收的数据并且由液晶显示模块显示接收的数据。

在此次设计过程中,主要熟悉所选用的GPS接收模块的性能指标,学习NMEA封包并懂得如何使用NMEA输出命令,结合单片机的相关知识能实现对GPS接收到的卫星信息进行提取,并在液晶显示器上选择性的显示需要的数据。

2

第二章 GPS定位信息显示系统方案设计

2.1 GPS全球定位系统简介

全球定位系统(GPS)是本世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统。其主要目的是为陆、海、空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的,是美国独霸全球战略的重要组成部分。

全球定位系统由三部分构成:

(1) 地面控制部分,由主控站(负责管理、协调整个地面控制系统的工作)、地面天线(在主控站的控制下,向卫星注入寻电文)、监测站(数据自动收集中心)和通讯辅助系统(数据传输)组成。

(2) 空间部分,由24颗卫星组成,分布在6个轨道平面上。

(3) 用户装置部分,主要由GPS接收机和卫星天线组成[3]。这三部分的相互关系如图2.1所示。

图2.1 GPS全球定位系统组成

1978年2月22日,第一颗GPS试验卫星的发射成功,标志着工程研制阶段的开始。1989年2月14日,第一颗GPS工作卫星的发射成功,宣告GPS系统进入了生产作业阶段。GPS系统经过16年的发射试验卫星,到开发GPS信号应用,进而发射工作卫星,终于在1994年3月建成了信号覆盖率达到了98%的GPS工作星座,它由24颗Block2卫星卫星组成。Block2卫星如图2.2所示。

3

图2.2 Block2卫星图

全球定位系统有很多特点,其主要特点如下: (1) 全天候; (2) 全球覆盖;

(3) 三维定速定时高精度; (4) 快速省时高效率; (5) 应用广泛多功能。

24颗GPS卫星在离地面2万公里的高空上,以12小时的周期环绕地球运行,使得在任意时刻,在地面上的任意一点都可以同时接收到6颗以上GPS卫星的定位信息。只要有4颗卫星的定位信息,GPS接收机就能向用户提供三维坐标、时间及移动速度等信息参数。

由于卫星的位置精确可知,在GPS观测中,我们可得到卫星到接收设备的距离,根据三维坐标中的距离公式,利用3颗卫星,就可以组成3个方程式,解出观测点的位置(X,Y,Z)。考虑到卫星的时钟与接收机时钟之间的误差,实际上有4个未知数,X、Y、Z和钟差,因而需要引入第4颗卫星,形成4个方程式进行求解,从而得到观测点的经纬度和高程。

由于卫星运行轨道、卫星时钟存在误差,大气对流层、电离层对信号的影响,以及人为的SA保护政策,使得民用GPS的定位精度只有100米。美国政府宣布从2000年起,在保证美国国家安全不受威胁的前提下,取消SA政策,GPS民用信号精度在全球

4

范围内得到改善,利用C/A码进行单点定位的精度由100米提高到20米。为了达到更高的定位精度,往往还采用了差分GPS(DGPS)技术,建立基准站(差分台)进行GPS观测,利用已知的基准站精确坐标,与观测值进行比较,从而得出一修正数,并对外发布。接收机收到该修正数后,与自身的观测值进行比较,消去大部分误差,得到一个比较准确的位置。实验表明,利用差分GPS,定位精度可提高到5米。

2.2 GPS信号接收方案选择

要实现在液晶显示器上显示出接收到的GPS数据信息,首先要实现GPS信号的接收。在接收GPS信号方案上可以有两种选择。

第一种方案是选择GPS接收芯片然后再根据芯片设计标准,设计外围电路和安装天线等,选择这个方案的优点是可以掌握到GPS接收部分的电路设计技术,但是这个方案的缺点也是显而易见的,首先实现的难度较大,不容易成功,其次由于GPS接收芯片一般都是厂商直接供货,单独采购价格会很高。

第二种方案是选择成品的GPS接收模块,采用这个方案的优点是由于现阶段GPS接收模块的制造技术已经相当成熟,性能稳定并且使用非常方便,定位成功后直接就可以通过模块输出GPS相关信息。并且在经过大规模的商业化生产后价格已经能被我们所接受,这样的模块在市面上也能够容易的购买到。

从上面的分析可以知道,选择GPS接收模块就能够很好的作为本次设计接收GPS定位信息的解决方案,因此我选择第二种方案来完成本次设计。

2.3 GPS接收模块的研究

GPS接收模块是接收机的关键部分,而且型号很多,功能各异,一般组成结构主要由低噪声下变频器、并行信号通道、CPU、储存器等组成。

GPS接收模块通过它的接收天线获取卫星信号,经过变频、放大、滤波、相关、混频等一系列处理,可以实现对天线视界内卫星的跟踪、锁定和测量。在获取了卫星的位置信息和测算出卫星信号传播时间之后,即可计算出天线位置。用户通过输入输出接口,与GPS接收模块进行信息交换,实现功能。GPS接收模块内部结构如图2.3所示。

5

图2.3 GPS接收模块内部结构

2.4 总体方案的设计

本次设计要求通过单片机控制GPS器件实现定位信息显示功能。在这里使用常见的MCS-51型单片机作为处理器,利用MCS-51单片机的串行接口接收SiRF Star II GPS信号接收模块输出的数据信号,并通过软件方法筛选出其中有用的定位数据,最后通过单片机的并行接口输出至液晶显示模块显示的方案。该GPS定位信息显示系统硬件部分主要由以下几个部分组成:

(1) 接收部分:以SiRF Star II GPS接收模块为核心的GPS接收机; (2) 控制电路:由51单片机作为微处理器控制GPS信号; (3) 显示部分:12864LCD液晶显示模块;

(4) 电源电路部分:用以提供系统工作时所必须的电。

单片机系统:本次设计使用51单片机作为微处理器,控制GPS数据的读取和传输过程。利用其串行接口接收SiRF Star II GPS接收模块输出的NMEA-0183语句数据,并将接收到的数据经过筛选和处理后发送到12864液晶显示器显示。

外围电路:外围电路一部分是由GPS接收器件及其辅助电路组成,一部分是LCD液晶显示模块的电源电路和显示电路。SiRF Star II GPS接收模块主要由变频器、信号通道、存储器、中央处理器和输入输出接口构成。它接收天线获取的卫星信号,经过变频、放大、滤波、相关、混频等一系列处理,可以实现对天线视界内卫星的跟踪、锁定和测量定位。

单片机控制程序:编写程序,实现单片机控制系统的初始化,控制GPS器件完成

6

数据的采集,进行相应的信号处理,并通过单片机接口输出至液晶显示模块显示必要的数据。

由此可知:GPS接收模块将接收到的GPS卫星导航电文调制解码,转换为标准格式后,送给单片机,当单片机接收到GPS发送过来的导航电文后,经过片内程序的识别筛选,将筛选出来的导航电文送到显示模块,并且最后通过液晶显示器按照要求显示出来。

7

第三章 基于单片机的GPS硬件电路设计

3.1 基于单片机的GPS硬件电路总体结构

根据总体设计方案,该基于单片机的GPS硬件电路设计主要由GPS信号接收部分(SiRF Star II GPS信号接收模块)、控制芯片(STC89C52单片机)、显示部分(12864LCD液晶显示模块)这几部分构成。其大体结构框图如图3.1所示。

图3.1 基于单片机的GPS硬件总体结构框图

3.2 基于单片机的GPS定位信息显示系统设计硬件电路简介

3.2.1 STC89C52简介

STC89C52是一个低电压,高性能CMOS 8 位单片机,采用40引脚双列直插封装方式。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容[4]。

STC89C52引脚如图3.2所示:

8

图3.2 STC89C52引脚图

其引脚说明如下: (1) 主电源引脚(2根):

VCC(Pin40):电源输入,接+5V电源; GND(Pin20):接地线。 (2) 外接晶振引脚(2根):

XTAL1(Pin19):片内振荡电路的输入端; XTAL2(Pin18):片内振荡电路的输出端。 (3) 控制引脚(4根):

RST (Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位; ALE/PROG(Pin30):地址锁存允许信号; PSEN(Pin29):外部存储器读选通信号;

EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。

(4) 可编程输入/输出引脚(32根):

9

STC89C52单片机有4组8位的可编程I/O口,分别为P0、P1、P2、P3口,每个口有8根引脚,共32根。

P0口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7; P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7; P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7; P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7。 STC89C52主要功能如表3.1所示。

表3.1 STC89C52主要功能

主要功能特性

兼容MCS51指令系统 32个双向I/O口 3个16位可编程定时/计数器中断 2个串行中断 2个外部中断源 2个读写中断口线 低功耗空闲和掉电模式 (1) 时钟电路

STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图3.3(a) 所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用[5]。

外部方式的时钟电路如图3.3(b)所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。

8K可反复擦写Flash ROM 256x8bit内部RAM 时钟频率0-24MHz 可编程UART串行通道 共6个中断源 3级加密位 软件设置睡眠和唤醒功能

10

(a)内部方式时钟电路 (b)外部方式时钟电路

图3.3 时钟电路

(2) 复位

复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动[6]。

除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表3.2所示。

表3.2 一些寄存器的复位状态

寄存器 PC ACC PSW SP DPTR P0-P3 IP IE TMOD

复位状态 0000H 00H 00H 07H 0000H FFH XX000000B 0X000000B

00H

寄存器 TCON TL0 TH0 TL1 TH1 SCON SBUF PCON

复位状态 00H 00H 00H 00H 00H 00H 不定 0XXX0000B

RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。

整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号[7]。

11

3.2.2 SiRF Star II GPS信号接收模块

该设计中GPS信号接收模块所选用的是SiRF Star II GPS接收模块,该模块是由美国瑟孚科技有限公司所生产。主要使用到的引脚如图3.4所示。该模块具有12通道并行接收能力,所接收的GPS信号属于民用频段的L1信号(1575.42MHz),在没有SA干扰的情况下平均定位误差为10米,动态速度误差为0.1米/秒,信号灵敏度达到-142dBm,冷启动定位时间为42秒,热启动时间为38秒,重新定位时间仅仅需要8秒。

图3.4 SiRF Star II引脚图

GPS数据输出格式为标准的NMEA-0183标准,采集地理信息的更新速率为每两秒一次,地图坐标系为WGS-84坐标系[8]。

该模块天线采用的是体积小、可靠性高、灵敏度高的微带天线,该天线封装在模块内部,更进一步的提高了整个模块的可靠性。该模块实物图如图3.5所示。

图3.5 GPS接收模块

12

它的工作电压为2.7V-3.3V,工作电流仅为75mA,它由GSP2e数字IC、GRF2i射频IC和GSW2模块化软件组成。

GSP2e主要集成了一个增强型GPS内核、一个50MHz 的ARM7 CPU、独立的内部总线和外部总线、1Mb EDO DRAM、高精度实时时钟、GPS接收机外部设备和2个UART。

GRF2i主要由片内压控振荡器和基准振荡器、集成中频滤波器(IF)、集成LNA和数字接口等组成。GSW2模块化软件很容易集成到现有系统中,并提供功能强大的开发环境。

SiRF Star II除增加了中央处理器和卫星信号追踪引擎, SiRF Star II在芯片组中集成了兆位存储器(DRAM) , 这个是其它同类产品的八倍。这使其不仅可执行各项GPS 功能,还能为用户应用提供额外存储。将IF滤波器集成到射频芯片内而无需新增外部滤波器, 从而进一步降低了元件的数目并增加了可靠性。该芯片的主要特征如表3.3所示。

表3.3 SiRF Star II主要特征 SiRF Star II特点 信号捕捉 功 能 从有遮挡地区走出时快速重捕卫星信号 信号跟踪 跟踪弱信号比正常信号信噪比低20dB 单卫星定位 在短暂的仅能收到一颗卫星的情况下定位 多级消除误差 减小GPS反射径带来的误差 差分GPS 周期(大约30分钟)更新星历和修正时间 功率分配 用 处 在遮挡环境下提供更多的定位结果 改善信号可利用性,在信号衰减严重的地方也可定位 在信号阻塞的地区也可定位,适于车载GPS 使GPS定位准确度提高到5m 功率几乎变成了以前的20%,增加使用时间 1s内有800ms的时间接收机工作在不想频繁给出定位结不工作,仅仅有200ms的时果的情况下,节省功耗 间用于重捕、跟踪、定位 3.2.3 12864液晶显示模块介绍

(1) 液晶显示模块概述

13

12864液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16 点阵)、128 个字符(8X16 点阵)及64X256 点阵显示RAM(GDRAM)。12864液晶显示模块引脚如图3.6所示。

图3.6 12864液晶显示电路图

主要技术参数和显示特性:

电源:VDD 3.3V~5V( 内置升压电路,无需负压); 显示内容:128 列× 64 行; 显示颜色:黄绿; 显示角度:6:00钟直视; LCD 类型:STN;

与MCU 接口:8位或4位并行/3位串行; 配置LED 背光;

多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等; 逻辑工作电压(VDD):4.5~5.5V; 电源地(GND):0V;

工作温度(Ta):0~60℃(常温) / -20~75℃(宽温)[9]。 (2) 12864有20接口引脚,引脚说明如表3.4所示。

14

表3.4 12864引脚说明

引脚序号 名称 1 2 3 4 5 6 7 8 9-16 17 18 19 20 CS1# CS2# VSS VDD VO DI R/W E D0-D7 RST VEE VLED+ VLED- 说明 U1片选。 U2片选。 电源地。 电源输入(+5V)。 液晶显示对比度调节。 数据输入。 读写选择。R/W=1,读状态;R/W=0,写状态。 读写使能。 数据总线。 液晶模组复位。RST#=L,复位。 液晶驱动电源。 LED电源正(5.0V)。 LED电源地。 3.3 基于单片机的GPS硬件连接介绍

整个硬件设计要求GPS接收模块输出的信号通过单片机STC89C52、GPS信号接收模块、12864液晶显示模块、电源相连接实现系统功能。硬件电路设计如图3.7所示。

15

图3.7 GPS硬件电路图

16

第四章 基于单片机的GPS软件设计

4.1 NMEA-0183数据格式

NMEA-0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式。它是在过去海用电子设备的标准格式0180和0182的基础上,增加了GPS接收机输出的内容而完成的。目前广泛采用的是Ver 2.00版本。现在除少数早期的GPS接收机外,几乎所有的GPS接收机均采用了这一格式。此协议是为了在不同的GPS导航设备中建立统一的RTCM标准。这种格式的广泛使用使得GPS接收模块的通用化和互换性大大提高。

这种格式所输出的语句采用的是ASCII字符码,包含了纬度、经度、速度、日期、时间、航向、以及卫星信号情况等信息。其串行通信默认参数为:波特率=9600bps,数据位=8bit,开始位=1bit,停止位=1bit,无奇偶校验。

帧格式形如:$aaccc,ddd,ddd,…,ddd*hh (1) “$”:帧命令起始位;

(2) aaccc:地址域,前两位为识别符,后三位为语句名; (3) ddd…ddd:数据; (4) “*”:校验和前缀;

(5) hh:校验和(check sum),$与*之间所有字符ASCII码的校验和(各字节做异或运算,得到校验和后,再转换16进制格式的ASCII字符。)

(6) :CR(Carriage Return) + LF(Line Feed)帧结束,回车和换行。

4.1.1 输入语句

NMEA-0183输入语句是指GPS接收模块可以接收的语句。输入语句包括初始位置,时间,秒脉冲状态,差分模式,NMEA输出间隔等设置信息。这些语句是GPS接收机可以接受的语句。一般情况下初始化信息语句为PGRMI。

$GPRMI,<1>,<2>,<3>,<4>,<5>,<6>,<7>*hh <1>纬度ddmm.mmmm(度分)格式(前面的0也将被传输); <2>纬度半球N(北半球)或S(南半球);

17

<3>经度dddmm.mmmm(度分)格式(前面的0也将被传输); <4>经度半球E(东经)或W(西经); <5>UTC日期,ddmmyy(日月年)格式; <6>UTC时间,hhmmss(时分秒)格式; <7>接收机命令,A=自动定位,R=机器重新启动。 4.1.2 输出语句

SiRF Star II的输出语句有十余种 ,其主要语句有GPALM(历书数据)、GPGGA(GPS标准数据,定位数据)、GPGSV(卫星状态)、GPGSA、GPRMC、GPVTG、PGRME、PGRMF、PGRMT、PGRMV(GARMIN定义的语句,3D速度信息)、LCGLL、LCVTG(NMEA标准语句)等。可通过GPS串口调试软件发送相应的命令语句给SiRF Star II芯片,此后芯片会根据命令语句设置参数。

几种常用的数据格式如下:

(1) GPS标准数据(GPGGA),其结构为:

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<15>

<1> UTC时间,格式为hhmmss.sss;

<2> 纬度,格式为ddmm.mmmm(前导位数不足则补0); <3> 纬度半球,N或S(北纬或南纬);

<4> 经度,格式为dddmm.mmmm(前导位数不足则补0); <5> 经度半球,E或W(东经或西经); <6> 定位质量指示,0=定位无效,1=定位有效;

<7> 使用卫星数量,从00到12(前导位数不足则补0); <8> 水平精确度,0.5到99.9;

<9> 天线离海平面的高度,-9999.9到9999.9米 ; <10> 高度单位,M表示单位米;

<11> 大地椭球面相对海平面的高度,-999.9到9999.9米; <12> 高度单位,M表示单位米;

18

<13> 差分GPS数据期限(RTCM SC-104),最后设立RTCM传送的秒数量; <14> 差分参考基站标号,从0000到1023(前导位数不足则补0); <15> 校验和。

(2) 可视卫星状态输出语句(GPGSV),其结构为:

$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,...,<4>,<5>,<6>,<7>*<8> <1> 总的GSV语句电文数; <2> 当前GSV语句号; <3> 可视卫星总数,00至12; <4> 卫星编号,01至32; <5> 卫星仰角,00至90度;

<6> 卫星方位角,000至359度,实际值;

<7> 信噪比(C/No),00至99dB;无表未接收到讯号; <8> 校验和。

(3) 推荐最小GPS/TRANSIT数据(GPRMC),其结构为:

$GPRMC,<1>,<2>,<2>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*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度;

19

<9>UTC日期,ddmmyy(日月年)格式; <10>磁偏角,000.0~180度;

<11>磁偏角方向,E(东)或W(西);

<12>工作模式:A=自主,D=差分,E=评估,N=数据无效[10]。

4.2 基于单片机的GPS定位系统软件开发环境―Keil uVision2

4.2.1 8051开发工具

Keil uVision2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,它还能嵌入汇编,您可以在关键的位置嵌入。KeilC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器功能的不断增强,使我们可以更加贴近CPU本身及其他的衍生品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包括:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境[11]。

Keil uVision2与同类开发环境具有以下优点:

(1) 真正的集成调试环境,集成了编缉器、编译器、调试器;

(2) 众多强大软硬件调试手段,包括逻辑分析仪、跟踪器、逻辑笔、波形发生器、影子存储器、记时器、程序时效分析、 数据时效分析、硬件测试仪、事件触发器;

(3) 所有类型的单片机集成在一个调试环境下,支持汇编、C、PL/M源程序混合调试; (4) 支持软件模拟,支持项目管理;

(5) 支持点屏功能,直接点击屏幕就可以观察变量的值,方便快捷; (6) 功能强大的观察窗口,支持所有的数据类型; (7) 树状结构显示,一目了然;

(8) 在线直接修改、编译、调试源程序,错误指令定位[12]。 4.2.2 uVision2集成开发环境

(1) 项目管理

20

工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。一个单一的uVision2工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。

uVision2包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定 微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器

(mathaccelerator)的特性。uVision2可以为片外存储器产生必要的连接选项:确定起始地址和规模[13]。

(2) 集成功能

uVision2的强大功能有助于用户按期完工。

集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器;

文件寻找功能:在特定文件中执行全局文件搜索; 工具菜单:允许在V2集成开发环境下启动用户功能; 可配置SVCS接口:提供对版本控制系统的入口; PC-LINT接口:对应用程序代码进行深层语法分析; Infineon的EasyCase接口:集成块集代码产生;

Infineon的DAVE功能:协助用户的CPU和外部程序。DAVE工程可被直接输入uVision2。

4.2.3 编辑器和调试器

(1) 源代码编辑器

uVision2编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。

(2) 断点

uVision2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前),用户启动V2调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。

21

在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置,代码覆盖率信息可以让你区分程序中已执行和未执行的部分。

(3) 调试函数语言

uVision2中,你可以编写或使用类似C的数语言进行调试。 内部函数:如printf, memset, rand及其它功能的函数; 信号函数:模拟产生CPU的模拟信号和脉冲信号; 用户函数:扩展指令范围,合并重复动作。 (4) 变量和存储器

用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进行以下调整: 当前函数的局部变量;

用户在两个不同watch窗口页面上的自定义变量; 堆栈调用(call stack)页面上的调用记录(树)(call tree); 不同格式的四个存储区[14]。 4.2.4 测试程序

uVision2调试器具备所有常规源极调试,符号调试特性以及历史跟踪,代码覆盖,复杂断点等功能。DDE界面和shift语言支持自动程序测试。

(1) CPU和外设模拟装置

uVision2为8051及衍生产品提供了高速CPU模拟功能和片上扩展口.在对话框内可直接观察和修改I/O值,也可以用预装的C-LIKE宏指令书写符号函数来提供动态输入。

(2) 目标监控器

uVision2含一个可配置的监控器,可测试目标器件上的软件体。监控器用uVision2的调试器直接工作,可支持代码区。它要求目标系统具备6字节堆栈空间,6KB的代码ROM和256字节Xdata RAM。

(3) MCB517/251启动工具包

在开始一项8051工程时,MCB启动工具会对你有很大帮助。每一个启动工具包括一套2K字节的开发工具和许多可快速运行的举例程序。用户可在检测8051性能的同时,查看开发工具的可行性。

22

MCB517AC板含高性能InfineonC517A单片机,它提供标准8052外围设备和A/D转换器,PWM,搜索/比较,8位数据指针,一个高速运算单元[15]。同时包含对81C90CAN控制器和代码区的支持。本次设计软件采用了C语言程序编写,并在Keil uVision2开发环境下编译、调试。 4.2.5 Keil C编译步骤

Keil uVision2 C51软件是目前功能最强大的单片机C语言集成开发环境,这里介绍简单的编译步骤。

(1) 运行Keilc51进入编辑界面,如图4.1所示。

图4.1 Keilc51编辑界面

(2) 首先进入菜单project/new project建立一个新工程,如图4.2所示。

图4.2 建立新工程

(3) 选择要保存的路径,输入工程文件的名字,如图4-3所示。

23

图4.3 保存路径

(4) 根据使用的单片机选择相应的型号,如图4.4所示。

图4.4 选择单片机型号

(5) 单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如图4.5所示界面加入源文件。如还没有源文件请先进入菜单File/New生成一个*.C格式的文件。

图4.5 加入源文件界面

24

(6) 进行输出文件设置,进入菜单project/options for target选择OUTPUT选项卡,勾选Crest HEX File项,如图4.6所示。

图4.6 输出文件设置

(7) 程序编写完成后进入菜单Project/Build target编译工程,如图4.7所示。生成的*.HEX文件即可作为下载程序使用[13]。

图4.7 生成文件

4.3 基于单片机的GPS软件设计思路

该GPS设计的核心部分是GPS接收模块与单片机的通讯,以及单片机将收到的信息筛选编排显示位置后送到LCD液晶显示模块显示。

在设计该软件时采用了模块化的思想,之所以采用模块化的设计思想,主要是想到了软件模块化后方便软件的调试,同时也方便了该软件的移植,在不同的硬件平台上运

25

行该软件只需要更改相应的软件模块就可以实现。该软件模块设计分为液晶模块初始化模块,GPS数据接收模块,单片机模块这三个主要模块。其程序流程图如图4.8所示。

图 4.8软件程序流程图

4.4 模块软件设计

4.4.1 液晶模块初始化模块

在该设计中所使用的是12864液晶显示模块,其初始化程序如下所示: #include \void clr_screen() {

Lcd_WriteCmd(0x34); //扩充指令操作 delay(5);

26

Lcd_WriteCmd(0x30); //基本指令操作 delay(5);

Lcd_WriteCmd(0x01); //清屏 delay(5); }

void Lcd_WriteCmd(uchar cmd) { LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; DelayNOP(); LCD_EN = 1; DelayNOP(); LCD_EN = 0;

}

void Lcd_WriteDat(uchar dat) { LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; DelayNOP();

LCD_EN = 1;

27

}

DelayNOP(); LCD_EN = 0;

void Lcd_Init(void) { }

void Lcd_SetPos(uchar X,uchar Y) { uchar pos; if (X==0) {X=0x80;} else if (X==1) {X=0x90;} else if (X==2) {X=0x88;} else if (X==3)

LCD_PSB = 1; //并口方式 Lcd_WriteCmd(0x34); //扩充指令操作 delay(5);

Lcd_WriteCmd(0x30); //基本指令操作 delay(5);

Lcd_WriteCmd(0x0C); //显示开,关光标 delay(5);

Lcd_WriteCmd(0x01); //清除LCD的显示内容 delay(5);

28

{X=0x98;} pos = X+Y ;

Lcd_WriteCmd(pos); //显示地址 }

void Lcd_DispLine(uchar line, uchar pos, uchar *str) { }

4.4.2 GPS数据接收模块

首先要对GPS接收模块是否有信号发送给单片机进行识别,而且由于GPS接收模块发送出来的数据不是我们全部需要的,所以有必要再对语句进行识别,然后取入我们所需要的语句GPRMC。其识别程序如下: if (GPS_RMC_Parse(rev_buf, &GPS)) //解析GPRMC

int i = 0;

Lcd_SetPos(line, pos); while (str[i] != '\\0') { }

Lcd_WriteDat(str[i]); i++;

{ } else

29

RMC_YES;

GPS_DisplayOne(); //显示GPS信息 error_num = 0; gps_flag = 0; rev_stop = 0;

{ error_num++;

if (error_num >= 20) //如果数据无效超过20次 { RMC_NO; error_num = 20;

GPS_Init();

}

gps_flag = 0; rev_stop = 0; REV_NO;

}

程序代码详见附录。 //返回初始化

30

第五章 系统调试与实验结果

完成了系统的硬件设计、制作和软件编程之后,要使系统能够按照设计意图正常运行,必须进行硬件和软件系统调试。

5.1 硬件调试

硬件调试的主要任务是排除硬件故障,其中包括设计的错误和工艺性故障等。 (1) 检查所设计的硬件电路板所有的器件和引脚是否正确。

第一步,我用数字万用表进行了逐一对点的检查,检查各导线间是否有短路与开路的故障。

第二步测输入5V电源(0V地)线是否与电路中的对应点的电源(地)线相连接是否正确;及检查开关是否正常,是否连接正确。

测芯片管座与芯片管座之间用导线连接起来的对应脚是否导通和截止。 (2) 将仿真插头插入单片机插座进行调试,检查各接口是否满足设计的要求。 (3) 将程序代码经过Keil软件仿真生成的(.hex)文件,用编程器将生成的文件导入单片机STC89C52中。

(4) 将写入程序的单片机插入硬件电路单片机管座,查看液晶显示器12864显示结果是否符合设计要求。

5.2 软件调试

软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序的错误,同时也能发现硬件的故障。软件调试是一个模块一个模块进行的,首先单独调试各子程序是否能够按照预期的功能,接口电路的控制是否正常,最后调试整个程序,尤其注意的是各模块间能否正确的传递参数。

(1) 检查12864液晶显示模块程序,观察在液晶显示器上是否能够显示相应的字符。 (2) 检查GPS模块程序,通过观察12864液晶显示情况理解GPS信号接收状况。 (3) 通过GPS模块程序和12864液晶显示模块程序的结合,观察12864液晶显示器上的GPS显示信息。

31

5.3 实验结果

经过软件部分和硬件部分的调试,最后实现了其功能。GPS初始化如图5.1所示。

图5.1 GPS初始化

时间、经纬度显示结果如图5.2所示。

图5.2 时间、经纬度显示结果

32

5.4 实验结果分析

图5-2所示的实验结果是我在合肥学院竹苑A座419寝室测试的结果。谷歌地图显示这个位置的经纬度如图5.3所示。

图5.3 谷歌地图显示结果

GPS定位显示系统设计所测量出来的结果中,时间是很精确的,但是经纬度有所差异,根据我的装置显示的结果是北纬31度45分15秒,东经117度14分51秒。谷歌地图上显示的结果是北纬31.7505度,东经117.2530度。经过单位换算可知,谷歌地图显示的结果是北纬31度45分18秒,东经117度15分10秒。

由于我所选用的GPS接收模块的版本比较低,而且在实验过程中有其他因素干扰,比如天气方面和电离层的影响,以及在谷歌地图上点选的位置有误差,最终使得我所测量的结果与谷歌地图之间有些许误差,但是误差是能够被接受的,因此,本次试验结果是可靠、有效的,满足设计要求。

33

第六章 总结

随着GPS的应用越来越广泛,GPS设备普及速度也将大大加快,在我们国内GPS产业才刚刚起步,GPS产业的兴起势必也将大大的推进GPS在民间的应用。GPS已在各个领域发挥了重要的作用,为促进人类发展作出了不可估量的贡献。

不过由于专业GPS设备价格昂贵,普通消费者难以承受,所以也限制了GPS在民间的大量应用,现在各个GPS厂商的当务之急便是降低GPS的制造成本,削减一些普通消费者平时用不到的专业功能,保留一些基本的实用功能,以加快GPS在民间普及的速度。

本次毕业设计,主要是了解GPS的原理,熟悉GPS接收机的工作原理及其各部分工作流程。GPS信号处理模块由SiRF Star II实现,通过SiRF Star II与MCS-51兼容系列单片机相连,配备了所需的外围电路,同时配有液晶显示器,可以显示字符,并详细介绍了该GPS接收机的硬件和软件设计。

毕业设计是本科学习阶段一次非常重要的理论与实际相结合的机会,通过本次比较完整的设计,我摆脱了单纯的理论知识学习状态,通过理论和实际相结合,锻炼了我的综合运用所学知识的能力,以及解决实际工程的能力,同时也提高了我查阅文献资料、设计手册、设计规范以及绘图的水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都能使我的能力得到提升,经验得到丰富。

顺利如期的完成本次毕业设计给了我很大的信心,让我了解专业知识的同时也对本设计的发展前景充满信心。提高是有限的但也是全面的,正是这一次设计让我积累了无数实际经验,使我的头脑更好地被知识武装起来,让我在未来的工作学习中有更好的应变能力,更强的沟通力和理解力。

由于水平有限和时间问题,有许多不足。本设计只是GPS入门级的设计,不能满足现在市场上日益激烈的竞争环境,实用性还有待提高,功能也有待完善。

总之,在做这次毕业设计的过程中,既复习了已学的专业知识,又学到了实际经验,是我人生中一次难得的学习经历,更是对自己综合能力的考验和提高。

34

致谢

本课题是在王庆龙老师的悉心指导下完成的,论文从选题到写作及最后成稿,王老师都给予了我精心的指导和极大的帮助。王老师渊博的科学知识、远见卓识的科学创新和严谨的治学态度给了我深远的影响,同时王老师随和的性格更让我感到亲切。在设计阶段,王老师在资料搜集、程序调试、论文写作等方面都给予我严格的要求和关键性的指导,在此衷心感谢几个月来王老师对我的关心和指导。

感谢电子系所有老师在毕业设计期间为我们提供良好的实验环境。此外,我还要对在这次设计中,帮助和支持我的同学,表示感谢!

王致忠 2012年5月于合肥学院

35

参考文献

[1] 刘基余.GPS卫星导航定位原理与方法[M],北京:科学出版社,2003. [2] 刘基余,李征航.全球定位系统原理及其应用[M],北京:测绘出版社,1993. [3] 王惠南.GPS导航原理与应用[M],北京:科学出版社,2003.

[4] 潘永雄.新编单片机原理与应用[M],西安:西安电子科技大学出版社,2003. [5] 张鹏.单片机原理及应用[M],成都:电子科技大学出版社,2004.

[6] 张立科.单片机典型模块设计实例导航[M],北京:人民邮电出版社,2000. [7] 余锡存,曹国华.单片机原理及接口技术[M],西安:西安电子科技大学出版社,2010.

[8] 刘晓,伍小东,姚军光,等.基于单片机采集GPS数据系统的设计[J],青岛科技大学学报,2006,27(2):172-175.

[9] 姚敏,郭庆.基于MCS-51系列单片机的GPS独立定位设备的研究[J],计算机与信息技术,2006,2(8):79-82.

[10] 李勇军,杨青,庞树杰,等.基于OEM板的GPS接收机设计[J],农机化研究,

2006,5 (12):109-111.

[11] 王丙祥,李建海.基于89C52的GPS板电路设计与实现[J],西安文理学院学报:

自然科学版,2007,10 (3):98-101.

[12] Anna M.Murphy,Shinichi Tsutsumi,Perer Gaussen. A Low-Power,Low-Cost

Bipolar GPS Receiver Chip[J], IEEE JOURNAL OF SOLID-STATE CIRCUITS. 1997,4 (4):587-591.

[13] 李洪涛.GPS应用程序设计[M],北京:科学出版社,1999.

[14] 许进,周宁.GPS接收机的单片机通讯接口[J],电子器件,1999,22 (3):23-26. [15] 索明何,饶运涛,邢海霞,等.基于单片机的液晶显示系统设计[J],科技广

场,2008,7 (2):22-24.

36

本文来源:https://www.bwwdw.com/article/2g5g.html

Top