APP下载

基于单片机的手持式GPS定位仪设计

2015-06-23孔令荣

无线电工程 2015年9期
关键词:定位仪单片机卫星

孔令荣,王 昊

(南京理工大学泰州科技学院 电子电气工程学院,江苏 泰州 225300)

基于单片机的手持式GPS定位仪设计

孔令荣,王 昊

(南京理工大学泰州科技学院 电子电气工程学院,江苏 泰州 225300)

GPS能够为用户提供全球性、全天候、不间断、实时、高精度的经纬坐标、速度和时间信息。GPS接收机作为一种先进的导航和定位仪器,已广泛应用于民用及军事等领域。设计了一种基于AT89C51单片机实现的简单的GPS导航信息显示系统,主要实现接收数据、时间显示、经度显示、纬度显示等常规功能。经过实际测试,定位仪能实现GPS基本信息的接收、显示,具有精度高、体积小及持续定位等特点,可应用于个人野外出游探险、出租汽车定位等领域。

定位仪;单片机;空间数据;数据处理;液晶显示

0 引言

在全球范围内都可以通过GPS定位系统接收GPS卫星信号并经过处理对用户进行实时的定位跟踪,该系统广泛应用于中国的水利、电力、交通、资源勘探、工程测量、大地测量和定位等方面。GPS定位系统能够通过接收的GPS卫星信号在市内道路、高速公路,甚至在荒无人烟的沙漠与戈壁滩上为汽车提供定位,司机可以通过定位信息找到到达目的地的正确路线。GPS定位系统这一市场也因汽车产业的发达得到快速的发展[1,2]。因此,我国的GPS市场将会有巨大的发展,在未来的几年,我国有望成为全世界最大的GPS市场,定位设备将被更多的消费者所接受,设备的价格也将逐步下跌。市场上已有许多基于GPS接收机开发的产品,如车载导航系统、GPS手持式用户机等,但价格比较昂贵。为此,本文提出了一种基于AT89C51单片机的GPS定位仪的设计方案,并对相关数据信息的处理做了重点的设计。该系统设计简易,性价比高,对研究GPS二次开发应用具有参考价值。

1 系统方案

由GPS模块、液晶显示器、AT89C51、上电复位电路与电源部分构成GPS定位系统的硬件电路。将GPS模块接收到的定位数据送至单片机,经过处理后再送至LCD液晶显示器。LCD液晶显示器会每隔1 s定时进行一次更新。上电复位电路为单片机提供上电复位功能。电源电路为各个电路提供稳定的+5 V电源。

本文设计的GPS定位系统具有如下主要功能:

①移动目标相关信息显示。在状态栏不断地显示出所在位置的相关信息,比如速度、方向和时间等。

②实时信息的显示。将获取到的定位信息显示在屏幕上。

③GPS启动/停止功能。

④接收GPS卫星发出的GPS定位数据。

GPS定位系统整体构架如图1所示。

图1 GPS定位系统架构

1.1 硬件电路设计

1.1.1 AT89C51单片机

AT89C51是一种高性能、低电压CMOS 8位处理器并带有4 kbytes FLASH存储器,俗名单片机。单片机可以对可擦除只读存储器做反复擦除1 000次的处理。该器件可以兼容工业标准的MCS-51指令集与输出管脚[3,4]。由于单个芯片内组合了闪烁存储器与多功能8位CPU,ATMEL的AT89C51是一种具有高效率且简单易操作的简微控制器。很多嵌入式控制系统都采用AT89C51单片机,提供了一种有较高灵活性且价格低廉的方案,其引脚排列如图2所示。

图2 AT89C51引脚

1.1.2 GPS模块

GPS接收模块天线的作用是将卫星发射的无线电信号转换成GPS接收模块元件能够接收应用的电信号。设计所用的GPS天线由陶瓷天线体和有源放大器2部分组成。采用塑料外壳的封装,防水防潮,材料环保,线材高性能,接收信号的灵敏度极高,天线的底部带有磁铁可以系在车外,产品小巧,安装与使用较为方便。工作条件是温度为-40~+85℃,湿度为95%~100%。

