搜档网

搜档网

当前位置:搜档网 > 基于单片机的GPS定位器设计

基于单片机的GPS定位器设计

摘要

在当今这个快速发展的信息化时代,GPS全球定位系统被广泛应用于实际生活中,扮演着重要的角色。它性能良好、精度准确、应用广泛,在当今世界导航定位系统中处于独一无二的尖峰位置。自20世纪90年代向全世界所有国家免费开放以来,以全球化的覆盖、全天候连续实时提供高精度的三维位置、三维速度和时间信息的能力,很好的解决了人类导航和定位等问题。

论文讨论基于单片机的GPS接收系统设计,提出了对GPS全球定位系统定位信息的接收以及对各定位参数数据的提取方法,介绍各个器件功能并给出了系统的硬件电路及软件流程图,通过本设计方法,本系统单片机控制GPS模块较为精确地计算和显示日期、时间、经度、纬度等卫星信息。研究GPS的原理与技术的同时,介绍单片机的编程及其应用,液晶显示屏及其实现方法。制作完整的方案,以软硬件相结合的方法来完成整个GPS数据接收和显示的过程。

该定位系统的制作与学习完成时,本设计在测控领域的应用开发中具有一定的实用价值和借鉴价值。

关键词:单片机 GPS 导航定位

Abstract

In today's rapid development of the information age, Global Positioning System (GPS) is widely used in real life.It playing an important role in this world. It has good performance, accurate precision and used widely.At a unique peak position of the navigation and positioning system in today's world .Since the 1990s,it open and free for all the country in the world,it solve many problems of human navigation and positioning very well by the globalization of the cover,offer the high precision of three dimensional position around the clock and continuous real-time, the speed of the 3D and the ability of time information.

Paper discusses the GPS receiving system based on singlechip design,proposed to the Global Positioning System (GPS) how to receivers positioning information and each positioning parameters of data extraction method,it introduce each device function .The system hardware circuit and the soft ware flow chart was given out.Through this design method,the single-chip microcomputer control GPS calculated exactly and show some information of satellite like the date the time the longitude and the latitude. At the same time with the principle and technology of GPS,It introduce the programming and the application of the singlechip microcomputer,LCD and its realization http://www.sodocs.net/doc/c691fc8702d276a200292ead.htmlplete the whole GPS data receiving and display the process with the method of combining the software and hardware,and make a complete solutions to solve problems.

When the positioning system of production and learning had completed,this design is practical valuable and reference valueable in the application development of Measurement and control field. Keywords:singlechip ,GPS,navigation positioning

目录

摘要.............................................................................. 错误!未定义书签。Abstract....................................................................................................... II 目录.............................................................................................................. I II 前言. (1)

1 GPS的组成及基本理论 (2)

1.1 GPS的基本组成 (2)

1.2 GPS系统基本原理 (3)

1.2.1 GPS导航系统基本原理 (3)

1.2.2 GPS接收机 (3)

1.2.3 GPS定位原理 (4)

2 硬件介绍 (6)

2.1.核心控制模块STC89C52 (6)

2.1.1 STC89C52外观介绍 (6)

2.1.2 STC89C52引脚功能 (6)

2.1.3 STC89C52的主要功能 (8)

2.1.4 STC89C52总控制电路 (8)

2.1.5.0592晶振 (12)

2.2上拉电阻 (13)

2.3 SIRF 3III GPS模块 (14)

2.3.1 SIRF 3III GPS模块参数 (14)

2.3.2 GPS NMEA-0183协议 (15)

2.3.3 NMEA-0183协议详解 (16)

2.3.4 RoyalTek3571LP GPS数据通信 (19)

2.4蓝色背光字库LCD (19)

2.4.1 控制器STN7920 (20)

2.4.2 STN7920部分指令详解 (20)

2.4.3 STN7920初始化流程 (25)

2.4.4 STN7920与微机接口 (25)

3 硬件电路 (27)

3.1 系统框图 (27)

3.2 硬件电路设计 (27)

3.2.1 单片机最小系统 (27)

3.2.2 GPS模块设计 (29)

3.2.3 电源模块设计 (29)

4 软件设计 (31)

4.1 主程序流程 (31)

4.2数据接收处理程序流程 (32)

4.3程序语句 (33)

5调试与检测 (36)

5.1 硬件调试 (36)

5.2 软件调试 (36)

总结 (37)

致谢 (38)

参考文献 (39)

附件 (40)

前言

