APP下载

基于51单片机简易GPS定位系统的设计

2021-09-23高书阳

科海故事博览·上旬刊 2021年7期
关键词:时钟电路单片机

高书阳

摘 要 GPS是英文Global Positioning System(全球定位系統)的简称,中文简称为“球位系”。随着科学技术发展,应用十分广泛,成为了人们生活中不可或缺的一部分。同时因其具有全球覆盖以及精度高、定位速度快、实时性好、抗干扰能力强等特点,使其成为了迄今为止最好的定位导航系统。本文详细介绍了采用STC12C5A60S2单片机、GPS接收模块、12864液晶显示模块等器件进行简易GPS定位系统设计。首先介绍了此系统的研究前景和不同设计方案的优缺点,具体阐述了系统的软件设计、硬件设计等。

关键词 GPS 单片机 定位系统 12864液晶屏 STC12C5A60S2

中图分类号:TN8;TN2 文献标识码:A 文章编号:1007-0745(2021)07-0001-18

1 绪论

1.1 课题背景及意义

人类首颗GPS试验卫星于1978年2月22日发射入轨,无线导航定位时代在导航卫星这个动态已知点的基础上就此开创。来自GPS卫星的定位导航信号这类空间信息资源已成一种公共资源,能为全部用户共享[1]。结合硬件的特点,对GPS接收模块和STC12C5A60S2单片机之间串行通信实现的途径进行了分析,GPS模块发出数据经由串口接收,且把所需数据从中过滤获得,在经过相应处理后显示特定的数据,最终实现可以在LCD显示屏准确显示出时间、日期和用户所在位置的经纬度、速度等多种数据信息的效果。本文还通过硬件和软件调试以及实验仿真分析,进一步验证了此系统的可靠性和精确性。它是一台体积小巧、携带方便、可以独立使用的全天候实时的定位导航设备,具有非常强可扩展功能的实际应用价值。在空中、海洋、陆地任一领域内,仅需某种可测量、变换、跟踪和接收GPS信号的一部接收机,运动平台的3维、7维状态参数便会被24小时全球全天候不间断测量。其影响之大,用途之广,把其它类型的无线接收设备远远甩在身后。而且,入轨运行的GPS卫星同样能提供全天候、全天时、高精度测量技术,并且可以进行全球气象学、全球海洋学、载人航天学、天体力学、地球物理学、地球动力学、大地测量学等学科领域实践。纵观现状,GPS技术有如下用途。

1.1.1 GPS技术的陆地应用

该技术于电力工程勘测中和土地管理、林区生态工程的应用;行政区域勘界、高精度时间比对和频率控制、冷链物流运输过程的应用;智能交通系统应用;地质环境监测中的应用;建筑物变形监测中的应用;地表物质迁移的时变重力场反演方法及其应用;工程建设施工放样测量等陆地上的诸多领域内,应用极为广泛。

1.1.2 GPS技术的海洋应用

GPS技术在海洋方面有着非常重要的作用,对人类研究海洋提供了便利条件,比如:管制港口交通;测量无验潮水深;检测海洋灾难;测定海洋油气田平台复位与就位;建立海洋大地控制网,远洋船舶的最佳航线测定及实时调度和监测;测量海底管道铺设;无人监测船远程控制系统;光电扫描式成像跟踪系统GPS定位;高频地波雷达海洋动力学参数反演与应用;布测海底大地测量控制网;小型多参数海洋环境监测浮标系统;精细测量海底地形;港口工程施工定位技术应用;定点测定海损事故或海洋纠纷;海洋救援及海底沉船位置的精确探测;钢板桩施打作业领域应用GPS定位技术等。

1.1.3 GPS技术的航空航天应用

GPS技术在航空航天方面应用有着非常重要地位,具体应用主要体现在:测量对地观测卫星3维、7维状态参数;自主导航民用航空器;星载GPS遮掩天体体积以及大气参数测量;测量重力与航空摄影参数;载入航天器在轨防护探测;航空护林;航天航空飞行器精密着陆;测量卫星回收与卫星入轨实时点位;飞行器空中加油控制;地面数据处理技术、方法与应用(航空遥感数字传感器);飞行器探测灾区范围与标定测量;战队机军事作战控制;航空救援搜索及其定位测量;低轨道通讯卫星群的实时轨道测量;GPS时钟同步机制及其民航空管系统;机载地球物理勘探[2]。