1.1.3 显示电路

显示电路采用LCD12864,LCD12864是一种多接口方式的图形点阵液晶显示模块,内部配置国标一级、二级简体中文字库;能够显示128×64的分辨率,内部16×16点的汉字有8 192个,16×8点ASCII字符集有128个,该模块有灵活的接口方式,还具有简单、方便的操作指令,能够构成全中文人机交互图形界面。8×4、16×16点阵的中文汉字都能够实现,同时图形显示的功能也能完成。而且该LCD液晶显示器的所需电压和功耗都较低,该模块构成的液晶显示过程与同一种类的图形点阵液晶显示模块相比,硬件模块和实现程序都更为简洁,液晶显示模块与一些相同的图形点阵液晶模块相比,价格相对较低。

1.2 系统软件设计

电路硬件设计完成后,对软件进行设计,编写关于GPS的定位程序和LCD12864显示模块的程序,并对其检错与修改。

1.2.1 系统软件

系统软件由初始化模块与数据接收处理模块组成。系统流程如图3所示。

图3 系统程序流程

1.2.2 软件程序编制

(1)GPS接收处理模块程序

从GPS上接收到的数据由数据接收处理模块处理。当接收的信息到达单片机的串口后,首先判别是否为语句引导头“”,才能接收信息的内容,对收到的ASCII码进行处理显示,必须区分出信息的类别,区分方法是根据语句标识来区分[7~9]。如果整个数据是正确的,就开始对数据进行处理;如果接收的数据不正确,就要重新接收数据。设计中主要接收并存储的数据内容包括:当前的日期、时间、经度、纬度与定位状态。特别注意的是,GPS所显示的时间是世界统一时间,这与我国的时区相差了8 h,所以必须转换接收模块所接收的时间。北京时间是UTC时间加上8 h才是准确的北京时间,如果超过24 h要做减24 h处理。在转换时间时要注意年月日的变更。数据每一秒进行一次更新,GPS模块会在系统工作时不断的收到新的数据,单片机刷新RAM,液晶屏显示出的将事处理后的数据。数据的接收与处理程序的流程图如图4所示。

图4 数据接收处理程序流程

(2)GPS定位信息显示的程序设计

程序不考虑将GPS接收器输出的经纬度等信息与地图数据库连接实现定位功能,而是仅对GPS接收模块所输出的信息进行解析,然后将经度、纬度、速度与时间信息实时刷新显示在液晶屏上。以带串口输出的GPS模块Gstar-GS-87为例,遵守的是目前GPS接收机使用最广泛的协议,即NMEA-0183协议,是美国国家海洋电子协会制定的标准格式,专为海用电子设备使用,目前RTCM标准协议已经成了GPS定位设备统一协议。NEMA-0183协议定义的语句非常丰富,其中最常见的NMEA-0183语句及字段如表1所示。

表1 常见的NM EA-0183语句及字段

设计的主程序将过滤多种协议数据,仅解析“GPRMC”协议语句,例如,“GPRMC,161 229.487,A,3 723.247500,N,1 2149.342 100,W,0.15,309.58,118 589,∗10”,程序设计目标就是参考表2给出的“$GPRMC”协议语句各字段的详细说明,从字符串中解析出经纬度、速度和时间信息。

表2 GPRMC数据格式

表2 GPRMC数据格式

字段序号字段名称示例说明<1>信息ID$GPRMC RMC协议头部<2>UTC时间161 229.487 hhmmss.sss<3>状态A A=数据有效V=数据无效<4>纬度3 723.247 5 ddmm.mmmm<5>N/S标志N N=北S=南<6>经度12 149.3421 Dddmm.mmmm<7>E/W标志W E=东,W=西<8>速度0.13节—<9>方位角309.62°—<10>UTC日期118 589 ddmmyy<11>磁偏角—E=东,W=西<12>校验值10—<13><CR><LF>—数据结束

