APP下载

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

2021-09-27高书阳

科海故事博览 2021年19期
关键词:时钟单片机电路

高书阳

(湖北方源东力电力科学研究有限公司,湖北 武汉 430000)

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 卫星定位系统其主要特点如下:

图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 所示。

图3 GPS 接收模块硬件结构

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 所示。

图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 单片机中的基本模块。采集、控制数据方面的全部单元模块基本上全涵盖于这个系列单片机内,因而也能将其当成片上系统。

图5 STC12C5A60S2 系列内部结构框

STC12C5A60S2 引脚如图6 所示。

图6 STC12C5A60S2 引脚

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,低功耗设计:空闲模式(可由任一个中断唤醒)。

• 工作频率: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 区间内挑选晶体振荡频率,频率将会因为电容值的大小而被其微调。

图7 时钟电路(a)内部方式时钟电路结构图

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

图8 时钟电路(b)外部方式时钟电路结构图

(2)复位功能

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

(3)复位电路

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

图9 复位电路

图10 复位电路典型线路

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

图11 典型线路

3.2.2 SiRFStarIIGPS 信号接收模块

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

图12 SiRFStarII 引脚

引脚备注: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 所示。

表1 SiRFStarII 主要特征

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

图13 GPS 接收模块与天线实物

表2 GPS 天线参数

3.2.3 LCD12864 液晶显示模块介绍

(1)液晶显示模块

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

图14 LCD12864 液晶显示模块电路

(2)LCD12864 有20 个引脚,说明如表3 所示液晶硬件接口:

表3 12864 引脚说明

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 所示。

图15 电源电路图

(2)复位电路

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

图16 复位电路

(3)串口通讯

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

图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]。

图3-14 时钟电路

图3-15 滤波电路

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 所示,相关的程序详细代码见附录。

图20 软件程序流程图

4.3.1 LCD12864 显示初始化

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

图21 显示模块初始化

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

4.3.2 定时器T0 设置

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

图22 定时T0 设置

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

4.3.3 GPS 数据接收队列模块

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

图23 GPS 数据接收队列模块

初始化接收缓冲区:

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

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

5.1 硬件调试

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

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

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

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

5.2 软件调试

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

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

5.3 实验结果

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

图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]。

猜你喜欢

时钟单片机电路
电路的保护
别样的“时钟”
古代的时钟
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
巧用立创EDA软件和Altium Designer软件设计电路
基于MATLAB模拟混沌电路
光电倍增管分压电路