GPS全球定位Word格式.docx
- 文档编号:18059386
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:26
- 大小:1.11MB
GPS全球定位Word格式.docx
《GPS全球定位Word格式.docx》由会员分享,可在线阅读,更多相关《GPS全球定位Word格式.docx(26页珍藏版)》请在冰豆网上搜索。
1.4.2GPS消息格式
GPS以NMEA协议格式发送消息,要正确解析出信息首先要了解NMEA协议的格式。
基本NMEA指令是一个ASCII字符串,它以’$’字符开始、以<CR><LF>序列结束。
NMEA标准消息以’GP’开始,然后是三个字符的消息标识码。
消息头和后面的内容通过逗号进行分隔,消息以校检码结束(校检码由一个‘*’和两个16位的校验字组成。
校验码字段并不用逗号进行分隔。
目前,校验码得
到的方式是从‘$’到‘*’之间的字符进行逐位计算。
作为ASCII表示法,每个字段的长度是随着精度的不同而变化的,因此记录的长短是变化的。
这里以$GPRMC为例分校NMEA协议的格式
字段
格式
描述
消息标识
$GPRMC
RMC协议头
时间
Hhmmss.sss
时间精确到1ms
状态
Char
A:
有效V:
无效
纬度
Float
度*100+分
N/S
N:
北纬
S:
南纬
经度
E/W
E:
东经
W:
西经
速度
单位:
knots(节)
地面航向
0~359度,以北为参考基准
日期
Ddmmyy
日月年格式
磁偏角
0~180度
磁偏角方向
东W:
西
校验码
*xx
2digits
消息结尾
<
CR>
LF>
ASCII,13
ASCII,10
下面以实际的例子分析NMEA消息格式
$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10
从上面的消息可以得到
对于消息$GPRMC
时间第一个逗号后面161229.487表示时间为16点12分29.487秒
有效位第二个逗号后面A表示这条消息是有效的
纬度第三个逗号后面3723.2475和N表示北纬3723.2475
经度第五个逗号的12158.3416和E表示东经12158.3416
2、硬件系统设计
SPCE061A开发板
2.1LCD液晶显示
1.3SPLC501液晶模组
SPLC501液晶显示模组为128*64点阵,面板采用STN(SuperTwistedNematic)超扭曲向列技术制成并且由128Segment和64Common组成,LCM非常容易通过接口被访问。
下面为SPLC501液晶显示模组的基本参数:
显示模式
黄色模式STN液晶
显示格式
128*64点阵地图液晶显示
输入数据
兼容68/80系列MPU数据输入
背光
黄绿色LED
模块尺寸
72.8(长)×
73.6(宽)×
9.5(高)mm
视屏尺寸
58.84(宽)×
35.79(长)mm
点大小
0.42(宽)×
0.51(长)mm
像素尺寸
0.46(宽)×
0.56(长)mm
模组上的液晶显示器采用的驱动控制芯片为凌阳科技的SPLC501A芯片,该芯片为液晶显示控制驱动器,集行、列驱动器和控制器于一体,广泛用于小规模液晶显示模块。
SPLC501A单芯片液晶驱动,可以直接与其他微控制器接口总线相连。
微控制器可以将显示数据通过8位数据总线或者串行接口写到SPLC501A的显存中。
下列是SPLC501A的特点:
◇内置8580位显示RAM。
RAM中的一位数据控制液晶屏上的一个象素点的亮、暗状态。
“1”亮“0”暗。
◇具有65行驱动输出和132列驱动输出(注:
模组中的液晶显示面板仅为64行、128列)
◇可以直接与80系列和68系列微处理器相连。
◇内置晶振电路,也可以外接晶振
◇工作温度范围为-40摄氏度~+85摄氏度
为方便学生进行单片机接口方面的学习专门设计的模块,SPLC501液晶显示模组可以方便的和61板连接,可进行字符显示、汉字显示以及图形显示;
应用在需要图形、文本显示的系统中。
SPLC501液晶模组的电路图如图2.7所示
图SPLC501液晶模组
SPLC501液晶显示模组引出了时序操作的接口引脚,还引出了对操作时序进行选择的C86和PS接线。
模组中的接口引脚“+”、“V3”分别为电源输入端和高电平引针(供时序选择跳线用),而“—”、“GND”都是接地引脚。
模组接口定义表
接口引脚名
说明
CS1
片选,低电平有效
RES
复位脚
A0
数据命令选择脚
R/W
对于6800系列MPU的读/写信号(R/W)
对于8080系列MPU的写信号(W/R)
EP
对于6800系列MPU的时钟信号使能脚(EP)
对于8080系列MPU的读信号(RD)
DB0
8位数据总线
DB1
DB2
DB3
DB4
DB5
DB6
DB7
VR
端口输出电压
C86
C86=‘H’选择6800MPU系列
C86=‘L’选择8080MPU系列
PS
串、并行时序选择
SPLC501液晶模组的实物图如图2.4所示:
2.2GPS模组
GPS模组是一款高性能的GPS(GlobalPositioningSystem)信号接收模组,该模组采用APM7101主芯片,定位精度在10米以内。
它集成了SiRFstarⅢGPS处理器,LNA电路,SAW滤波器,振荡和校准电路,该模组具有以下特性:
20个通道接收
弱信号下快速TTFFs(TimetoFirstFix)
两个UART收发通道
接收灵敏度可达-159dBm
支持NMEA-0183和SiRF协议
支持SBAS(WAAS、EGONS)
GPS模组电路如图:
图GPS模组电路图
GPS模组带有一个10针的接口,该接口可以在使用时直接与单片机MCU连接,或者通过RS232转换模块和PC机相连接使用。
通过串口发送或接受数据。
在连接好以后,需要将GPS的短天线接到GPS模组,如果室内信号不好,需要外加长天线。
下表是GPSModule接口定义表:
PinNo
功能
1
电源,3V~6.5V
2
复位信号RST
3
备选复位信号
4
5
6
7
8
串行数据接收口Rx
9
串行数据输出口Tx
10
地
GPS模组实物图(左侧为天线):
2.3GPS全球定位系统硬件连接图
3、系统软件设计
3.1软件构成
本系统软件包括下面程序模块:
主程序:
首先完成硬件模块的初始化,进行键盘扫描,处理键盘信息,再根椐键值跳转到各功能子模块;
键盘扫描模块:
完成对61板三个按键的扫描并加入去抖功能;
UART接收模块:
完成对UART接口的初始化,利用中断接收数据;
Queue队列模块:
配合UART中断使用,完成对接收信息的保存与提取;
SPLC501驱动模块:
驱动SPLC501LCD;
GPS消息解析模块:
完成GPS消息的解析;
GPS各功能子模块:
实现地图显示、经纬度显示、日历功能。
语音播报子模块:
实现经纬度、时间语音播报
3.2主程序
主程序流程如图。
程序运行后首先初始化各个硬件模块,然后程序进入主循环,不断进行按键扫描,根据按键进入相应的功能模块。
图3.2主程序流程图
//工程名称:
GPS_061A
//功能描述:
通过GPS模块接收到的信息,显示时间,经纬度及在地图上定位当前位置.
//涉及的库:
CMacro1016.lib
//clib.lib
//组成文件:
main.c
//china.cchina.hDataOSfortLCD.asmSPLC501Driver_IO.asm
//gps.cgps.hpicture.cpicture.hKey.cKey.h
//Queue.cuart.c
//
//硬件连接:
GPS61板
//电源------------电源
//地------------地
//TX------------IOB7
//RX------------IOB10
//R4------------IOB8
//
//SPLC50161板
//LCDD0~D7---接IOA8~IOA15
//LCDEP----接IOB6
//LCDRWP----接IOB5
//LCDA0----接IOB4
//LCD/CS1----接IOB9或接地也可
//IO高电平:
3.3V
//维护记录:
2007-08-9v1.0
//========================================================
//文件名称:
main.c
GPS定位
2007-08-9v1.0
#include"
spce061a.h"
UART.h"
gps.h"
china.h"
Key.h"
./c501/SPLC501User.h"
picture.h"
#defineSIZE16
//语法格式:
intCPU_Init(void)
//实现功能:
初始化CPU时钟49MHz
//参数:
无
//返回值:
0
//========================================================
intInit_CPU()
{
*P_SystemClock=C_Fosc_49M|C_Fosc;
//设置系统时钟与CPU时钟全为49MHz
*P_INT_Ctrl_New=*P_INT_Ctrl_New|C_IRQ5_2Hz|C_IRQ5_4Hz;
//打开2Hz中断用于滚动显示信息.
return0;
}
voidOpen_IRQ_2Hz()
打开2Hz中断
无
voidOpen_IRQ_2Hz()
{
*P_INT_Ctrl_New|=C_IRQ5_2Hz;
//打开2Hz中断用于滚动显示信息.
voidClose_IRQ_2Hz()
关闭2Hz中断
voidClose_IRQ_2Hz()
*P_INT_Ctrl_New&
=~C_IRQ5_2Hz;
intmain(void)
intmain()
intKey;
unsignedinti;
Init_CPU();
Init_Key();
Init_UART();
Init_GPS();
//LCD501_Init(5);
//LCD501_ClrScreen(0);
//LCD501_SetPaintMode(PAINT_COVER);
for(i=0xf;
i>
0;
i--)//凌阳科技DEMO,仅供演示
{
*P_Watchdog_Clear=1;
LCD501_Bitmap(1*SIZE,1*SIZE,encoding_23);
//演LCD501_Bitmap(2*SIZE,1*SIZE,encoding_24);
//示LCD501_Bitmap(3*SIZE,1*SIZE,encoding_25);
//程LCD501_Bitmap(4*SIZE,1*SIZE,encoding_26);
//序LCD501_Bitmap(5*SIZE,1*SIZE,encoding_27);
//严
LCD501_Bitmap(6*SIZE,1*SIZE,encoding_28);
//禁
LCD501_Bitmap(1*SIZE,2*SIZE,encoding_29);
//用
LCD501_Bitmap(2*SIZE,2*SIZE,encoding_2a);
//于
LCD501_Bitmap(3*SIZE,2*SIZE,encoding_2b);
//毕
LCD501_Bitmap(4*SIZE,2*SIZE,encoding_2c);
//业
LCD501_Bitmap(5*SIZE,2*SIZE,encoding_2d);
//设
LCD501_Bitmap(6*SIZE,2*SIZE,encoding_2e);
//计
}
LCD501_ClrScreen(0);
*P_Watchdog_Clear=1;
LCD501_Bitmap(2*SIZE,1*SIZE,encoding_10);
//凌LCD501_Bitmap(3*SIZE,1*SIZE,encoding_11);
//阳LCD501_Bitmap(4*SIZE,1*SIZE,encoding_12);
//科LCD501_Bitmap(5*SIZE,1*SIZE,encoding_13);
//技
LCD501_Bitmap(0.5*SIZE,2*SIZE,encoding_14);
//G
LCD501_Bitmap(1.5*SIZE,2*SIZE,encoding_15);
//P
LCD501_Bitmap(2.5*SIZE,2*SIZE,encoding_16);
//S
LCD501_Bitmap(3.5*SIZE,2*SIZE,encoding_17);
//定
LCD501_Bitmap(4.5*SIZE,2*SIZE,encoding_18);
//位
LCD501_Bitmap(5.5*SIZE,2*SIZE,encoding_19);
//系
LCD501_Bitmap(6.5*SIZE,2*SIZE,encoding_1a);
//统
while
(1)
Key=Key_GetValue();
switch(Key)
{
caseC_KEY2:
Close_IRQ_2Hz();
//关闭2Hz中断,在显示地图时并不显示流动信息.
Show_Map();
Open_IRQ_2Hz();
*P_Watchdog_Clear=1;
LCD501_Bitmap(2*SIZE,1*SIZE,encoding_10);
//凌
LCD501_Bitmap(3*SIZE,1*SIZE,encoding_11);
//阳LCD501_Bitmap(4*SIZE,1*SIZE,encoding_12);
//科LCD501_Bitmap(5*SIZE,1*SIZE,encoding_13);
//技
LCD501_Bitmap(0.5*SIZE,2*SIZE,encoding_14);
//G
LCD501_Bitmap(1.5*SIZE,2*SIZE,encoding_15);
//P
LCD501_Bitmap(2.5*SIZE,2*SIZE,encoding_16);
//S
LCD501_Bitmap(3.5*SIZE,2*SIZE,encoding_17);
//定
LCD501_Bitmap(4.5*SIZE,2*SIZE,encoding_18);
//位
LCD501_Bitmap(5.5*SIZE,2*SIZE,encoding_19);
//系
LCD501_Bitmap(6.5*SIZE,2*SIZE,encoding_1a);
//统
break;
caseC_KEY1:
Show_Num();
LCD501_Bitmap(2*SIZE,1*SIZE,encoding_10);
//凌LCD501_Bitmap(3*SIZE,1*SIZE,encoding_11);
//阳
LCD501_Bitmap(4*SIZE,1*SIZE,encoding_12);
//科LCD501_Bitmap(5*SIZE,1*SIZE,encoding_13);
LCD501_Bitmap(0.5*SIZE,2*SIZE,encoding_14);
LCD501_Bitmap(1.5*SIZE,2*SIZE,encoding_15);
//PLCD501_Bitmap(2.5*SIZE,2*SIZE,encoding_16);
LCD501_Bitmap(3.5*SIZE,2*SIZE,encoding_17);
LCD501_Bitmap(4.5*SIZE,2*SIZE,encoding_18);
LCD501_Bitmap(5.5*SIZE,2*SIZE,encoding_19);
LCD501_Bitmap(6.5*SIZE,2*SIZE,encoding_1a);
//统
caseC_KEY3:
Show_Time();
//凌LCD501_Bitmap(3*SIZE,1*SIZE,encoding_11);
//阳LCD501_Bitmap(4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GPS 全球 定位