朱志偉
(長沙民政職業技術學院電子信息工程學院,湖南長沙410004)
基于Proteus的GPS定位仿真實訓教學系統設計
朱志偉
(長沙民政職業技術學院電子信息工程學院,湖南長沙410004)
根據GPS定位原理和NMEA-0183協議,利用虛擬串口VSPD和虛擬GPS軟件,從教學的角度出發,在單片機仿真環境Proteus中實現了GPS定位系統。詳細地描述了系統的硬件電路、“$GPRMC”語句的解釋流程及仿真操作過程。
Proteus;GPS;仿真;NMEA-0183
GPS(Global Positioning System)全球定位系統已在實時導航、定位、授時等方面廣泛應用。在GPS原理與應用教學過程中,利用單片機仿真環境Proteus、虛擬串口VSPD以及虛擬GPS模塊共同構成GPS定位仿真實訓教學系統。不僅節約了傳統實驗教學過程中使用的設備和工具,而且可以仿真出一些在實際中很難得到的數據,從而加深對GPS原理的理解,提高了GPS仿真實訓教學系統的推廣價值。
GPS系統由3部分組成:空間部分 (GPS衛星星座)、地面控制部分(地面監控系統)、用戶設備部分(GPS信號接收器)。每顆GPS衛星時刻發布其位置和時間數據信號,用戶接收器測量每顆衛星信號到接收器的時間延遲,根據信號傳輸速度就可以計算出接收器與不同衛星之間的距離。GPS定位原理如圖1所示,圖中的GPS接收器為當前要確定位置的設備。利用三顆以上衛星的已知空間位置,用空間距離交會法,可求得地面待定點(接收器)的位置。公式如下:


圖1 GPS定位原理示意圖
根據這些距離值,就可以推算出GPS接收器的定位信息,如經度、緯度、高度、速度、方向等。考慮到各種誤差的影響,為了達到定位精度要求,至少需要同步觀測4顆以上的衛星。
GPS定位仿真實訓教學系統主要是基于51單片機、虛擬 GPS軟件Virtual GPS和虛擬串口軟件VSPD。系統仿真電路如圖2所示。在VSPD的作用下,GPS定位信息通過單片機串口接收,所接收的信息可來自帶串口輸出的GPS實物模塊,也可以來自Virtual GPS。單片機程序通過解析接收到的GPS信息,將當前時間、經度、緯度、速度及航向信息顯示在液晶屏上。圖2中顯示當前時間為12月8日3點46分41秒;當前位置為東經136度49.6541分,北緯79度5.0695分;當前速度為513千米/時;當前方位為偏正北26.79度。

圖2 GPS定位仿真電路
所設計的GPS定位仿真實訓教學系統暫不考慮與地圖數據庫連接,只對GPS接收模塊所輸出的定位信息進行解析,然后將時間、經度、緯度、速度與航向實時刷新顯示在液晶屏上,達到GPS定位初步應用的目的。
以帶串口輸出的GPS模塊ATK-NEO-6M為例,它遵守NMEA-0183協議。NMEA協議是為了在不同的GPS導航設備中建立統一的標準,由美國國家海洋電子協會制定。GPS接收模塊根據NMEA-0183協議的標準規范,將位置、速度等信息通過串口傳送出去。
NMEA-0183定義的協議語句比較多,本仿真實訓系統的主程序僅對“$GPRMC”協議語句進行解析。“$GPRMC”的所有數據均采用ASCII字符表示,數據傳輸以“$”開頭,以回車換行符(十六進制的0D和0A)結束;數據字段以逗號分隔識別;空字段保留逗號。
例 如 :$GPRMC,034641.656,A,7905.069500,N, 13649.654167,E,277.06,26.79,081214,0,E,A*25。其中,$GPRMC為數據串頭,表示此協議語句為最簡定位語句;“034641.656”為UTC時間,格式為“時時分分秒秒.毫秒”;“A”表示接收正常,“V”則表示與衛星通信不正常;“7905.069500”表示緯度值;“N”表示北緯,“S”表示南緯;“13649.654167”表示經度值;“E”表示東經,“W”表示西經;“277.06”表示速度(單位為節,1節=1.852千米/小時);“26.79”表示方位角,它的范圍為000.0-359.9度(相當于二維羅盤);“081214”表示UTC日期,格式為“日日月月年年”;“0”表示磁偏角,范圍為000.0-180.0度;“E”表示地磁變化方向為東,“W”表示地磁變化方向為西;“A”表示自動模式,“D”表示差分模式,“N”表示數據無效;“25”是“$”和“*”之間的所有字符ASCII碼的異或結果的十六進制值。
解釋“$GPRMC”協議語句對應的程序代碼由串口中斷函數完成。首先將接收的字符與字符串“$GPRMC”中的字符逐一進行比對,如果完全相同,則繼續后面的解析操作,否則忽略本次解析,等待下一“$GPRMC”消息頭部的到來。串口中斷函數的處理流程如圖3所示。

圖3 串口中斷函數的處理流程圖
在實際的GPS應用中,可能并不會用到協議語句的全部信息,而是根據具體的需要,從中選取感興趣的信息。由于語句的長度是不固定的,因而分離有用的信息時,不能單純按照該信息在語句中所處的字符位置來查找,還要依據逗號個數來提取。
Proteus目前還沒有GPS模塊的仿真模型,但可以利用自身的串口仿真功能來實現MCU與虛擬GPS軟件通信的仿真調試。詳細仿真電路如圖1所示。首先在計算機上利用虛擬串口軟件VSPD設置出2個互連的虛擬串口COM3和COM4,再啟動虛擬GPS軟件,將其串口設置為COM4,然后將Proteus中的串行接口仿真器件COMPIM設置為COM3。把它們的波特率都設置成9600bit/s后,仿真運行時,虛擬GPS軟件向單片機串口連續發送符合NMEA-0183協議的語句,如圖4所示。單片機的串口接收中斷函數對“$GPRMC”協議語句進行解釋,所解析出的定位信息等由液晶模塊顯示。

圖4 虛擬GPS軟件Virtual GPS發送定位信息
GPS定位仿真系統完整地展示了GPS定位數據的格式和應用開發過程,系統基本滿足了教學實踐的需要,為GPS定位仿真系統的研究與應用做出了積極的探索。
[1]楊俊,武奇生.GPS基本原理及其Matlab仿真[M].西安:西安電子科技大學出版社,2006.
[2]李征航,黃勁松.GPS測量與數據處理[M].武漢:武漢大學出版社,2005.
[3]胡銳,薛曉中,孫瑞勝,等.GPS軟件接收機全系統仿真[J].計算機工程,2010,(16):229-231.
[4]陳懷民,馬龍,王亮,等.GPS仿真模擬器程控計算機控制臺設計與實現[J].計算機測量與控制,2014,(4):1101-1104.
[5]謝杰,侯博,石陽,等.GPS信號仿真器方案設計與實現[J].計算機仿真,2012,(2):36-39.
[6]沈超,裘正定.基于MatLab/Simulink的GPS系統仿真[J].系統仿真學報,2006,(7):1857-1860.
TP274.2
A
1671-5136(2015)03-0139-03
2015-09-06
2015年度湖南省高等學校科學研究項目(編號:15C0079).
朱志偉(1976-),男,湖南衡山人,長沙民政職業技術學院電子信息工程學院副教授、碩士。研究方向:嵌入式系統和電力電子技術。