孔令榮,王 昊
(南京理工大學泰州科技學院 電子電氣工程學院,江蘇 泰州 225300)
基于單片機的手持式GPS定位儀設計
孔令榮,王 昊
(南京理工大學泰州科技學院 電子電氣工程學院,江蘇 泰州 225300)
GPS能夠為用戶提供全球性、全天候、不間斷、實時、高精度的經緯坐標、速度和時間信息。GPS接收機作為一種先進的導航和定位儀器,已廣泛應用于民用及軍事等領域。設計了一種基于AT89C51單片機實現的簡單的GPS導航信息顯示系統,主要實現接收數據、時間顯示、經度顯示、緯度顯示等常規功能。經過實際測試,定位儀能實現GPS基本信息的接收、顯示,具有精度高、體積小及持續定位等特點,可應用于個人野外出游探險、出租汽車定位等領域。
定位儀;單片機;空間數據;數據處理;液晶顯示
在全球范圍內都可以通過GPS定位系統接收GPS衛星信號并經過處理對用戶進行實時的定位跟蹤,該系統廣泛應用于中國的水利、電力、交通、資源勘探、工程測量、大地測量和定位等方面。GPS定位系統能夠通過接收的GPS衛星信號在市內道路、高速公路,甚至在荒無人煙的沙漠與戈壁灘上為汽車提供定位,司機可以通過定位信息找到到達目的地的正確路線。GPS定位系統這一市場也因汽車產業的發達得到快速的發展[1,2]。因此,我國的GPS市場將會有巨大的發展,在未來的幾年,我國有望成為全世界最大的GPS市場,定位設備將被更多的消費者所接受,設備的價格也將逐步下跌。市場上已有許多基于GPS接收機開發的產品,如車載導航系統、GPS手持式用戶機等,但價格比較昂貴。為此,本文提出了一種基于AT89C51單片機的GPS定位儀的設計方案,并對相關數據信息的處理做了重點的設計。該系統設計簡易,性價比高,對研究GPS二次開發應用具有參考價值。
由GPS模塊、液晶顯示器、AT89C51、上電復位電路與電源部分構成GPS定位系統的硬件電路。將GPS模塊接收到的定位數據送至單片機,經過處理后再送至LCD液晶顯示器。LCD液晶顯示器會每隔1 s定時進行一次更新。上電復位電路為單片機提供上電復位功能。電源電路為各個電路提供穩定的+5 V電源。
本文設計的GPS定位系統具有如下主要功能:
①移動目標相關信息顯示。在狀態欄不斷地顯示出所在位置的相關信息,比如速度、方向和時間等。
②實時信息的顯示。將獲取到的定位信息顯示在屏幕上。
③GPS啟動/停止功能。
④接收GPS衛星發出的GPS定位數據。
GPS定位系統整體構架如圖1所示。

圖1 GPS定位系統架構
1.1 硬件電路設計
1.1.1 AT89C51單片機
AT89C51是一種高性能、低電壓CMOS 8位處理器并帶有4 kbytes FLASH存儲器,俗名單片機。單片機可以對可擦除只讀存儲器做反復擦除1 000次的處理。該器件可以兼容工業標準的MCS-51指令集與輸出管腳[3,4]。由于單個芯片內組合了閃爍存儲器與多功能8位CPU,ATMEL的AT89C51是一種具有高效率且簡單易操作的簡微控制器。很多嵌入式控制系統都采用AT89C51單片機,提供了一種有較高靈活性且價格低廉的方案,其引腳排列如圖2所示。