解析“GPRMC”协议语句的完整代码由中断函数void Serial_INT()interrupt4提供,首先将接收的字符与字符串“GPRMC”中的字符逐一进行比对,该消息ID定义在程序最前面,即const char p[]=“GPRMC”,如果所接收到的信息头部为“GPRMC”,则继续后面的解析操作,否则忽略本次解析,等待下一“GPRMC”消息头部的到来。

2 需要解决的问题

手持式GPS定位仪需要解决下列问题:

①搜寻到可被使用的卫星并接收该卫星的信号,同时与接收到的卫星信号进行同步,得到有关于定位的信息[10];

②计算位置所需要的信息可从定位电文中取得,时钟信息与星历信息都包含在这些信息内;

③计算出卫星位置的正确信息,这些信息中包含卫星目前的高度与方位角,从而对对流层进行必要的校正;

④算出伪距,校正电离层等;

⑤重复以上过程,对可用卫星进行相应计算;

⑥对其他必要的项目进行校正,例如GPS接收机接收到卫星信号的时间,校正因地球旋转造成的卫星位置的偏差;

⑦根据定位原理,计算出接收机所在的初始位置的信息,并将该信息进行转换,显示出所需的坐标格式;

⑧加入闰秒与UTC时间补偿计算出当前正确的时间;

⑨将可用卫星的数据进行解析。计算出最为合适的DOP,选择卫星,计算出GPS接收机的位置并对其进行校正,显示出GPS的三维坐标和准确时间的信息。

3 关键技术

通过计算GPS模块与各颗卫星间的伪距离,点位速度快是它的特点,但是会有较大误差。在第一次进行定位时,模块对定位信息进行计算至少需要4颗卫星,称作3D定位,实现2D定位就只要3颗卫星,但是其定位的精度却不够高。这些NMEA格式的定位及辅助信息由GPS接收模块源源不断的提供给用户选择应用[11]。

GPS性能指标主要有接收灵敏度、位置精度、定位时间、时间精度和功耗等。开机定位的时间不同可能与模块启动模式的不同有关。冷启动时间是指模块内没有保存任何对定位有帮助的数据,其中包括星历和时间等数据;温启动时间则指模块内部有较新的卫星星历,但是时间上的却有很大偏差;热启动时间则需要达到关机不超过20 min,且要求RTC时间误差很小。可以在静态和动态2种情况下对定位精度进行考察,并且动态定位比静态定位的效果要好得多。只有在没有高大阻碍的天空下,能接收到良好卫星信号的情况下才能测得GPS模块的定位数据。所以在一般情况下要想接收到达到标准的定位精度与定位时间并不容易。圆概率误差与2倍水平均方根误差是2种常见的水平定位精度。有很多方面都能决定GPS模块定位的精度,例如GPS系统的轨道差与卫星钟差、可见GPS卫星的数量及其分布、大气层厚度和太阳的辐射等。即使是同一个GPS模块也会因为天线的质量、位置与方向、测试的时间段、空旷的范围及方向、天气等原因产生不同的定位误差。就算是同一厂家同一型号的GPS模块进行测试时静态漂移量也会出现误差[12]。本文设计采用了G591模块作为GPS模块,它是一款采用日本原装全新JRC-G591模块的开发板,JRC第9代方案是此开发板是基础,能支持多达210PRN通道,其中搜索通道有66个,同步跟踪通道有22个,具有比较高的灵敏度与跟踪性能。

4 系统测试与应用结果分析

4.1 系统测试

2014年4月20日19:02左右于南京理工大学泰州科技学院第二食堂桥边进行定位仪系统测试,接收天线在户外,周围无高大建筑物,接入+5 V电源后,启动GPS定位系统,液晶显示如图5所示。图5(a)中的数据N32.27.80表示当前位置的纬度为32°27.80′,E119.56.80表示当前位测量所以速度置的经度为119°56.80′。图5(b)中的数据表示了当前的时间为2014年4月20日19:02:14,由于是静止速度为0。

图5 GPS接收模块测得经纬度和时间速度数据

4.2 应用结果分析