GPS是英文Navigation Satellite Timing and Ranging/Global Positioning System 的字头缩写词(NAVSTAR/GPS)的简称。其含义为,由卫星的测时和测距经行导航,而构成的全球卫星定位系统。国际上已经公认将这一全球定位系统简称为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系统的研发成功有着重要的奠基作用。海军计划主要用于为舰船提供低动态的二维定位,空军的计划则是用于为其提供高动态服务,但是系统类型太过于复杂。由于同时研制两个系统会造成巨大的费用,并且这里两个计划都是为了提供全球定位而设计的,因此1973年美国国防部将二者合二为一,同时由国防部牵头的卫星导航定位联合计划局领导,将办事机构设立在洛杉矶的空军航天处。组成该机构的成员很多,美国陆军、海军陆战队、交通部、国防制图局、北约和澳大利亚的代表,都是该机构的重要成员。

1 GPS的组成及基本理论

1.1 GPS的基本组成

GPS的三大重要组成部分分别为空间卫星星座、地面监控站和用户设备。

1.GPS空间卫星共有24颗卫星。由21颗工作卫星和3颗在轨备用卫星组成。所有卫星均匀的分布在轨道平面的倾角为55°的6个轨道平面内,卫星的平均高度为20200千米,运行周期为11h58分钟。空间卫星用L波段的两个无线电载波分别向广大用户连续不断地发送含有卫星的位置信息的导航定位信号,使得卫星成为一个动态的已知点。存在于在地球的任何地点、任何时刻、在高度15°以上。平均可同时观测到6颗至9颗卫星。GPS卫星产生两组电码,一组称为P码(ProciseCode10123MHz)。一组频率 1.023MHz,重复周期一毫秒,码间距1微秒,相当于300m,称为C/A码(Coarse/AcquisitionCode11023MHz)。一组频率10.23MHz,重复周期266.4天,码间距0.1微秒,相当于30m,称为P码(ProciseCode10123MHz)。

2.地面控制部分是由5个全球监测站、3个地面控制站和一个主控站组成。5个监测站均配装有精密的铯钟和能够连续测量到所有可见卫星的接收机。监测站将取得的卫星观测数据,包括电离层和气象数据,经过初步处理后,传送到主控站。主控站从各监测站收集跟踪数据,计算出卫星的轨道和时钟参数,然后将结果送到3个地面控制站。地面控制站在每颗卫星运行至上空时,把这些导航数据及主控站指令注入到卫星。这种注入每颗GPS卫星每天一次,并在卫星离开注入站作用范围之前进行最后的注入。如果某地面站发生故障,那么在卫星中预存的导航信息还可以用一段时间,但导航精度会随之慢慢越降越低。

3.GPS用户设备由GPS接收机、数据处理软件及其终端设备(如计算机)等组成。GPS接收机可以捕获到按一定卫星高度截止角所选择的待测卫星的信号,跟踪卫星的运行,并且对信号进行交换、放大和处理,再通过计算机和相应软件,经过基线解算、网平差,而求出GPS接收机

中心的三维坐标。GPS接收机的结构分为两部分。分别为天线单元和接收单元。体积小,重量轻等指标渐渐成为优质接收机的标准。

1.2 GPS系统基本原理

GPS定位系统工作原理是由地面主控站收集各监测站的观测资料和气象信息,计算各卫星的星历表及卫星钟改正数,按规定的格式编辑导航电文,通过地面上的注入站向GPS卫星注入这些信息。

1.2.1 GPS导航系统基本原理

测量出用户接收机与已知位置的卫星之间的距离,这是GPS的基本原理。之后结合多颗卫星的数据变可以得知接收机的具体坐标。卫星的位置是根据星载时钟所记录的时间在卫星星历中查出的,而用户到卫星的距离则通过记录卫星信号传播到用户所经历的时间,再将得到的结果乘以光速。由于大气层电离层的干扰,这一距离并不是用户与卫星之间的真实距离,而是一种叫做伪距(PR)的距离。当GPS卫星正常运行时,源源不断地用1和0二进制码元组成的伪随机码(简称伪码)发射导航电文。导航电文包括卫星星历、工作状况、时钟改正、电离层时延修正、大气折射修正等信息。这些信息从卫星信号中解调制出来,以50b/s调制在载频上发射。导航电文每个主帧中包含5个子帧每帧长6s。前三帧各为10个字码;每隔三十秒重复一次,每小时更新一次。后两帧一共15000b。导航电文中的内容主要包括遥测码、转换码、第1、2、3数据块,其中最为重要的当数星历数据。当用户接受到导航电文时,提取出卫星时间并将卫星时间与自己的时钟做对比,由此可以得到卫星与用户的距离,这时再利用导航电文中的卫星星历数据推算出卫星发射电文时所处的具体位置,用户在WGS-84大地坐标系中的位置或速度等定位信息。