圖2 AT89C51引腳
1.1.2 GPS模塊
GPS接收模塊天線的作用是將衛星發射的無線電信號轉換成GPS接收模塊元件能夠接收應用的電信號。設計所用的GPS天線由陶瓷天線體和有源放大器2部分組成。采用塑料外殼的封裝,防水防潮,材料環保,線材高性能,接收信號的靈敏度極高,天線的底部帶有磁鐵可以系在車外,產品小巧,安裝與使用較為方便。工作條件是溫度為-40~+85℃,濕度為95%~100%。
1.1.3 顯示電路
顯示電路采用LCD12864,LCD12864是一種多接口方式的圖形點陣液晶顯示模塊,內部配置國標一級、二級簡體中文字庫;能夠顯示128×64的分辨率,內部16×16點的漢字有8 192個,16×8點ASCII字符集有128個,該模塊有靈活的接口方式,還具有簡單、方便的操作指令,能夠構成全中文人機交互圖形界面。8×4、16×16點陣的中文漢字都能夠實現,同時圖形顯示的功能也能完成。而且該LCD液晶顯示器的所需電壓和功耗都較低,該模塊構成的液晶顯示過程與同一種類的圖形點陣液晶顯示模塊相比,硬件模塊和實現程序都更為簡潔,液晶顯示模塊與一些相同的圖形點陣液晶模塊相比,價格相對較低。
1.2 系統軟件設計
電路硬件設計完成后,對軟件進行設計,編寫關于GPS的定位程序和LCD12864顯示模塊的程序,并對其檢錯與修改。
1.2.1 系統軟件
系統軟件由初始化模塊與數據接收處理模塊組成。系統流程如圖3所示。

圖3 系統程序流程
1.2.2 軟件程序編制
(1)GPS接收處理模塊程序
從GPS上接收到的數據由數據接收處理模塊處理。當接收的信息到達單片機的串口后,首先判別是否為語句引導頭“”,才能接收信息的內容,對收到的ASCII碼進行處理顯示,必須區分出信息的類別,區分方法是根據語句標識來區分[7~9]。如果整個數據是正確的,就開始對數據進行處理;如果接收的數據不正確,就要重新接收數據。設計中主要接收并存儲的數據內容包括:當前的日期、時間、經度、緯度與定位狀態。特別注意的是,GPS所顯示的時間是世界統一時間,這與我國的時區相差了8 h,所以必須轉換接收模塊所接收的時間。北京時間是UTC時間加上8 h才是準確的北京時間,如果超過24 h要做減24 h處理。在轉換時間時要注意年月日的變更。數據每一秒進行一次更新,GPS模塊會在系統工作時不斷的收到新的數據,單片機刷新RAM,液晶屏顯示出的將事處理后的數據。數據的接收與處理程序的流程圖如圖4所示。

圖4 數據接收處理程序流程
(2)GPS定位信息顯示的程序設計
程序不考慮將GPS接收器輸出的經緯度等信息與地圖數據庫連接實現定位功能,而是僅對GPS接收模塊所輸出的信息進行解析,然后將經度、緯度、速度與時間信息實時刷新顯示在液晶屏上。以帶串口輸出的GPS模塊Gstar-GS-87為例,遵守的是目前GPS接收機使用最廣泛的協議,即NMEA-0183協議,是美國國家海洋電子協會制定的標準格式,專為海用電子設備使用,目前RTCM標準協議已經成了GPS定位設備統一協議。NEMA-0183協議定義的語句非常豐富,其中最常見的NMEA-0183語句及字段如表1所示。

表1 常見的NM EA-0183語句及字段
設計的主程序將過濾多種協議數據,僅解析“GPRMC”協議語句,例如,“GPRMC,161 229.487,A,3 723.247500,N,1 2149.342 100,W,0.15,309.58,118 589,?10”,程序設計目標就是參考表2給出的“$GPRMC”協議語句各字段的詳細說明,從字符串中解析出經緯度、速度和時間信息。
表2 GPRMC數據格式

