打印
[MCU]

基于PIC单片机和GPS接收模块的手持式GPS定位系统

[复制链接]
1130|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Sode|  楼主 | 2019-6-4 11:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于PIC单片机和GPS接收模块的手持式GPS定位系统


     GPS以其高精度,全天候,全球覆盖,方便灵活和优质价廉吸引全世界许多用户。GPS的广泛应用改变了人们的工作方式,提高工作效率,带来巨大的经济效益。这里提出一种基于EM411GPS接收模块和PIC18F2550单片机的手持式GPS定位系统设计方案。该系统采用点阵字符液晶屏显示接收GPS卫星数据,并用SD卡记录所接收到的GPS信息,从而实现GPS数据导入电子地图。

  1、NEMA协议简介
  目前,GPS采用NMEA-0183协议做为发送和接收数据的标准,NMEA-0183是美国国家海洋电子协会(NationalMarine ElectroNIcs Association)为统一海洋导航规范而制定的标准,该格式标准已成为国际通用的一种格式,协议内容在兼容NMEA-180和NMEA-0182的基础上。增加了GPS、测深仪、罗经方位系统等多种设备接口和通讯协议定义,同时还允许一些特定厂商对其设备通信自定协议。NMEA-0183格式数据串的所有数据都采用ASCⅡ文本字符表示,数据传输以“$”开头,后面是语句头。语句头由5个字母组成。其前2个字母表示“系统ID”,即表示该语句是属于何种系统或设备,例如GP表示该语句属于GPS定位系统,HC表示该语句属于罗经方位系统; 后3个字母表示“语句ID“,表示该语句是关于何方面的数据。语句头后是数据体,包含不同的数据体字段,语句末尾为校验码(可选),以回车换行符《CR》《LF》结束,也就是ACSII字符 “回车”(十六进制的0D)和“换行”(十六进制的0A)。数据字段以逗号分隔识别,空字段保留逗号。在GPS系统中常用语句有GPGGA(GPS定位信息),GPGSA(当前卫星信息),GPGSV(可见卫星信息),GPRMC(推荐定位信息),GPGLL(定位地理信息),GPVTG(地面速度信息) 等。GPS数据传输是以标准异步串行方式发送,其串行通信波特率为4 800 b/s、数据位8位、停止位1位、无奇偶校验位。文献[2]给出各种GPS语句的详细数据格式。

  2、EM411 GPS接收模块简介
  GPS接收模块性能主要决定于其内部使用的GPS核心芯片组,GPS芯片组SiRF Star III通过采用20万次/频率的相关器(Correlators)提高了灵敏度并能在室内定位。冷开机/暖开机/热开机的时间分别达到42 s/38 s/1 s,可同时追踪20个卫星信道。
  EM411型GPS接收模块采用SiRF Star III高效能GPS芯片组,其具有特点:极佳的灵敏度(追踪感度:-159 dBm);讯号微弱时,TTFF(Time to First Fix)定位仍十分迅速;支持NMEA 0183语言格式:GGA,GSA,GSV,RMC,GLL,VTG;内建超大电容,可储存快速获取的卫星讯号数据;内建陶瓷天线;LED指示灯显示卫星定位状况:LED不亮时接收器关闭,LED恒亮时未定位或搜寻讯号,LED闪烁时已定位。此外,EM411体积小巧,外形尺寸为30 mm×30 mm×10.5 mm,工作时供电电压为4.5~6.5 V,消耗电流为60 mA。对外提供6个引脚,使用时引脚1、5接地,引脚2接电源,引脚3为串口输出数据线,引脚4为串口输入数据线,引脚6悬空。

      3、系统硬件设计
  3.1 GPS接收部分
  图1为便携式GPS接收机的GPS接收部分的电路,由于该系统设计是手持式便携设备,所有器件选型都应考虑节省成本,节能。图1中,MCU选用 PIC18F2520,它是采用纳瓦技术的低功耗8位单片机,具有一系列能在工作时显著降低功耗的功能,非常适合手持便携式设备使用。该器件内部具有32 K Flash程序存储器,具备SPI、UART、I2C等接口以及1O位A/D转换器,借助于内部PLL倍频器,时钟速度可高达40 MHz;可通过其UART接口(引脚RC6和RC7)实现与EM411 GPS接收模块的通信,由于EM411串口输出的最大电平为2.85 V,低于PIC18F2520 UART端口所要求的最小驱动电平4 V,因此在PIC18F2520和EM411之间需增加由U2(74HCT04)构成的TTL/RS232电平转换电路,否则PIC18F2520将不能接收EM411的定位信息。PIC18F2520通过其SPI接口(引脚RC0,RC3,RC4,RC5)与SD卡通信。SD卡对外提供两种访问模式:SD模式和SPI模式。SD模式允许4线的高速数据传输。SPI模式使用通用的SPI接口,相比SD模式传输速率有所降低,使用SPI。接口的优点是仅用4根数据线即可完成SD卡的读写。通信模式不同,SD卡引脚功能也不同。由于PIC18F2520内部具有SPI接口,本方案采用SPI模式实现对 SD卡的访问,图1中CS(RC0)为MCU向卡发送的片选信号,SCLK(RC3)为MCU向卡发送的时钟信号。SDI为MCU向卡发送的单向数据信号,SD0为卡向MCU发送的单向数据信号,此外所有的SD卡插座还具有CD与WP两个引脚,CD引脚是SD卡检测信号引脚,当有卡插人时,该引脚对地短路(在插座内部连接)。WP是写保护信号引脚,在卡插入且没有写保护时,该引脚对地短路(在插座内部连接)。
      该系统设计采用20×4的点阵字符液晶显示器显示所接收的GPS定位信息,液晶显示器设置于4 bit工作方式,MCU通过4根数据线以及使能引脚控制LCD的显示以节省MCUI/O端口资源。该系统设置2个按键用于控制SD卡的数据存储。当SW1 键按下时,通过软件延时设定数据保存时间间隔,SW2键按下时,系统将接收到的GPS定位信息写入SD卡。图1中,开关K2用于打开、关闭LCD背光电源:PIC18F2520的RA端口资源暂未使用。可留待以后系统升级时使用,例如将电池输出的直流模拟电压信号输入到RA端口,利用 PIC18F2520的10 bit A/D转换器将其转换为数字信号后。在LCD上显示电池电量,便于用户使用。
  3.2 电源部分
  便携式GPS接收机采用两节AA型1.5 V电池供电,使用微功耗、高效率DC-DC变换器LT1300,将3 V电压转换为5 V以供电路使用,LT1300最低输入电压低至1.8 V,转换效率高达88%。当输入电压为2 V、输出电压为5 V时,LT1300的输出电流可达220 mA。LT1300采用8引脚SOIC封装,引脚1为信号地(GND),引脚2为输出选择(SEL),当其与输入电源相接时,输出5 V电压,当该引脚接地时则LT1300输出3.3 V电压。引脚3(SHUTDOWN)用于选择工作方式,该引脚接地时,LT1300为正常工作方式;当该引脚接高电平时,LT1300为掉电工作模式。引脚4(SENSE)是LT1300的输出端。其引脚5为限流,当该引脚接地时,其最大的开关电流为400 mA。LT1300的引脚6~8分别为电源输入、输出开关、电源地。图2为LT1300构成的GPS接收机电源电路。图2中开关K1是GPS接收机的总电源开关。由于GPS接收机的主机部分使用5 V电压,因此LT1300的引脚2、引脚6与电池的正极相连,引脚3、引脚5、引脚1、引脚8接地。工作时引脚7需外接电感和二极管,其作用是当电池电量消耗过大时,LT1300内部的开关效应会引起电感L1上的电流交替增大,此时二极管VD1会将这部分能量转储到电容C4中,以提高LT1300的输出电压。该部分设计的二极管以及电感L1、电解电容C4参数选择均参考LT1300数据资料中推荐的型号和参数。需要注意的是,由于LT1300是高速、高电流器件,因此在PCB板布局时应尽量使电感L1靠近引脚7放置,走线应尽量短,并应将电源地与信号地相连以减少电路中的干扰噪声。

      4、系统软件设计
  图3为便携式GPS接收机的主程序流程。首先是PIC18F2520的初始化,主要包括通用I/O端口,UART,SPI,以及LCD初始化,并在 LCD 上显示开机初始信息。接着PIC18F2520开始接收从EM411传送的GPS定位信息,该系统设计的PIC18F2520只接收GPSGGA以及 GPSRMC语句信息并将保存接收到的信息。然后从中提取要显示在LCD上的信息,并将其写入预先定义的显示用缓存数组中再送往LCD显示。然后键盘扫描,如果有键按下则进行键盘中断程序的处理。当SW1键按下时,软件通过延时子程序设定一个固定的保存时间间隔。当SW2键按下时,软件执**驱动子程序,微芯公司提供了PIC单片机使用的完整的SD卡驱动程序代码,可以方便地将GPS定位信息以FAT文件格式保存到SD卡中,并可在Windows操作系统下打开这些文件。SD卡驱动子程序主要完成SD卡初始化、卡插入检测、写保护检测、 SD卡读/写命令的发送/接收、文件的更名、文件数据的传送等任务。文献[6]给出了微芯公司有关 PIC单片机SD卡驱动程序的详细说明。


  5、结束语
  电路搭建好后,选择室外空旷地带、写字楼室内、繁华街道、汽车内等环境对便携式GPS接收机进行测试,在室外、室内以及移动的汽车内该GPS接收机均能很好的接收多颗卫星的GPS定位信息,关闭LCD背光显示的情况下,可连续工作超过10 h。借助SD卡以及PC机可实现将接收到的GPS数据导入到Google Earth等电子地图中。由EN411 GPS接收模块以及PIC18F2520构成的手持式GPS接收机具有电路简单、成本低、灵敏度高等优点,接收到的数据能以FAT文件格式保存到SD卡中,具有较高的实用价值,该系统设计可广泛应用于野外作业、户外运动等领域。

