陈 赛,李建朝
(河南科技大学机电工程学院,河南洛阳 471003)
基于单片机的多功能手持GPS定位仪的设计
陈 赛,李建朝
(河南科技大学机电工程学院,河南洛阳 471003)
介绍基于STC89C52单片机下的GPS信息的接收及输出显示,并利用SD卡对导航数据进行保存。采用GPS模块接收卫星信号,通过串口连接,既可通过单片机处理,然后在TFT彩屏上显示相关信息,也可与PC机通信,通过PC机应用软件显示GPS信息,也可通过PC版灵图电子地图实现实时导航。将SD卡保存的数据经GPS Babel软件转换,在googel earth地图上实现轨迹重现。实际应用效果表明,该设计合理有效,具有很高的实用价值。关键词:全球定位系统;手持式;单片机;串口通信;轨迹
一直以来,出行的问题困扰着大家,我现在在哪里?应该向哪个方向走?直到20世纪末,这些问题终于有了一个有效、便捷的解决方法,那就是GPS——全球定位系统的出现与发展[1]。全球定位系统(Global Positioning System)是美国从20世纪70年代开始研制,于1994年全面建成,以接收导航卫星信号为基础的非自主式导航与定位系统。该系统能够在全球海、陆、空范围内,全天候、连续实时的免费提供高精度的三维位置、三维速度和时间信息,为人类的导航和定位提供了可靠的保障。随着社会的进步和科学技术的发展,GPS定位技术已经越来越接近普通人的生活。用户通过设备接收GPS卫星信号,经信号处理获得用户位置、速度等信息,最终实现利用GPS进行定位导航。但目前GPS定位接收机价格比较昂贵而且使用灵活性低,难以满足许多普通用户的应用需求。所以,体积小、重量轻、功耗低、携带方便、价格低廉是GPS定位仪的发展趋势。
本设计是以GS-15C GPS模块为例,利用STC89C52单片机开发板,TFT显示屏,开发设计的一种体积小、低成本、多功能的手持式GPS定位仪。
手持式定位仪的组成结构如图1所示,主要由STC89C52单片机微处理器、GPS模块、TFT彩屏、SD卡模块、PC机、串口转换按键及电池组成。
定位仪主要有以下功能:
1)获取并显示定位信息,包括经纬度、速度、海拔及方向、时间等信息。
2)将获取的导航信息保存在SD卡上,经GPS Babel软件进行数据处理和转换,可在google earth显示路线轨迹。
3)通过串口转换按键,可使GPS模块、单片机、PC机,任何2个都能进行通信。所以此系统可以按需要修改单片机程序,查看GPS输出数据等。
图1 系统的组成
4)在PC机上安装灵图导航地图软件,通过GPS模块与PC机通信,可实现在地图上定位并导航。
5)系统采用4节充电电池或USB线缆供电,方便笔记本用户,以便到室外进行调试,用笔记本插上USB线就可以实现供电。
6)整个系统采用贴片元件,体积小、重量轻,便于用户手持携带。
2.1 CPU系统
考虑到手持式定位仪体积的限制和性能的要求,CPU采用宏晶科技推出的STC89C52RC单片机[2],封装为LQFP-44贴片式。该型单片机体积小、功耗低、抗干扰能力强,指令代码完全兼容传统8051单片机。在设计中,CPU外接11.0592 MHz晶振。
2.2 GPS接收模块
GPS接收模块的型号为GS-15C。模块是由韩国生产,贴片封装,采用MTK芯片组,在功耗、价格上都有很大优势,最重要的是该模块天线内置,无需外接天线,体积小,外观尺寸为30 mm(长)×27 mm(宽)×7 mm(高),满足手持式定位仪的要求。该模块其他主要特点如下:
1)12通道并行,可同时跟踪12颗卫星。
2)定位精度高:位置精度为10 m圆周围差,速度精度为0.1 m/s,时间误差为1μs。
3)定位时间:热启动1 s,暖启动38 s,冷启动42 s。
4)工作电压:4.5~5.5 V。
5)输出格式:TTL。
2.3 TFT彩屏模块
考虑到手持式定位仪[3]的体积不能太大,显示屏采用1.6 in TFT彩屏,型号为三星S6D0117,分辨率为128×128,26万色。该模块工作电压为5 V或3.3 V,支持8,9,16位接口,带背光驱动,51单片机可直接驱动。
2.4 串行通信接口电路
本系统设计了RS232外部串行通信接口[4],可以通过PC机对单片机芯片进行在线烧写。由于本GPS模块输出格式为TTL电平,故GPS模块与单片机可直接进行串口通信,而不需进行电平转换。同时,为了方便调试和使用,系统上设计有通信模式切换按键,可以设置成3种串口通信模式,分别为PC机——GPS模块,PC机——单片机,单片机——GPS模块,即三者之间两两通信。当按下PC机——单片机按键时,可以通过串口ISP在线下载程序;当按下单片机——GPS模块按键时,可以用单片机解析GPS模块数据,并通过TFT彩屏显示;当按下PC机——GPS模块按键时,可以通过PC机应用软件来监视GPS模块数据输出或者在PC机上实现显示当前地图位置。
2.5 电池
采用5 V直流充电电池(由4节充电电池组成)。由于在电路板上设计了充电滤波和保护电路,使得电池的充电简单易行。充电时,只需将一个5 V的整流器接到定位仪上(不必要先将电池从定位仪中取出),大约4 h后,就可完成对电池的充电。同时,在系统中设计了USB供电端口,通过USB端口,与电脑USB端口相连可对系统进行供电。这对于系统在室外调试和与电脑进行通信提供了很大方便。
3.1 工作原理
GPS模块的工作原理[5]是:通过天线获取卫星信号,经过变频、放大、滤波等一系列处理,实现对天线视界内卫星信号的跟踪、锁定和测量,最终产生计算位置的数据信息(包括:经度、纬度、高度、速度、时间、日期、航向、卫星状况等),并经RS232标准I/O输出串行数据或者输出TTL数据。
3.2 GPS模块输出数据格式
GPS模块虽然型号很多,但是绝大多数都采用NMEA-0183通信格式[6]。其格式定义为:
波特率:4 800 bit/s;(默认,可以按需要改变)
数据位:8位;
停止位:1位;
奇偶校验:无;
NMEA-O183语句解析。
NMEA通讯协议所规定的通讯语句都是以ASCII码为基础的,NMEA-0183协议语句的数据格式如下:“$”为语句起始标志;“,”为域分隔符;“*”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符的按位异或值(不包括这两个字符);“/”为终止符,所有的语句必须以它结束,也就是ASCII字符的“回车”(十六进制的0D)和“换行”(十六进制的0A)。
典型的NMEA0183语句如下面的GPRMC语句:
$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50
字段0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐最小定位信息
字段1:UTC时间,hhmmss.sss格式
字段2:状态,A=定位,V=未定位
字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)
字段4:纬度N(北纬)或S(南纬)
字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)
字段6:经度E(东经)或W(西经)
字段7:速度,节,Knots
字段8:方位角,度
字段9:UTC日期,DDMMYY格式
字段10:磁偏角,(000-180)度(前导位数不足则补0)
字段11:磁偏角方向,E=东,W=西
字段16:校验值
GPS模块上电经过自检后,进入卫星测量状态并不断地输出相关信息。
本定位仪除了手持使用外,还能通过串口与PC机进行通信。定位仪中的GPS模块负责接收来自卫星的信号,PC机上可以安装各种相对应的应用软件[7],只要在PC机上设置好串口端口和波特率,就能使GPS模块和PC机进行通信。
比如,在系统调试时,需要用PC机上的串口调试助手来观察GPS模块输出的数据,方法是:用串口线将定位仪和PC机的串口(Com1)相连,按下PC机——GPS模块按键,打开串口调试助手,将波特率设置成与GPS模块的波特率一样,串口选择com1,可以看见串口调试助手显示框上不断地实时显示GPS模块接收到的卫星数据。
另外,可以在PC机上安装天行者中国电子地图导航软件,将PC机与GPS模块串口相连,当GPS信号接收正常后,可以在地图上显示当前所在位置,当把你要去的地方设为目的地时,系统会自动计算距离而且是实际公路距离。开始导航后,当你到路口的时候系统会自动语音提示左转还是右转。如果你去了一个地图上没有的地方,系统也会为你提供轨迹存储功能,记录所走过的路,这样就可以轻松找到回去的路。很多地图还能标出每一个点的坐标,这样在地图上没有标出地名的地方,也可以根据经纬度在普通地图上找到你的位置。这就大大满足了野外人员的需求,还有就是喜欢驾车长途旅游的朋友们可以方便地找到自己位置,不至于迷路。
5.1 SD卡模块介绍
SD卡主要功能是存储GPS模块接收到的导航数据。SD卡的驱动方式有2种模式,SD模式与SPI模式。设计中,单片机对SD卡进行驱动时,采用SPI模式,一方面是因为SPI模式接口与操作方法比较简单,易于实现;另一方面是因为操作的数据量并不是很大,速度并不需要很快。SD模式用于数据量比较大、速度要求比较快的应用场合。SD卡工作在SPI模式时,只需要4根信号线,即CS片选、DIN数据输入、CLK时钟、DOUT数据输出。另外,SD卡的工作电压是3.3 V,而本设计中,电源采用5 V供电,故需要进行电压转换,设计中,采用AME1117-3.3稳压模块,通过稳压模块的转换,可以将5 V电压转换为3.3 V,给SD卡供电。
5.2 轨迹重现功能实现过程
上面已经介绍,SD卡主要功能是存储GPS模块接收到的导航数据。但是要实现导航轨迹的重现还需要用到两款软件,分别是GPS Babel软件和googel earth软件。GPS Babel软件的主要功能是将SD卡上存储的导航数据进行格式转换,googel earth软件的主要功能是实现导航轨迹的重现。
设计中,主要是利用googel earth软件来实现行进轨迹的重现,但是googel earth软件只能支持KML格式的文件,而SD卡上存储的数据格式为NMEA 0183 sentences,所以要利用GPS Babel软件来进行数据格式转换。数据转换方法如图2所示,打开GPS Babel软件,设置好Input和Output,点击“let’s go”,则会将SD卡文件中的NMEA 0183 sentences语句转换为googel earth软件支持KML格式的文件,然后打开googel earth软件,在googel earth软件界面上,通过“文件→打开”,打开转换好的KML格式的文件,则会在googel earth地图上显示轨迹。
图2 GPS Babel运行界面
系统软件实现的主要功能是在GPS模块输出的大量信息中,提取出时间、经度、纬度、速度和方向信息,经过处理,在TFT彩屏上显示出来,并每秒刷新一次[8]。主程序流程图如图3所示。
图3 主程序流程
本设计中软件开发环境为Keil C5l,用C语言对STC89C52单片机进行GPS导航数据的处理和解算,由TFT彩屏显示。采用这种设计方法优点有:用C语言开发本系统软件中的数据处理部分,可以使单片机具有较强大的数据处理能力。
根据本文所讨论的设计方法,已成功研制出手持式GPS样机一台,该样机重量轻、体积小(90 mm ×65 mm×40 mm)、成本低,便于用户携带和使用,值得推广。
[1]B.Hofmann-Wellonhof,H.Lichtenegger,J.Collins.Global positioning system:theory and practice[M].New York:Springer-Verlag,2001:89-125.
[2]张毅刚,彭喜源,曲春波,等.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,1997:42-66.
[3]陈嘉清.手持定位装置的设计与实现[D].大连.大连海事大学,2009.
[4]林艳玲.采用MAX232实现MCS-51单片机与PC机通信[J].天津理工学院学报,1999,15(2):57-61.
[5]胡辉.高动态数字化GPS接收机的研制[R].上海:上海航天局博士后工作站出站报告,2002.
[6]Renato Filjar,Tomislav Koa,Markezic.GPS Ionospheric Error Correction Models.The 48th Internation Symposium ELMAR-2006,Croatia.2006.215-217.
[7]许绍铨,张华海,杨志强,等.测量原理及应用[M].武汉:武汉大学出版社,2002:84-98.
[8]JAMES BAO-YEN TSUI.GPS软件接收机基础[M].北京:电子工业出版社,2008.
Design of multi-function portable orientation GPS instrument based on MCU
CHEN Sai,LI Jian-chao
(School of Mechatronics Engineering,Henan University of Science and Technology,Luoyang 471003,China)
Receiver and output display of GPS information based on the STC89C52 MCU are introduced indetail.Using GPS module as satellite reception,through a serial port conversion,can not only by MCU processing,displaying relevant information in TFT,but also can communicate with the PC,through PC application software,displaying GPS output data.The actual application result indicates that the design is rational and effective with high practical value.
GPS;portable;MCU;serial communication;track
P228.4
A
1006-7949(2012)04-0057-04
2011-05-15
陈 赛(1984-),男,硕士研究生.
[责任编辑:刘文霞]