1.2.2 GPS接收机

源源不断地发射导航电文是GPS导航系统卫星工作的主要作用。但是,由于卫星星载时钟与用户接受机使用的时钟并不可能时时同步,所

以除了用户的三维坐标x、y、z外,还要引进一个Δt的未知数来作为卫星与接收机之间的时间差,在此条件下再利用4个方程解出x、y、z 和Δt。因此若要想了解接收机所处的具体位置,最少也要能接收到4个卫星的信号。GPS接收机能够收到可用于授时的精准度数达到纳秒级的时间信息,还可以用于预报未来几个月内卫星所处概略位置的预报星历,计算定位时所需卫星坐标的广播星历,精度为几米至几十米,以及卫星状况等GPS系统信息。

接收机对码的量测可以得到卫星与接收机之间的距离,由于含有接收机卫星钟的误差和大气传播的误差,则该距离称为伪距。对0A码测得的伪距为UA码伪距,精度约为20米左右,对P码测得的伪距为P码伪距,精度约为2米左右。

GPS接收机对收到的卫星信号,进行解码或采用其它技术,将调制在载波上的信息去掉后,就可以恢复载波。载波相位学术上更应被称为载波拍频相位,因为它收到的是受多普勒频移影响的卫星信号载波相位与接收机本机振荡产生信号相位这两者之差。一般情况下,在接收机钟可确定的历元时刻量测,同时保持着对卫星信号的有效跟踪,就可以记录下相位的变化值,但是开始观测时的接收机和卫星振荡器的相位初值是未知的,起始历元的相位整数也是未知的,即整周模糊度,只能在数据处理中作为参数解算。相位观测值的精度高至毫米,但是前提是必须解出整周模糊度,由此而来只有在相对定位、并有一段连续观测值的情况下才能使用相位观测值,而要为达到优于米级的定位,精度也必须只能采用相位观测值。

1.2.3 GPS定位原理

GPS定位分为两种类型:

(1)单点定位,根据一台接收机的观测数据来确定接收机位置的方式就是单点定位,它只能采用伪距观测量,可用于车船等的概略导航定位。

(2)相对定位(差分定位)根据两台以上接收机的观测数据来确定观测点之间的相对位置的方法即为相位定位或差分定位,它既可采用伪距观测量也可采用相位观测量,大地测量或工程测量均应采用相位观测值进行相对定位。

在GPS观测量中存在很多种误差,其中包括卫星和接收机的种差、大气传播延迟、多路径效应等,在定位计算时还要受到卫星广播星历误差的影响,在进行相对定位时大部分公共误差被削弱或者抵销,因此定位精度将有很大的提升,双频接收机可以根据两个频率的观测量抵消大气中电离层误差的主要部分,在精度要求高,接收机间距离较远时(大气有明显差别),应选用双频接收机。

GPS定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置。

2 硬件介绍

2.1.核心控制模块STC89C52

本设计需要一个核心控制模块来连接各个部分的工作,STC89C52单片机即为该系统的核心控制模块。

2.1.1 STC89C52外观介绍

本设计采用宏晶科技生产的STC89C52芯片,芯片采用40脚双列直插式封装,32个I/O口,芯片工作电压3.8~ 5.5V,工作温度0-70°C (商业级),工作频率可高达30MHz,芯片的外形和引脚见下图

基于单片机的GPS定位器设计

图2.1 STC89C52芯片外形

图1.1为STC89C52的外形图STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

2.1.2 STC89C52引脚功能

基于单片机的GPS定位器设计

图2.2 STC89C52引脚图

1、STC89C52引脚功能:

①主电源引脚(2根)

VCC(Pin40):电源输入,接+5V电源

GND(Pin20):接地线

②外接晶振引脚(2根)

XTAL1(Pin19):片内振荡电路的输入端

XTAL2(Pin1):片内振荡电路的输出端

③控制引脚(4根)

RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。

ALE/PROG(Pin30):地址锁存允许信号

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

PSEN(Pin29):外部存储器读选通信号。

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

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