由此可见,GPS技术的应用十分广泛,已经深入到各个领域,对人类的进步发展探索起到巨大作用。但是前述最基本应运条件的实现必须要有可以进行GPS信号接收且同时可以进行调制输出的设施,把UTC标准时间、当时所处位置经纬度显示出来是此类设备的最基本功能,如何准确接收、调制输出GPS信号,是此项技术的关键,同时,当时所处部位的时间、纬度、经度能否精确的显示同样事关此类技术的实用价值大小。当前,以此类GPS技术及其基本功能为前提而研发的GPS导航设备、GPS手持机等产品种类众多。这项技术的优势表现在可扩展性好、功能强大等,不足之处表现在电路复杂、费用过高等。课题论文拟把以单片机为基础的GPS定位系统设计成功。具备实用价值、廉价、基本性能完备等是本次课题的设计标准。

1.2 论文主要内容

以单片机、GPS理论为前提,把相应的单片机选择出来,进行GPS接收模块接收数据的提取,且把所需特定的数据从中过滤获得、适当处理,直至能够将用户所处部位速度、经纬度数据以及日期、时间准确显示出来。这就是本次课题论文的主要设计目标。

本次设计除对所选LCD显示功能、单片机基本引脚功能、GPS接收模块性能指标要求研发人员熟悉以外,NMEA封包同样需要把握,而且NMEA输出命令的使用技术也要掌握,以此和单片机的有关知识结合,实现GPS捕获的卫星信息提取,且选择性的在液晶显示器进行相关数据显示。完成设计之后,通过Proteus软件来对其性能展开仿真测试。

2 GPS定位系统方案设计

2.1 GPS全球定位系统简介

基于对民用实时连续三维导航、军事用途等现代社会发展标准的满足所需,在“午仪卫星导航定位”技术基础上,美国于1973年组织其军事机构进一步共同研究和建立新一代卫星导航系统[3],具有全球性、全能性、全天时性优势的导航定位、定时、测速系统,即通常所说的“全球定位系统”(Global Positioning System),简称GPS定位系统。情报收集是GPS技术研发的初始意图,无漏洞、实时、全天候的把有关导航服务提供给空中、海上以及陆地等各个领域是其当前基本目标。同时,应急通讯、核爆监测、情报收集以及应急通信、实时监测核武器动向等军事目标同样是其服务范畴。

以下就是GPS(全球定位系统)的基本组成部分:

1.由均匀散布于3大洋的美军基地及美国本土的监控站(5个)、在主控站控制下把寻电文注入卫星的注入站-地面天线(3个)、主要对地面综合控制系统司职协调和管理的工作主控站(1个)构成的地面监控系统[4]。

2.由3颗备用卫星、21颗工作卫星构建而成的空间卫星系统。在六个轨道面中的各轨道面均匀分布着3至4颗工作卫星。地球赤道平面和各轨道平面二者之间有55度倾角,其中各轨道平面中的每个卫星升交角存在90度距差。各个轨道面升交点赤径之间有60度相差。而轨道高度均值在20200公里左右。对比西边毗邻轨道卫星来说,每个轨道卫星会有30度超前,11小时58分是各个卫星的循环运行周期[5]。该系统事实上有24颗以上卫星,这让损坏、老化卫星能及时、便利的更换,以此来确保系统可以运行平稳。任意地点或任一时刻,该系统均能通过至少四颗卫星来服务使用者,有时甚而至于会有多达十一颗,就此把实时、连续定位与导航实现[6]。

3.由计算设备、数据处理软件、卫星天线、GPS卫星接收机构成的用户接收系统。卫星射电干涉测量、多普勒测量、载波相位测量、伪距测量等是GPS定位的基本办法(GPS用户接收系统如图1所示)。

GPS卫星定位系统三大部分之间的相互关系如图2所示。全球GPS卫星定位系统其主要特点如下:

(1)全天候;

(2)全球性覆盖;

(3)三维定时定速高精度、自动化高效益;

(4)快速省时高效率,观测时间短;

(5)全能性、操作简便。

2.2 GPS信号接收方案选择

要在液晶显示屏显示出GPS定位数据信息,关键技术问题就是要实现GPS信号的接收,目前有两种选择方案来实现GPS信号的接收:

方案一:GPS接收芯片先行确定完成,随之以芯片有关设计参数为基础,进行安装天线、外围电路等的设计,把1个独立模块做成。对GPS芯片原理的了解、设计该系统接收部分硬件电路技术的把握等是选择此方案的基本出发点,不过其缺点也是显而易见的,首先自己动手焊接设计它的外围电路麻烦,实现难度大,易出现引脚脱焊虚焊问题,其次由于GPS接收芯片一般都是厂商直接供货,单独采购价格会很高。

