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

发布者:冰雪勇士最新更新时间:2015-07-03 来源: eepw关键字:PIC单片机  GPS接收模块  定位系统 手机看文章 扫描二维码
随时随地手机看文章
  1 引言

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

  2 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语句的详细数据格式。

  3 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悬空。

  4 系统硬件设计

  4.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上显示电池电量,便于用户使用。[page]

  4.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放置,走线应尽量短,并应将电源地与信号地相连以减少电路中的干扰噪声。

  

 

  5 系统软件设计

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

  

 

  6 结束语

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

关键字:PIC单片机  GPS接收模块  定位系统 引用地址:一种基于PIC单片机和GPS接收模块的手持式GPS定位系统

上一篇:pic单片机两个IO口四线驱动LCD1602
下一篇:PIC18F458控制数码管显示1~8数字程序

推荐阅读最新更新时间:2024-03-16 14:23

关于PIC单片机模块和功能总结
PIC 单片机的概述 PIC16F616 是一款 14 引脚、8 位的 CMOS 单片机。采用精简指令集,仅有 35 条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令。这样有利于提高单片机的运行速度和执行效率。 PIC16F616 这款单片机供电电压可以在 2V 到 5。5V 之间,内部集成了一个 RC 振荡器,频率可以配置成 8MHZ 或者 4MHZ,也可以用外部晶振提供时钟。内部集成有 AD 转换、比较器等硬件模块,还具有上电复位、欠压复位、看门狗、代码保护等功能。三个定时器、PWM 发生器等可以由用户编程。下面我来一一介绍关于 PIC 单片机的这些模块和功能
[单片机]
PIC单片机C语言编程的基本框架
简介:PIC单片机C语言编程的基本框架 基于PICC编译环境编写PIC单片机程序的基本方式和标准C程序类似,程序一般由以下几个主要部分组成: 1.在程序的最前面用#include预处理指令引用包含头文件,其中必须包含一个编译器提供的“pic.h”文件,实现单片机内特殊寄存器和其它特殊符号的声明; 2. 用“_CONFIG”预处理指令定义芯片的配置位; 3. 声明本模块内被调用的所有函数的类型,PICC将对所调用的函数进行严格的类型匹配检查; 4. 定义全局变量或符号替换; 5. 实现函数(子程序),特别注意main函数必须是一个没有返回的死循环。 下面为一个C程序的范例,供大家参考。 #includ
[单片机]
PIC单片机红外遥控编码与解码的问题分享
一般常用的红外遥控器编码规则都差不多,基本上都同6221原理一样 PIC单片机接收时: 如果用54,57这类片子做的话有一定的难度(假如要做成实时控制的;比如说你还要驱动显示,驱动步进电机,在加上几个按键)原因就是这类片子没有中断 例程如下(用来解6221;分频比为256) RF: BTFSC PORTB,2;;B2口用做接收口 GOTO RF1 BTFSS DOWNBIT;;检测下降沿标制 CLRF RTCCOUNT BSF DOWNBIT;制下降沿标制 BTFSS UPBIT;;检测上升沿标制 RETLW 0 BTFSC IDBIT;;检测码头标制 GOTO RF3 MOVLW 2AH SUBWF R
[单片机]
基于MAX3100和OLED的GPS定位系统设计
  0 引言   在单片机应用系统中,串行数据通信通常采用芯片8251,但因8251的通信波特率不高,不能应用于晶振较高的系统,这就使得要求高运行速度、高速收发数据的系统无法应用8251芯片收发数据,而且8251需要有8253提供外部时钟信号。MAXIM公司推出的新型UART芯片MAX3100   正好填补了这个空白。MAX3100支持高速通信,最高通信波特率可达230KBPS,低功耗,支持低电压,设计后系统体积小,比采用外部时钟8253设计的印制版尺寸的一半还小。而且能够使软件设计实现起来更可靠。   有机发光显示OLED是比液晶显示技术更为先进的新一代平板显示技术,是被业界公认为最具发展前景的下一代显示技术。有机发光显
[单片机]
基于MAX3100和OLED的<font color='red'>GPS</font><font color='red'>定位系统</font>设计
MPLAB X安装,PIC单片机开发环境的搭建记录
  第一次使用PIC单片机,记录一下使用的过程,所谓工欲善其事必先利其器,首先需要安装PIC的开发环境,这里我选的是MPLABX-v5.25.   首先到官网下载MPLAB X,其他渠道也行,官网: https://www.microchip.com/mplab/mplab-x-ide ,其次还要下载XC 16,这是编译必须的,官网 https://www.microchip.com/mplab/compilers/compiler-maintenance-and-support/mplab-xc-hpa 选择你使用芯片对应的版本,我用的是16位芯片,所以我下载了XC 16。   安装MPLAB X:   其实安装很简单,
[单片机]
MPLAB X安装,<font color='red'>PIC单片机</font>开发环境的搭建记录
基于麦克风阵列声源定位系统的FPGA实现
摘要:论述了基于麦克风阵列的声源定位技术的基本原理,给出了利用FPGA实现系统各模块的设计方法。重点介绍了其原理和模块的电路实现,给出的基于FPGA设计实验结果表明,系统最大限度发挥了FPGA的优势、简化了系统设计、缩短了设计周期、符合设计要求。 关键词:声源定位;时延估计;FFT;CORDIC 声源定位,即确定一个或多个声源在空间中的位置,是一个有广泛应用背景的研究课题。基于麦克风阵列的声源定位技术在视频会议、声音检测及语音增强等领域有重要的应用价值。 声源定位算法目前主要有3类:第一类算法是基于波束形成的方法。这种算法能够用于多个声源的定位,但是它存在着需要声源和背景噪声先验知识以及对初始值比较敏感等缺点;第二
[嵌入式]
基于麦克风阵列声源<font color='red'>定位系统</font>的FPGA实现
LCD显示器与PIC16F877单片机连接
一.引言     液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。而美国Microchip公司生产的PIC系列单片机系用精简指令集(RISC),哈佛总线结构、2级流水线取指令方式,具有实用、低价、指令集小、简单易学、低功耗、高速度、体积小、功能强而逐渐成为8位单片机的新潮流。这里以JHD161A液晶模块与PIC16F877的连接来介绍它的使用方法。 二.JHD161A  LCD显示器及其与PIC16F877单片机的连接     JHD161A液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,是武汉博控科技有限公司生产的1行16个字符的LCD显示模块
[单片机]
LCD显示器与PIC16F877单片机连接
【c#】PIC单片机的编程烧写功能
1、如何在ATE中集成对PIC单片机的编程烧写功能 https://blog.csdn.net/dexinzheng/article/details/41723029?_t_t_t=0.833070834577722 2、PIC16F1947烧写程序,不擦除EEPROM http://bbs.21ic.com/icview-703494-1-1.html?ordertype=1 3、MPLAB PM3烧写器使用SD卡步骤简介 https://wenku.baidu.com/view/7df5f596dc88d0d233d4b14e852458fb770b3870.html 4、【MPLAB X IPE】:XIPE烧写教
[单片机]
【c#】<font color='red'>PIC单片机</font>的编程烧写功能
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved