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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于PIC单片机和GPS接收模块的手持式GPS定位系统1引言GPS以其高精度,全天候,全球覆盖,方便灵活和优质价廉吸引全世界许多用户。GPS的广泛应用改变了人们的工作方式,提高工作效率,带来巨大的经济效益。这里提出一种基于EM411GPS接收模块和PIC18F2550单片机的手持式GPS定位系统设计方案。该系统采用点阵字符液晶屏显示接收GPS卫星数据,并用SD卡记录所接收到的GPS信息,从而实现GPS数据导入电子地图。2NEMA协议简介目前,GPS采用NMEA-0183协议做为发送和接收数据的标准,NMEA-0183是美国国家海洋电子协会(NationalMarineElectroNIcsAssociation)为统一海洋导航规范而制定的标准,该格式标准已成为国际通用的一种格式,协议内容在兼容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数据传输是以标准异步串行方式发送,其串行通信波特率为4800b/s、数据位8位、停止位1位、无奇偶校验位。文献[2]给出各种GPS语句的详细数据格式。3EM411GPS接收模块简介GPS接收模块性能主要决定于其内部使用的GPS核心芯片组,GPS芯片组SiRFStarIII通过采用20万次/频率的相关器(Correlators)提高了灵敏度并能在室内定位。冷开机/暖开机/热开机的时间分别达到42s/38s/1s,可同时追踪20个卫星信道。EM411型GPS接收模块采用SiRFStarIII高效能GPS芯片组,其具有特点:极佳的灵敏度(追踪感度:-159dBm);讯号微弱时,TTFF(TimetoFirstFix)定位仍十分迅速;支持NMEA0183语言格式:GGA,GSA,GSV,RMC,GLL,VTG;内建超大电容,可储存快速获取的卫星讯号数据;内建陶瓷天线;LED指示灯显示卫星定位状况:LED不亮时接收器关闭,LED恒亮时未定位或搜寻讯号,LED闪烁时已定位。此外,EM411体积小巧,外形尺寸为30mm×30mm×10.5mm,工作时供电电压为4.5~6.5V,消耗电流为60mA。对外提供6个引脚,使用时引脚1、5接地,引脚2接电源,引脚3为串口输出数据线,引脚4为串口输入数据线,引脚6悬空。4系统硬件设计4.1GPS接收部分图1为便携式GPS接收机的GPS接收部分的电路,由于该系统设计是手持式便携设备,所有器件选型都应考虑节省成本,节能。图1中,MCU选用PIC18F2520,它是采用纳瓦技术的低功耗8位单片机,具有一系列能在工作时显著降低功耗的功能,非常适合手持便携式设备使用。该器件内部具有32KFlash程序存储器,具备SPI、UART、I2C等接口以及1O位A/D转换器,借助于内部PLL倍频器,时钟速度可高达40MHz;可通过其UART接口(引脚RC6和RC7)实现与EM411GPS接收模块的通信,由于EM411串口输出的最大电平为2.85V,低于PIC18F2520UART端口所要求的最小驱动电平4V,因此在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定位信息,液晶显示器设置于4bit工作方式,MCU通过4根数据线以及使能引脚控制LCD的显示以节省MCUI/O端口资源。该系统设置2个按键用于控制SD卡的数据存储。当SW1键按下时,通过软件延时设定数据保存时间间隔,SW2键按下时,系统将接收到的GPS定位信息写入SD卡。图1中,开关K2用于打开、关闭LCD背光电源:PIC18F2520的RA端口资源暂未使用。可留待以后系统升级时使用,例如将电池输出的直流模拟电压信号输入到RA端口,利用PIC18F2520的10bitA/D转换器将其转换为数字信号后。在LCD上显示电池电量,便于用户使用。4.2电源部分便携式GPS接收机采用两节AA型1.5V电池供电,使用微功耗、高效率DC-DC变换器LT1300,将3V电压转换为5V以供电路使用,LT1300最低输入电压低至1.8V,转换效率高达88%。当输入电压为2V、输出电压为5V时,LT1300的输出电流可达220mA。LT1300采用8引脚SOIC封装,引脚1为信号地(GND),引脚2为输出选择(SEL),当其与输入电源相接时,输出5V电压,当该引脚接地时则LT1300输出3.3V电压。引脚3(SHUTDOWN)用于选择工作方式,该引脚接地时,LT1300为正常工作方式;当该引脚接高电平时,LT1300为掉电工作模式。引脚4(SENSE)是LT1300的输出端。其引脚5为限流,当该引脚接地时,其最大的开关电流为400mA。LT1300的引脚6~8分别为电源输入、输出开关、电源地。图2为LT1300构成的GPS接收机电源电路。图2中开关K1是GPS接收机的总电源开关。由于GPS接收机的主机部分使用5V电压,因此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背光显示的情况下,可连续工作超过10h。借助SD卡以及PC机可实现将接收到的GPS数据导入到GoogleEarth等电子地图中。由EN411GPS接收模块以及PIC18F2520构成的手持式GPS接收机具有电路简单、成本低、灵敏度高等优点,接收到的数据能以FAT文件格式保存到SD卡中,具有较高的实用价值,该系统设计可广泛应用于野外作业、户外运动等领域。

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功