方案二:选择市场上口碑较好的GPS集成模块,选择此方案的优点就是在这个信息现代化的时代的GPS接收模块的制造技术已经相非常成熟,并且性能稳定,使用也十分方便,定位成功接收到卫星信号后就可以直接通过模块输出GPS相关信息,并通过单片机解析和封包数据成功的可以显示在LCD显示屏上。并且在经过大规模的商业化生产后,它价格已经可以被我们所接受,一般几十到一百多元不等,这样的模块在市面上也能够很容易的购买到。

分析上面两种方案的优缺点,选择合适的GPS接收模块就能够比较好的作为本次设计简易单片机GPS定位系统的解决方案,因此我选择第二种方案来完成本次GPS定位系统设计。

2.3 GPS接收模块的研究

系统重点在于GPS接收模块,其性能、功能都不相同,型号也有许多种,通常都是由外置和内置天线、储存器、CPU(处理器)、低噪声下变频器、并行信号通道等设备构成其基本架构。

GPS接收模块通过它的接收天线捕捉到卫星信号后,再经过变频、放大、滤波、载波相位、混频、测量伪距等一系列处理,便可以实现在保证天线接收范围内对卫星的信号进行跟踪、锁定和测量、解调,并将这些电信号转换为导航电文。卫星有关位置信息获取以及信号的传播时间测算完成后,便能以有关理论公式为依据把天线的位置计算出来。此时用户可以通过输入和输出、I/O串行接口,与GPS接收模块之间进行数据信息传送,从而实现预期功能-GPS定位显示功能。GPS接收模块内部结构如图3所示。

2.4 系统总体方案的设计

经由单片机对于GPS定位系统内接收模块的控制,来把简单的定位功能实现,这是课题设计的基本标准。因此,编程控制采用的是STC12C5A60S2单片机,采用SiRF StarII GPS芯片为核心的接收模块来接收GPS卫星信号,且所需定位数据方面的相关信息主要是经由软件编程keil c51来进行筛选、解析,最终再经由单片机上的并行接口来把其向液晶显示屏进行传输,就此把有关的定位信息显示出来。该单片机GPS定位系统硬件部分主要由以下几个部分组成:

(1)接收部分:以SiRF StarII GPS芯片接收模块为核心的GPSOEM模块;

(2)控制电路:由STC12C5A60S2单片机来编程控制;

(3)显示部分:LCD12864液晶显示模块;

(4)电源电路部分:采用USB供电,大约5V左右可以保证系统正常供电。

外围电路:由以下2部分构成:其一,液晶顯示模块(LCD12864)内的显示电路、电源电路;其二,GPS定位系统内的接收模块、其它电路。SiRF StarII GPS接收模块主要由变频器、信号通道、存储器、CPU和I/O接口构成。它通过天线接收获取GPS卫星信号,再经过变频、放大、滤波、载波相位、混频、测量伪距等一系列处理,便可以实现对在保证天线接收范围内对卫星的信号进行跟踪、锁定和测量、解调。

单片机控制部分:经由NMEA-0183语句数据(来自GPS接收模块)来选择、处理所收到的GPS数据,进行程序编写,初始化单片机控制系统,对GPS接收模块进行控制,把采集相关数据信息的工作完成,处理有关信号,且将时间、经纬度、相关位置等数据信息经由单片机的输出接口向LCD显示模块输送,并进行显示。

由此以上可知:SiRF StarII GPS接收模块将获取到的GPS卫星电信号转换为导航电文,进行解码调制,且向标准NMEA-0183格式转换完成,再向单片机传送,由其展示处理,如果导航电文数据信息(来自GPS)被单片机收到,其将会就上进行识别性的筛选,且把筛选所获数据向LCD显示模块传送,并把预设的定位信息显示出来。

3 硬件电路设计

3.1 硬件电路总体结构

以总体设计规划为依据,显示部分(LCD12864液晶显示模块)、控制部分(STC12C5A60S2单片机)、以SiRF StarII芯片基础的GPS接收模块和外置车载天线的GPS信号接收部分这三大部分构成了硬件电路,其大体结构框图如图4所示。

3.2 硬件电路功能设计介绍

3.2.1 STC12C5A60S2简介

STC制造的机器周期(1T)/单时钟单片机——STC12C5A 60S2系列单片机属于8051增强型新型单片机,这种增强型新型单片机具有超强抗干扰、低功耗、高速等特征,传统的8051指令代码其能够全面兼容,而且速度是其8-12倍。其内部集成MAX810特有的复位电路(外部晶体12MHZ以上时,复位脚可接1000欧姆电阻接地)。且将八路高速10位A/D转换(25万次/秒,即250K/s)、PWM(2路)、MAX810专用复位电路集于一体,可过用于控制电机及其它强干扰场合。在Keil C51开发环境中,选择Intel 8052编译,头文件包含即可。