GPS提供的定位信息包括了经度、维度、海拔、速度、航向、磁场、时间、卫星个数及其编号等卫星信息,其接收数据方法类似,所以设计只提供了其中的部分价值较高的数据信息。经过系统测试,获取的时间、经度、纬度信息与市售佳明GPSMAP 62sc定位仪获取结果完全一致,验证了系统的准确性与可靠性。本设计价格低廉,有较好的实用价值。

5 结束语

设计的基于AT89C51单片机的液晶GPS定位仪,实现了GPS空间数据的读取显示。设计方法灵活,可以根据实际需要从GPS信号中提取多种导航信息,采用单片机作为主控芯片设计电路,具有易于调试、成本低廉等显著特点。该定位仪经过测试已证明完全满足系统基本需要。结构简单,器件少,成本低,性能稳定,又可通过PC机扩展其应用能力,体积小。该定位仪可民用化,方便携带,性价比高,适用于个人野外旅游探险、出租汽车定位及海上作业等。

[1] 张毅刚.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2004.

[2] 王丙祥,李建海.基于89C52的GPS板电路设计与实现[J].西安文理学院学报:自然科学版,2007,10(3):98-101.

[3] 徐 进,周 宁.GPS接收机的单片机通讯接口[J].电子器件,1999,22(3):23-26.

[4] 陈 明,蒋挺.最佳屏蔽二进制序列偶在GPS系统的应用[J].无线电通信技术,2012,38(6):73-76.

[5] 龚运新.单片机接口C语言开发技术[M].北京:清华大学出版社,2001.

[6] 王建校,杨建国,宁改娣,等.51系列单片机及C51程序设计[M].北京:科学出版社,2002.

[7] 林志琦.基于PROTEUS的单片机可视化软硬件仿真[M].北京:北京航空航天大学出版社,2006.

[8] 赵浪涛,赵永花,柴 清.基于AT89S52的多点温度检测无线报警系统设计[J].无线电工程,2015,45(1):76-80.

[9] 刘 可.通用信号处理模块功能线程动态重构技术[J].无线电工程,2014,44(11):77-80.

[10] 谢利敏,康志杰.公交车载GPS智能报站系统设计[J].无线电工程,2011,41(2):34-36.

[11] 方 群,袁建平,郑 愕.卫星定位导航基础[M].西安:西北工业大学出版社,1998.

[12] 马英昌,谢 松.GPS L5接收机的设计与实现[J].无线电通信技术,2013,39(6):94-96.

Design of Handheld GPS Positioning Instrument Based on Single-chip Microcom puter

KONG Lingrong,WANG Hao
(School of Electronic and Electric Engineering,Taizhou Institute of Science and Technology,NJUST,Taizhou Jiangsu 225300,China)

GPS can provide users with global,allweather,continuous,realtime,highprecision coordinate,speed and time information.Now,GPS receiver,as a kind of advanced navigation and positioning instruments,has been widely used in civilian and military fields.This design is based on AT89C51 single chip microcomputer to realize a simple GPS navigation information display system.The system mainly realizes data receiving,time display,latitude and longitude display,and other regular functions.The actual test shows the GPS receiver can achieve GPS information receiving and display,with features of high precision,small size,continuous navigation,etc.,and can be widely used in personal travel adventure and taxi positioning,etc.

positioning instrument;mcu;spatial data;data processing;liquid crystal display

TP274

A

1003-3106(2015)09-0068-04

10.3969/j.issn.1003-3106.2015.09.18

孔令荣,王 昊.基于单片机的手持式GPS定位仪设计[J].无线电工程,2015,45(9):68-71,80.

孔令荣男,(1983—),讲师,硕士。主要研究方向:单片机与嵌入式系统应用。

2015-05-04

王 昊男,(1985—),讲师,硕士。主要研究方向:单片机与嵌入式系统应用、射频集成电路设计与制造。

猜你喜欢

定位仪单片机卫星
miniSAR遥感卫星
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
静止卫星派
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
采用水下混凝土灌注标高定位仪进行标高定位的研究
汽车维修中四轮定位仪的作用及应用
腰椎穿刺定位仪设计
Puma" suede shoes with a focus on the Product variables