使用特权

评论回复

相关帖子

沙发
Sode|  楼主 | 2019-6-4 11:41 | 只看该作者
基于PIC单片机和GPS接收模块的手持式GPS定位系统

文档1.pdf

150.31 KB

使用特权

评论回复
板凳
51xlf| | 2019-6-6 15:25 | 只看该作者
精准gps模块与单片机通信   

使用特权

评论回复
地板
i1mcu| | 2019-6-6 15:25 | 只看该作者
GPS发送的串行数据送至单片机的   

使用特权

评论回复
5
pmp| | 2019-6-6 15:26 | 只看该作者
将定位所得的字符数据处理成数值?     

使用特权

评论回复
6
mmbs| | 2019-6-6 15:26 | 只看该作者
硬件电路极其简单                  

使用特权

评论回复
7
1988020566| | 2019-6-6 15:26 | 只看该作者
主要难点在输出信息解码上,数据格式固定   

使用特权

评论回复
8
lzbf| | 2019-6-6 15:27 | 只看该作者
串口接收到一行字符串,传到解析函数里,再把解析到的字符串经过运算转成我们需要数据。  

使用特权

评论回复
9
houjiakai| | 2019-6-6 15:27 | 只看该作者
把gps的TXD针与单片机的RXD连上  

使用特权