STC12C5A60S2系列单片机的内部结构框图如图5所示。外部晶体振荡电路、片内R/C振荡器、PCA、SPI接口、高速A/D转换、串口2、I/O接口、UART串口、定时/计数器、SRAM(数据存储器)、Flash(程序存储器)、CPU(中央处理器)等是STC12C5A60S2单片机中的基本模块。采集、控制数据方面的全部单元模块基本上全涵盖于这个系列单片机内,因而也能将其当成片上系统。

STC12C5A60S2引脚如图6所示。

3.2.2 STC12C5A60S2主要性能

· 高速:1个时钟/机器周期,增型8051内核,速度比普通8051快6~12倍。

· 宽电压:5.5~4.0V,2.1~3.6V(STC12LE5A60S2系列)。

· 增添P4.6(极为可靠的复位,能对复位门槛电压进行调整,如果频率不足12MHz,这个功能并不需要)/第2复位功能脚。

· 增加外部掉电检测电路/P4.6,可在掉电时,及时将数据存进EEPROM,低功耗设计:空闲模式(可由任一个中断唤醒)。

· 支持掉电唤醒的引脚:P3.2/,P3.3/,T0/P3.4,T1/P3.5,RxD/P3.0,P1.3/CCP0(或P4.2/CCP0),P1.4/CCP1(或P4.3/CCP1),EX_LVD/P4.6。

· 工作频率:0~35MHz,相当于普通8051:0~420MHz。

· 时钟:可选择的R/C振蕩器(内部)、外部晶体,于ISP下载编程用户程序过程中进行设计。

· 8/16/32/40/48/56/60/62K字节片内Flash程序存储器,擦写次数10万次以上。

· 1280字节片内RAM数据存储器。

· 独立波特率发生器。

· SPI高速同步串行通信接口。

· 可编程时钟输出功能(在P1.0,WDT(时钟硬件看门狗)被BRT输出;在P3.5,T把时钟输出;在P3.4,T0把时钟输出)。

· 通用I/O口(36/40/44个),复位后为:准双向口(普通8051传统I/O口)可设置为只是高阻/输入,各I/O口驱动能力开漏都能实现20毫安,强上拉/强推免,弱上拉/准双向口这几种模式。芯片整体控制在120毫安内为宜。

(1)时钟电路

外部晶体时钟、内部R/C振荡时钟是STC12C5A60S2系列单片机的2个时钟源,外部晶体时钟是当前产品的出厂标配。8MHz-12MHz是3V单片机的常温频率,11-17MHz是5V单片机芯片内的R/C振荡器常温频率,因为随着温度的变化,内部温度的变化,内部R/C振荡器的频率会有一些温飘,再加上制造误差,故内部R/C振荡器只适用于对时钟频率要对不敏感的场合。

图7所示即为内部时钟电路。定时元件(大多由电容、石英晶体构成的并联谐振回路充当)外接于TXD、RXD引脚,自激振荡就此在内部振荡器中形成。宜于5pF-30pF区间内挑选电容值,于1.2MHz-12MHz区间内挑选晶体振荡频率,频率将会因为电容值的大小而被其微调。

图8所示即为外部时钟电路。其中TXD引脚接外部振荡器、RXD引脚接地。只要保持住脉冲的宽度就行,并无特殊的外部振荡信号标准,方波信号通常控制在12MHz内。振荡频率被片中的时钟发生器2分频,P1、P2两相时钟会就此形成,且服务单片机运行。

(2)复位功能

单片初始化操作就是此处所说的复位涵义。将PC初始化成0000H,让单片机的程序执行由0000H单元开始,这是复位的主要功能。正常的系统初始化操作之外,如果因为操作错误、程序运行出错等让系统死锁,基于困境摆脱所需,同样必须通过复位键来进行重新启动[7]。看门狗复位,MAX810专用复位电路或者掉电复位/上电复位(并可选择200毫秒延时复位增加额外,即于上电复位之后再进行一次复位延时200毫秒增加操作),软件复位,外部低压检测复位(增设第2复位功能脚RST2复位,实现外部可调复位门槛电压复位),外部RST引脚复位等属于STC12C5A60S2系列单片机的几类复位形式。

(3)复位电路

当时钟频率高于12MHZ时,建议使用第二复位功能引脚(RST2/EX_LVD/P4.6口),这样可利用增加的外部低压检测LVD功能作为外部低压复位脚(如电路图9和典型线路图10所示)。

