• <i id="549yd"></i>
  • 
    
  • 現在位置:范文先生網>理工論文>電子通信論文>GPS串口數據接收程序實例

    GPS串口數據接收程序實例

    時間:2023-02-21 00:15:46 電子通信論文 我要投稿
    • 相關推薦

    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位置測定系統定位資料(Global Positioning System Fix Data)
        GSV 導航衛星資料(GNSS Satellites in View)
        RMC導航衛星特定精簡資料(Recommended Minimum Specific GNSS Data)
        VTG 方向及速度等相關資料(Course Over Ground and Ground Speed)
        由于文章篇幅問題,筆者在這里只以接收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數據接收程序
    筆者在系統中把接收到的數據處理后,顯示到圖形液晶屏上。限于篇幅在這里只給出數據接收部分程序,并且只接收經度和時間信息,并且給出格林威治時間轉換為北京時間的轉換函數。其他數據接收程序類似。
    ;**********************************************************
    ;         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經度的10位數據
    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時間的6位數據
    T2        EQU    0X59
    T3        EQU    0X60
    T4        EQU    0X61
    T5        EQU    0X62
    T6        EQU    0X63
    ;********************************************************
           ORG  00H
           NOP
           NOP
           GOTO MAIN
           ORG  04H          ;設定按中端健才開始數據接受
           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        ;跳過逗號
            RETURN
    ;************接收函數******************
    RECEIVE
           CALL     PAND                    ;開始時間數據接收
           MOVWF    T1
           CALL     PAND
           MOVWF    T2
           CALL     PAND
           MOVWF    T3
           CALL     PAND
           MOVWF    T4
           CALL     PAND
           MOVWF    T5
           CALL     PAND
           MOVWF    T6                      ;時間數據接收完成
           CALL     PAND                     ;跳過逗號
           CALL     PAND                     ;跳過10位緯度數據---開始
           CALL     PAND
    CALL     PAND
           CALL     PAND                    
           CALL     PAND
           CALL     PAND
           CALL     PAND                    
           CALL     PAND
           CALL     PAND
           CALL     PAND                     ;跳過10位緯度數據---結束
           CALL     PAND                     ;跳過逗號
           CALL     PAND                     ;跳過南/北緯判斷位數據
           CALL     PAND                     ;跳過逗號
           CALL     PAND                     ;接受經度信號開始
           MOVWF    LONG1
           CALL     PAND
           MOVWF    LONG2

    【GPS串口數據接收程序實例】相關文章:

    Windows CE中實現藍牙串口驅動程序08-06

    基于Vxworks實時操作系統的串口通信程序設計與實現08-19

    GPS定位數據壓縮算法的設計與實現08-06

    MRFIC1502在GPS接收器中的應用08-06

    接收新黨員支部大會程序08-06

    GPS車輛監控調度系統中高速數據傳終端的設計08-06

    Windows下多串口的配置與使用08-06

    基于USB2.0的高速無線數傳接收設備的數據接收存儲方法08-06

    航天GPS接收機的低噪聲放大器設計08-06

    av片在线观看无码免费_日日高潮夜夜爽高清视频_久久精品中文字幕乱码视频_在线亚州av播放