表2 GPRMC數據格式
字段序號字段名稱示例說明<1>信息ID$GPRMC RMC協議頭部<2>UTC時間161 229.487 hhmmss.sss<3>狀態A A=數據有效V=數據無效<4>緯度3 723.247 5 ddmm.mmmm<5>N/S標志N N=北S=南<6>經度12 149.3421 Dddmm.mmmm<7>E/W標志W E=東,W=西<8>速度0.13節—<9>方位角309.62°—<10>UTC日期118 589 ddmmyy<11>磁偏角—E=東,W=西<12>校驗值10—<13><CR><LF>—數據結束
解析“GPRMC”協議語句的完整代碼由中斷函數void Serial_INT()interrupt4提供,首先將接收的字符與字符串“GPRMC”中的字符逐一進行比對,該消息ID定義在程序最前面,即const char p[]=“GPRMC”,如果所接收到的信息頭部為“GPRMC”,則繼續后面的解析操作,否則忽略本次解析,等待下一“GPRMC”消息頭部的到來。
手持式GPS定位儀需要解決下列問題:
①搜尋到可被使用的衛星并接收該衛星的信號,同時與接收到的衛星信號進行同步,得到有關于定位的信息[10];
②計算位置所需要的信息可從定位電文中取得,時鐘信息與星歷信息都包含在這些信息內;
③計算出衛星位置的正確信息,這些信息中包含衛星目前的高度與方位角,從而對對流層進行必要的校正;
④算出偽距,校正電離層等;
⑤重復以上過程,對可用衛星進行相應計算;
⑥對其他必要的項目進行校正,例如GPS接收機接收到衛星信號的時間,校正因地球旋轉造成的衛星位置的偏差;
⑦根據定位原理,計算出接收機所在的初始位置的信息,并將該信息進行轉換,顯示出所需的坐標格式;
⑧加入閏秒與UTC時間補償計算出當前正確的時間;
⑨將可用衛星的數據進行解析。計算出最為合適的DOP,選擇衛星,計算出GPS接收機的位置并對其進行校正,顯示出GPS的三維坐標和準確時間的信息。
通過計算GPS模塊與各顆衛星間的偽距離,點位速度快是它的特點,但是會有較大誤差。在第一次進行定位時,模塊對定位信息進行計算至少需要4顆衛星,稱作3D定位,實現2D定位就只要3顆衛星,但是其定位的精度卻不夠高。這些NMEA格式的定位及輔助信息由GPS接收模塊源源不斷的提供給用戶選擇應用[11]。
GPS性能指標主要有接收靈敏度、位置精度、定位時間、時間精度和功耗等。開機定位的時間不同可能與模塊啟動模式的不同有關。冷啟動時間是指模塊內沒有保存任何對定位有幫助的數據,其中包括星歷和時間等數據;溫啟動時間則指模塊內部有較新的衛星星歷,但是時間上的卻有很大偏差;熱啟動時間則需要達到關機不超過20 min,且要求RTC時間誤差很小。可以在靜態和動態2種情況下對定位精度進行考察,并且動態定位比靜態定位的效果要好得多。只有在沒有高大阻礙的天空下,能接收到良好衛星信號的情況下才能測得GPS模塊的定位數據。所以在一般情況下要想接收到達到標準的定位精度與定位時間并不容易。圓概率誤差與2倍水平均方根誤差是2種常見的水平定位精度。有很多方面都能決定GPS模塊定位的精度,例如GPS系統的軌道差與衛星鐘差、可見GPS衛星的數量及其分布、大氣層厚度和太陽的輻射等。即使是同一個GPS模塊也會因為天線的質量、位置與方向、測試的時間段、空曠的范圍及方向、天氣等原因產生不同的定位誤差。就算是同一廠家同一型號的GPS模塊進行測試時靜態漂移量也會出現誤差[12]。本文設計采用了G591模塊作為GPS模塊,它是一款采用日本原裝全新JRC-G591模塊的開發板,JRC第9代方案是此開發板是基礎,能支持多達210PRN通道,其中搜索通道有66個,同步跟蹤通道有22個,具有比較高的靈敏度與跟蹤性能。
4.1 系統測試
2014年4月20日19:02左右于南京理工大學泰州科技學院第二食堂橋邊進行定位儀系統測試,接收天線在戶外,周圍無高大建筑物,接入+5 V電源后,啟動GPS定位系統,液晶顯示如圖5所示。圖5(a)中的數據N32.27.80表示當前位置的緯度為32°27.80′,E119.56.80表示當前位測量所以速度置的經度為119°56.80′。圖5(b)中的數據表示了當前的時間為2014年4月20日19:02:14,由于是靜止速度為0。