7805(稳压块)后端有5V直流电压,当其降至约4V(如图10所示),R1、R2这2个电阻会把4V附近电压向不足1.33V(低压检测门槛电压)周围分压,此时,CPU将会被RST2这个第2复位功能脚置于复位状态。当稳压块7805后端的直流电压高于4V时,图中的电阻R1和R2将4V的电压分压到高于低压检测门槛电压(1.33V附近),单片机就解除复位状态,恢复到正常工作状态上,典型线路如图11所示。

3.2.2 SiRFStarIIGPS信号接收模块

该设计中GPS信号接收模块是以SiRF StarII GPS芯片为核心的模块,该芯片是由美国瑟孚科技有限公司所生产的第二代芯片。它具有12通道并行接收能力,其所接收的GPS信号属于民用频段的L1信号,大约为1575.42MHz,在没有Selective Availability干扰的情况下,它的动态速度误差是每秒0.1米,其平均定位误差为10m,信号灵敏度能至-142dBm,热启动时间是38秒,冷启动定位时间是42秒,即使是二次定位,时间方面同样只需8秒,该模块主要引脚如图12所示。

引脚备注:TXD端口是2号管脚,一般连接外振荡器;电源输入端是3号管脚,外接电压通常约是+5V;GND端口是1号管脚,用于接地。该GPS信号接收模块的正常工作电流约为75mA。其正常工作电压约为3V左右。

GSP2e把2个UART、GPS接收机外部设备、高精度实时时钟、1MbEDODRAM、内外部独立总线、ARM7CPU(50MHz1个)、增强型GPS内核(1个)集于一体;数字接口、集成LNA、IF(集成中频滤波器)、基准振荡器、片内压控振荡器等则构成了GRF2i。当前系统内很方便集成进GSW2模块化软件,且可以进行功能强大的开发条件保障。

WGS-84为地图坐标系,地理信息采集更新速率是1次/2s,NMEA-0183是GPS输出数据的格式标准[8]。SiRF StarII主要特征如表1所示。

为了有更好的信号接收效果,本设计采用ROHS认证通过的车载天线,该天线接收信号好,稳定性好,模块和天线实物图如图13所示,GPS天线参数如下表2所示。

3.2.3 LCD12864液晶显示模块介绍

(1)液晶显示模块

本设计采用LCD12864液晶显示模,具有多种功能,通过液晶显示模块中引脚4、5、6分别与单片机引脚P25、26、27相连,进行数据信息传送,接收单片机控制器传送的信息,显示在显示屏上面,展现出GPS定位信息。并且本设计中R2是可调节电阻,可以实现对显示屏的亮度进行调节,以便满足用户需要,12864液晶显示模块引脚电路图和实物图如图14所示。

(2)LCD12864有20个引脚,说明如表3所示

液晶硬件接口:

1.逻辑工作电压(VDD):4.5~5.5V;

2.电源地(GND):0V;

3.工作温度(Ta):0~60℃(常温)/-20~75℃(宽温);

4.模块有并行和串行两种接法。

3.2.4 硬件外围电路构造

(1)電源电路

系统采用+5V电压供电,可接USB或者电池夹,S1为自锁开关。P1为DC电源口,电源部分电路图和实物图如图15所示。

(2)复位电路

本设计采用10uF电容、10K电阻构成,接单片机引脚9RST,构成复位电路,当按下开关时,电容被短路,电容开始放电,R1端电压变高,RST处于高电平,松开开关时,电容开始充电,R1端电压为0,RST处于低电平状态,正常工作,实现复位,复位电路图和实物图如16所示。

(3)串口通讯

本设计配有串口数据通信口,可实现串口通信,实现I/O功能,支持修改程序,采用ISP下载工具烧录,引脚3接单片RXD脚,为数据接收端,引脚2接TXD脚,为数据发送端(电路图和实物图如图17所示)。

(3)时钟电路

本设计采用12M晶振,两个20uF电容,构成时钟电路,接单片机XTAL1、XTAL2脚,构成时钟电路,保证时序稳定,单片机正常工作(时钟电路图和实物图如图18所示)。

(4)滤波电路

滤波电路由一个104电容连接单片机电源引脚VCC组成,作用是滤出外界辐射的高频干扰和滤出单片机工作时自身产生的脉冲干扰,因为开和关瞬间会产生一个很高的尖峰,如果没有一个电容,则这个信号会传送到整个板子上,干扰其他器件工作(电路图和实物图如图19所示)。

3.3 硬件连接图

