GPS串口数据接收研究管理论文
时间:2022-06-25 03:46:00
导语:GPS串口数据接收研究管理论文一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。
摘要:目前gps(全球定位系统)定位应用市场日趋成熟,正在进入应用的高速发展时期。本文以一款EverMore公司的GM-X205GPS接受模块为例,介绍了其数据格式,以及应用PIC16F874单片机RS232串口进行数据接收的程序。
关键词:GPS、NMEA格式、PIC16F874、串口数据接收
1、GPS应用简介
近年来GPS系统,已经在大地测绘、海上渔用、车辆定位监控、建筑、农业等各个领域得到广泛应用。从九十年代我国引进GPS定位技术开始,经过十多年的市场培育,GPS定位应用进入了发展的最好时机,未来十年基于GPS的应用将会改变我们的生活和工作方式。
目前市场上的大部分GPS接受模块都是通过RS232串口与MCU进行数据传输的。这些数据包括经度、纬度、海拔高度、时间、卫星使用情况等基本信息。开发人员再依据这些基本数据,进行数据处理来完成整套的定位系统软件。
2、GM-X205模块数据格式
在进行数据接受编程之前,先介绍一下该模块的数据格式。它支持NMEA-0183输出格式。信息如下:
GGA位置测定系统定位资料(GlobalPositioningSystemFixData)
GSV导航卫星资料(GNSSSatellitesinView)
RMC导航卫星特定精简资料(RecommendedMinimumSpecificGNSSData)
VTG方向及速度等相关资料(CourseOverGroundandGroundSpeed)
由于文章篇幅问题,笔者在这里只以接收GGA数据为例,格式如下:
$GPGGA,hhmmss,dddmm.mmmm,a,dddmm.mmmm,a,x,xx,x.x,x.x,M,,M,x.x,xxxx*CS
例:$GPGGA,033744,2446.5241,N,12100.1536,E,1,10,0.8,133.4,M,,,,*1F
说明见表:
区域
名称
例
单位
说明
1
信息ID
$GPGGA
GGA协议开始
2
UTC时间
033744
hhmmss
3
纬度
2446.5241
dddmm.mmmm
4
南/北半球指示
N
N=north;S=south
5
经度
12100.1536
dddmm.mmmm
6
东/西半球指示
E
E=east;W=west
7
定位指示
1
0=未定位
1=定位SPS模式
2=定位DGPS,SPS模式
8
应位卫星数
10
00-12
9
HDOP
0.8
米
10
海拔高度
133.4
米
11
海拔高度单位
M
米
12
WGS84水准面划分
13
WGS-84水准面划分单位
14
累计GPS数据微分
本模块中不可用
15
参考工作站ID
本模块中不可用
16
校验位
*1F
上面例子中,我们可读出位置信息:北纬24度46.5241分,西经121度00.1536分
格林威治时间:3点37分44秒
3、PIC16F874数据接收程序
笔者在系统中把接收到的数据处理后,显示到图形液晶屏上。限于篇幅在这里只给出数据接收部分程序,并且只接收经度和时间信息,并且给出格林威治时间转换为北京时间的转换函数。其他数据接收程序类似。
;**********************************************************
;THISISAGPSRECEIVERPROGRAM*
;**********************************************************
LISTP=16F874
INCLUDEP16F874.INC
;*******寄存器定义********************
TEMP1EQU0X27
W_TEMPEQU0X54
STATUS_TEMPEQU0X55
LONG1EQU0X40;LONG1---LONG10经度的10位数据
LONG2EQU0X41
LONG3EQU0X42
LONG4EQU0X43
LONG5EQU0X44
LONG6EQU0X45
LONG7EQU0X46
LONG8EQU0X47
LONG9EQU0X48
LONG10EQU0X49
T1EQU0X58;T1---T6时间的6位数据
T2EQU0X59
T3EQU0X60
T4EQU0X61
T5EQU0X62
T6EQU0X63
;********************************************************
ORG00H
NOP
NOP
GOTOMAIN
ORG04H;设定按中端健才开始数据接受
NOP
NOP
GOTOINTERRUPT
;*********判断头文件是不是''''$GPGGA’**********
IDMESSAGE
BCFSTATUS,RP0
BREAK0
CALLPAND
MOVWFTEMP1
MOVLW''''$'''';detect$
SUBWFTEMP1,0
BTFSSSTATUS,Z
GOTOBREAK0
CALLPAND
MOVWFTEMP1
MOVLW''''G'''';detectG
SUBWFTEMP1,0
BTFSSSTATUS,Z
GOTOBREAK0
CALLPAND
MOVWFTEMP1
MOVLW''''P'''';detectP
SUBWFTEMP1,0
BTFSSSTATUS,Z
GOTOBREAK0
CALLPAND
MOVWFTEMP1
MOVLW''''G'''';detectG
SUBWFTEMP1,0
BTFSSSTATUS,Z
GOTOBREAK0
CALLPAND
MOVWFTEMP1
MOVLW''''G'''';detectG
SUBWFTEMP1,0
BTFSSSTATUS,Z
GOTOBREAK0
CALLPAND
MOVWFTEMP1
MOVLW''''A'''';detectA
SUBWFTEMP1,0
BTFSSSTATUS,Z
GOTOBREAK0
CALLPAND;跳过逗号
RETURN
;************接收函数******************
RECEIVE
CALLPAND;开始时间数据接收
MOVWFT1
CALLPAND
MOVWFT2
CALLPAND
MOVWFT3
CALLPAND
MOVWFT4
CALLPAND
MOVWFT5
CALLPAND
MOVWFT6;时间数据接收完成
CALLPAND;跳过逗号
CALLPAND;跳过10位纬度数据---开始
CALLPAND
CALLPAND
CALLPAND
CALLPAND
CALLPAND
CALLPAND
CALLPAND
CALLPAND
CALLPAND;跳过10位纬度数据---结束
CALLPAND;跳过逗号
CALLPAND;跳过南/北纬判断位数据
CALLPAND;跳过逗号
CALLPAND;接受经度信号开始
MOVWFLONG1
CALLPAND
MOVWFLONG2
- 上一篇:市委经济工作会议上的总结讲话
- 下一篇:遥控导体发光二极管广告牌管理论文