圖5 GPS接收模塊測得經緯度和時間速度數據
4.2 應用結果分析
GPS提供的定位信息包括了經度、維度、海拔、速度、航向、磁場、時間、衛星個數及其編號等衛星信息,其接收數據方法類似,所以設計只提供了其中的部分價值較高的數據信息。經過系統測試,獲取的時間、經度、緯度信息與市售佳明GPSMAP 62sc定位儀獲取結果完全一致,驗證了系統的準確性與可靠性。本設計價格低廉,有較好的實用價值。
設計的基于AT89C51單片機的液晶GPS定位儀,實現了GPS空間數據的讀取顯示。設計方法靈活,可以根據實際需要從GPS信號中提取多種導航信息,采用單片機作為主控芯片設計電路,具有易于調試、成本低廉等顯著特點。該定位儀經過測試已證明完全滿足系統基本需要。結構簡單,器件少,成本低,性能穩定,又可通過PC機擴展其應用能力,體積小。該定位儀可民用化,方便攜帶,性價比高,適用于個人野外旅游探險、出租汽車定位及海上作業等。
[1] 張毅剛.MCS-51單片機應用設計[M].哈爾濱:哈爾濱工業大學出版社,2004.
[2] 王丙祥,李建海.基于89C52的GPS板電路設計與實現[J].西安文理學院學報:自然科學版,2007,10(3):98-101.
[3] 徐 進,周 寧.GPS接收機的單片機通訊接口[J].電子器件,1999,22(3):23-26.
[4] 陳 明,蔣挺.最佳屏蔽二進制序列偶在GPS系統的應用[J].無線電通信技術,2012,38(6):73-76.
[5] 龔運新.單片機接口C語言開發技術[M].北京:清華大學出版社,2001.
[6] 王建校,楊建國,寧改娣,等.51系列單片機及C51程序設計[M].北京:科學出版社,2002.
[7] 林志琦.基于PROTEUS的單片機可視化軟硬件仿真[M].北京:北京航空航天大學出版社,2006.
[8] 趙浪濤,趙永花,柴 清.基于AT89S52的多點溫度檢測無線報警系統設計[J].無線電工程,2015,45(1):76-80.
[9] 劉 可.通用信號處理模塊功能線程動態重構技術[J].無線電工程,2014,44(11):77-80.
[10] 謝利敏,康志杰.公交車載GPS智能報站系統設計[J].無線電工程,2011,41(2):34-36.
[11] 方 群,袁建平,鄭 愕.衛星定位導航基礎[M].西安:西北工業大學出版社,1998.
[12] 馬英昌,謝 松.GPS L5接收機的設計與實現[J].無線電通信技術,2013,39(6):94-96.
Design of Handheld GPS Positioning Instrument Based on Single-chip Microcom puter
KONG Lingrong,WANG Hao
(School of Electronic and Electric Engineering,Taizhou Institute of Science and Technology,NJUST,Taizhou Jiangsu 225300,China)
GPS can provide users with global,allweather,continuous,realtime,highprecision coordinate,speed and time information.Now,GPS receiver,as a kind of advanced navigation and positioning instruments,has been widely used in civilian and military fields.This design is based on AT89C51 single chip microcomputer to realize a simple GPS navigation information display system.The system mainly realizes data receiving,time display,latitude and longitude display,and other regular functions.The actual test shows the GPS receiver can achieve GPS information receiving and display,with features of high precision,small size,continuous navigation,etc.,and can be widely used in personal travel adventure and taxi positioning,etc.
positioning instrument;mcu;spatial data;data processing;liquid crystal display
TP274
A
1003-3106(2015)09-0068-04
10.3969/j.issn.1003-3106.2015.09.18
孔令榮,王 昊.基于單片機的手持式GPS定位儀設計[J].無線電工程,2015,45(9):68-71,80.
孔令榮男,(1983—),講師,碩士。主要研究方向:單片機與嵌入式系統應用。
2015-05-04
王 昊男,(1985—),講師,碩士。主要研究方向:單片機與嵌入式系統應用、射頻集成電路設計與制造。