整个硬件设计由单片机STC12C5A60S2、GPS信号接收模块、LCD12864液晶显示模块、电源和一些外围电路组成。

4 基于单片机的GPS软件设计

4.1 NMEA-0183数据格式

本文采用NMEA对GPS导航信息进行封包,NMEA-0183是海用电子设备制定的标准格式。0180、0182这两个既有的标准格式是其制定的基础,GPS接收机所输出的相关内容是NMEA-0183的增加内容部分,目前的GPS接收机领域内,除了早期的一小部分GPS接收机之外,差不多已经全部运用了这一格式。把RTCM的统一标准建立于各种GPS导航设备内是这个协议的功能。全面运用此类格式能显著提升GPS接收模块互换性、通用性。

基本命令格式如下:

(1)“$”:帧命令起始位;

(2)地址域:aaccc,aa是识别符,ccc是语句名;

(3)ddd…ddd:数据;

(4)“*”:校验和前缀;

(5)hh:check sum(校验和),也即*、$二者之间的全部字符ASCII码校验和(异或运算所有字节之后,就此把校验和获得,随后就此进行十六进制格式ASCII字符转换。)

(6):CR(Carriage Return)+LF(Line Feed)帧结束,回车和换行。

4.1.1 输入语句

这些语句是GPS接收机可以接受的语句。一般情况下初始化信息语句为PGRMI,其结构为:$GPRMI,<1>,<2>,<3>,<4>,<5>,<6>,<7>*hh

<1>纬度ddmm.mmmm(度分)格式(前面的0也将被传输);

<2>纬度半球N(北半球)或S(南半球);

<3>经度dddmm.mmmm(度分)格式(前面的0也将被传输);

<4>经度半球E(东经)或W(西经);

<5>UTC日期,ddmmyy(日月年)格式;

<6>UTC时间,hhmmss(时分秒)格式;

<7>接收機命令,A=自动定位,R=机器重新启动。

4.1.2 输出语句

SiRF StarII的输出语句有很多种,经由GPS串口调试软件,SiRF StarII芯片将会收到其所发送而来的有关命令语句,芯片也将会随之以命令语句为基础来进行参数设置。几种常用的数据格式如下:

(1)GPS标准数据(GPGGA),其结构为:$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<15>

<1>UTC时间,格式为hhmmss.sss;

<2>纬度,格式为ddmm.mmmm(前导位数不足则补0);

<3>纬度半球,N或S(北纬或南纬);

<4>经度,格式为dddmm.mmmm(前导位数不足则补0);

<5>经度半球,E或W(东经或西经);

<6>定位质量指示,0=定位无效,1=定位有效;

<7>接收到的卫星数量,从00到12(前导位数不足则补0);

<8>水平精确度,0.5到99.9;

<9>天线离海平面的高度,-9999.9到9999.9米;

<10>高度单位,M表示单位米;

<11>大地椭球面相对海平面的高度,-999.9到9999.9米;

<12>高度单位,M表示单位米;

<13>GPS差分数据期限(RTCMSC-104),最后设立RTCM传送的秒数量;

<14>差分参考基站标号,从0000到1023(前导位数不足则补0);

<15>校验和。

(2)可视卫星状态输出语句(GPGSV),其结构为:$GPGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,...,<4>,<5>,<6>,<7>*<8>

<1>总的GSV语句电文数;

<2>当前GSV语句号;

<3>可视卫星总数,00至12;

<4>卫星编号,01至32;

<5>卫星仰角,00至90度;

<6>卫星方位角,000至359度,实际值;

<7>信噪比(C/No),00至99dB;无表未接收到讯号;

<8>校验和。

(3)推荐最小GPS/TRANSIT数据(GPRMC),其结构为:

$GPRMC,<1>,<2>,<2>,<4>,<5>,<6>,<7>, <8>,<9>,<10>,<11>,<12>*hh

其中的语句识别符是RMC;交谈识别符是GP;校验和是hh(即除*、$本身这两个字符之外,*、$二者之间的全部字符按位异或值)。

$GPRMC语句数据区的内容为:

<1>世界时间(UTC),hhmmss(时分秒)格式;

<2>定位状态,A=有效定位,V=无效定位;

<3>定位点纬度,ddmm.mmmm(度分)格式;

<4>纬度,N(北半球)或S(南半球);

<5>定位点经度,dddmm.mmmm(度分)格式;

<6>经度半球,E(东经)或W(西经);

<7>地面速率,000.0~999.9节;

<8>地面航向,000.0~359.9度;

<9>UTC日期,ddmmyy(日月年)格式;

