吳東東, 朱蘇磊
(上海師范大學 信息與機電工程學院,上海 200234)
?
基于單片機的GPS定位顯示設計
吳東東, 朱蘇磊
(上海師范大學 信息與機電工程學院,上海 200234)
摘要:GPS即全球定位系統(tǒng)(Global Positioning System)在船舶、車輛、飛機等運動物體進行定位導航,車輛監(jiān)控管理系統(tǒng)等都有重要的應用,但是隨著其專業(yè)功能的擴展,高昂的成本讓許多普通消費者難以承受.提出了一種基于單片機的簡易GPS定位系統(tǒng)設計,完善了系統(tǒng)基本的實用功能,并且添加了速度與里程測量的設計,而GPS模塊采用了差分技術使其定位精度得到改善.因此該定位導航設備體積小巧、攜帶方便并且定位精度較高.通過得到觀測點的三維坐標數(shù)據(jù)以及位置精度因子,其平均值小于5,說明了通過差分技術后的定位精度得到改善并且達到預期范圍.最后,通過實物在室外的測試得到實時數(shù)據(jù),驗證了此設計的可行性.
關鍵詞:GPS模塊; 單片機; 串行通信
1背景簡介
GPS全球定位系統(tǒng)是19世紀70年代由美國陸海空三軍聯(lián)合研制的新一代空間衛(wèi)星導航定位系統(tǒng)[1].其主要目的是為陸、海、空三大領域提供實時、全天候和全球性的導航服務,并用于情報收集、核爆監(jiān)測和應急通訊等一些軍事目的,是美國獨霸全球戰(zhàn)略的重要組成.經(jīng)過20余年的研究實驗,耗資300億美元,到1994年3月,全球覆蓋率高達98%的24顆GPS衛(wèi)星星座己布設完成.
經(jīng)近20年我國測繪等部門的使用表明,GPS具有全天候、高精度、自動化、高效益等特點,成功地應用于大地測量、工程測量、航空攝影測量、運載工具導航和管制、地殼運動監(jiān)測、工程變形監(jiān)測、資源勘察、動力學等多種學科.
隨著全球衛(wèi)星導航技術的不斷發(fā)展,GNSS(Global Navigation Satellite System)系統(tǒng)是當前衛(wèi)星導航技術的熱點,俄羅斯、中國和歐盟也都在建立自己的衛(wèi)星導航系統(tǒng),GPS一詞也正在被GNSS所取代.GNSS包含了美國的GPS、俄羅斯的GLONASS(格洛納斯衛(wèi)星導航系統(tǒng))、中國的Compass(北斗)、歐盟的GALILEO(伽利略衛(wèi)星導航)系統(tǒng),可用的衛(wèi)星數(shù)目將達到100顆以上,可以說過去美國GPS一統(tǒng)天下的局面正在逐步被打破.近年來,雙星GPS,甚至多星GPS是GPS技術發(fā)展的一個重要方向.目前,國內(nèi)外GPS生產(chǎn)廠家都推出了各自的GNSS產(chǎn)品.可以說,GNSS技術是當前衛(wèi)星導航技術發(fā)展的一大熱點,也是未來GPS技術發(fā)展的重要方向.隨著GPS技術的迅速發(fā)展,在我國國民經(jīng)濟中發(fā)揮了越來越重要的作用,國產(chǎn)GPS的產(chǎn)業(yè)化步伐也在不斷加速,主要表現(xiàn)在兩個方面:瞄準并引進世界上最先進的GPS技術和開發(fā)自主知識產(chǎn)權的主板技術.
2GPS全球定位系統(tǒng)和GPS接收模塊的原理研究
2.1GPS全球定位系統(tǒng)的原理
全球定位系統(tǒng)由3部分構成[2]:(1)地面控制部分,由主控站(負責管理、協(xié)調(diào)整個地面控制系統(tǒng)的工作)、地面天線(在主控站的控制下,向衛(wèi)星注入尋電文)、監(jiān)測站(數(shù)據(jù)自動收集中心)和通訊輔助系統(tǒng)(數(shù)據(jù)傳輸)組成;(2)空間部分,由24顆衛(wèi)星組成,分布在6個道平面上;(3)用戶裝置部分,主要由GPS接收機和衛(wèi)星天線組成.其系統(tǒng)的結構框圖如圖1所示.