PO口(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

2.1.3 STC89C52的主要功能

STC89C52主要功能如下表所示。

表2.1 STC89C52主要功能

基于单片机的GPS定位器设计

2.1.4 STC89C52总控制电路

STC89C52总控制电路如下图:

基于单片机的GPS定位器设计

图2.3单片机总控制电路

STC89C52的内部电路:

1时钟电路

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

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

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

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

基于单片机的GPS定位器设计

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

图2.4时钟电路

2 复位电路

复位电路保证系统可靠的进行复位且具有一定的抗干扰能力。

(1)复位操作

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

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

基于单片机的GPS定位器设计

(2)复位信号及其产生

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

产生复位信号的电路逻辑如图2.6所示:

基于单片机的GPS定位器设计

图2.5复位信号的电路逻辑图

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

单片机的复位有上电复位和按钮手动复位两种。如图2-12(a)所示为上电复位电路,图(b)所示为上电按键复位电路。上电复位是利用电容充电来实现的,即上电瞬间RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。图2-12 (a)中的R是施密特触发器输入端的一个10K?下拉电阻,时间常数为10×10-6×10×103=100ms。只要VCC的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作。上电复位所需的最短时间是振荡周期建立时间加上2个机器周期时间,在这个时间内RST的电平应维持高于施密特触发器的下阈值。上电按键复位2-12(b)所示。当按下复位按键时,RST端产生高电平,使单片机复位。

基于单片机的GPS定位器设计

图2.6 两种复位方式

2.1.5.0592晶振

11.0592晶振能够准确的划分时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确的,常被使用的。目前有许多极好的编译程序能显示代码,在速度和尺寸方面都很有成效。同时,当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD的值(PCON.7------双倍速波特率)决定:方式1、3波特率=(定时器1的溢出率)

特殊时,定时器被设在自动重袋模式(模式2,TMOD的高四位为0100B),其为:

方式1、3波特率=11.0592MHZ晶振的一些典型波特率如下表:

基于单片机的GPS定位器设计

更换一种计算方式,它将以修改公式达到我们需求的波特率来计算出晶振。

最小晶振频率=波特率x384x2SMOD

这就是我们所需波特率的最小晶振频率,此频率能成倍增加达到我们需求的时钟频率。

例如:波特率为19.2KH2的最小晶振频率:

3.6864=19200x384x2(波特率为19.2K的SMOD为1)

11.0592=3.6864x3

其中TH1是由倍乘数(3)确定

TH1=256-3=253=0FDH

用来确定定时器的重装值,公式也可改为倍乘数的因子:

晶振频率=波特率x(256-TH1)x384x2SMOD

这是波特率为19.24K的晶振频率。

以上的例子可知,被乘数(3)是用来确定TH1:

TH1=256-3=253=0FDH

19.2K波特率的晶振为

11.0592=19200x(256-0FDH)x384x2(19.2k的SMOD为1)

其它值也会得出好的结果,但是11.0592MHZ是较高的晶振频率,也允许高波特率。

2.2上拉电阻

在实际应用中,p0口绝大部分多数情况都是作为单片机系统的地址/数据线使用,当传送地址或数据时,CPU发出控制信号,打开上面的与门,使多路转接开关MUX打向上边,使内部地址/数据线与下面的场效应管反相接通状态。这时的输出驱动电路由于上下两个EET处于反相,形成推拉式电路结构,大大的提高了负载能力。而当输入数据时,数据信号则直接从引脚通过输入缓冲器进入内部总线。

P0口也可作为通用的I/O口使用。这时,CPU发来的控制信号为低电平,封锁了与门,并将输出驱动电路的上拉场效应管截止,而多路的转接开关MUX打向下边,与D锁存器的Q端接通。

当P0口作为输出口使用时,由锁存器和驱动器构成数据输出通路。

由于通路已有输出锁存器,因此数据输出可以与外设直接相接,无需再加上数据锁存器电路。进行数据输出时,来自CPU的写脉冲加在D锁存器的CP端,数据写入D锁存器,并向端口引脚输出。但要注意,由于输出电路是漏极开路电路,必须外接上拉电阻才能有高电平输出。

2.3 SIRF 3III GPS模块

SIRF 3带TTL和232两种电平输出的GPS的板,GPS开发板带备份电池,使GPS开发板可以具备热启动、暖启动的功能。采用通用的2.54mm 间距的排针引出,并且增加了秒脉冲输出及显示,可以通过板载LED来判断定位状态(绿色LED闪烁即定位成功)

2.3.1 SIRF 3III GPS模块参数

RoyalTek3571LP低功耗和小尺寸板是最新的代RoyalTek GPS模块。模块是以最新SiRF和RoyalTek专有导航技术,具有稳定、准确的导航数据。体积小主要应用在移动导航装置,个人定位器,探测器和车辆定位测速照相机。其主要参数见下表。

基于单片机的GPS定位器设计

基于单片机的GPS定位器设计

2.3.2 GPS NMEA-0183协议