<10>磁偏角,000.0~180度;

<11>磁偏角方向,E(东)或W(西);

<12>工作模式:A=自主,D=差分,E=评估,N=数据无效[9]。

4.2 基于单片机的GPS定位系统软件开发环境-Ke il uVision4

相比汇编来说,美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统Keil uVision4,具有明显的可维护性、可读性、架构性以及功能等方面的优势,汇编中同样可以在关键部位嵌入C语言。目前最新的版本是C51Version9.00Release,也就是所谓的μVision4。uVision4集成开发环境内已经全面集成了C51、调试器、项目管理器、实时操作系统、汇编器以及编译器等均已处于该集成开发环境之中。uVision4IDE能把灵活、单一开发环境提供给它们[10]。

KeilC51 μVision4较之前的版本,新增?下面几个功能:

· 多重的监控和弹性的窗口管?系统。

· 系统查看器(System Viewer)-显示设备周边缓存器的讯息。

· 除错恢?检视(Debug Restore Views)-建?和储存多重除错窗口设计。

· 多项目工作区(Multi-Project Workspace)-与许多项目简化工作。

· 源碼和解组译?结(Sourceand Disassembly Linking)-解组译窗口和源码窗口完全同步使程序除错和光标导航较容?。

· 内存窗口固定(Memory Window Freeze)-储存目前内存窗口检视允许容易在不同的点及时比较。

· 设备模拟-更新支持很多新设备(例如InfineonXC88x,SiLABSC8051Fxx,AtmelSAM7/9和从Luminary,NXP,andToshi ba来的CortexM3MCUs)。

· 支持硬件除错转接器(Support for Hardware debugad apters)-包括ADI。miDAS-Link,AtmelSAM-ICE,InfineonD AS,和ST-Link。

· 新资料和指令追踪(New Data and instruction trace)-对ARM和Cortex MCUs。

· 基于XML的项目文件(XML based Project files)-建立,检视和修改项目如同容易可读的XML本文档案一样。

· 串列的窗口-扩充到提供一个基本的100-VT终端机,ASCII模式,混合模式,和十六进制模式检视。

· 拖放档案开启(Drag & Drop File Opening)-档案拖进μVision4项目空间自动会被开启。

· 监控点和逻辑分析仪(Watchpoints and Logic Analyzer)- 现在更容易设定。

4.3 基于单片机的GPS软件设计思路

单片机主程序、初始化LCD12864液晶显示模块、GPS数据接收处理是这个设计软件的基本设计模块思路。这样的设计理念好处是,模块功能清楚明朗,容易调试程序,具有可移殖性,适应不同的单片机环境[11-12]。软件的程序流程图如图20所示,相关的程序详细代码见附录。

4.3.1 LCD12864显示初始化

显示模块显示初始化设计在设计中是重要部分,是正常显示出GPS信息的准备工作,初始化流程图如图21所示。

初始化部分清零代码如下:

voidLCD_Init(void)

{LCD_Write_Command(0x34);//一次送8位数据

LCD_Write_Command(0x30);//基本操作指令

LCD_Write_Command(0x0C);//整体显示,游标off

LCD_Write_Command(0x01);//清屏

delay(10);}

voidLCD_Clear()

