朱志偉
(長沙民政職業(yè)技術(shù)學(xué)院電子信息工程學(xué)院,湖南長沙410004)
基于Proteus的GPS定位仿真實訓(xùn)教學(xué)系統(tǒng)設(shè)計
朱志偉
(長沙民政職業(yè)技術(shù)學(xué)院電子信息工程學(xué)院,湖南長沙410004)
根據(jù)GPS定位原理和NMEA-0183協(xié)議,利用虛擬串口VSPD和虛擬GPS軟件,從教學(xué)的角度出發(fā),在單片機仿真環(huán)境Proteus中實現(xiàn)了GPS定位系統(tǒng)。詳細地描述了系統(tǒng)的硬件電路、“$GPRMC”語句的解釋流程及仿真操作過程。
Proteus;GPS;仿真;NMEA-0183
GPS(Global Positioning System)全球定位系統(tǒng)已在實時導(dǎo)航、定位、授時等方面廣泛應(yīng)用。在GPS原理與應(yīng)用教學(xué)過程中,利用單片機仿真環(huán)境Proteus、虛擬串口VSPD以及虛擬GPS模塊共同構(gòu)成GPS定位仿真實訓(xùn)教學(xué)系統(tǒng)。不僅節(jié)約了傳統(tǒng)實驗教學(xué)過程中使用的設(shè)備和工具,而且可以仿真出一些在實際中很難得到的數(shù)據(jù),從而加深對GPS原理的理解,提高了GPS仿真實訓(xùn)教學(xué)系統(tǒng)的推廣價值。
GPS系統(tǒng)由3部分組成:空間部分 (GPS衛(wèi)星星座)、地面控制部分(地面監(jiān)控系統(tǒng))、用戶設(shè)備部分(GPS信號接收器)。每顆GPS衛(wèi)星時刻發(fā)布其位置和時間數(shù)據(jù)信號,用戶接收器測量每顆衛(wèi)星信號到接收器的時間延遲,根據(jù)信號傳輸速度就可以計算出接收器與不同衛(wèi)星之間的距離。GPS定位原理如圖1所示,圖中的GPS接收器為當前要確定位置的設(shè)備。利用三顆以上衛(wèi)星的已知空間位置,用空間距離交會法,可求得地面待定點(接收器)的位置。公式如下:
圖1 GPS定位原理示意圖
根據(jù)這些距離值,就可以推算出GPS接收器的定位信息,如經(jīng)度、緯度、高度、速度、方向等??紤]到各種誤差的影響,為了達到定位精度要求,至少需要同步觀測4顆以上的衛(wèi)星。
GPS定位仿真實訓(xùn)教學(xué)系統(tǒng)主要是基于51單片機、虛擬 GPS軟件Virtual GPS和虛擬串口軟件VSPD。系統(tǒng)仿真電路如圖2所示。在VSPD的作用下,GPS定位信息通過單片機串口接收,所接收的信息可來自帶串口輸出的GPS實物模塊,也可以來自Virtual GPS。單片機程序通過解析接收到的GPS信息,將當前時間、經(jīng)度、緯度、速度及航向信息顯示在液晶屏上。圖2中顯示當前時間為12月8日3點46分41秒;當前位置為東經(jīng)136度49.6541分,北緯79度5.0695分;當前速度為513千米/時;當前方位為偏正北26.79度。
圖2 GPS定位仿真電路
所設(shè)計的GPS定位仿真實訓(xùn)教學(xué)系統(tǒng)暫不考慮與地圖數(shù)據(jù)庫連接,只對GPS接收模塊所輸出的定位信息進行解析,然后將時間、經(jīng)度、緯度、速度與航向?qū)崟r刷新顯示在液晶屏上,達到GPS定位初步應(yīng)用的目的。
以帶串口輸出的GPS模塊ATK-NEO-6M為例,它遵守NMEA-0183協(xié)議。NMEA協(xié)議是為了在不同的GPS導(dǎo)航設(shè)備中建立統(tǒng)一的標準,由美國國家海洋電子協(xié)會制定。GPS接收模塊根據(jù)NMEA-0183協(xié)議的標準規(guī)范,將位置、速度等信息通過串口傳送出去。
NMEA-0183定義的協(xié)議語句比較多,本仿真實訓(xùn)系統(tǒng)的主程序僅對“$GPRMC”協(xié)議語句進行解析?!?GPRMC”的所有數(shù)據(jù)均采用ASCII字符表示,數(shù)據(jù)傳輸以“$”開頭,以回車換行符(十六進制的0D和0A)結(jié)束;數(shù)據(jù)字段以逗號分隔識別;空字段保留逗號。
例 如 :$GPRMC,034641.656,A,7905.069500,N, 13649.654167,E,277.06,26.79,081214,0,E,A*25。其中,$GPRMC為數(shù)據(jù)串頭,表示此協(xié)議語句為最簡定位語句;“034641.656”為UTC時間,格式為“時時分分秒秒.毫秒”;“A”表示接收正常,“V”則表示與衛(wèi)星通信不正常;“7905.069500”表示緯度值;“N”表示北緯,“S”表示南緯;“13649.654167”表示經(jīng)度值;“E”表示東經(jīng),“W”表示西經(jīng);“277.06”表示速度(單位為節(jié),1節(jié)=1.852千米/小時);“26.79”表示方位角,它的范圍為000.0-359.9度(相當于二維羅盤);“081214”表示UTC日期,格式為“日日月月年年”;“0”表示磁偏角,范圍為000.0-180.0度;“E”表示地磁變化方向為東,“W”表示地磁變化方向為西;“A”表示自動模式,“D”表示差分模式,“N”表示數(shù)據(jù)無效;“25”是“$”和“*”之間的所有字符ASCII碼的異或結(jié)果的十六進制值。
解釋“$GPRMC”協(xié)議語句對應(yīng)的程序代碼由串口中斷函數(shù)完成。首先將接收的字符與字符串“$GPRMC”中的字符逐一進行比對,如果完全相同,則繼續(xù)后面的解析操作,否則忽略本次解析,等待下一“$GPRMC”消息頭部的到來。串口中斷函數(shù)的處理流程如圖3所示。
圖3 串口中斷函數(shù)的處理流程圖
在實際的GPS應(yīng)用中,可能并不會用到協(xié)議語句的全部信息,而是根據(jù)具體的需要,從中選取感興趣的信息。由于語句的長度是不固定的,因而分離有用的信息時,不能單純按照該信息在語句中所處的字符位置來查找,還要依據(jù)逗號個數(shù)來提取。
Proteus目前還沒有GPS模塊的仿真模型,但可以利用自身的串口仿真功能來實現(xiàn)MCU與虛擬GPS軟件通信的仿真調(diào)試。詳細仿真電路如圖1所示。首先在計算機上利用虛擬串口軟件VSPD設(shè)置出2個互連的虛擬串口COM3和COM4,再啟動虛擬GPS軟件,將其串口設(shè)置為COM4,然后將Proteus中的串行接口仿真器件COMPIM設(shè)置為COM3。把它們的波特率都設(shè)置成9600bit/s后,仿真運行時,虛擬GPS軟件向單片機串口連續(xù)發(fā)送符合NMEA-0183協(xié)議的語句,如圖4所示。單片機的串口接收中斷函數(shù)對“$GPRMC”協(xié)議語句進行解釋,所解析出的定位信息等由液晶模塊顯示。
圖4 虛擬GPS軟件Virtual GPS發(fā)送定位信息
GPS定位仿真系統(tǒng)完整地展示了GPS定位數(shù)據(jù)的格式和應(yīng)用開發(fā)過程,系統(tǒng)基本滿足了教學(xué)實踐的需要,為GPS定位仿真系統(tǒng)的研究與應(yīng)用做出了積極的探索。
[1]楊俊,武奇生.GPS基本原理及其Matlab仿真[M].西安:西安電子科技大學(xué)出版社,2006.
[2]李征航,黃勁松.GPS測量與數(shù)據(jù)處理[M].武漢:武漢大學(xué)出版社,2005.
[3]胡銳,薛曉中,孫瑞勝,等.GPS軟件接收機全系統(tǒng)仿真[J].計算機工程,2010,(16):229-231.
[4]陳懷民,馬龍,王亮,等.GPS仿真模擬器程控計算機控制臺設(shè)計與實現(xiàn)[J].計算機測量與控制,2014,(4):1101-1104.
[5]謝杰,侯博,石陽,等.GPS信號仿真器方案設(shè)計與實現(xiàn)[J].計算機仿真,2012,(2):36-39.
[6]沈超,裘正定.基于MatLab/Simulink的GPS系統(tǒng)仿真[J].系統(tǒng)仿真學(xué)報,2006,(7):1857-1860.
TP274.2
A
1671-5136(2015)03-0139-03
2015-09-06
2015年度湖南省高等學(xué)??茖W(xué)研究項目(編號:15C0079).
朱志偉(1976-),男,湖南衡山人,長沙民政職業(yè)技術(shù)學(xué)院電子信息工程學(xué)院副教授、碩士。研究方向:嵌入式系統(tǒng)和電力電子技術(shù)。
長沙民政職業(yè)技術(shù)學(xué)院學(xué)報2015年3期