基于单片机的全球定位系统设计
2013-12-28吴瑞坤赖儒华
吴瑞坤 赖儒华
(福建师范大学福清分校电子与信息工程系,福州 350300)
全球定位系统是由美国国防部研制并维护的系统,卫星系统位于地球中距离的圆形轨道上,能为地球表面静止的物体提供准确的定位信息,也能为运动的物体进行定位和速度测量,还能提供精确的时间标准等,目前,民用的GPS定位服务无须授权,且定位精度可达10 m左右。由于它具有功能多、精度高,在不良气候条件下信号仍很稳定等特点,已逐渐代替无线电导航、天文导航等传统导航技术,成为一种普遍适用的导航定位技术。基于定位系统的强大功能,本文设计一种单片机处理的GPS定位系统,它由GPS接收电路、单片机控制电路和液晶显示电路等组成,经过实验测量,该系统具有良好的定位性能。
1 硬件电路
1.1 全球定位系统框图
全球定位系统框图如图1所示,由单片机、GPS接收模块、液晶显示和外接电源组成。系统选用SCT公司C52系列单片机AT89C52作为主控芯片,GPS模块采用SIRF三代的芯片,支持NAEA 0183 GPS协议,可以同时追踪12个卫星信道。
由GPS接收器接收到数据,通过串行通讯的方式,输入并缓存至单片机的可读写存储器RAM中,再通过并口输出到液晶屏显示。使用2个硬件接口电路,用来连接GPS接收模块和液晶屏幕,单片机的读操作和信号识别翻译都用C语言程序来完成。
图1 全球定位系统框图
接收机的任务是对所跟踪卫星信号进行处理和量测。接收机工作时,会不断将接收到的GPS导航信息通过信号传输接口送出并存储到缓存器中,信息本身是一串数据与字符,必须通过处理程序把需要的信息从这些数据中提取出来,并转化成直观的数据,供用户使用[1]。GPS接收电路为 RoyalTek REB-3571LP3E,它具有并行12通道,最多可同时接收12颗卫星,重新连接卫星时间小于2 s,热启动时间为24 s,自动搜索时间为10 s等特点,因采用SIRF3定位芯片,最小定位精度可达1 m。
1.2 控制及显示电路
控制及显示电路如图2所示,主控电路由C52系列单片机AT89C52及其简单的外围电路组成,通过P30/RxD引脚接收来自GPS模块第二脚即TX口的输出信号,经过单片机的程序解码后,再将信号通过单片机P0口输出,作用于液晶显示器12864LCD,将GPS信息转换为中文可读的数据显示出来。
图2 控制及显示电路
单片机 P1口的 P10、P11、P12引脚分别连接LCD的模块的4、5和6引脚,用于控制LCD寄存器选择、LCD读写控制和LCD的使能控制。设计电路中采用并行通讯模式,所以,LCD的第15管脚接单片机的P35,由P35脚输出高电平控制液晶屏幕采用并行通讯的模式进行工作。
单片机P2口的P25,P26,P27引脚用作GPS工作状态指示。P25引脚所接的发光二极管,当P30口接受数据时开始周期闪烁,表明GPS模块开始工作;P26引脚的发光二极管,当GPRMC数据有效时亮,GPRMC无信号时灭;P27所接的发光二极管,当GPGGA数据有效时亮,GPGGA无信号时灭。
2 程序设计
系统程序包含主程序和接收子程序。它们的流程图分别见图3和图4。
单片机工作时,先设置波特率,对LCD进行初始化,并且开放中断。当接收到正确的GPS信息时,将其存入单片机的RAM中,等待微控制器工作,在LCD空闲时把所要显示的数据于LCD上显示。在设计中,选择的工作方式为模式1。电路晶振频率为11.059 2 MHz,波特率为4 800,则设置波特率初始值为 0XFFFA[2]。
GPS的日期、时间、经纬度、卫星数、定位精度等信号含在NEMA语句的GPRMC和GPGGA子语句中,当GPS秒脉冲同步信号上升沿到来时引发的INT0中断,在其中断服务程序中将GPRMC和GPGGA子语句读入,并将日期、时间、经纬度、卫星数、定位精度等信息转换成十进制形式先存入单片机内部RAM中,再输出到LCD显示。
图3 全球定位系统主程序流程图
图4 全球定位系统接收子程序流程图
3 系统调测
3.1 程序测试
由于GPS帧信号支持TTL电平,可通过USB单片机写入工具模拟串口,在计算机上通过软件读取GPS输出的帧信号,便于检测分析。其中GPS帧信息如图5所示,接收到的卫星信号强度及位置如图6及图7所示。
图5 GPS帧信息
图6 卫星信号强度
图7 卫星位置
对GPS进行信息提取必须先明确其帧结构,然后才能根据其结构完成对各定位信息的提取。对于本设计中采用到的GPS接收模块,需要解析的数据可以直接从帧信息中得到。
表示接收到的卫星信号的卫星所在的位置,以平面经纬度表示。
3.2 系统实地测试及分析
选取某大学校园内5个地点,与手机GPS测试数据对比。某学校信号采集点示意图见图8,平面图资料取自谷歌地图。
采集信号的地点分别是:①学校北大门;②学校网球场;③学校教学楼;④学生宿舍楼;⑤灯光篮球场。测量结果如表1所示。
图8 某学校信号采集点示意图
表1 实地测试结果
当系统初始化完毕,信号指示灯开始按周期亮灭,2号灯和3号灯开始亮,表示系统正常工作,接收到GPRMC和GPGGA信号,开始解析输出。系统采集到的GPS卫星时间日期均与手机标准时间符合,证明时间日期的接收解析程序正确。设计中显示的GPS经纬度数据与手机GPS定位的基本吻合,只是因为液晶屏幕的数字显示部分位数限制,导致经纬度秒的部分只能显示秒的整数部分。例如在灯光篮球场5号位置手机定位数据显示是东经119°22'29.662″北纬 25°42'25.998″,而 GPS 定位系统上面只能显示东经 119°22'29″北纬 25°42'25″。分析可见,基于单片机的GPS定位电路在测量时准确度较高,关于经纬度秒的小数部分的显示可以通过算法修改来实现。GPS定位电路上面显示的连接的卫星数跟精确度大体呈正比关系,符合预期的结果。
当解析GPGGA信号时,发现在海拔显示方面不是很准确,不论是手机GPS上面的数据还是设计中的手持式GPS定位系统,都在一个范围内跳变,比较难以获得一个精确的数值。经过分析,GPS测量海拔高度需要一个比较精密的过程,普通的GPS芯片比较难以获得一个准确的数值,只能大体上获得一个范围。所以,测量得到的海拔高度只能作为一个参考,如果要得到一个精确的海拔数据还需要一个更复杂的系统及更高端的芯片。
总之,本设计采用STC89C52与液晶显示模块、GPS接收机等硬件电路,加载设计的应用程序,实现了具有基本导航定位功能的低成本的手持GPS设备。经过实际测试,电路工作正常,能实时显示文本形式的GPS经纬度、当前时间日期、接收卫星数、海拔和定位精度等。
[1]袁雪松.基于GPS的三维因特网超文本信息系统的研究[J].大庆师范大学学报,2005(4):74-78.
[2]周宝林,林知明,李中奇.基于单片机的GPS手持设备的研制[J].华东交通大学学报,2005(4):56-59.