圖1 由三大部分構成的GPS衛(wèi)星全球定位系統(tǒng)
24顆GPS衛(wèi)星在離地面2×104km的高空上,以12 h的周期環(huán)繞地球運行,可以在任意時刻,在地面上的任意一點同時觀測到4顆以上的衛(wèi)星.由于衛(wèi)星的位置精確可知,在GPS觀測中,可得到衛(wèi)星到接收機的距離,利用三維坐標中的距離公式[3],利用3顆衛(wèi)星,就可以組成3個方程式,解出觀測點的位置(X,Y,Z).3個方程式為:
其中X、Y和Z表示觀測點的位置,xi、yi與zi(i=1、2、3)代表3顆衛(wèi)星的三維坐標,而ρi(i=1、2、3)表示星地幾何距離.
考慮到衛(wèi)星的時鐘與接收機時鐘之間的誤差,實際上有4個未知數(shù),X、Y、Z和鐘差,因而需要引入第4顆衛(wèi)星,形成4個方程式進行求解,從而得到觀測點的經(jīng)緯度和高程.4個方程式為:
上述4個方程式中待測點坐標x、y、z和Vto為未知參數(shù),其中di=cΔti(i=1、2、3、4).di(i=1、2、3、4)分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4到接收機之間的距離.
Δti(i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4的信號到達接收機所經(jīng)歷的時間.c為GPS信號的傳播速度(即光速).
4個方程式中各個參數(shù)意義:x、y、z為待測點坐標的空間直角坐標.xi、yi、zi(i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4在t時刻的空間直角坐標,可由衛(wèi)星導航電文求得.Vti(i=1、2、3、4) 分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4的衛(wèi)星鐘的鐘差,由衛(wèi)星星歷提供.Vto為接收機的鐘差.由以上4個方程即可解算出待測點的坐標x、y、z和接收機的鐘差Vto.GPS的基本定位原理是:衛(wèi)星不間斷地發(fā)送自身的星歷參數(shù)和時間信息,用戶接收到這些信息后,經(jīng)過計算求出接收機的三維位置,三維方向以及運動速度和時間信息.
事實上,接收機往往可以鎖住4顆以上的衛(wèi)星,這時,接收機可按衛(wèi)星的星座分布分成若干組,每組4顆,然后通過算法挑選出誤差最小的一組用作定位,從而提高精度.
由于衛(wèi)星運行軌道、衛(wèi)星時鐘存在誤差,大氣對流層、電離層對信號的影響,以及人為的SA保護政策,使得民用GPS的定位精度只有100 m.美國政府宣布2000年起,在保證美國國家安全不受威脅的前提下,取消SA政策,GPS民用信號精度在全球范圍內(nèi)得到改善,利用C/A碼進行單點定位的精度由100 m提高到20 m.為了達到更高的定位精度,往往還采用了差分GPS(DGPS)技術,建立基準站(差分臺)進行GPS觀測,利用已知的基準站精確坐標,與觀測值進行比較,從而得出一修正數(shù),并對外發(fā)布.接收機收到該修正數(shù)后,與自身的觀測值進行比較,消去大部分誤差,得到一個比較準確的位置.實驗表明,利用差分GPS,定位精度可提高到5 m.
2.2GPS接收模塊的原理

圖2 GPS接收模塊內(nèi)部結構
GPS接收模塊是接收機的關鍵模塊,而且型號很多,功能各異,一般的組成結構[4]主要由低噪聲下變頻器、并行信號通道、CPU、儲存器等組成,其系統(tǒng)的結構框圖如圖2所示.
GPS接收模塊的工作原理是它接收天線獲取的衛(wèi)星信號,經(jīng)過變頻、放大、濾波、相關、混頻等一系列處理,實現(xiàn)對天線視界內(nèi)衛(wèi)星的跟蹤、鎖定和測量.在獲取了衛(wèi)星的位置信息和測算出衛(wèi)星信號傳播時間之后,即可計算出天線位置.用戶通過輸入輸出接口,采用異步異步串行通信方式與GPS接收模塊進行信息交換.
3基于單片機的GPS模塊數(shù)據(jù)接收以及顯示設計
3.1硬件系統(tǒng)電路設計

圖3 基于單片機的GPS硬件結構框圖
該基于單片機的GPS硬件設計主要采用GPS信號接收部分[5](NEO-6M-0-001 GPS信號接收模塊)、控制芯片[6](AT89S51單片機)、顯示部分(12864LCD液晶顯示模塊)、電平轉(zhuǎn)換電路(MAX232)這幾部分構成.其硬件結構框圖如圖3所示.
由于采用的NEO-6M-0-001 GPS信號接收模塊輸出信號為RS-232電平,而AT89S51單片機串口所使用的電平為TTL電平[7],所以為了能使單片機正常的與NEO-6M-0-001 GPS信號接收模塊進行通訊,故需要對電平進行相互轉(zhuǎn)換,因此本設計需要采用MAX232電平轉(zhuǎn)換芯片.
3.2液晶顯示電路12864與單片機AT89S51的連接
12864液晶顯示屏的D0-D7為8位雙向數(shù)據(jù)線,LCDEN為使能端,RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器.WR為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作.RD為串并口選擇方式,高電平時:8位或4位并口方式,低電平時:串口方式[8].單片機AT89S51與12864液晶顯示屏的連接[9]如圖4所示.

圖4 基于單片機的液晶顯示電路
4系統(tǒng)的軟件設計
4.1GPS輸出格式
該GPS模塊采用的是美國的NMEA-0183協(xié)議,該格式輸出為ASCII碼字符,比較直觀和易于理解,在許多高級語言中都可以直接進行判別、分離,以提取用戶所需要的數(shù)據(jù).當GPS上電后,每隔一定的時間就會返回一定格式的數(shù)據(jù),數(shù)據(jù)格式為:


<1> UTC時間,hhmmss(時分秒)格式
<2> 定位狀態(tài),A=有效定位,V=無效定位
<3> 緯度ddmm.mmmm(度分)格式(前面的0也將被傳輸)
<4> 緯度半球N(北半球)或S(南半球)
<5> 經(jīng)度dddmm.mmmm(度分)格式(前面的0也將被傳輸)
<6> 經(jīng)度半球E(東經(jīng))或W(西經(jīng))
<7> 地面速率(000.0~999.9節(jié),前面的0也將被傳輸)
<8> 地面航向(000.0~359.9度,以真北為參考基準,前面的0也將被傳輸)
<9> UTC日期,ddmmyy(日月年)格式
<10> 磁偏角(000.0~180.0度,前面的0也將被傳輸)
<11> 磁偏角方向,E(東)或W(西)
<12> 模式指示(僅NMEA0183 3.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)
解析內(nèi)容:
1.時間,這個是格林威治時間,是世界時間(UTC),需要把它轉(zhuǎn)換成北京時間,北京時間和UTC差了8 h,要在這個時間基礎上加8 h,如果超過24 h,則進入第二天,則對日期加1,并且對時間減去24 h即為準確的北京時間.
2.定位狀態(tài),在接收到有效數(shù)據(jù)前,這個位是“V”,后面的數(shù)據(jù)都為空,接到有效數(shù)據(jù)后,這個位是“A”,后面才開始有數(shù)據(jù).
3.緯度,需要把它轉(zhuǎn)換成度分秒的格式,計算方法:如接收到的緯度是:4546.40891.則:
4546.40891/100=45.4640891可以直接讀出45°.
4546.40891-45×100=46.40891可以直接讀出46′.
46.40891-46=0.40891×60=24.5346讀出24″,所以緯度是:45°46′24″.
4.南北緯,這個位有兩種值“N”(北緯)和“S”(南緯).
5.經(jīng)度的計算方法和緯度的計算方法一樣.
6.東西經(jīng),這個位有兩種值“E”(東經(jīng))和“W”(西經(jīng)).
7.日期,這個日期是準確的,不需要轉(zhuǎn)換.
最后再對GPGGA格式數(shù)據(jù)進行解析,提取海平面高度和大地水準面高度,單位是m.
4.2速度與里程的設計
由于速度信息是在GPVTG格式中,因此還需要對GPVTG進行解析得到地面速度信息,所解析出來的速度信息的單位是km/h.由于GPS的數(shù)據(jù)是每一秒鐘更新一次,因此可以提取出這個速度作為騎行中的瞬時速度.此時的瞬時速度也是每一秒鐘更換一次,因此可以根據(jù)這些瞬時速度來計算出里程.先將提取到的速度再次進行單位轉(zhuǎn)化變更為m/s,那么每一秒鐘所騎行的里程就是此時的瞬時速度,然后把這些速度進行累加就可以得到騎行過程中的里程.
4.3單片機的總體軟件設計
首先是對系統(tǒng)環(huán)境初始化[10],包括設置串口、定時器、中斷、12864液晶初始化;系統(tǒng)時鐘取11.0592 MHz,而波特率為9600 b/s,則TH1=FDH.初始化程序如下:
TMOD=0x20; //選擇定時器1,工作方式2
TL1=0xFD;
TH1=0xFD; //9600波特率
SCON=0x50; //工作方式1:八位異步通信,允許接收
PCON=0x00; //SMOD置0
IE=0x90; //打開總中斷EA和串行口中斷ES
TR1=1; //開啟啟動定時器1
然后調(diào)用串口中斷子程序,對GPS信息進行提取,把所需要的信息進行采集[11],對時間和日期進行修正,再發(fā)送到顯示12864液晶顯示屏進行顯示.由于單片機沒有停機指令,所以可以設置系統(tǒng)程序不斷地循環(huán)執(zhí)行數(shù)據(jù)信息顯示.其軟件的主要編程流程圖如圖5所示.

圖5 總體流程圖
5實驗測試及結論
5.1定位精度測試與誤差分析
采用u-canter軟件為測試工具,對通過GPS模塊所采集到的數(shù)據(jù)進行測試,檢測經(jīng)過差分GPS(DGPS)技術后的定位精度是否到達預期的改善效果.圖6所示為采集到的觀測點的三維坐標以及偏離誤差.

圖6 觀測點的采集數(shù)據(jù)
三維觀測點的數(shù)據(jù)采集到后就可以得到定位精度,定位精度由PDOP(位置精度強弱度)表示,而PDOP為緯度、經(jīng)度和高程等誤差平方和的開根號值,即PDOP的平方等于水平精度因子(HDOP)的平方加上垂直精度因子(VDOP)的平方.采集到的數(shù)據(jù)如圖7所示.

圖7 定位精度的采集數(shù)據(jù)
由圖7所示的數(shù)據(jù)可以看出,經(jīng)過采集2604個數(shù)據(jù)后,定位精度的平均值為2.3,所以經(jīng)過差分GPS技術后的定位精度是有很大改善的.但是從數(shù)據(jù)中同樣可以看出還是存在著一定的誤差,這是由于存在著軌道誤差、時鐘誤差、SA影響、大氣影響、多徑效應以及其他誤差等原因,因此為了更進一步地提高定位精度,還需要對這些誤差進行處理與改善.
5.2實驗測試
將實物連接好后進行測試,測試的實時結果如圖8、9所示.

圖8 日期、時間及位置的實時結果

圖9 速度、里程、高度及海拔的實時結果
由圖8可以看到此系統(tǒng)采集到的數(shù)據(jù)包含有當天的年月日以及實時的北京時間信息,并且時間信息精確到秒,可以具體了解到當前精確的時間信息.此外還有具體到秒的經(jīng)緯度信息,可以明確自己的地理位置,不至于迷失方向,同時也為使用者的安全多了一份保障.由圖9可以看到使用者當前的速度、里程、高度以及海拔信息并且實時數(shù)據(jù)都精確到0.01位.相對于傳統(tǒng)的儀表盤,使用者可以更為直觀地觀測到實時的速度及所行使的里程,并且還增加了當前所處位置的高度信息以及海拔信息.高度與海拔信息的實時變換也可以時刻提醒當前所處位置與海拔是否過高而可能導致危險,也能在不經(jīng)意間給人們一種警示作用.從圖8、9 所顯示的數(shù)據(jù)中,可以看出精確度達到了所預期的標準,所以此簡易GPS系統(tǒng)能提供比較精確的定位信息.
5.3實驗結論
介紹的基于單片機的GPS定位顯示系統(tǒng)具有硬件電路簡單、成本低、性能穩(wěn)定等特點,還可以從GPS模塊中獲取精確的時間、定位信息、實時速度以及里程信息.本系統(tǒng)經(jīng)過調(diào)試,能夠?qū)崟r獲得GPS模塊輸出的時間、日期、經(jīng)緯度、速度、里程等信息,完成了設計所需要的功能.
參考文獻:
[1]Liu J Y.GPS satellite navigation theory and method [M].Beijing:Science Press,2003.
[2]Bai X,Xu L J,Liu G H,et al.A system design for gathering GPS position information based on micro computer system [J].Microcomputer Information,2008,24(22):228-229.
[3]Yuan X T.Research on vehicle GPS elevation survey based on difference global positioning system technology [J].Mine Surveying,2011(2):57-59.
[4]Zhang Q M.Design of a GPS receiver based on ARM [J].Electronics World,2010(12):31-33.
[5]Zhang T.Design on serial communication between C8051F020 microcontroller and GPS received board [J].Computer & Digital Engineering,2011,39(8):189-191.
[6]Xu A J.Principles and applications of single chip computer [M].Beijing:Machinery Industry Press,2010.
[7]Li B.Design of global positioning system based on MSP430 [J].Manufacturing Automation,2010,32(6):61-63.
[8]Liu Y M,Zhang Y H.Design and implementation of GPS information acquisition and display system based on FPGA [J].Journal of Tangshan College,2011,24(6):17-20.
[9]Mou Q.Microcomputer principle and interface technology [M].Beijing:Tsinghua University Press,2013.
[10]Tan H Q.The C Programming Language [M].Beijing:Higher Education Press,2006.
[11]Gong J W.Visual C++/Turbo C Serial Ports′ Communication Program Practice [M].Beijing:Publishing House of Electronics Industry,2004.
(責任編輯:包震宇)
Design about position and display of GPS based on singlechip
WU Dongdong, ZHU Sulei
(College of Information,Mechanical and Electrical Engineering,Shanghai Normal University,Shanghai 200234,China)
Abstract:GPS is used in ships,vehicles,aircraft and other moving objects.GPS also has the important application in vehicle monitoring system.However,with the expansion of the specialized functions of GPS,its high cost makes so many ordinary consumers unbearable.This paper proposes a simple design of GPS based on singlechip.The design Improves the basic utility functions of system and adds the speed and mileage measurement.GPS module uses the differential technology to improve the positioning accuracy.Therefore,the navigation device is compact,easy to carry and of high precision positioning.Through getting the data of 3D coordinates from the observation point and the factor of position accuracy,the average of which is less than five,indicating that the position accuracy can be improved by differential technology to achieve the desired range.At last,the feasibility of this design is verified through the current data tested in the outdoors.
Key words:GPS module; singlechip; serial communications
中圖分類號:TN 967.1
文獻標志碼:A
文章編號:1000-5137(2016)01-0021-07
通信作者:朱蘇磊,中國上海市徐匯區(qū)桂林路100號,上海師范大學信息與機電工程學院,郵編:200234,E-mail:suleizhu@163.com
基金項目:上海師范大學校級科研項目(SK201410)
收稿日期:2015-01-07