{LCD_Write_Command(0x01);//清屏delay(10);}

4.3.2 定时器T0设置

定时器中断设置是单片机编程中关键部分,在不影响CPU正常工作情况下,保证其他程序正常高效率运行,流程图如图22所示。

定时器超时判断程序代码:

chartimer_expired(structtimer*t)

{charflag;

ENTER_TIMER_CRITICAL;

flag=(unsignedlong)(Timer0_Count-t->start)>= (unsignedlong)t->interval?1:0;

EXIT_TIMER_CRITICAL;

returnflag;}

4.3.3 GPS数据接收队列模块

对于1HZ输出的GPS模块,由于其数据包格式有GPRMC,GPCGA等,如果不用数据包缓冲,实时读取解析,会丢失数据包导致显示异常,因而数据接收队列模块很重要,保证及时数据及时传递[13-14]。设计框图如如图23,部分代码如下。

初始化接收缓冲区:

voidGPS_PacketInit()

{memset(GPS_Packet,0,sizeof(GPS_Packet));

Count=0;

WritePacket=0;

ReadPacket=0;}

判队满:

unsignedcharGPS_EmptyPacket()

{if((Count>0)&&(WritePacket==ReadPacket))

{return0;}

else

{return1;}

}

5 系统调试、仿真与实验结果

系统软件编程、实物制作以及硬件设计完成之后,必须要调试系统的软件、硬件,这样才能够让系统可以依据相应的设计目标进行平稳运转。

5.1 硬件调试

把工艺故障、设计错误这类不同的硬件故障排除属于调试硬件的基本目的。

第一步:对硬件电路板中所设计的全部引脚、器件准确与否进行检查。通过万用表(数字)来进行逐一的对点检测,对不同的导线相互之间有没有存在开路、短路这些故障现象进行检测。

第二步:测输入5V电源(0V地)线是否与电路中的对应点的电源(地)线相连接是否正确;及检查开关是否正常,是否连接正确。

对于通过导线连接而成的芯片管座相互之间的对应脚截止与否、导通与否等进行检测。

5.2 软件调试

通过开发工具来全面展开在线仿真调试,以此对程序中的错误加以发现与纠正,把硬件方面存在的故障同步获得,这是调试软件的主要目的。软件调试时,必须要按模块来逐一展开:其一,对于每个子程序可不可以依据预期目标运行进行单独的调试;其二,对可不可以正常的控制接口电路进行调试;其三,对整个程序进行调试,特别是要对每一个模块相互之间可不可以进行参数的准确传递来进行调试。

将程序代码经过Keil软件编译生成的(.hex)文件,让然后用STC-ISP下载到单片机中。看是否符合设计要求,正常显示出正确的经纬度、时间日期等相关参数。

5.3 实验结果

调试硬件以及软件部分让其预期功能最终实现。图24为时间信息,图25是经纬度信息。

5.4 实验结果分析

由以上实验结果圖分析可以知道,此单片机GPS定位系统设计,时间日期、经纬度等数据十分精确,与实际基本很吻合。其中海拔高度,数据显示83米,但地图系统显示42米,这是因为测量地点在21楼,加上实际地理位置可能处于当前地势地方,所以有些偏差。综合考虑,此设计基本上达到了预期效果,实现了简易GPS定位功能

5.5 仿真测试

由于Proteus里面没有是STC单片机,这里用AT89C51代替,不影响主要性能;由于我是笔记本没有COM串口,这里我使用虚拟串口软件设置Configure Virtual Serial PortDriver,至于卫星GPS接收模块采用VirtualGPS(虚拟GPS软件)作为信号接收[15]。

6 总结

本次设计,主要讲解单片机、GPS相关接收原理,GPS信号接收处理模块由SiRF StarII实现,通过SiRF StarII与STC12C5A60S2兼容系列单片机相连,配备了所需的外围电路,同时LCD12864液晶显示屏,可以显示相关定位信息,并详细介绍了该GPS设计的硬件和软件设计[16]。

参考文献:

[1] 刘基余.GPS卫星导航定位原理与方法[M].北京:科学出版社,2003.

[2] 刘基余,李征航.全球定位系统原理及其应用[M].北京:测绘出版社,1993.

[3] 王权.全球定位系统(GPS)定位原理及应用[J].中国计算机用户,1996,07:5-8.

[4] 陈次颖.全球定位系统(GPS)简介[J].渔业机械仪器, 1991,01:30-31.

[5] 刘美生.全球定位系统及其应用综述(二)——GPS[J].中国测试技术,2006,06:5-11.

[6] 姚艳.全球卫星定位系统GPS的应用[J].交通世界(运输·车辆),2011,07:108-109.

[7] 张立科.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2000.

[8] 刘晓,伍小东,姚军光,等.基于单片机采集GPS数据系统的设计[J].青岛科技大学学报,2006,27(02):172-175.

[9] 李勇军,杨青,庞树杰,等.基于OEM板的GPS接收机设计[J].农机化研究,2006,05(12):109-111.

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

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

[12] 索明何,饶运涛,邢海霞,等.基于单片机的液晶显示系统设计[J].科技广场,2008,07(02):22-24.

[13] 李洪涛.GPS应用程序设计[M].北京:科学出版社, 1999.

[14] 孟明明.基于51单片机的简易GPS定位系统设计[J].工业设计,2011,06:135.

[15] 李云溪,韩涛,项剑峰.基于单片机的GPS定位系统设计[J].四川兵工学报,2012,11:111-113.

[16] 黄少锋,张尊泉,邓斌,黄斌.基于单片机采集与显示GPS定位信息系统的设计[J].空军雷达学院学报,2007,01:37-39.

猜你喜欢

时钟电路单片机
电路的保护
基于用户和电路的攻击识别方法
“简化法”巧解电路问题
这个时钟一根针
巧用求差法判断电路中物理量大小
有趣的时钟
时钟会开“花”
C8051F020与80C51单片机的异同点
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