GPS串口數(shù)據(jù)接收研究管理論文
時間:2022-06-25 03:46:00
導語:GPS串口數(shù)據(jù)接收研究管理論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要:目前gps(全球定位系統(tǒng))定位應用市場日趨成熟,正在進入應用的高速發(fā)展時期。本文以一款EverMore公司的GM-X205GPS接受模塊為例,介紹了其數(shù)據(jù)格式,以及應用PIC16F874單片機RS232串口進行數(shù)據(jù)接收的程序。
關鍵詞:GPS、NMEA格式、PIC16F874、串口數(shù)據(jù)接收
1、GPS應用簡介
近年來GPS系統(tǒng),已經(jīng)在大地測繪、海上漁用、車輛定位監(jiān)控、建筑、農(nóng)業(yè)等各個領域得到廣泛應用。從九十年代我國引進GPS定位技術開始,經(jīng)過十多年的市場培育,GPS定位應用進入了發(fā)展的最好時機,未來十年基于GPS的應用將會改變我們的生活和工作方式。
目前市場上的大部分GPS接受模塊都是通過RS232串口與MCU進行數(shù)據(jù)傳輸?shù)?。這些數(shù)據(jù)包括經(jīng)度、緯度、海拔高度、時間、衛(wèi)星使用情況等基本信息。開發(fā)人員再依據(jù)這些基本數(shù)據(jù),進行數(shù)據(jù)處理來完成整套的定位系統(tǒng)軟件。
2、GM-X205模塊數(shù)據(jù)格式
在進行數(shù)據(jù)接受編程之前,先介紹一下該模塊的數(shù)據(jù)格式。它支持NMEA-0183輸出格式。信息如下:
GGA位置測定系統(tǒng)定位資料(GlobalPositioningSystemFixData)
GSV導航衛(wèi)星資料(GNSSSatellitesinView)
RMC導航衛(wèi)星特定精簡資料(RecommendedMinimumSpecificGNSSData)
VTG方向及速度等相關資料(CourseOverGroundandGroundSpeed)
由于文章篇幅問題,筆者在這里只以接收GGA數(shù)據(jù)為例,格式如下:
$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
說明見表:
區(qū)域
名稱
例
單位
說明
1
信息ID
$GPGGA
GGA協(xié)議開始
2
UTC時間
033744
hhmmss
3
緯度
2446.5241
dddmm.mmmm
4
南/北半球指示
N
N=north;S=south
5
經(jīng)度
12100.1536
dddmm.mmmm
6
東/西半球指示
E
E=east;W=west
7
定位指示
1
0=未定位
1=定位SPS模式
2=定位DGPS,SPS模式
8
應位衛(wèi)星數(shù)
10
00-12
9
HDOP
0.8
米
10
海拔高度
133.4
米
11
海拔高度單位
M
米
12
WGS84水準面劃分
13
WGS-84水準面劃分單位
14
累計GPS數(shù)據(jù)微分
本模塊中不可用
15
參考工作站ID
本模塊中不可用
16
校驗位
*1F
上面例子中,我們可讀出位置信息:北緯24度46.5241分,西經(jīng)121度00.1536分
格林威治時間:3點37分44秒
3、PIC16F874數(shù)據(jù)接收程序
筆者在系統(tǒng)中把接收到的數(shù)據(jù)處理后,顯示到圖形液晶屏上。限于篇幅在這里只給出數(shù)據(jù)接收部分程序,并且只接收經(jīng)度和時間信息,并且給出格林威治時間轉(zhuǎn)換為北京時間的轉(zhuǎn)換函數(shù)。其他數(shù)據(jù)接收程序類似。
;**********************************************************
;THISISAGPSRECEIVERPROGRAM*
;**********************************************************
LISTP=16F874
INCLUDEP16F874.INC
;*******寄存器定義********************
TEMP1EQU0X27
W_TEMPEQU0X54
STATUS_TEMPEQU0X55
LONG1EQU0X40;LONG1---LONG10經(jīng)度的10位數(shù)據(jù)
LONG2EQU0X41
LONG3EQU0X42
LONG4EQU0X43
LONG5EQU0X44
LONG6EQU0X45
LONG7EQU0X46
LONG8EQU0X47
LONG9EQU0X48
LONG10EQU0X49
T1EQU0X58;T1---T6時間的6位數(shù)據(jù)
T2EQU0X59
T3EQU0X60
T4EQU0X61
T5EQU0X62
T6EQU0X63
;********************************************************
ORG00H
NOP
NOP
GOTOMAIN
ORG04H;設定按中端健才開始數(shù)據(jù)接受
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
;************接收函數(shù)******************
RECEIVE
CALLPAND;開始時間數(shù)據(jù)接收
MOVWFT1
CALLPAND
MOVWFT2
CALLPAND
MOVWFT3
CALLPAND
MOVWFT4
CALLPAND
MOVWFT5
CALLPAND
MOVWFT6;時間數(shù)據(jù)接收完成
CALLPAND;跳過逗號
CALLPAND;跳過10位緯度數(shù)據(jù)---開始
CALLPAND
CALLPAND
CALLPAND
CALLPAND
CALLPAND
CALLPAND
CALLPAND
CALLPAND
CALLPAND;跳過10位緯度數(shù)據(jù)---結(jié)束
CALLPAND;跳過逗號
CALLPAND;跳過南/北緯判斷位數(shù)據(jù)
CALLPAND;跳過逗號
CALLPAND;接受經(jīng)度信號開始
MOVWFLONG1
CALLPAND
MOVWFLONG2