完全手册 51单片机c语言开发详解系列之第13章  综合实例――gps接收机_第1页
完全手册 51单片机c语言开发详解系列之第13章  综合实例――gps接收机_第2页
完全手册 51单片机c语言开发详解系列之第13章  综合实例――gps接收机_第3页
完全手册 51单片机c语言开发详解系列之第13章  综合实例――gps接收机_第4页
完全手册 51单片机c语言开发详解系列之第13章  综合实例――gps接收机_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第13章 综合实例GPS接收机,本章通过一个GPS接收机的开发实例,讲解GPS的定位原理及其方法,并通过对图形点阵LCD的操作,实现对GPS定位信号的实时显示。通过该实例,读者能够学习到GPS定位、GPS协议解码、图形点阵LCD等各方面的知识。,13.1 系统结构与分析,GPS是一种用于定位与导航的设备。GPS接收机由核心处理器、GPS接收装置、液晶显示设备组成。GPS接收机能够以经纬度的形式,实时显示用户的当前位置。所有的信号由上空的GPS卫星提供。,13.1.1 GPS接收机功能分析,一个基本的GPS接收机,需要具备以下的功能。能够搜索上空可用的GPS卫星;能够从GPS卫星获得定位数据;对定位数据进行解码,获得需要的定位信息;具备人机界面,能够显示当前的位置(经纬度);具备人机界面,能够显示实时的卫星时钟值;在满足上述条件下尽可能减小成本。,13.1.2 GPS接收机系统分析,本章介绍的GPS接收机,通过集成的GPS模块进行定位信号的结合搜,同时采AT89S51对接收信号进行解码,并通过RS232将测量值发送到上位机,同时通过图形点阵液晶对实时显示当前的定位信号,使在没有计算机进行连接的情况下也能够显示定位信息。,13.2 GPS定位知识简介,随着现今科学技术的发展,人们装备的现代化设备越来越多,随着爱车一族与户外一族的人数越来越多,GPS定位系统运用变得越来越流行。在各种出租车、警卫车、救援车上,GPS定位装置已经成为了必备装备,此外,GPS导航装置也成为了大部分私家车的一种可选装备。在户外运动中,GPS成为了出行的必备武器,也成为了危机时刻救生的定位来源。此外,GPS系统在各种大型建筑物、桥梁工程中也有广泛的运用。,13.2.1 GPS定位的特点,GPS是全球定位系统的简称(Global Positioning System),它是一个中距离圆型轨道卫星导航系统。GPS可以为地球表面98%的地区提供准确的定位、测速和高精度的时间标准。GPS作为一种全球定位系统具备以下一些突出的特点。不受任何天气的影响,全天候工作;范围广,覆盖全球98%地区;通过三维进行定点定速定时,精度高;定位速度快、省时效率高;功能多样化,应用广泛;在移动过程中也可定位。,13.2.2 GPS定位的主要功能,GPS主要有以下一些常见的功能应用。精确定时:广泛应用在通信系统基站、天文台、和电视台中;工程施工:采用GPS设备进行工程测量被大量应用到道路、桥梁、隧道的施工当中;勘探测绘:野外勘探及城区规划;武器导航:精确制导导弹、巡航导弹、炸弹;车辆导航:车辆调度、交通指引、监控系统;船舶导航:远洋导航、港口与内河导航;,13.2.2 GPS定位的主要功能,飞机导航:航线导航、进场着陆控制;星际导航:卫星轨道定位;个人导航:野外探险、个人旅游;车辆定位:车辆防盗系统物品定位:手机,PDA,PPC等通信移动设备防盗;电子地图:移动定位系统;防走失系统:儿童及特殊人群的保护设备。,13.2.3 GPS定位系统的发展历史,GPS又称全球卫星导航系统或全球卫星定位系统,其前身为美军研制的一种子午仪卫星定位系统(Transit),该系统于1958年被研制,在1964年时正式投入使用。Transit系统由5到6颗卫星构成的星网组成,每天最多绕过地球13次,但是无法给出高度信息,在定位精度方面也不尽如人意。子午仪系统使得研发部门对卫星定位取得了初步的经验,并验证了由卫星系统进行定位的可行性,为GPS系统的研制埋下了铺垫。卫星定位显示出了在导航方面的巨大优越性,而子午仪系统又存在对潜艇和舰船导航方面的巨大缺陷,因此美国军方以及民用部门都迫切需要一种新的卫星导航系统。因此,由美国海军研究实验室(NRL)提出了名为Tinmation的构想。该计划用12到18颗卫星组成一个10000km高度的全球定位网。,13.2.4 现今的GPS系统,GPS全球定位系统属于圆型轨道的中距离卫星导航系统,它可以为占地表98%的地区提供准确的定位、测速和高精度的时间标准服务。如图13.3所示,该系统包括了太空中运行的24颗GPS卫星,处于地面上的1个主控站、3个数据注入站和5个监测站和用户端的GPS接收机。,13.2.5 GPS的定位原理,GPS定位的基本原理如下。由于高速运动的卫星瞬间位置为已知坐标,如图13.6所示,采用空间距离后方交会的方法,可以确定待测点的位置。,13.3 GPS通信协议NMEA Protocol,为了在不同的GPS设备之间建立统一的接口,各种GPS设备都有一些统一通信协议,例如NMEA、UBX协议等等。美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定了NMEA协议标准。NMEA-0183协议的标准规范制定了GPS接收机的串口通信协议,通过NMEA协议,可以将定位数据传送到单片机或PC机,并对接收到的数据进行分析处理。,13.3.1 NMEA 协议结构,NMEA协议格式如图所示,有以下几个主要的特点。NMEA通讯协议以$符号为开头;5位标识符确定通讯帧的类型;前两位标识符用于区分GPS信号与属性信号;后三位标识符用于表示帧内容;数据区域通过“,”进行分割,每种类型的数据帧都有固定的数据长度,数据可以为空;以“*”符号开始跟随两个16进制的校验码;每一帧消息均以结尾。,13.3.2 定位信息GPGGA帧,GPGGA是GPS定位信息帧,包含了GPS卫星时间、位置以及确定数据需要的其他参数,如可用卫星数等等。GPGGA的格式定义如下。$GPGGA,hhmmss.ss,Latitude,N,Longitude,E,FS,NoSV,HDOP,msl,m,Altref,m,DiffAge,DiffStation*cs,13.3.3 卫星信息GPGSA帧,GPGSA信息帧记录了当前卫星的信息,其帧格式如下。$GPGSA,Smode,FS,sv,PDOP,HDOP,VDOP*cs,13.3.4 地理定位信息GPGLL帧,GPGLL信息帧记录了当前地理定位信息,包括经度、纬度和UTC时间,其帧格式如下。$GPGLL,Latitude,N,Longitude,E,hhmmss.ss,Valid,Mode*cs,13.3.5 卫星状态GPGSV帧,GPGSV是记录当前接收卫星状态以及上空位置的信息帧,其帧格式如下。$GPGSV,NoMsg,MsgNo,NoSv,sv,elv,az,cno*cs,13.3.6 最小信息GPRMC帧,GPRMC记录了NMEA推荐的最小信息帧,包含了大部分定位导航需要的信息,其帧格式如下。$GPRMC,hhmmss,status,latitude,N,longitude,E,spd,cog,ddmmyy,mv,mvE,mode*cs,13.3.7 地表矢量GPVTG帧,GPVTG记录了接收终端的地表矢量速度,由地表角度和地表速度组成,其帧格式如下。$GPVTG,cogt,T,cogm,M,sog,N,kph,K,mode*cs,13.3.8 残差计算GPGRS帧,GPGRS记录了接收到卫星的残差,其帧格式如下。$GPGRS,hhmmss.ss, mode ,residual*cs,13.3.9 伪随机误差GPGST帧,GPGST记录了接收到卫星的伪随机误差,其帧格式如下。$GPGST,hhmmss.ss,range_rms,std_major,std_minor,hdg,std_lat,std_long,std_alt*cs,13.3.10 时间信息GPZDA帧,GPZDA记录了接收到卫星的时间和日期信息,其帧格式如下。$GPZDA,hhmmss.ss,day,month,year,ltzh,ltzn*cs,13.3.11 自修正GPGBS帧,GPGBS记录了接收接收机的自修正算法结果,其帧格式如下。$GPGBS,hhmmss.ss,errlat,errlon,erralt,svid,probmissed,sv_bias,sv_stdev*cs,13.4 GPS接收机显示终端点阵型LCD液晶,GPS收发器接收GPS定位信号,经过AT89S51进行解码处理后,需要显示给最终用户,用于定位、导航或者测量使用。这即是GPS接收机的人机交互界面,本章采用了点阵型LCD液晶屏作为GPS接收机的最终显示设备。点阵型LCD液晶屏具有以下一些优点:耗电量低; 显示界面灵活;分辨率高;接口灵活,方便各型号单片机使用。,13.4.1 KS0713简介,KS0713是一款集成的图形点阵LCD液晶驱动器,具有65个公共端和132字段的液晶驱动电路。KS0713能够直接与单片机进行连接使用,通信接口包括串行和并行接口。KS0713内置了一块on-chip显示数据RAM,大小为65132,因此处理器只需要更改KS0713内置RAM的内容即可以更改液晶的现实内容,而不需要实时刷新,因此给显示带来极大的灵活性与便利。,13.4.2 KS0713的单片机接口,KS0713与单片机的接口具备串行与并行接口,与单片机的接口由以下几个部分组成。片选:KS0713的片选引脚由CS1B和CS2组成,只有当CS1B为低电平输入和CS2为高电平输入时KS0713才能够和单片机进行接口通讯。当CS1B和CS2的输入不为上述组合时,KS0713的所有引脚都被禁止,从而无法使用。,13.4.3 KS0713的并行通讯时序,在并行接口模式下,不同的通讯方式如图所示。,13.4.4 KS0713的串行通讯时序,与并行接口不同,在串行接口模式下,KS7013在每个时钟的上升沿读取数据,,13.4.5 KS0713的Data RAM,KS0713通过液晶显示接口,控制液晶各段的显示,这个过程主要是通过内置数据RAM实现的。KS0713的内置显示数据RAM保存了所有显示的像素数据,该RAM是一个65行,132列的bits内存阵列。每块RAM能够通过不同的页设置与列坐标进行以字节为单位的访问。,13.4.6 KS0713的列寻址,通过列寻址,KS0713能够控制其132段液晶的与Data RAM的对应关系,如图所示,通过控制ADC的值可以改变列寻址方向,这在做LCD的镜像功能时十分有用。,13.4.7 KS0713的页寻址,联合KS0713的页寻址和列寻址,可以按照字节为单位对KS0713的所有Data RAM进行访问,从而实现了对LCD液晶屏的显示控制,如图所示。,13.4.8 液晶驱动时序,由于引脚个数的限制,KS0713有许多公共驱动端(COM端),因此为了实现整个LCD点阵屏幕的显示,KS0713采用了扫描的方式,由于扫描的速率很高,因此看上去实际上是一副静止的画面。,13.4.9 KS0713的控制指令,单片机通过调用KS0713的控制指令间接地控制LCD液晶屏的显示、开关、亮度以及内存中的数据,如图所示,KS0713共有24条不同的指令。这些指令可以分为以下几个部分。,13.4.10 读显示数据指令Read Display Data,该指令读取当前地址的一个8位字节数据,该指令只在KS0713的并行接口模式下有效,此时RS和RW引脚均为高,如图所示。,13.4.11 写显示数据指令Write Display Data,该指令向当前地址写入一个8位字节数据,该指令只在KS0713的并行接口模式下有效,此时RS引脚必须为高电平,RW引脚必须为低电平,如图所示。,13.4.12 读取状态指令Read Status,该指令用于读取KS0713的内部状态,与读写数据不同,此时RS必须保持为低电平,通过RW控制读写操作,Read Status的指令如图所示。,13.4.13 显示开/关指令Display ON/OFF,该指令用于开关LCD的显示,如图所示。,13.4.14 初始化行指令Initial Display Line,该指令用于对现实的行线进行初始化,具体指令如图所示,通过不同的初始化,可以实现显示图像的上下平移。,13.4.15 参考电压选择指令Reference Voltage Select,该指令用于选择LCD不同的参考电压,该条指令由两部分组成。第一部分用于进入电压选择模式,第二部分为选择参考电压参数,该条指令的两部分必须连续使用,,13.4.16 设置页地址指令Set Page Address,该指令用于选择当前内置Data Ram的显示页,该指令如图,该指令前半字节为标识码“1011”,后半字节为所选择的Page编号。,13.4.17 设置列地址指令Set Column Address,该指令用于设置内存操作的列地址,需要分为两条指令完成,分别是设置高地址,和设置低地址。设置高地址指令由“0001”标识符开头,后面半字节为设置列的高地址,如图,13.4.18 选择ADC指令ADC Select,该指令的功能是设置ADC,该变ADC得值将改变LCD的显示方向,该指令如图所示。,13.4.19 翻转指令Reverse Display ON / OFF,该指令的功能是对现实的LCD图像进行黑白反转,执行该条指令后,所有LCD为显示的区域都将变为空白,所有空白的区域将变为黑色,其指令如图所示。,13.4.20 全满显示指令Entire Display ON / OFF,该条指令可以用液晶点阵填满整个LCD液晶屏,执行该条语句可以用于初始化或者关闭时测试液晶屏是否存在坏点,其指令如图所示。,13.4.21 选择LCD偏移指令Select LCD Bias,设置LCD偏移,该项设置影响LCD的显示度,其指令如图所示。,13.4.22 设置读偏移指令Set Modify-Read,该条指令禁止在读取内存时候地址自动加一的功能,指令格式如图所示。,13.4.23 复位读偏移指令Reset Modify-Read,该条指令与上一条相反,该指令回复读取内存时地址自动加一的功能,指令格式如图所示。,13.4.24 复位治疗Reset,该指令将对KS7013复位,具体指令格式如图13.48所示。,13.4.25 SHL选择指令SHL Select,SHL Select指令制定了COM端的扫描方向,大部分情况下并不影响LCD的显示,指令如图所示。,13.4.26 功耗控制指令Power control,该指令用于选择KS0713的电源供给配置,从而达到降低功耗的效果,如图所示。,13.4.27 线性电阻选择指令Regulator Resistor Select,该指令用于调节内部线性电阻,从而调节LCD显示的内部电压,通过合理的Resistor配置,能够使得LCD的功耗进一步降低,其指令格式如图所示。,13.4.28 设置静态指示状态指令Set Static Indicator State,该指令可以设置LCD的静态工作模式,该指令由两部分组成。第一部分表示进入工作模式设置状态,第二部分对LCD的工作模式进行设置,如图所示。,13.5 GPS接收机硬件电路设计,有了前几节的基础,对于制作一款GPS的接收机的基础知识已经到位,在本节中将讲述具体的硬件电路设计,包括单片机最小系统、GPS接收模块和LCD液晶显示模块等部分。,13.5.1 单片机最小电路,单片机的最小系统电路包含以下几个部分:,13.5.2 电源电路,由于GPS模块需要5V和3.3V两种不同的供电电源,因此供电电路必须使用两种不同的线性稳压电源才能够满足需要。LM7805:用于从电池电源得到5V的稳压电源。LM1117:用于从5V电源得到3.3V的稳压电源。此外,还增加了一个3.3V的供电正常指示灯,如果该灯发光,则表示5V和3.3V电源的供电均为正常,电源电路的原理图如图所示。,13.5.3 GPS模块电路,GPS模块采用的是集成Atmel公司生产的GPS接收芯片的模块电路SDT11,如图所示,该款GPS模块具有体积小,功耗低,接收信号强等优点。,13.5.4 LCD点阵液晶电路,LCD选用的是一款集成了KS0713的12864点阵显示器,具有蓝色背光功能,如图所示。该款产品读者可从进行购买。,13.5.5 内存扩展程序,按照标准的AT89S51扩展电路,使用了74AHC573和UT62256对AT89S51单片机进行了扩展,如图所示,使得可以使用的内存增加32K字节。,13.5.6 GPS接收机硬件原理图,综合之前讲解的硬件设计电路,得到GPS接收机的硬件原理总图,如图所示。,13.6 GPS接收机程序设计,在本节中将要讲解GPS接收机的程序设计,主要讲解内容为GPS NMEA编码的解码方法和LCD的驱动程序,如图所示为该系统程序的工程文件结构。,13.6.1 NMEA基本信息定义info.h分析,在头文件info.h中,定义了NMEA解码需要的关键变量和结构体。(具体内容请参照本书),13.6.2 时间结构定义time.h分析,在头文件time.h中,定义了NMEA日期和时间结构体如下。(具体内容请参照本书),13.6.3 帧类型定义sentence.h分析,在头文件sentence.h中定义了需要解析的NMEA数据格式结构体。首先定义一个枚举型变量如下。(具体内容请参照本书),13.6.4 帧初始化操作sentence.c分析,在sentence.c文件中,针对以上5中解析频率较高的GPS信息帧,编写了各自的初始化函数,定义如下。(具体内容请参照本书),13.6.5 NMEA数据流解码parse.c分析,在parse.c文件中,定义了对NMEA数据流进行解码的底层函数,具体如下。(具体内容请参照本书),13.6.6 NMEA解码封装声明parser.h分析,在头文件Parser.h中,定义了NMEA解码使用的nmeaPARSER结构体,该结构体是组成对GPS NMEA信息进行解码的链表节点的基础。此外在该头文件中对Parser.c中的函数进行了声明。(具体内容请参照本书),13.6.7 解码封装parser.c分析,在parse.c文件中定义了解析NMEA信息的最底层的函数,这些函数在parser.c中继续进行封装,以供上层函数调用。首先定义NMEA Parser链表节点如下,通过链表结构可以保存一定长度的NMEA解析信息。,13.6.8 地理函数声明Mymath.h分析,为了对NMEA解析的地理信息进行处理,需要一些相关的数学计算函数,这些函数在文件math.c中进行了定义,重要的数学常数在Mymath.h中进行了宏定义。,13.6.9 地理计算函数Mymath.c分析,文件Mymath.c中定义了计算地理信息需要的数学计算函数。函数nmea_distance返回两个坐标点之间的直线距离,当所计算点相对比较靠近,可以简化认为两点之间的距离为直线距离,该函数经常用于GPS导航点的距离估计。,13.6.10 字符串处理函数MyFormat.c分析,GPS NMEA数据都是通过ASCII码进行通讯的,在解析数据中经常要使用到一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论