基于单片机GPS定位系统的设计精选.docx
- 文档编号:5178341
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:45
- 大小:645.97KB
基于单片机GPS定位系统的设计精选.docx
《基于单片机GPS定位系统的设计精选.docx》由会员分享,可在线阅读,更多相关《基于单片机GPS定位系统的设计精选.docx(45页珍藏版)》请在冰豆网上搜索。
基于单片机GPS定位系统的设计精选
南阳理工学院
计算机与信息工程学院
软硬件专业综合课程设计总结报告
题目:
基于单片机的GPS定位系统
***************
学号:
************
专业:
通信工程
*******************
起止日期:
14.2—14.6
南阳理工学院
计算机与信息工程学院
软硬件专业综合课程设计任务书
实践题目
基于单片机的GPS定位系统
学生姓名
张燕红
班级
通信二班
学号
105060640079
指导教师
郑珂
职称
副教授
实践地点
南阳理工学院
实践日期
2014年2月起至2014年6
选题的目的:
掌握GPS定位设计技巧,使自己所学的知识在现实中得以应用。
制作出一套设计方案,以软硬件相结合的方式完成整个GPS数据接收和显示的过程。
完成一台液晶显示的手持式GPS定位接收设备。
能够较为精确地计算和显示日期、时间、经度、纬度等卫星信息。
通过对GPS接收板和LED显示模块的研究,设计GPS定位信息的采集与显示系统。
全球定位系统GPS是近年来开发的最具有开创意义的高新技术之一,其全球性、全天候性的导航定位、定时、测速优势必然会在诸多领域中得到越来越广泛的应用。
GPS全球定位系统在实际生活中被广泛应用,是当今信息时代发展中的重要组成部分。
因其具有性能好、精度高、应用广的特点,使其成为了迄今最好的导航定位系统。
实践证明,该系统显示的时间非常精确、定位精度高,能满足一般应用项目的使用,具有一定的实用价值。
技术要求:
1、uVision2集成开发环境、LCD液晶显示器
2、系统的主要功能有:
1.硬件电路的设计
2.GPS接收信息的处理
3.显示程序的调式
进度安排:
2014年2月20日——2014年2月30日查阅资料、项目总体分析
2013年3月01日——2013年3月13日系统功能总体设计
2013年3月14日——2013年3月26日软件程序及硬件电路设计
2013年3月27日——2014年月03日软硬件系统调试、测试
2014年01月04日——2014年01月08日撰写实训报告
2014年01月09日——2014年01月10日验收
主要参考资料:
一、工具书:
[1]邱致和,王万义.GPS原理与应用[M].北京:
电子工业出版社,2001
[2]李维言,郭强.液晶显示应用技术,电子工业出版社,1999.8
[3]李维言,郭强,周云仙.液晶显示应用手册,电子工业出版社,2002.8
[4]陆爱明.单片机和图形液晶显示器接口应用技术,电子产品世界。
2001.9
[5]余锡存.单片机原理及接口技术[M].西安:
西安电子科技大学出版社,2000
[6]戴佳,戴卫恒.51单片机C语言应用程序设计[M].北京:
电子工业出版社.2006
[7]彭为.单片机典型系统设计实例精讲[M].北京:
电子工业出版社.2006
二、参考资料:
[1]肖剑飞.嵌入式GPS通用卫星模拟器设计与实现[J].空间电子技术,2007.4
[2]黄少锋,张尊泉,邓斌,黄斌.基于单片机采集与显示GPS定位信息系统的设计[J].空军雷达学院学报,2007.1
[3]王古猛.GPS与单片机接口程序设计[J].电子测试,2007,7
[4]黄凌.基于单片机的GPS信息处理系统[J].现代电子技术,2009,12
[5]杨平,宋贽存.基于GPS-OEM板和单片机的GPS接收机的设计[J].东北林业大学学报,2009,5
教师签名:
年月日
1.引言
GPS技术在军事、通讯、气象、勘探、导航、遥感、大地测量、地球动力以及天文等众多学科领域得到极其广泛的应用,推动了科学技术的迅猛发展,也丰富了人类的科学文化生活。
现在,GPS的外型设计已经转向便携式发展,逐步踏入寻常百姓的生活中。
所以,对GPS的研究具有十分重要的意义。
全球定位系统(GlobalPositioningSystem简称GPS)是美国第二代军用导航系统,可实现全球范围内的实时导航和定位。
GPS由太空卫星、地面控制系统、用户设备三个部分组成。
太空卫星共有27颗,24颗运行,3颗备用。
24颗可操作的工作卫星以55°的倾角分布在地球上空20~200KM的6个轨道面上。
这些卫星轨道上的分布状态使地球上的任何位置在任意时候都可以同时收到至少6颗卫星的定位信息,这些卫星则不断地给全球用户发送位置和时间的广播数据。
地面控制系统主要作用有:
根据监控系统对GPS的观测数据计算出卫星的星历和卫星钟的改正参数等,并将这些数据注入到卫星中去;对卫星进行控制,对卫星进行发布指令;接收卫星信号,监测卫星状态等。
用户设备用于接收GPS卫星所发出的信号,利用这些信号进行导航定位等工作。
GPS系统的基本定位原理是:
每颗GPS卫星时刻发布其位置和时间数据信号,用户接收机可以测量每颗卫星信号到接收机的时间延迟,根据信号传输的速度可以计算出接收机到不同卫星的距离。
同时收集至少4颗卫星的数据时,就可以算出三维坐标、速度和时间。
由于GPS具有全球覆盖以及精度高、定位速度快、实时性好、抗干扰能力强等特点,近年来在国内外得到了广泛的应用,在各个领域发挥了极大的作用,已成为了信息时代不可以或缺的一部分。
本文的主要目的是在GPS和单片机的理论和知识上,选用Atmel公司的AT89S52提取GPS模块的接收数据并由1602液晶显示接收数据。
在此设计过程中,主要熟悉GR-87GPS模块各性能指标,结合单片机串行通信知识能实现对GPS接收到的卫星信息进行提取,而后在1602液晶显示平台上选择性的显示数据并且利用语音芯片ISD1730进行播报音。
2.
方案选择
2.1.方案一
主要芯片器件:
GPS,GPS-OEM板;单片机,AT89S54;语音芯片,ISD1730;键盘模块;液晶LCD1602;电平转换MAX232;外置ROM等。
OEM模块通过电平转换MAX232与AT89S54进行串行通信,其中GPS传入单片机的为GPRMC格式的语句,需要在单片机中进行数据拆分等操作。
将取得的GPS数据发送到单片机中进行处理,通过键盘模块的按键控制,单片机判断后进行操作,或将数据存储到外置rom中,或将已得的经纬度通过ISD1730语音模块播报出,再次期间,LCD1602始终显示当前位置的经纬度。
方案一特点:
(1)OEM板军用板,精确度高,是集成模块,易于携带。
(2)键盘模块按键多,使用功能强大,可以实现多种功能。
(3)AT89S54内存大,方便使用大程序。
(4)外置ROM,便于存储数据以及调用。
(5)GPS-OEM板需经过电平转化MAX232才可与单片机通信。
并且OEM成本高,性价比一般。
(6)AT89S54非常用芯片,不易获取。
(7)使用外置ROM需要占用至少8个数据口,如图1所示,需要对某个数据口进行分时复用。
加大了电路复杂性。
(8)整个电路硬件多,布局难。
2.2.方案二
主要芯片器件:
GPS,GR-87;单片机,AT89S52;语音芯片,ISD1730;3个按键;液晶LCD1602等
GR-87模块与单片机AT89S52直接可以进行串行通信,其中GPS传入单片机的为GPRMC格式的语句,需要在单片机中进行数据拆分等操作。
将取得的GPS数据发送到单片机中进行处理,通过按键控制,单片机判断后进行操作,例如将已得的经纬度通过ISD1730语音模块播报出,并在特殊的经纬度范围内播报地址信息,在此期间,LCD1602始终显示当前位置的经纬度。
方案二特点:
(1)电路硬件少,结构简单易懂。
(2)GR-87成本低,性价比高。
(3)AT89S52流行,内存8K足够使用。
(4)数据口刚好够用。
(5)结构简单,硬件及软件功能有一定的局限性。
(6)GR-87以及接线不方便携带。
最终选择了方案二,理由如下:
1.GPS选择GR-87,它可以满足课题要求,并且其性价比高,而且不需要电平转换。
2.课题按键功能的实现不需要键盘模块,只需4~6个按键即可。
3.AT89S52内存足够用,不用再定做AT89S54
4.虽然缺少了外置ROM,但减少了分时复用的麻烦。
5.方案二的I/O口分配合理。
3.
硬件设计
3.1.系统总体结构图
系统总结构图如图3.1所示,其中,单片机P1.0~P1.3口进行按键控制,GR87与单片机串行通信,单片机的TXD连接GR-87的RXD1,GR-87的RXD2口闲置。
LCD经上拉电阻与单片机P0口连接,ISD1730相关控制口与P3口中的部分I/O口相连。
系统由统一的电源5V供电。
3.2.单片机引脚连接电路
图3.2单片机引脚电路
AT89S52简介
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
如图3.2、3.3所示,本次课题中,P0口作为标准I/O口进行数据输出端,传入液晶;以P1^0到P1^4的标准I/O口功能进行按键控制,P1^5到P1^7作为下载器连接端口使用,利用P3^0、P3^1的串行数据传输功能与GPS进行数据通信,P3^4作为时钟信号接入语音芯片的时钟端,P2^0到P2^2作为语音芯片的控制端口,P2^5到P2^7作为液晶的控制端口。
其他所用端口为:
XTAL1、XTAL2、VCC、VPP、GND、RESET。
GPS模块GR-87简介
HOLUXGR-87是一个高效能、低耗电的智慧型卫星接收模组或称做卫星接收引擎,他采用美国瑟孚SiRFstarIII公司所设计的第三代卫星定位接收晶片,是一个完整的卫星定位接收器具备全方位功能,能满足专业定位的严格要求与个人消费需求。
特色:
(1)采用SiRF第三代高效能晶片高灵敏度、低耗电量晶片STARIII,内建ARM7TDMICPU可符合客制需求。
(2)具备快速定位及追踪20颗卫星的能力。
(3)体积超小,仅25.4×25×7公\u91d0。
(4)晶片内建200,000个卫星追踪运算器,大幅提高搜寻及运算卫星讯号能力。
(5)内建RTCMSC-104DGPS和WASS/EGNOS解调器。
(6)低耗电量,具备有省电模式(Trickle-Power)功能,以及在设定的时间才启动的定时定位(Push-to-Fix)功能。
(7)支援NMEA-0183v2.2版本规格输出。
如图3.4所示结构图,GPS模块只有4个端口与单片机连接,其中VCC、GND为供电部分,TXD、RXD为串行通信部分。
由于GR-87属于独立模块,所以在系统原理图、PCB中未加入其封装,而是采用从PCB中的单片机串行口以及VCC、GND分别引出4条线,采用引线的方式与GPS相连接。
3.3.LCD显示电路
LCD1602简介
工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。
其中RS为寄存器选择端,高位时是数据寄存器,低位时是指令寄存器;RW时读写信号线,高位时是读,低位时是写;E为使能控制端。
1602采用标准的16脚接口,其中:
第1脚:
VSS为电源。
第2脚:
VDD接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
LCD引脚连接介绍
显示电路如图3.2右侧所示,P0^0~P0^7经过上拉电阻10K*8欧姆与LCD的数据口DB0~DB7相连;RS/RW/EN由单片机的P2^7~P2^5控制;对比度控制口VO经过测试后,经5K定值电阻与VCC相连刚好合适;背光灯控制BGVCC经51欧姆的电阻与VCC连接,BGGND连接地。
这种接法缺陷是对比度不可调,但在稳定的5V供电的情况下,连接定置电阻经过测试也是行的通的。
3.4.ISD语音电路
ISD1730简介
ISD1700系列录放芯片是一种高集成度,高性能的芯片。
它可以多段录音,采样率可在4K至12K间调节,供电范围可以在2.4V至5.5V之间。
ISD1700系列录放芯片可工作于独立按键模式和SPI控制模式。
芯片内有存储管理系统来管理多段语音,这样在独立按键模式下也能进行多段语音录放。
此芯片内有振荡器,可通过外部电阻来调节其振荡频率;还有带自动增益控制(AGC)的话筒运放,模拟线路输入,抗锯齿滤波器,多级存储阵列,平滑滤波器,音量控制,直接驱动喇叭的PWM输出与接外部功放的电流/电压输出。
ISD1700还有新录音提示功能,当有新的录音后,LED回每几秒闪一次来提示用户有新的录音。
此外还有4种音效来提示用户的操作结果,如开始录音、停止录音、擦除、下一曲和全部擦除等。
录音数据存储在芯片的FLASH内,没有经过任何压缩,所以有较好的音质和断电存储。
芯片有两路独立的语音信号输入通道,话筒输入与模拟信号输入。
在独立按键模式下,当某功能操作完成后芯片会自动进入掉电模式来降低功耗。
在SPI模式下,用户可对芯片进行更多功能操作。
如对任意存储地址进行录放,对模拟通道配置寄存器(AnalogPathConfigurationregister,APC)进行读写等。
如图6所示,电阻R3会影响采样率,采样率与它的关系见下列表。
采样率
12KHz
8KHz
6.4KHz
5.3KHz
4KHz
Rosc
53KΩ
80KΩ
100KΩ
120KΩ
160KΩ
表3.1采样率与电阻关系
如图3.5所示,图3.5右侧的MIC电路部分经过实践测试,音质不好,所以弃用,因为所选芯片为ISD1730,内存足够,所以改用找地址的电脑信号录入方式进行录音,具体的录音地址见下文的系统调试部分;MISO、MOSI、SS与单片机的P2^2~P2^0连接;CLK与单片机的P2^4连接;ROSC与80K电阻连接后接地,采样频率为8KHZ;VOL与一个按键连接后接地,可调音量;AGC端口启用,增益自动可调;SP-、SP+与喇叭直接相连,不用经过功率放大等,经过查找资料,本课题使用的,5欧姆、0.8w的喇叭可以被带动,但是功率大一些的喇叭必须要经过功率放大电路才可以带动;DP2为LED指示灯,在录放音的时候会闪烁。
3.5.LM7805稳压电路
如图7所示,其中Pd10为输入口,Pd11为输出口;LM7805输出稳定在5V,输入端要求为5V~18V或24V,本次测试中,采用2节锂电池(型号18650),约7.4V输入。
其他部分参考LM7805的标准电路部分。
4.
软件设计
4.1.程序流程图
如图4.2所示,在该系统中,接收GPS的是NAEA0183协议输出的GPRMC语句,在中断程序中判断并且存储相关数据,在如图4.1所示,用函数提取出中断中存储的数据并且显示完成相应的功能,具体步骤见下面的介绍。
4.2.单片机串行通信
串行端口模式1工作介绍
在模式1时,串行端口经由TXD引脚负责发送及通过RXD引脚接收10位的数据,其中包括1个起始位、8个数据位和1个停止位。
由于发送和接收是由不同引脚负责,故可同时进行发送和接收的动作。
起始位(低电位)和停止位(高电位)是串行端口在发送数据时自动加上去的,当在接收状态下,接收到的停止位会自动存入SCON寄存器的RB8位中,而发送及接收波特率可用软件设定计时/计数器1,说明如下。
①模式1的发送
执行写入SBUF指令后,产生一个WRITETOSBUF的脉冲,此时把数据送入SBUF,并激活TX控制方块。
在下一个机械周期时,SEND自动降为0,此时DATA己自动为0,故经由TXD引脚送出一个“0”的位,这就是所谓的起始位。
然后数据位开始由TXD引脚依LSB-MSB顺序向右移出,直到8位数据全部送出后,CPU会自动设定中断标志TI=1,产生串行端口中断请求,再自动经由TXD引脚送出一个“1”的位后,SEND升为高电位,DATA引脚为0,停止发送动作,此时TXD引脚维持高电位。
②模式1的接收
当要接收数据时,需将SCON寄存器的REN位设定为1,每当RXD引脚上检测到负缘转态信号后就会激活串行端口的接收动作。
在接到正确的起始位后(低电位),开始依LSB-MSB顺序接收数据位,直到SCON中的RI=0、SM2=0或RI=0接收到的停止位为l时,才自动把8位数据送入SBUF内。
接着把停止位放入RB8中,然后设定接收中断标志RI=l,产生串行端口中断请求。
经过-个位时间后,不论上述条件是否成立,RX控制方块均会重新开始检测RXD引脚有无负缘转态信号,以准备接收下一批数据。
模式1的波特率
串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常令计时/计数器1工作于模式2(自动再加载模式)。
在此模式下,计算波特率的公式为:
波特率=2SMOD*fosc/(32*12*(256-TH1))
根据以上式子,带入fosc=11.059MHz,TH1=FAH,可得波特率为4800bps
4.3.GPS接收语句设计
GPRMC输入语句如下:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
GPRMC格式如下:
$帧头标志符
GPRMCGPS推荐的最短数据
<0>GPRMC
<1>UTC24小时制标准时间,格式为.hhmmss.sss#
<2>信号接收状态:
A为数据OK;V为警告
<3>纬度值,格式为.ddmm.mmmm
<4>表明南北半球,N为北半球,S为南半球
<5>经度值,格式为.dddmm.mmmm
<6>表明东西经,E为东经、W为西经
<7>速度,此处为0
<8>方位角,范围0.~359.9.
<9>日月年,格式为.日日/月月/年年#
<10>磁偏角:
0.00.~180.。
此处不输出
<11>地磁变化方向:
向西偏差为E或W。
此处不输出
<12>模式指示(仅NMEA01833.00版本输出):
A=自主定位,D=差分,E=估算,N=数据无效
*校验和隔离符号
<13>校验和
中断程序中涉及GRPMC格式的拆分并且存储,在此简单介绍。
voidT_R()interrupt4
{
while(RI==0);//RI==1表示接收好一帧数据
if(SBUF=='$')//判断数据起点
{
begin=1;//开始接收
count_1=0;
}
if(begin==1)//开始接收GPRMC数据
{
if(SBUF==',')//‘,’为下一个数据的标志
{
count_1++;
count_2=0;
}
elseif(SBUF=='*')//‘*’结束的标志
{
begin=0;
count_1=0;
count_2=0;
}
else
{
if(count_1==0)
{
if(count_2<6)//接收到更长的数据时,会越界
message[count_2++]=SBUF;//message[0]='$'
}
if((message[5]=='C')&&(message[4]=='M'))//判断GPRMC格式
{
switch(count_1)
{
case2:
status[count_2++]=SBUF-48;break;//接收状态
case3:
if(count_2<9)latitude[count_2++]=SBUF-48;break;//接收纬度
case4:
N_S[count_2++]=SBUF-48;break;//接受N或S
case5:
if(count_2<10)longitude[count_2++]=SBUF-48;break;//接收经度
case6:
E_W[count_2++]=SBUF-48;break;//接收E或W
default:
break;
}
}
}
}
RI=0;//串口接收中断标志必须软件清零
}
unsignedcharcount_1=0;//数据类型累加变量
unsignedcharcount_2=0;//数组下标累加变量
设计思路:
下面的将介绍完整的一个接收语句,判断语句,拆分语句,存储有关数据的过程。
首先要接到一个语句的数据,如果一个语句的起点字符是“$”,将变量begin置1,并且将数据类型累加变量count_1置0;在count_1=0时,当接受的数据既不是结束位“*”,或者类型分隔位“,”时,将语句首的格式名称存储到message数组中,为了防止其它语句的干扰再次判断接收语句是否为GPRMC格式,再次用message数组中的,5位,6位进行条件语句判断,判断为GPRMC后,再根据count_1的值进行相关数据存储,每次的不同的GPS信息间都以“,”隔开,本次接收中只接收<2>信号接收状态:
A为数据OK;V为警告;<3>纬度值,格式为.ddmm.mmmm;<4>表明南北半球,N为北半球,S为南半球;<5>经度值,格式为.ddmm.mmmm;<6>表明东西经,E为东经、W为西经的信息,例如接收经
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 GPS 定位 系统 设计 精选