单片机C语言编程与实践第10章GPS模块应用系统设计1.GPS模块的功能特性2.GPS模块的应用编程3.GPS模块的应用示例本章主要内容:1.全球定位系统概述GPS即全球定位系统(GlobalPositioningSystem)是美国从本世纪70年代开始研制,历时20年,耗资200亿美元,于1994年全面建成,具有在海、陆、空进行全方位实时三维导航与定位能力的新一代卫星导航与定位系统。经近10年我国测绘等部门的使用表明,GPS以全天候、高精度、自动化、高效益等显著特点,赢得广大测绘工作者的信赖,并成功地应用于大地测量、工程测量、航空摄影测量、运载工具导航和管制、地壳运动监测、工程变形监测、资源勘察、动力学等多种学科,从而给测绘领域带来一场深刻的技术革命。GPS模块的功能特性1.全球定位系统概述全球定位系统(GlobalPositioningSystem)是美国第二代卫星导航系统。是在子午仪卫星导航系统的基础上发展起来的,它采纳了子午仪系统的成功经验。和子午仪系统一样,全球定位系统由空间部分、地面监控部分和用户接收机三大部分组成。按目前的方案,全球定位系统的空间部分使用28颗高度约2.02万千米的卫星组成卫星星座。24+4颗卫星均为近圆形轨道,运行周期约为11小时58分,如图10-1所示分布在六个轨道面上(每轨道面四颗),轨道倾角为55度。卫星的分布使得在全球的任何地方,任何时间都可观测到四颗以上的卫星,并能保持良好定位解算精度的几何图形(DOP)。这就提供了在时间上连续的全球导航能力。GPS模块的功能特性1.全球定位系统概述地面监控部分包括四个监控站、一个上行注入站和一个主控站。监控站设有GPS用户接收机、原子钟、收集当地气象数据的传感器和进行数据初步处理的计算机。监控站的主要任务是取得卫星观测数据并将这些数据传送至主控站。主控站设在范登堡空军基地。它对地面监控部实行全面控制。主控站主要任务是收集各监控站对GPS卫星的全部观测数据,利用这些数据计算每颗GPS卫星的轨道和卫星钟改正值。上行注入站也设在范登堡空军基地。它的任务主要是在每颗卫星运行至上空时把这类导航数据及主控站的指令注入到卫星。这种注入对每颗GPS卫星每天进行一次,并在卫星离开注入站作用范围之前进行最后的注入。GPS模块的功能特性GPS模块的功能特性2.GPS的基本定位原理GPS的基本定位原理是:卫星不间断地发送自身的星历参数和时间信息,用户接收到这些信息后,经过计算求出接收机的三维位置,三维方向以及运动速度和时间信息。GPS模块的功能特性3.GPS信号接收机GPS信号接收机的任务是:能够捕获到按一定卫星高度截止角所选择的待测卫星的信号,并跟踪这些卫星的运行,对所接收到的GPS信号进行变换、放大和处理,以便测量出GPS信号从卫星到接收机天线的传播时间,解译出GPS卫星所发送的导航电文,实时地计算出测站的三维位置,甚至三维速度和时间。静态定位中,GPS接收机在捕获和跟踪GPS卫星的过程中固定不变,接收机高精度地测量GPS信号的传播时间,利用GPS卫星在轨的已知位置,解算出接收机天线所在位置的三维坐标。而动态定位则是用GPS接收机测定一个运动物体的运行轨迹。GPS信号接收机所位于的运动物体叫做载体(如航行中的船舰,空中的飞机,行走的车辆等)。GPS模块的功能特性3.GPS信号接收机载体上的GPS接收机天线在跟踪GPS卫星的过程中相对地球而运动,接收机用GPS信号实时地测得运动载体的状态参数(瞬间三维位置和三维速度)。接收机硬件、机内软件以及GPS数据的后处理软件包构成了完整的GPS用户设备。GPS接收机的结构分为天线单元和接收单元两大部分。对于测地型接收机来说,两个单元一般分成两个独立的部件,观测时将天线单元安置在测站上,接收单元则置于测站附近的适当地方,并用电缆线将两者连接成一个整机。实际上,也可以将天线单元和接收单元制作成一个整体,而在观测时将其安置在测站点上。GPS模块的功能特性3.GPS信号接收机GPS接收机一般用蓄电池做电源,同时采用机内机外两种直流电源。设置机内电池的目的在于更换外电池时不中断连续观测。在用机外电池的过程中,机内电池自动充电。关机后,机内电池为RAM存储器供电,以防丢失数据。GPS模块的功能特性4.GPS卫星接收模块⑴GPS卫星接收模块功能GPS卫星接收模块(简称GPS模块)是GPS接收系统的核心,它从天线获得GPS信号,经过放大、整理、运算、解码,输出经度、纬度、高度、时间等信息,处理器利用这些信息,来产生不同的应用,如导航、定位、运动轨迹记录等,并通过一定的总线接口和外设备进行数据交换。GPS模块的功能特性4.GPS卫星接收模块⑵GPS卫星接收模块工作原理GPS模块的功能特性4.GPS卫星接收模块⑶GPS模块性能指标衡量GPS模块性能指标主要从卫星轨迹、并行通道、定位时间、定位精度、DGPS功能、信号干扰及电气、物理指标等几个方面GPS模块的功能特性4.GPS卫星接收模块GR-87型GPS模块接口定义管脚名称功能描述1VCC+3.3~5.5VDC电源输入2TXA串口发送A3RXA串口接收A4RXB串口接收B5GND电源地6TIMEMARK/RESET(Option)1PPS时基输出或复位输入(低电平有效)GPS模块的功能特性4.GPS卫星接收模块⑷GPS模块和单片机的硬件连接GPS模块一般通过串口和外设进行数据交换,如果串口是TTL或CMOS电平,则可直接和单片机连接,如果是RS232C电平,则需要通过电平转换电路和单片机连接GPS模块的应用编程1.GPS模块数据通讯协议(1)NMEA-0183协议简介NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-TheNationalMarineElectronicsAssociation)制定的一套通讯协议。GPS模块根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。GPS模块的应用编程1.GPS模块数据通讯协议(2)NMEA-0183协议串行通讯参数NMEA-0183协议规定串行通讯参数:波特率4800,无奇偶校验,数据位8,停止位1。此外,需要说明的是大部分GPS模块的输出数据刷新速率为1秒,即在1秒时间里输出一次GPS模块单枪匹马当前配置的所有数据。GPS模块的应用编程1.GPS模块数据通讯协议(3)NMEA-0183协议报文格式NMEA-0183协议定义的语句非常多,但是常用的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。在具体的GPS应用中,不需要用到NMEA的全部信息,而是根据具体的工作,从中选取所需的信息,忽略其他信息。GPS模块的应用编程1.GPS模块数据通讯协议1)$GPGSV(可见卫星数:GPSSatellitesinView)$GPGSV的基本语句如下:$GPGSV,1,2,3,4,5,6,7*CCCRLF1:GSV语句的总数。2:本句GSV的编号。3:可见卫星的总数(00~12,前面的0也将被传输)。4:卫星编号(01~32,前面的0也将被传输)。5:卫星仰角(00~90度,前面的0也将被传输)。6:卫星方位角(000~359度,前面的0也将被传输)。7:信噪比(00~99dB,没有跟踪到卫星时为空)。8:*后面的“CC”表示校验和,CRLF表示回车换行。GPS模块的应用编程1.GPS模块数据通讯协议2)$GPGGA(GPS定位信息:GlobalPositioningSystemFixData)$GPGGA的基本语句如下:$GPGGA,1,(2),3,4,5,6,7,8,9,M,10,M,11,12*CCCR(LF)1UTC时间hh:mm:sss(时:分:秒)格式2纬度ddmm.mmmm(度分格式)3纬度半球:N(北纬)或S(南纬)4经度dddmm.mmmm(度分格式)5经度半球:E(东经)或W(西经)6GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算7正在使用的用于定位的卫星数量(00~12)GPS模块的应用编程1.GPS模块数据通讯协议8HDOP水平精度因子(0.5~50.0)9海拔高度(-9999.9~99999.9)10地球椭球面相对大地水准面的高度11差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)12差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)GPS模块的应用编程1.GPS模块数据通讯协议3)$GPGSA(当前卫星信息)$GPGSA,1,2,3,3,3,3,3,3,3,3,3,3,3,3,4,5,6*CCCRLF1模式,M=手动,A=自动2定位类型,1=没有定位,2=2D定位,3=3D定位3正在用于定位的卫星号(01~32)4PDOP位置精度因子(0.0~50.0)5HDOP水平精度因子(0.0~50.0)6VDOP垂直精度因子(0.0~50.0)GPS模块的应用编程1.GPS模块数据通讯协议4)$GPRMC(推荐定位信息:RecommendedMinimumSpecificGPS/TRANSITData)$GPRMC语法如下:$GPRMC,1,2,3,4,5,6,7,8,9,10,11,12*CCCRLF1UTC时间,hhmmss(时分秒)2定位状态,A=有效定位,V=无效定位3纬度ddmm.mmmm(度分)4纬度半球:N(北半球)或S(南半球)5经度dddmm.mmmm(度分)GPS模块的应用编程1.GPS模块数据通讯协议6经度半球:E(东经)或W(西经)7地面速率(000.0~999.9节)8地面航向(000.0~359.9度,以北方为参考基准)9UTC日期,ddmmyy(日月年)10磁偏角(000.0~180.0度,GB10,GM10以空值代替)11磁偏角方向:E(东)或W(西)(GB10,GM10以空值代替)12模式指示(A=自主定位,D=差分,E=估算,N=数据无效,GB10,GM10为空值)GPS模块的应用编程1.GPS模块数据通讯协议5)$GPVTG(地面速度信息:TrackMadeGoodandGroundSpeed)$GPVTG的基本语法如下:$GPVTG,1,T,2,M,3,N,4,K,5*ccCRLF1以北方为参考基准的地面航向(000~359度,前面的0也将被传输)2以北方为参考基准的地面航向(000~359度,GB10,GM10为空)3地面速率(000.0~999.9节)4地面速率(0000.0~9999.9公里/小时)5模式指示(A=自主定位,D=差分,E=估算,N=数据无效)GPS模块的应用编程1.GPS模块数据通讯协议6)$GPGLL(定位地理信息:GeographicPosition)$GPGLL的基本语法如下:$GPGLL,1,2,3,4,5,6,7*CCCRLF1纬度ddmm.mmmm(度分格式)2纬度半球:N(北半球)或S(南半球)3经度dddmm.mmmm(度分)4经度半球:E(东经)或W(西经)5UTC时间:hhmmss(时分秒)6定位状态,A=有效定位,V=无效定位7模式指示(A=自主定位,D=差分,E=估算,N=数据无效)GPS模块的应用编程1.GPS模块数据通讯协议7)$GPZDA(当前时间信息)$GPZDA的基本语法如下:$GPZDA,1,2,3,4*