- 相關(guān)推薦
GPS串口數(shù)據(jù)接收程序?qū)嵗?/p> 摘 要:目前GPS(全球定位系統(tǒng))定位應(yīng)用市場日趨成熟,正在進(jìn)入應(yīng)用的高速發(fā)展時(shí)期。本文以一款EverMore公司的GM-X205GPS接受模塊為例,介紹了其數(shù)據(jù)格式,以及應(yīng)用PIC16F874單片機(jī)RS232串口進(jìn)行數(shù)據(jù)接收的程序。
關(guān)鍵詞:GPS、NMEA格式、PIC16F874、串口數(shù)據(jù)接收
1、 GPS應(yīng)用簡介
近年來GPS系統(tǒng),已經(jīng)在大地測繪、海上漁用、車輛定位監(jiān)控、建筑、農(nóng)業(yè)等各個(gè)領(lǐng)域得到廣泛應(yīng)用。從九十年代我國引進(jìn)GPS定位技術(shù)開始,經(jīng)過十多年的市場培育,GPS定位應(yīng)用進(jìn)入了發(fā)展的最好時(shí)機(jī),未來十年基于GPS的應(yīng)用將會(huì)改變我們的生活和工作方式。
目前市場上的大部分GPS接受模塊都是通過RS232串口與MCU進(jìn)行數(shù)據(jù)傳輸?shù)。這些數(shù)據(jù)包括經(jīng)度、緯度、海拔高度、時(shí)間、衛(wèi)星使用情況等基本信息。開發(fā)人員再依據(jù)這些基本數(shù)據(jù),進(jìn)行數(shù)據(jù)處理來完成整套的定位系統(tǒng)軟件。
2、 GM-X205模塊數(shù)據(jù)格式
在進(jìn)行數(shù)據(jù)接受編程之前,先介紹一下該模塊的數(shù)據(jù)格式。它支持NMEA-0183輸出格式。信息如下:
GGA位置測定系統(tǒng)定位資料(Global Positioning System Fix Data)
GSV 導(dǎo)航衛(wèi)星資料(GNSS Satellites in View)
RMC導(dǎo)航衛(wèi)星特定精簡資料(Recommended Minimum Specific GNSS Data)
VTG 方向及速度等相關(guān)資料(Course Over Ground and Ground Speed)
由于文章篇幅問題,筆者在這里只以接收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時(shí)間
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
應(yīng)位衛(wèi)星數(shù)
10
00-12
9
HDOP
0.8
米
10
海拔高度
133.4
米
11
海拔高度單位
M
米
12
WGS84水準(zhǔn)面劃分
13
WGS-84水準(zhǔn)面劃分單位
14
累計(jì)GPS數(shù)據(jù)微分
本模塊中不可用
15
參考工作站ID
本模塊中不可用
16
校驗(yàn)位
*1F
上面例子中,我們可讀出位置信息:北緯24度46.5241分,西經(jīng)121度00.1536分
格林威治時(shí)間:3點(diǎn)37分44秒
3、 PIC16F874數(shù)據(jù)接收程序
筆者在系統(tǒng)中把接收到的數(shù)據(jù)處理后,顯示到圖形液晶屏上。限于篇幅在這里只給出數(shù)據(jù)接收部分程序,并且只接收經(jīng)度和時(shí)間信息,并且給出格林威治時(shí)間轉(zhuǎn)換為北京時(shí)間的轉(zhuǎn)換函數(shù)。其他數(shù)據(jù)接收程序類似。
;**********************************************************
; THIS IS A GPS RECEIVER PROGRAM *
;**********************************************************
LIST P=16F874
INCLUDE P16F874.INC
;*******寄存器定義 ********************
TEMP1 EQU 0X27
W_TEMP EQU 0X54
STATUS_TEMP EQU 0X55
LONG1 EQU 0X40 ;LONG1--- LONG10經(jīng)度的10位數(shù)據(jù)
LONG2 EQU 0X41
LONG3 EQU 0X42
LONG4 EQU 0X43
LONG5 EQU 0X44
LONG6 EQU 0X45
LONG7 EQU 0X46
LONG8 EQU 0X47
LONG9 EQU 0X48
LONG10 EQU 0X49
T1 EQU 0X58 ;T1---T6時(shí)間的6位數(shù)據(jù)
T2 EQU 0X59
T3 EQU 0X60
T4 EQU 0X61
T5 EQU 0X62
T6 EQU 0X63
;********************************************************
ORG 00H
NOP
NOP
GOTO MAIN
ORG 04H ;設(shè)定按中端健才開始數(shù)據(jù)接受
NOP
NOP
GOTO INTERRUPT
;*********判斷頭文件是不是'$GPGGA’**********
IDMESSAGE
BCF STATUS,RP0
BREAK0
CALL PAND
MOVWF TEMP1
MOVLW '$' ;detect $
SUBWF TEMP1,0
BTFSS STATUS,Z
GOTO BREAK0
CALL PAND
MOVWF TEMP1
MOVLW 'G' ;detect G
SUBWF TEMP1,0
BTFSS STATUS,Z
GOTO BREAK0
CALL PAND
MOVWF TEMP1
MOVLW 'P' ;detect P
SUBWF TEMP1,0
BTFSS STATUS,Z
GOTO BREAK0
CALL PAND
MOVWF TEMP1
MOVLW 'G' ;detect G
SUBWF TEMP1,0
BTFSS STATUS,Z
GOTO BREAK0
CALL PAND
MOVWF TEMP1
MOVLW 'G' ;detect G
SUBWF TEMP1,0
BTFSS STATUS,Z
GOTO BREAK0
CALL PAND
MOVWF TEMP1
MOVLW 'A' ;detect A
SUBWF TEMP1,0
BTFSS STATUS,Z
GOTO BREAK0
CALL PAND ;跳過逗號(hào)
RETURN
;************接收函數(shù)******************
RECEIVE
CALL PAND ;開始時(shí)間數(shù)據(jù)接收
MOVWF T1
CALL PAND
MOVWF T2
CALL PAND
MOVWF T3
CALL PAND
MOVWF T4
CALL PAND
MOVWF T5
CALL PAND
MOVWF T6 ;時(shí)間數(shù)據(jù)接收完成
CALL PAND ;跳過逗號(hào)
CALL PAND ;跳過10位緯度數(shù)據(jù)---開始
CALL PAND
CALL PAND
CALL PAND
CALL PAND
CALL PAND
CALL PAND
CALL PAND
CALL PAND
CALL PAND ;跳過10位緯度數(shù)據(jù)---結(jié)束
CALL PAND ;跳過逗號(hào)
CALL PAND ;跳過南/北緯判斷位數(shù)據(jù)
CALL PAND ;跳過逗號(hào)
CALL PAND ;接受經(jīng)度信號(hào)開始
MOVWF LONG1
CALL PAND
MOVWF LONG2
【GPS串口數(shù)據(jù)接收程序?qū)嵗肯嚓P(guān)文章:
Windows CE中實(shí)現(xiàn)藍(lán)牙串口驅(qū)動(dòng)程序08-06
基于Vxworks實(shí)時(shí)操作系統(tǒng)的串口通信程序設(shè)計(jì)與實(shí)現(xiàn)08-19
GPS定位數(shù)據(jù)壓縮算法的設(shè)計(jì)與實(shí)現(xiàn)08-06
MRFIC1502在GPS接收器中的應(yīng)用08-06
接收新黨員支部大會(huì)程序08-06
GPS車輛監(jiān)控調(diào)度系統(tǒng)中高速數(shù)據(jù)傳終端的設(shè)計(jì)08-06
Windows下多串口的配置與使用08-06