孔令榮,王 昊
(南京理工大學(xué)泰州科技學(xué)院 電子電氣工程學(xué)院,江蘇 泰州 225300)
基于單片機(jī)的手持式GPS定位儀設(shè)計
孔令榮,王 昊
(南京理工大學(xué)泰州科技學(xué)院 電子電氣工程學(xué)院,江蘇 泰州 225300)
GPS能夠為用戶提供全球性、全天候、不間斷、實時、高精度的經(jīng)緯坐標(biāo)、速度和時間信息。GPS接收機(jī)作為一種先進(jìn)的導(dǎo)航和定位儀器,已廣泛應(yīng)用于民用及軍事等領(lǐng)域。設(shè)計了一種基于AT89C51單片機(jī)實現(xiàn)的簡單的GPS導(dǎo)航信息顯示系統(tǒng),主要實現(xiàn)接收數(shù)據(jù)、時間顯示、經(jīng)度顯示、緯度顯示等常規(guī)功能。經(jīng)過實際測試,定位儀能實現(xiàn)GPS基本信息的接收、顯示,具有精度高、體積小及持續(xù)定位等特點,可應(yīng)用于個人野外出游探險、出租汽車定位等領(lǐng)域。
定位儀;單片機(jī);空間數(shù)據(jù);數(shù)據(jù)處理;液晶顯示
在全球范圍內(nèi)都可以通過GPS定位系統(tǒng)接收GPS衛(wèi)星信號并經(jīng)過處理對用戶進(jìn)行實時的定位跟蹤,該系統(tǒng)廣泛應(yīng)用于中國的水利、電力、交通、資源勘探、工程測量、大地測量和定位等方面。GPS定位系統(tǒng)能夠通過接收的GPS衛(wèi)星信號在市內(nèi)道路、高速公路,甚至在荒無人煙的沙漠與戈壁灘上為汽車提供定位,司機(jī)可以通過定位信息找到到達(dá)目的地的正確路線。GPS定位系統(tǒng)這一市場也因汽車產(chǎn)業(yè)的發(fā)達(dá)得到快速的發(fā)展[1,2]。因此,我國的GPS市場將會有巨大的發(fā)展,在未來的幾年,我國有望成為全世界最大的GPS市場,定位設(shè)備將被更多的消費者所接受,設(shè)備的價格也將逐步下跌。市場上已有許多基于GPS接收機(jī)開發(fā)的產(chǎn)品,如車載導(dǎo)航系統(tǒng)、GPS手持式用戶機(jī)等,但價格比較昂貴。為此,本文提出了一種基于AT89C51單片機(jī)的GPS定位儀的設(shè)計方案,并對相關(guān)數(shù)據(jù)信息的處理做了重點的設(shè)計。該系統(tǒng)設(shè)計簡易,性價比高,對研究GPS二次開發(fā)應(yīng)用具有參考價值。
由GPS模塊、液晶顯示器、AT89C51、上電復(fù)位電路與電源部分構(gòu)成GPS定位系統(tǒng)的硬件電路。將GPS模塊接收到的定位數(shù)據(jù)送至單片機(jī),經(jīng)過處理后再送至LCD液晶顯示器。LCD液晶顯示器會每隔1 s定時進(jìn)行一次更新。上電復(fù)位電路為單片機(jī)提供上電復(fù)位功能。電源電路為各個電路提供穩(wěn)定的+5 V電源。
本文設(shè)計的GPS定位系統(tǒng)具有如下主要功能:
①移動目標(biāo)相關(guān)信息顯示。在狀態(tài)欄不斷地顯示出所在位置的相關(guān)信息,比如速度、方向和時間等。
②實時信息的顯示。將獲取到的定位信息顯示在屏幕上。
③GPS啟動/停止功能。
④接收GPS衛(wèi)星發(fā)出的GPS定位數(shù)據(jù)。
GPS定位系統(tǒng)整體構(gòu)架如圖1所示。
圖1 GPS定位系統(tǒng)架構(gòu)
1.1 硬件電路設(shè)計
1.1.1 AT89C51單片機(jī)
AT89C51是一種高性能、低電壓CMOS 8位處理器并帶有4 kbytes FLASH存儲器,俗名單片機(jī)。單片機(jī)可以對可擦除只讀存儲器做反復(fù)擦除1 000次的處理。該器件可以兼容工業(yè)標(biāo)準(zhǔn)的MCS-51指令集與輸出管腳[3,4]。由于單個芯片內(nèi)組合了閃爍存儲器與多功能8位CPU,ATMEL的AT89C51是一種具有高效率且簡單易操作的簡微控制器。很多嵌入式控制系統(tǒng)都采用AT89C51單片機(jī),提供了一種有較高靈活性且價格低廉的方案,其引腳排列如圖2所示。
圖2 AT89C51引腳
1.1.2 GPS模塊
GPS接收模塊天線的作用是將衛(wèi)星發(fā)射的無線電信號轉(zhuǎn)換成GPS接收模塊元件能夠接收應(yīng)用的電信號。設(shè)計所用的GPS天線由陶瓷天線體和有源放大器2部分組成。采用塑料外殼的封裝,防水防潮,材料環(huán)保,線材高性能,接收信號的靈敏度極高,天線的底部帶有磁鐵可以系在車外,產(chǎn)品小巧,安裝與使用較為方便。工作條件是溫度為-40~+85℃,濕度為95%~100%。
1.1.3 顯示電路
顯示電路采用LCD12864,LCD12864是一種多接口方式的圖形點陣液晶顯示模塊,內(nèi)部配置國標(biāo)一級、二級簡體中文字庫;能夠顯示128×64的分辨率,內(nèi)部16×16點的漢字有8 192個,16×8點ASCII字符集有128個,該模塊有靈活的接口方式,還具有簡單、方便的操作指令,能夠構(gòu)成全中文人機(jī)交互圖形界面。8×4、16×16點陣的中文漢字都能夠?qū)崿F(xiàn),同時圖形顯示的功能也能完成。而且該LCD液晶顯示器的所需電壓和功耗都較低,該模塊構(gòu)成的液晶顯示過程與同一種類的圖形點陣液晶顯示模塊相比,硬件模塊和實現(xiàn)程序都更為簡潔,液晶顯示模塊與一些相同的圖形點陣液晶模塊相比,價格相對較低。
1.2 系統(tǒng)軟件設(shè)計
電路硬件設(shè)計完成后,對軟件進(jìn)行設(shè)計,編寫關(guān)于GPS的定位程序和LCD12864顯示模塊的程序,并對其檢錯與修改。
1.2.1 系統(tǒng)軟件
系統(tǒng)軟件由初始化模塊與數(shù)據(jù)接收處理模塊組成。系統(tǒng)流程如圖3所示。
圖3 系統(tǒng)程序流程
1.2.2 軟件程序編制
(1)GPS接收處理模塊程序
從GPS上接收到的數(shù)據(jù)由數(shù)據(jù)接收處理模塊處理。當(dāng)接收的信息到達(dá)單片機(jī)的串口后,首先判別是否為語句引導(dǎo)頭“”,才能接收信息的內(nèi)容,對收到的ASCII碼進(jìn)行處理顯示,必須區(qū)分出信息的類別,區(qū)分方法是根據(jù)語句標(biāo)識來區(qū)分[7~9]。如果整個數(shù)據(jù)是正確的,就開始對數(shù)據(jù)進(jìn)行處理;如果接收的數(shù)據(jù)不正確,就要重新接收數(shù)據(jù)。設(shè)計中主要接收并存儲的數(shù)據(jù)內(nèi)容包括:當(dāng)前的日期、時間、經(jīng)度、緯度與定位狀態(tài)。特別注意的是,GPS所顯示的時間是世界統(tǒng)一時間,這與我國的時區(qū)相差了8 h,所以必須轉(zhuǎn)換接收模塊所接收的時間。北京時間是UTC時間加上8 h才是準(zhǔn)確的北京時間,如果超過24 h要做減24 h處理。在轉(zhuǎn)換時間時要注意年月日的變更。數(shù)據(jù)每一秒進(jìn)行一次更新,GPS模塊會在系統(tǒng)工作時不斷的收到新的數(shù)據(jù),單片機(jī)刷新RAM,液晶屏顯示出的將事處理后的數(shù)據(jù)。數(shù)據(jù)的接收與處理程序的流程圖如圖4所示。
圖4 數(shù)據(jù)接收處理程序流程
(2)GPS定位信息顯示的程序設(shè)計
程序不考慮將GPS接收器輸出的經(jīng)緯度等信息與地圖數(shù)據(jù)庫連接實現(xiàn)定位功能,而是僅對GPS接收模塊所輸出的信息進(jìn)行解析,然后將經(jīng)度、緯度、速度與時間信息實時刷新顯示在液晶屏上。以帶串口輸出的GPS模塊Gstar-GS-87為例,遵守的是目前GPS接收機(jī)使用最廣泛的協(xié)議,即NMEA-0183協(xié)議,是美國國家海洋電子協(xié)會制定的標(biāo)準(zhǔn)格式,專為海用電子設(shè)備使用,目前RTCM標(biāo)準(zhǔn)協(xié)議已經(jīng)成了GPS定位設(shè)備統(tǒng)一協(xié)議。NEMA-0183協(xié)議定義的語句非常豐富,其中最常見的NMEA-0183語句及字段如表1所示。
表1 常見的NM EA-0183語句及字段
設(shè)計的主程序?qū)⑦^濾多種協(xié)議數(shù)據(jù),僅解析“GPRMC”協(xié)議語句,例如,“GPRMC,161 229.487,A,3 723.247500,N,1 2149.342 100,W,0.15,309.58,118 589,?10”,程序設(shè)計目標(biāo)就是參考表2給出的“$GPRMC”協(xié)議語句各字段的詳細(xì)說明,從字符串中解析出經(jīng)緯度、速度和時間信息。
表2 GPRMC數(shù)據(jù)格式
表2 GPRMC數(shù)據(jù)格式
字段序號字段名稱示例說明<1>信息ID$GPRMC RMC協(xié)議頭部<2>UTC時間161 229.487 hhmmss.sss<3>狀態(tài)A A=數(shù)據(jù)有效V=數(shù)據(jù)無效<4>緯度3 723.247 5 ddmm.mmmm<5>N/S標(biāo)志N N=北S=南<6>經(jīng)度12 149.3421 Dddmm.mmmm<7>E/W標(biāo)志W(wǎng) E=東,W=西<8>速度0.13節(jié)—<9>方位角309.62°—<10>UTC日期118 589 ddmmyy<11>磁偏角—E=東,W=西<12>校驗值10—<13><CR><LF>—數(shù)據(jù)結(jié)束
解析“GPRMC”協(xié)議語句的完整代碼由中斷函數(shù)void Serial_INT()interrupt4提供,首先將接收的字符與字符串“GPRMC”中的字符逐一進(jìn)行比對,該消息ID定義在程序最前面,即const char p[]=“GPRMC”,如果所接收到的信息頭部為“GPRMC”,則繼續(xù)后面的解析操作,否則忽略本次解析,等待下一“GPRMC”消息頭部的到來。
手持式GPS定位儀需要解決下列問題:
①搜尋到可被使用的衛(wèi)星并接收該衛(wèi)星的信號,同時與接收到的衛(wèi)星信號進(jìn)行同步,得到有關(guān)于定位的信息[10];
②計算位置所需要的信息可從定位電文中取得,時鐘信息與星歷信息都包含在這些信息內(nèi);
③計算出衛(wèi)星位置的正確信息,這些信息中包含衛(wèi)星目前的高度與方位角,從而對對流層進(jìn)行必要的校正;
④算出偽距,校正電離層等;
⑤重復(fù)以上過程,對可用衛(wèi)星進(jìn)行相應(yīng)計算;
⑥對其他必要的項目進(jìn)行校正,例如GPS接收機(jī)接收到衛(wèi)星信號的時間,校正因地球旋轉(zhuǎn)造成的衛(wèi)星位置的偏差;
⑦根據(jù)定位原理,計算出接收機(jī)所在的初始位置的信息,并將該信息進(jìn)行轉(zhuǎn)換,顯示出所需的坐標(biāo)格式;
⑧加入閏秒與UTC時間補償計算出當(dāng)前正確的時間;
⑨將可用衛(wèi)星的數(shù)據(jù)進(jìn)行解析。計算出最為合適的DOP,選擇衛(wèi)星,計算出GPS接收機(jī)的位置并對其進(jìn)行校正,顯示出GPS的三維坐標(biāo)和準(zhǔn)確時間的信息。
通過計算GPS模塊與各顆衛(wèi)星間的偽距離,點位速度快是它的特點,但是會有較大誤差。在第一次進(jìn)行定位時,模塊對定位信息進(jìn)行計算至少需要4顆衛(wèi)星,稱作3D定位,實現(xiàn)2D定位就只要3顆衛(wèi)星,但是其定位的精度卻不夠高。這些NMEA格式的定位及輔助信息由GPS接收模塊源源不斷的提供給用戶選擇應(yīng)用[11]。
GPS性能指標(biāo)主要有接收靈敏度、位置精度、定位時間、時間精度和功耗等。開機(jī)定位的時間不同可能與模塊啟動模式的不同有關(guān)。冷啟動時間是指模塊內(nèi)沒有保存任何對定位有幫助的數(shù)據(jù),其中包括星歷和時間等數(shù)據(jù);溫啟動時間則指模塊內(nèi)部有較新的衛(wèi)星星歷,但是時間上的卻有很大偏差;熱啟動時間則需要達(dá)到關(guān)機(jī)不超過20 min,且要求RTC時間誤差很小??梢栽陟o態(tài)和動態(tài)2種情況下對定位精度進(jìn)行考察,并且動態(tài)定位比靜態(tài)定位的效果要好得多。只有在沒有高大阻礙的天空下,能接收到良好衛(wèi)星信號的情況下才能測得GPS模塊的定位數(shù)據(jù)。所以在一般情況下要想接收到達(dá)到標(biāo)準(zhǔn)的定位精度與定位時間并不容易。圓概率誤差與2倍水平均方根誤差是2種常見的水平定位精度。有很多方面都能決定GPS模塊定位的精度,例如GPS系統(tǒng)的軌道差與衛(wèi)星鐘差、可見GPS衛(wèi)星的數(shù)量及其分布、大氣層厚度和太陽的輻射等。即使是同一個GPS模塊也會因為天線的質(zhì)量、位置與方向、測試的時間段、空曠的范圍及方向、天氣等原因產(chǎn)生不同的定位誤差。就算是同一廠家同一型號的GPS模塊進(jìn)行測試時靜態(tài)漂移量也會出現(xiàn)誤差[12]。本文設(shè)計采用了G591模塊作為GPS模塊,它是一款采用日本原裝全新JRC-G591模塊的開發(fā)板,JRC第9代方案是此開發(fā)板是基礎(chǔ),能支持多達(dá)210PRN通道,其中搜索通道有66個,同步跟蹤通道有22個,具有比較高的靈敏度與跟蹤性能。
4.1 系統(tǒng)測試
2014年4月20日19:02左右于南京理工大學(xué)泰州科技學(xué)院第二食堂橋邊進(jìn)行定位儀系統(tǒng)測試,接收天線在戶外,周圍無高大建筑物,接入+5 V電源后,啟動GPS定位系統(tǒng),液晶顯示如圖5所示。圖5(a)中的數(shù)據(jù)N32.27.80表示當(dāng)前位置的緯度為32°27.80′,E119.56.80表示當(dāng)前位測量所以速度置的經(jīng)度為119°56.80′。圖5(b)中的數(shù)據(jù)表示了當(dāng)前的時間為2014年4月20日19:02:14,由于是靜止速度為0。
圖5 GPS接收模塊測得經(jīng)緯度和時間速度數(shù)據(jù)
4.2 應(yīng)用結(jié)果分析
GPS提供的定位信息包括了經(jīng)度、維度、海拔、速度、航向、磁場、時間、衛(wèi)星個數(shù)及其編號等衛(wèi)星信息,其接收數(shù)據(jù)方法類似,所以設(shè)計只提供了其中的部分價值較高的數(shù)據(jù)信息。經(jīng)過系統(tǒng)測試,獲取的時間、經(jīng)度、緯度信息與市售佳明GPSMAP 62sc定位儀獲取結(jié)果完全一致,驗證了系統(tǒng)的準(zhǔn)確性與可靠性。本設(shè)計價格低廉,有較好的實用價值。
設(shè)計的基于AT89C51單片機(jī)的液晶GPS定位儀,實現(xiàn)了GPS空間數(shù)據(jù)的讀取顯示。設(shè)計方法靈活,可以根據(jù)實際需要從GPS信號中提取多種導(dǎo)航信息,采用單片機(jī)作為主控芯片設(shè)計電路,具有易于調(diào)試、成本低廉等顯著特點。該定位儀經(jīng)過測試已證明完全滿足系統(tǒng)基本需要。結(jié)構(gòu)簡單,器件少,成本低,性能穩(wěn)定,又可通過PC機(jī)擴(kuò)展其應(yīng)用能力,體積小。該定位儀可民用化,方便攜帶,性價比高,適用于個人野外旅游探險、出租汽車定位及海上作業(yè)等。
[1] 張毅剛.MCS-51單片機(jī)應(yīng)用設(shè)計[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2004.
[2] 王丙祥,李建海.基于89C52的GPS板電路設(shè)計與實現(xiàn)[J].西安文理學(xué)院學(xué)報:自然科學(xué)版,2007,10(3):98-101.
[3] 徐 進(jìn),周 寧.GPS接收機(jī)的單片機(jī)通訊接口[J].電子器件,1999,22(3):23-26.
[4] 陳 明,蔣挺.最佳屏蔽二進(jìn)制序列偶在GPS系統(tǒng)的應(yīng)用[J].無線電通信技術(shù),2012,38(6):73-76.
[5] 龔運新.單片機(jī)接口C語言開發(fā)技術(shù)[M].北京:清華大學(xué)出版社,2001.
[6] 王建校,楊建國,寧改娣,等.51系列單片機(jī)及C51程序設(shè)計[M].北京:科學(xué)出版社,2002.
[7] 林志琦.基于PROTEUS的單片機(jī)可視化軟硬件仿真[M].北京:北京航空航天大學(xué)出版社,2006.
[8] 趙浪濤,趙永花,柴 清.基于AT89S52的多點溫度檢測無線報警系統(tǒng)設(shè)計[J].無線電工程,2015,45(1):76-80.
[9] 劉 可.通用信號處理模塊功能線程動態(tài)重構(gòu)技術(shù)[J].無線電工程,2014,44(11):77-80.
[10] 謝利敏,康志杰.公交車載GPS智能報站系統(tǒng)設(shè)計[J].無線電工程,2011,41(2):34-36.
[11] 方 群,袁建平,鄭 愕.衛(wèi)星定位導(dǎo)航基礎(chǔ)[M].西安:西北工業(yè)大學(xué)出版社,1998.
[12] 馬英昌,謝 松.GPS L5接收機(jī)的設(shè)計與實現(xiàn)[J].無線電通信技術(shù),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
孔令榮,王 昊.基于單片機(jī)的手持式GPS定位儀設(shè)計[J].無線電工程,2015,45(9):68-71,80.
孔令榮男,(1983—),講師,碩士。主要研究方向:單片機(jī)與嵌入式系統(tǒng)應(yīng)用。
2015-05-04
王 昊男,(1985—),講師,碩士。主要研究方向:單片機(jī)與嵌入式系統(tǒng)應(yīng)用、射頻集成電路設(shè)計與制造。