评论回复
10
youtome| | 2019-6-6 15:27 | 只看该作者
如何通过 单片机实现GPS定位功能

使用特权

评论回复
11
cemaj| | 2019-6-6 15:28 | 只看该作者
基于单片机的GPS定位系统的设计,在哪可以找到  

使用特权

评论回复
12
updownq| | 2019-6-6 15:28 | 只看该作者
用普通单片机的话,可能会出现内存不足情况  

使用特权

评论回复
13
lzbf| | 2019-6-6 15:28 | 只看该作者
谢谢楼主分享的资料啦           

使用特权

评论回复
14
51xlf| | 2019-6-6 15:28 | 只看该作者
差分GPS定位技术可以使定位精度达到米级甚至更高精度  

使用特权

评论回复
15
1988020566| | 2019-6-6 15:28 | 只看该作者
单片机解析GPS数据非常简单  

使用特权

评论回复
16
i1mcu| | 2019-6-6 15:28 | 只看该作者
使用单片机与GPS模块进行通信   

使用特权

评论回复
17
mmbs| | 2019-6-6 15:28 | 只看该作者
只要和单片机串口联接就行了   

使用特权

评论回复
18
pmp| | 2019-6-6 15:28 | 只看该作者
买GPS模块,商家一般会给你例程   

使用特权

评论回复
19
updownq| | 2019-6-6 15:28 | 只看该作者
解析输出的 一帧数据需512字节缓存,再加上其它变量,很容易出现内存不足问题  

使用特权

评论回复
20
cemaj| | 2019-6-6 15:28 | 只看该作者
单片机上安装GPS模块可以实现什么易操作的功能?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1049

主题

1522

帖子

8

粉丝