版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要在当今这个快速开展的信息化时代,GPS全球定位系统被广泛应用于实际生活中,扮演着重要的角色。它性能良好、精度准确、应用广泛,在当今世界导航定位系统中处于独一无二的尖峰位置。自20世纪90年代向全世界所有国家免费开放以来,以全球化的覆盖、全天候连续实时提供高精度的三维位置、三维速度和时间信息的能力,很好的解决了人类导航和定位等问题。论文讨论基于单片机的GPS接收系统设计,提出了对GPS全球定位系统定位信息的接收以及对各定位参数数据的提取方法,介绍各个器件功能并给出了系统的硬件电路及软件流程图,通过本设计方法,本系统单片机控制GPS模块较为精确地计算和显示日期、时间、经度、纬度等卫星信息。研究GPS的原理与技术的同时,介绍单片机的编程及其应用,液晶显示屏及其实现方法。制作完整的方案,以软硬件相结合的方法来完成整个GPS数据接收和显示的过程。该定位系统的制作与学习完成时,本设计在测控领域的应用开发中具有一定的实用价值和借鉴价值。关键词:单片机GPS导航定位AbstractIntoday'srapiddevelopmentoftheinformationage,GlobalPositioningSystem(GPS)iswidelyusedinreallife.Itplayinganimportantroleinthisworld.Ithasgoodperformance,accurateprecisionandusedwidely.Atauniquepeakpositionofthenavigationandpositioningsystemintoday'sworld.Sincethe1990s,itopenandfreeforallthecountryintheworld,itsolvemanyproblemsofhumannavigationandpositioningverywellbytheglobalizationofthecover,offerthehighprecisionofthreedimensionalpositionaroundtheclockandcontinuousreal-time,thespeedofthe3Dandtheabilityoftimeinformation.PaperdiscussestheGPSreceivingsystembasedonsinglechipdesign,proposedtotheGlobalPositioningSystem(GPS)howtoreceiverspositioninginformationandeachpositioningparametersofdataextractionmethod,itintroduceeachdevicefunction.Thesystemhardwarecircuitandthesoftwareflowchartwasgivenout.Throughthisdesignmethod,thesingle-chipmicrocomputercontrolGPScalculatedexactlyandshowsomeinformationofsatellitelikethedatethetimethelongitudeandthelatitude.AtthesametimewiththeprincipleandtechnologyofGPS,Itintroducetheprogrammingandtheapplicationofthesinglechipmicrocomputer,LCDanditsrealizationmethod.CompletethewholeGPSdatareceivinganddisplaytheprocesswiththemethodofcombiningthesoftwareandhardware,andmakeacompletesolutionstosolveproblems.Whenthepositioningsystemofproductionandlearninghadcompleted,thisdesignispracticalvaluableandreferencevalueableintheapplicationdevelopmentofMeasurementandcontrolfield.Keywords:singlechip,GPS,navigationpositioning目录摘要IAbstractII目录III前言11GPS的组成及根本理论21.1GPS的根本组成21.2GPS系统根本原理31.2.1GPS导航系统根本原理31.2.2GPS接收机31.2.3GPS定位原理42硬件介绍62.1.核心控制模块STC89C5262.1.1STC89C52外观介绍62.1.2STC89C52引脚功能62.1.3STC89C52的主要功能82.1.4STC89C52总控制电路8晶振122.2上拉电阻132.3SIRF3IIIGPS模块142.3.1SIRF3IIIGPS模块参数142.3.2GPSNMEA-0183协议152.3.3NMEA-0183协议详解162.3.4RoyalTek3571LPGPS数据通信192.4蓝色背光字库LCD192.4.1控制器STN7920202.4.2STN7920局部指令详解202.4.3STN7920初始化流程252.4.4STN7920与微机接口253硬件电路273.1系统框图273.2硬件电路设计273.2.1单片机最小系统273.2.2GPS模块设计293.2.3电源模块设计294软件设计314.1主程序流程314.2数据接收处理程序流程324.3程序语句335调试与检测365.1硬件调试365.2软件调试36总结37致谢38参考文献39附件40前言GPS是英文NavigationSatelliteTimingandRanging/GlobalPositioningSystem的字头缩写词〔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年美国国防部将二者合二为一,同时由国防部牵头的卫星导航定位联合方案局领导,将办事机构设立在洛杉矶的空军航天处。组成该机构的成员很多,美国陆军、海军陆战队、交通部、国防制图局、北约和澳大利亚的代表,都是该机构的重要成员。1GPS的组成及根本理论1.1GPS的根本组成GPS的三大重要组成局部分别为空间卫星星座、地面监控站和用户设备。1.GPS空间卫星共有24颗卫星。由21颗工作卫星和3颗在轨备用卫星组成。所有卫星均匀的分布在轨道平面的倾角为55°的6个轨道平面内,卫星的平均高度为20230千米,运行周期为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.2GPS系统根本原理GPS定位系统工作原理是由地面主控站收集各监测站的观测资料和气象信息,计算各卫星的星历表及卫星钟改正数,按规定的格式编辑导航电文,通过地面上的注入站向GPS卫星注入这些信息。GPS导航系统根本原理测量出用户接收机与位置的卫星之间的距离,这是GPS的根本原理。之后结合多颗卫星的数据变可以得知接收机的具体坐标。卫星的位置是根据星载时钟所记录的时间在卫星星历中查出的,而用户到卫星的距离那么通过记录卫星信号传播到用户所经历的时间,再将得到的结果乘以光速。由于大气层电离层的干扰,这一距离并不是用户与卫星之间的真实距离,而是一种叫做伪距〔PR〕的距离。当GPS卫星正常运行时,源源不断地用1和0二进制码元组成的伪随机码〔简称伪码〕发射导航电文。导航电文包括卫星星历、工作状况、时钟改正、电离层时延修正、大气折射修正等信息。这些信息从卫星信号中解调制出来,以50b/s调制在载频上发射。导航电文每个主帧中包含5个子帧每帧长6s。前三帧各为10个字码;每隔三十秒重复一次,每小时更新一次。后两帧一共15000b。导航电文中的内容主要包括遥测码、转换码、第1、2、3数据块,其中最为重要的当数星历数据。当用户接受到导航电文时,提取出卫星时间并将卫星时间与自己的时钟做比照,由此可以得到卫星与用户的距离,这时再利用导航电文中的卫星星历数据推算出卫星发射电文时所处的具体位置,用户在WGS-84大地坐标系中的位置或速度等定位信息。GPS接收机源源不断地发射导航电文是GPS导航系统卫星工作的主要作用。但是,由于卫星星载时钟与用户接受机使用的时钟并不可能时时同步,所以除了用户的三维坐标x、y、z外,还要引进一个Δt的未知数来作为卫星与接收机之间的时间差,在此条件下再利用4个方程解出x、y、z和Δt。因此假设要想了解接收机所处的具体位置,最少也要能接收到4个卫星的信号。GPS接收机能够收到可用于授时的精准度数到达纳秒级的时间信息,还可以用于预报未来几个月内卫星所处概略位置的预报星历,计算定位时所需卫星坐标的播送星历,精度为几米至几十米,以及卫星状况等GPS系统信息。接收机对码的量测可以得到卫星与接收机之间的距离,由于含有接收机卫星钟的误差和大气传播的误差,那么该距离称为伪距。对0A码测得的伪距为UA码伪距,精度约为20米左右,对P码测得的伪距为P码伪距,精度约为2米左右。GPS接收机对收到的卫星信号,进行解码或采用其它技术,将调制在载波上的信息去掉后,就可以恢复载波。载波相位学术上更应被称为载波拍频相位,因为它收到的是受多普勒频移影响的卫星信号载波相位与接收机本机振荡产生信号相位这两者之差。一般情况下,在接收机钟可确定的历元时刻量测,同时保持着对卫星信号的有效跟踪,就可以记录下相位的变化值,但是开始观测时的接收机和卫星振荡器的相位初值是未知的,起始历元的相位整数也是未知的,即整周模糊度,只能在数据处理中作为参数解算。相位观测值的精度高至毫米,但是前提是必须解出整周模糊度,由此而来只有在相对定位、并有一段连续观测值的情况下才能使用相位观测值,而要为到达优于米级的定位,精度也必须只能采用相位观测值。GPS定位原理GPS定位分为两种类型:〔1〕单点定位,根据一台接收机的观测数据来确定接收机位置的方式就是单点定位,它只能采用伪距观测量,可用于车船等的概略导航定位。〔2〕相对定位〔差分定位〕根据两台以上接收机的观测数据来确定观测点之间的相对位置的方法即为相位定位或差分定位,它既可采用伪距观测量也可采用相位观测量,大地测量或工程测量均应采用相位观测值进行相对定位。在GPS观测量中存在很多种误差,其中包括卫星和接收机的种差、大气传播延迟、多路径效应等,在定位计算时还要受到卫星播送星历误差的影响,在进行相对定位时大局部公共误差被削弱或者抵销,因此定位精度将有很大的提升,双频接收机可以根据两个频率的观测量抵消大气中电离层误差的主要局部,在精度要求高,接收机间距离较远时〔大气有明显差异〕,应选用双频接收机。GPS定位的根本原理是根据高速运动的卫星瞬间位置作为的起算数据,采用空间距离前方交会的方法,确定待测点的位置。2硬件介绍2.1.核心控制模块STC89C52本设计需要一个核心控制模块来连接各个局部的工作,STC89C52单片机即为该系统的核心控制模块。STC89C52外观介绍本设计采用宏晶科技生产的STC89C52芯片,芯片采用40脚双列直插式封装,32个I/O口,芯片工作电压3.8~5.5V,工作温度0-70°C〔商业级〕,工作频率可高达30MHz,芯片的外形和引脚见下列图图2.1STC89C52芯片外形图1.1为STC89C52的外形图STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。STC89C52引脚功能图2.2STC89C52引脚图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.7P1口〔Pin1~Pin8〕:8位准双向I/O口线,名称为P1.0~P1.7P2口〔Pin21~Pin28〕:8位准双向I/O口线,名称为P2.0~P2.7P3口〔Pin10~Pin17〕:8位准双向I/O口线,名称为P3.0~P3.7STC89C52的主要功能STC89C52主要功能如下表所示。表2.1STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写FlashROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能STC89C52总控制电路STC89C52总控制电路如下列图:图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,供单片机使用。〔a〕内部方式时钟电路〔b〕外部方式时钟电路图2.4时钟电路2复位电路复位电路保证系统可靠的进行复位且具有一定的抗干扰能力。〔1〕复位操作复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其他一些存放器有影响,它们的复位状态如下表所示。表2.2复位状态对存放器的影响存放器复位状态存放器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H〔2〕复位信号及其产生RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。假设使用颇率为6MHz的晶振,那么复位信号持续时间应超过4us才能完成复位操作。产生复位信号的电路逻辑如图2.6所示:图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端产生高电平,使单片机复位。图2.6两种复位方式592晶振11.0592晶振能够准确的划分时钟频率,与UART〔通用异步接收器/发送器〕量常见的波特率相关。特别是较高的波特率〔19600,19200〕,不管多么乖僻的值,这些晶振都是准确的,常被使用的。目前有许多极好的编译程序能显示代码,在速度和尺寸方面都很有成效。同时,当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD的值(PCON.7双倍速波特率)决定:方式1、3波特率=(定时器1的溢出率)特殊时,定时器被设在自动重袋模式(模式2,TMOD的高四位为0100B),其为:方式1、3波特率=11.0592MHZ晶振的一些典型波特率如下表:表2.311.0592晶振典型波特率波特率SMODTH1192001OFDH96000OFDH48000OFAH24000OF4H12000OF8H3000OAOH更换一种计算方式,它将以修改公式到达我们需求的波特率来计算出晶振。最小晶振频率=波特率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=0FDH19.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.3SIRF3IIIGPS模块SIRF3带TTL和232两种电平输出的GPS的板,GPS开发板带备份电池,使GPS开发板可以具备热启动、暖启动的功能。采用通用的2.54mm间距的排针引出,并且增加了秒脉冲输出及显示,可以通过板载LED来判断定位状态〔绿色LED闪烁即定位成功〕2.3.1SIRF3IIIGPS模块参数RoyalTek3571LP低功耗和小尺寸板是最新的代RoyalTekGPS模块。模块是以最新SiRF和RoyalTek专有导航技术,具有稳定、准确的导航数据。体积小主要应用在移动导航装置,个人定位器,探测器和车辆定位测速照相机。其主要参数见下表。表2.4SIRF3IIIGPS模块主要参数名称主要参数芯片组SIRF3灵敏度-159DB功耗搜索时:45mA定位后:35mA外观尺寸25.4(长)*25.4(宽)*3(高)mm重量7克操作温度摄氏-40℃———+储存温度摄氏-45℃———+工作电压3.3+/1-5%V(VDC)卫星通道20定位资料更新一秒定位时间(平均值)热启动:1秒暖启动:38秒冷启动:42秒定位精度位置:10米圆周误差(CEP)速度:0.1米/秒时间:1微秒使用范围海拔高度:小于18000米速度:小于515米/秒输出格式TTL数据输出(nmea0183)GPGGA,GPGSA,GPGSV,GPRMC,GPVTG,GPGLL可选.地球坐标系WGS84传输速率4800,9600,38400可选天线连接方式外接天线备用电池无模块连接方式贴片2.3.2GPSNMEA-0183协议RoyalTek3571LP内嵌GPSNMEA-0183协议详解NMEA协议是为了在不同的GPS〔全球定位系统〕导航设备中建立统一的BTCM〔海事无线电技术委员会〕标准,由美国国家海洋电子协会〔NMEA-TheNationalMarineElectronicsAssocia-tion〕制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准标准,将位置、速度等信息通过串口传送到PC机、PDA等设备。NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。不过,也有少数厂商的设备使用自行约定的协议比方GARMIN的GPS设备〔局部GARMIN设备也可以输出兼容NMEA-0183协议的数据〕。软件方面NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。下面给出这些常用NMEA-0183的字段定义解释。2.3.3NMEA-0183协议详解NMEA-0183协议定义的语句非常多但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。下面给出这些常用NMEA-0183语句的字段定义解释。$GPGGA例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F字段0:$GPGGA,语句ID,说明该语句为GlobalPositioningSystemFixData〔GGA〕GPS定位信息字段1:UTC时间,hhmmss.sss,时分秒格式字段2:纬度ddmm.mmmm,度分格式〔前导位数缺乏那么补0〕字段3:纬度N〔北纬〕或S〔南纬〕字段4:经度dddmm.mmmm,度分格式〔前导位数缺乏那么补0〕字段5:经度E〔东经〕或W〔西经〕字段6:GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算字段7:正在使用的卫星数量〔00-12〕〔前导位数缺乏那么补0〕字段8:HDOP水平精度因子〔0.5-99.9〕字段9:海拔高度〔-9999.9-99999.9〕字段10:地球椭球面相对大地水准面的高度字段11:差分时间〔从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空〕字段12:差分站ID号0000-1023〔前导位数缺乏那么补0,如果不是差分定位将为空〕字段13:校验值$GPGSA例:$GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A字段0:$GPGSA,语句ID,说明该语句为GPSDOPandActiveSatellites〔GSA〕当前卫星信息字段1:定位模式,A=自动手动2D/3D,M=手动2D/3D字段2:定位类型,1=未定位,2=2D定位,3=3D定位字段3:PRN码〔伪随机噪声码〕,第1信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段4:PRN码〔伪随机噪声码〕,第2信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段5:PRN码〔伪随机噪声码〕,第3信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段6:PRN码〔伪随机噪声码〕,第4信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段7:PRN码〔伪随机噪声码〕,第5信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段8:PRN码〔伪随机噪声码〕,第6信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段9:PRN码〔伪随机噪声码〕,第7信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段10:PRN码〔伪随机噪声码〕,第8信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段11:PRN码〔伪随机噪声码〕,第9信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段12:PRN码〔伪随机噪声码〕,第10信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段13:PRN码〔伪随机噪声码〕,第11信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段14:PRN码〔伪随机噪声码〕,第12信道正在使用的卫星PRN码编号〔00〕〔前导位数缺乏那么补0〕字段15:PDOP综合位置精度因子〔0.5-99.9〕字段16:HDOP水平精度因子〔0.5-99.9〕字段17:VDOP垂直精度因子〔0.5-99.9〕字段18:校验值$GPRMC例:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,*hh字段0:$GPRMC,语句ID,说明该语句为GPSSatellitesinView〔GSV〕可见卫星信息字段1:UTC时间,hhmmss.sss(时分秒.毫秒)格式字段2:定位状态,A=有效定位,V=无效定位字段3:纬度ddmm.mmmm(度分)格式(前面的0也将被传输)字段4:纬度半球N(北半球)或S(南半球)字段5:经度dddmm.mmmm(度分)格式(前面的0也将被传输)字段6:经度半球E(东经)或W(西经)字段7:地面速率(000.0~999.9节,前面的0也将被传输)字段8:地面航向(000.0~359.9度,以正北为参考基准,前面的0也将被传输)字段9:UTC日期,ddmmyy(日月年)格式字段10:磁偏角(000.0~180.0度,前面的0也将被传输)字段11:磁偏角方向,E(东)或W(西)字段12:模式指示(仅NMEA01833.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)其他字段定义解释与该段语句类似。具体详见该协议。2.3.4RoyalTek3571LPGPS数据通信RoyalTek3571LPGPS数据通信见下列图:图2.7RoyalTek3571LPGPS数据通信由图可见该模块与微机通信只需一个串口便可实现,假设程序中内嵌NMEA-0183协议,便可实现GPS数据解析,具体有关协议解析的程序设计将在第四章软件设计中介绍。2.4蓝色背光字库LCD12864LCD蓝色背光,带字库。提供8位,4位并行接口及串行接口可选。并行接口适配M6800时序,自动电源启动复位功能内部自建振荡源。64×16位字符显示RAM(DDRAM最多16字符×4行,LCD显示范围16×2行)2M位中文字型ROM(CGROM),总共提供8192个中文字型(16×16点阵)。16K位半宽字型ROM(HCGROM),总共提供126个西文字型(16×8点阵)。64×16位字符产生RAM(CGRAM)。本设计采用的液晶为采用ST7920驱动器的液晶显示器其内部有丰富的可用资源包括自带字库其中包含了内建BIG-5码繁体中文字型库,内建GB码简体中文字型库。因此在设计的时候可以不用生产显示的汉字点阵直接在程序中定义需要显示的文字因此在很大程度上降低了程序的设计复杂程度。2.4.1控制器STN7920本设计采用的液晶为采用ST7920驱动器的液晶显示器其内部有丰富的可用资源包括自带字库其中包含了内建BIG-5码繁体中文字型库,内建GB12864LCD中文图形液晶模块的软件特性主要由ST7920控制驱动器决定。ST7920同时作为控制器和驱动器,它可提供33路com输出和64路seg输出。在驱动器ST7921的配合下,最多可以驱动256×32点阵液晶。2.4.2STN7920局部指令详解1去除显示〔CLEAR〕格式00000001将DDRAM填满“20H〞〔空格〕代码,并且设定DDRAM的地址计数器〔AC〕为00H,更新设置进入设定点将I/D设为1,游标右移AC加1。2地址归0〔HOME〕格式0000001X设定DDRAM的地址存放器为00H,并且将游标移到开头原点位置;这个指令并不改变DDRAM的内容。3进入设定点〔ENTRYMODESET〕初始值:06H格式000001I/DS指定在显示数据的读取与写入时,设定游标的移动方向及指定显示的移位I/D=1,游标右移,DDRAM地址计数器〔AC〕加1,I/D=0,游标左移,DDRAM地址计数器〔AC〕减1。S:显示画面整体位移见下表表2.5显示画面整体位移SI/D功能描述HH画面整体左移HL画面整体右移4显示开关设置〔DISPLAYSTATUS〕初始值:08H格式00001DCB控制整体显示开关,游标开关,游标位置显示反白开关,D=1,整体显示开;D=0,整体显示关,但是不改变DDRAM内容C=1,游标显示开;C=0,游标显示关B=1,游标位置显示反白开,将游标所在地址上的内容反白显示;B=0,正常显示。5游标或显示移位控制(CURSORANDDISPLAYSHIFTCONTORL)初始值:0001XXXXB〔X=0,1〕格式0001S/CR/LXX这条指令不改变DDRAM的内容见下表表2.6游标移动方向S/CR/L方向AC的值LL游标向左移动AC=AC-1LH游标向右移动AC=AC+1HL显示向左移动,游标跟着移动AC=ACHH显示向右移动,游标跟着移动AC=AC6功能设定(FUNCTIONSET)初始值:0011X0XXB(X=0,1)格式001DLX0/REXXDL:8/4位接口控制位,DL=1,8位MPU接口;DL=1,4位MPU接口RE:指令集选择控制位。RE=1,扩充指令集;RE=0,根本指令集。同一指令的动作不能同时改变DL和RE,需先改变DL再改变RE才能确保设置正确。7设定CGRAM地址格式10A5A4A3A2A1A0设定CGRAM地址到地址计数器〔AC〕,AC范围为00H~3FH需确认扩充指令中SR=0〔卷动位置或RAM地址选择〕。8设定DDRAM地址格式10A5A4A3A2A1A0设定DDRAM地址到地址计数器〔AC〕第一行AC范围80H~8FH,第二行AC范围90H~9FH。备注:ST7920控制器的128×64点阵液晶其实原理上等同256×32点阵,第三行对应的DDRAM地址紧接第一行;第四行对应的DDRAM地址紧接第二行。用户在使用行反白功能时,如果第一行反白,第三行必然反白。第二行反白,第四行必然反白。这是正常现象。9读取忙标志和地址(RS=0,R/W=1)格式BFA6A5A4A3A2A1A0读取忙标志以确定内部动作是否完成,同时可以读出地址计数器〔AC〕的值。写显示数据到RAM(RS=1,R/W=0)格式D7D6D5D4D3D2D1D0当显示数据写入后会使AC改变,每个RAM〔CGRAM,DDRAM〕地址都可以连续写入2个字节的显示数据,当写入第二个字节时,地址计数器〔AC〕的值自动加一。读取显示RAM数据〔RS=1,R/W=1〕格式D7D6D5D4D3D2D1D0读取后会使AC改变设定RAM〔CGRAM,DDRAM〕地址后,先要Dummyread一次后才能读取到正确的显示数据,第二次读取不需要Dummyread,除非重新设置了RAM地址。STN7920扩充指令详细说明扩充指令如表2.6所示:表2.7member表的逻辑结构控制信号控制代码执行时间RSR/WD7D6D5D4D3D2D1D0待命模式000000000172us卷动地址或RAM地址选择000000001SR72us反白显示00000001R1R072us睡眠模式0000001SLXX72us扩充功能设定00001DLX1/REG072us设定绘图RAM地址001000A3A2A1A072usA6A5A4A3A2A1A01待命模式格式00000001进入待命模式,执行如何其它指令都可以结束待命模式;该指令不能改变RAM的内容。2卷动位置或者RAM地址选择初始值:02H格式0000001SR当SR=1时,允许输入垂直卷动地址,当SR=0时,允许设定CGRAM地址〔根本指令〕。3反白显示初始值:04H格式0000010R0选择2行中的任意一行作反白显示,并可决定反白与否。R0初始值为0,第一次执行时为反白显示,再次执行时为正常显示通过R0选择要作反白处理的行:R0=0第一行,R0=1第二行。说明:参考根本指令详细说明中的DDRAM地址说明。128×64点阵的液晶执行反白功能时实用意义不大,因为一三行连在一起,二四行连在一起,用户对第一行执行反白显示操作时,第三行必然也反白显示。4睡眠模式初始值:000010XXB(X=0,1)格式00001SL00SL=1,脱离睡眠模式;SL=0,进入睡眠模式。5扩充功能设定初始值:001DLX100B(DL=1,8BIT并口;DL=0,4BIT并口 X=0,1)格式001DLXREGXDL:8/4位接口控制位DL=1,8位MPU接口;DL=1,4位MPU接口RE:指令集选择控制位RE=1,扩充指令集;RE=0,根本指令集G:绘图显示控制位G=1,绘图显示开;G=0,绘图显示关。同一指令的动作不能同时改变RE及DL、G,需先改变DL或G再改变RE才能确保设置正确。6设定绘图RAM地址格式1000A3A2A1A0A6A5A4A3A2A1A0设定GDRAM地址到地址计数器〔AC〕,先设置垂直位置再设置水平位置〔连续写入2字节数据来完成垂直与水平坐标的设置〕垂直地址范围:AC6~AC0,水平地址范围:AC3~AC0。2.4.3STN7920初始化流程开电源初始化量程设定点06H显示开关0C0H去除屏幕开电源初始化量程设定点06H显示开关0C0H去除屏幕01H功能设定功能设定控制字30H控制延时>40msXRESET滴——>高延时>100us字延时>10ms延时>100us控制延时>37us图2.8STN7920初始化流程2.4.4STN7920与微机接口图2.9STN7920与微机接口3硬件电路3.1系统框图系统框图如下:图3.1系统框图3.2硬件电路设计硬件电路的设计包括单片机最小系统、GPS模块以及电源模块的设计。单片机最小系统图3.2单片机最小系统系统采用11.0592MHZ晶振,串口方式1接受GPS信息,P1口和P3口用于12864LED液晶显示接口,可以显示实时时间、纬度、经度及其它GPS数据信息。本系统主要有两个硬件模块组成;GPS接收模块和液晶显示模块。GPS模块用于接收GPS卫星的信号,并计算出模块测试点所在位置的卫星信息。采用的GPS模块由变频器、信号通道、微处理器、存储单元和接收天线组成。单片机主控制器的串口接收口连接GPS模块数据发送端接收卫星信息。液晶显示模块用于显示接收到的数据信息。12864数据连接单片机P1口,双电源供电。GPS模块设计图3.3GPS模块电路根据Royaltek官方提供的设计文档上图为本次设计任务的GPS模块实际电路图。由图可见,该模块只需要简单的外围元件即可工作。需要注意的是,模块的工作电压为3.3V,如果加上5V电压可能会造成该模块损坏,造成模块无法工作。即要设计附加稳压器的电源模块。电源模块设计图3.4电源电路GPS模块的工作电压为3.3V,如果加上5V电压可能会造成该模块损坏,造成模块无法工作。因此该模块应运而生。由一对稳压器和一对电容组成的电源模块使得GPS可以平安正常运行。同时为GPS的移动性提供了很大的方便。4软件设计4.1主程序流程全球定位系统的主程序流程如下列图:图4.1GPS主程序流程图系统软件主要由初始化模块、数据接收处理模块组成。初始化模块完成开机上电后对单片机、液晶显示器和GPS模块的初始化工作。对单片机设置串口工作模式、设置波特率和中断工作模式;对液晶显示器设置开机画面和显示模式;完成对GPS模块串口的成功通信。4.2数据接收处理程序流程数据接收处理模块负责处理从GPS接收到的数据。在单片机串口收到信息后,先判别是否为语句导头“$〞,再接收信息内容,然后根据语句标识区分出信息类别以对收到ASCII码进行处理显示。本设计中,接收时主要提取并存储以下数据内容;当前日期、时间、定位状态、纬度、经度。特别注意的是GPS发送的时间是世界统一时,与我国的时区相差八个小时,所以还要将时间作转换。北京时间应在UTC时间上加上8小时才是准确的北京时,在超出24小时时应作减24小时处理。转换时间要考虑到年月日的变更。数据更新率为每秒一次。系统工作时GPS模块不断得到新的数据,单片机不断刷新RAM,处理完后的数据送液晶显示器显示。数据接收处理程序流程图如下图4.2数据接收处理程序流程图4.3程序语句在串行中断接收GPS信号中,下面以时间提取为例,由判断帧头打破数据的分段提取方法程序如下:intGPS_RMC_Parse(char*line,GPS_INFO*GPS){ ucharch,status,tmp; floatlati_cent_tmp,lati_second_tmp; floatlong_cent_tmp,long_second_tmp; floatspeed_tmp; char*buf=line; ch=buf[5]; status=buf[GetComma(2,buf)]; if(ch=='C')//如果第五个字符是C,($GPRMC) { if(status=='A')//如果数据有效,那么分析 { GPS->NS=buf[GetComma(4,buf)]; GPS->EW=buf[GetComma(6,buf)]; GPS->latitude=Get_Double_Number(&buf[GetComma(3,buf)]); GPS->longitude=Get_Double_Number(&buf[GetComma(5,buf)]); GPS->latitude_Degree=(int)GPS->latitude/100;//别离纬度 lati_cent_tmp=(GPS->latitude-GPS->latitude_Degree*100); GPS->latitude_Cent=(int)lati_cent_tmp; lati_second_tmp=(lati_cent_tmp-GPS->latitude_Cent)*60; GPS->latitude_Second=(int)lati_second_tmp; GPS->longitude_Degree=(int)GPS->longitude/100; //别离经度 long_cent_tmp=(GPS->longitude-GPS->longitude_Degree*100); GPS->longitude_Cent=(int)long_cent_tmp; long_second_tmp=(long_cent_tmp-GPS->longitude_Cent)*60; GPS->longitude_Second=(int)long_second_tmp; speed_tmp=Get_Float_Number(&buf[GetComma(7,buf)]);//速度(单位:海里/时) GPS->speed=speed_tmp*1.85;//1海里=1.85公里 GPS->direction=Get_Float_Number(&buf[GetComma(8,buf)]);//角度 GPS->D.hour=(buf[7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论