GPS报告Word下载.docx
- 文档编号:21217741
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:12
- 大小:213.49KB
GPS报告Word下载.docx
《GPS报告Word下载.docx》由会员分享,可在线阅读,更多相关《GPS报告Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
一般来说,在地面上的GPS接收器能接收5~12个卫星信号,GPS定位技术的基本原理是采用测量学中通用的测距交会方法.GPS接收机在某一时刻接收到4颗以上的GPS卫星信号导航电文,通过变频、放大、滤波等一系列处理过程,实现对GPS卫星号的跟踪、锁定、测量,从而产生计算位置的数据信息(包括:
纬度、经度、高度、速度、日期、时间、航向、卫星状况等),经由I/O口输出串行数据。
串口通讯和12864液晶显示的知识将在下文中涉及,顾不在此赘述。
1.2.1数据采集方案
为了减少接收出错的问题,采集数据时使用串行口中断数据接收方式。
经过商定,我们决定采用以下方案设计:
选择性接收,先判断从GPS模块接收到的数据的格式,然后选择需要的格式中的一些数据进行存储。
这样就大大的节余了RAM,解决RAM不够用的问题。
例如:
接收$GPGGA格式数据的时间:
前五次数据接收的时候先判断数句格式(依次判断接收到的数据是否先后为’$’、’G’、’P’、’G’、’G’、’A’),如果是,然后判断接下来的逗号(’,’)是第几个逗号。
如果是第一个,说明接下来的数据是时间,如果是第二个,说明接下来的数据是纬度,依此类推。
本设计采用这种方案接收数据。
2硬件设计
2.1整版设计
设计原理图:
以单片机为核心将GPS数据发送模块,12864液晶显示模块系统的结合在一起形成一个整体,实现特定功能。
2.2显示模块设计
由于本作品显示的内容涉及中文显示,顾采用SMG12864液晶屏(带字库)作为显示模块,该液晶有20个引脚,带背光显示。
显示电路如下:
2.3GPS数据模块设计
本作品采用JRC-GPS-V1模块接受卫星发射的定位数据,顾不再需要设计GPS模版。
而为了能够显示时间、经纬度、海拔、速度等信息,需要接收GPGGA和GPRMC两段数据。
GPGGA数据格式:
$GPGGA,<
1>
<
2>
3>
4>
5>
6>
7>
8>
9>
M,<
10>
11>
12>
*xx<
CR>
<
LF>
$GPGGA:
起始引导符及语句格式说明(本句为GPS定位数据);
<
:
UTC时间,格式为hhmmss.ss;
纬度,格式为ddmm.mmm(第一位是零也将传送);
纬度半球,N或S(北纬或南纬)
经度,格式为dddmm.mmm(第一位零也将传送);
经度半球,E或W(东经或西经);
定位质量指示,A为有效位置,V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗;
使用卫星数量,从00到12(第一个零也将传送);
水平精确度,0.0到99.9;
天线离海平面的高度,-9999.9到9999.9米;
M:
指单位米
:
大地水准面高度,-9999.9到9999.9米;
差分GPS数据期限(RTCMSC-104),最后设立RTCM传送的秒数量;
差分参考基站标号,从0000到1023(首位0也将传送)。
*:
语句结束标志符。
xx:
从$开始到*之间的所有ASCII码的异或校验和。
回车。
换行。
GPRMC数据格式:
$GPRMC,hhmmss.dd,s,xxmm.dddd,<
N/S>
yyymm.dddd,<
E/W>
s.s(速度数据),h.h,ddmmyy,d.d,<
M*hh<
3软件设计
3.1主程序设计
本设计的主要功能是接收GPS模块传送的数据,并显示出相应的数据信息,包括接受卫星颗数、当地时间、纬度、经度、高度以及速度。
数据接收部分,采用串行口中断接收数据。
显示部分就采用一个I/O口控制12864液晶显示相应的信息。
系统主程序的总体结构如图所示。
系统的主程序开始以后,首先是对系统环境初始化,包括设置串口、定时器、中断,12864液晶初始化;
然后LCD显示屏进入开机状态,显示开机信息,转入正常的显示,并接收数据。
接着由于单片机没有停机指令,所以可以设置系统程序不断地循环执行数据信息显示。
系统程序结构属中断方式,绝大多数功能在中断服务子程序中完成。
根据总体结构,可将程序划分为几个功能化模块:
串行口中断服务程序、显示子程序、扫描程序。
各个模块可进行独立设计、调试和查错,最终再连接成一个整体。
系统主程序的总体结构
系统主程序的总体结构如图3-1所示,首先是系统初始化,然后是显示开机信息,最后根据系统接收到的信息综合处理,得到数据显示到显示屏上。
图3-2数据接收程序流程图
3.2显示驱动程序
voidwr_d_lcd(ucharcontent)//写入数据
voidwr_i_lcd(ucharcontent)//写入命令
voidbusy_lcd(void)//忙信号检查
voidgotoxy(unsignedchary,unsignedcharx)//控制数据显示位置
voidprint(uchar*str,uintd)//显示字符串
charopen()//开机程序
3.3硬件连接设置
sbitrs=P2^0;
sbitrw=P2^1;
sbite=P2^2;
#definelcddataP0
sbitbusy=P0^7;
//lcdbusybit
寄存器选择位RS,当RS=1时选择数据寄存器DDRAM。
当RS=0时选择指令寄存器CDRAM。
读写选择位RW,当RS=1时读数据寄存器。
当RS=0时写数据或指令到寄存器。
读写使能信号EN,当EN=1时读取数据。
当EN为下降沿是为写数据或指令。
3.4系统主程序
main()
{
unsignedcharb;
TMOD=0x20;
//初始化串口
TL1=0xfd;
TH1=0xfd;
//9600波特率
SCON=0x50;
//工作方式1:
八位异步通信,允许接收
PCON=0x00;
//波特率加倍关
IE=0x90;
//打开总中断EA,和串行口中断ES
TR1=1;
//开启启动定时器1
init_lcd();
clrram_lcd();
//清屏
img_disp(qq1);
//
mdelay(3000);
b=open();
;
while
(1)
{
show();
}
}
3.5数据接收程序
RI=0;
//软件清除中断标志位,串行口中断需要软件清零,去除中断标志
进入中断过后要先判断接收数据的格式,否则会出现乱接收数据,出现接收到的数据不对的问题,先判断是否接收到GPGGA格式语句的第一个字符“$”收到后,继续判断格式是不是为GPGGA,分五次中断判断,如果是,开始记录数据并设置记录标志,否则退出数据接收中断,程序设计如下:
voidqiannan()interrupt4using3
{
ucharx,z,temp,ips,num;
inty;
RI=0;
//软件清除中断标志位
temp=SBUF;
switch(data_item)
{
case0:
if(temp=='
$'
){data_item++;
igps=0;
Num_comma=0;
break;
case1:
G'
else{data_item=0;
case2:
P'
case3:
case4:
case5:
A'
}
if(data_item==6)//开始处理GPRMC中的数据信息,
{
if(temp=='
'
)//利用GPGGA数据中的逗号间隔,判断数据信息
{
Num_comma++;
//记录逗号个数,标志数据的意义
}
if(Num_comma==1)//接收时间,时分秒格式
{
data_temp[igps]=temp;
//将字符放入字符串"
data_temp"
中
igps++;
if(Num_comma==2)//接收接收纬度,ddmm.mmmm格式
{data_temp[igps]=temp;
if(Num_comma==3)//判断北纬还是南纬
}
if(Num_comma==4)//接收精度,ddmm.mmmm格式
if(Num_comma==5)//判断东西经
if(Num_comma==7)//判断使用卫星数量
if(Num_comma==9)//海拔高度:
0-9999.9
if(SBUF!
='
M'
)//不接受M单位数据,节省资源
data_temp[igps]=temp;
*'
)//判断是否收到字符"
*"
,是,则结束接收,//开始处理
//返回初值;
标识结束一次接收完毕
Num_comma=0;
data_item=0;
igps=0;
}
在对GPS接收到的卫星信息进行处理时,碰到较为麻烦的问题是在对接收到的时间信息进行转换上。
直接从卫星接收到的时间是UTC时间,北京时间应在UTC时间上加上8小时才是准确的北京时,在超出24小时时应作减24小时处理,代码如下:
time[0]=data_temp[1];
time[1]=data_temp[2];
x=time[0]-'
0'
;
//提取时间的小时位高位并转换码型
y=time[1]-'
//提取时间的小时位低位并转换码型
y=x*10+y+8;
//在UTC时间上加上8个小时
if(y>
=24)//判断得到的时间是否超过24小时,超出变作24处理
{
y-=24;
}
time[0]=y/10+'
//将北京时间高一位作码型变换并赋予高一位显示
time[1]=y%10+'
//将北京时间高二位作码型变换并赋予高二位显示
}
4调试及性能分析
4.1软件调试
软件调试采用Proteus7.1、操作系统Windows7。
在PC机上对目标电路原理图和程序进行检测和调试。
4.2硬件调试
焊接硬件,检查线路连接正确无误。
硬件调试环境,从USB蓄电池中输出5V直流电。
以下是2012年9月1日在高速公路上对GPS的整体功能的测试图:
参考文献
[1]周国运。
单片机原理及应用(C语言版)。
北京:
中国水利水电出版社,2010
[2]邱致和,王万义。
GPS原理与应用。
电子工业出版社,2001
[3]51单片机接收GPS数据的算法与实现。
淮安:
淮安信息职业技术学院,2008
[4]王丙祥,李建海。
基于89C52的GPS板电路设计与实现。
西安文理学院学报(自然科学版),2007
附录:
(电路图)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GPS 报告