深入理解GPS
第9章 深入理解GPS
本章所涉及的源代碼文件名及位置
·LocationActivity.java development/ samples/ training/ location-
aware/ src/ com/ example/ android/ location/ LocationActivity.java
·LocationManagerService.java
framework/ base/ services/ java/ com/ android/ server/ LocationManagerService.java
·LocationProviderProxy.java
framework/ base/ services/ java/ com/ android/ server/ location/ LocationProviderProxy.java
·GpsLocationProvider.java
framework/ base/ services/ java/ com/ android/ server/ location/ GpsLocationProvider.java
·com_android_server_location_GpsLocationProvider.cpp
framework/ base/ services/ jni/ com_android_server_location_GpsLocationProvider.cpp
·gps.h hardware/ libhardware/ include/ hardware/ gps.h
·LocationSettings.java
packages/ apps/ Settings/ src/ com/ android/ settings/ LocationSettings.java
9.1 概述
GPS(Global Positioning System,全球定位系統)源自美國軍方的一個項目,其主
要作用是為陸海空三大領域提供實時、全天候和全球性的導航服務。和GPS相對應的還有一
個詞,GNSS(Global Navigation Satellite System,全球導航衛星系統)。GPS是
GNSS的一種具體實現形式。目前,世界上的GNSS除了美國的GPS外,還有歐盟的
GALILEO、俄羅斯的GLONASS以及中國的北斗導航系統。
近幾年來,隨著新一代移動智能平臺的普及,支持GPS及其他GNSS系統幾乎是當下所
有智能手機的標準功能,而在GPS或其他能提供位置信息的服務之上,人們更是構建了一個
市場規模達數十億美金的LBS(Location Based Service,基于位置的服務 ① )。
隨著位置信息獲取技術的多樣化,Android平臺在這些技術之上抽象出了一套名為
Location Manager(位置管理)的軟件架構。當然,作為該框架中最重要的位置提供服務
模塊,GPS功能由Android系統直接提供。
和本書其他章節類似,本章也會從兩個方面來介紹Android平臺中LM相關的功能。
·首先介紹和GPS相關的一些基礎知識。從原理上看,GPS與GLONASS或北斗等其
他衛星導航系統類似,所以本章將僅圍繞GPS開展講解。而讀者在掌握GPS知識的基礎
上,能輕松將它們運用到其他GNSS系統中。
·在了解GPS相關原理的基礎上,介紹Android平臺中位置管理的軟件架構及代碼實
現。
提示 希望讀者在本章基礎上深入鉆研GPS相關知識并能和其他讀者分享自己的成果。
① 根據參考資料[1],LBS源于幾起悲劇事件。
9.2 GPS基礎知識
與GPS相關的知識非常多,市面上也有很多專業的書籍。不過,對于本書的讀者來說,
筆者將挑選并介紹一些比較實用的內容。筆者將這些知識歸納為如下三個部分。
·衛星導航基本原理:主要介紹衛星導航的一些基礎知識。
·GPS工作原理:介紹GPS的工作原理和相關的數據格式。
·OMA-SUPL協議:介紹OMA-SUPL方面的知識。
注意 如何選擇合適的知識點向讀者介紹是本書編寫過程中一項非常重要及困難的工
作。以GPS為例,其專業書籍涉及較多的數學計算和公式推導。顯然,這些內容對于當今已
成熟并高度集成化的GPS模塊來說太過基礎。筆者的經驗是,對于一門陌生的技術和專業,
初學者首先一定要掌握其基本原理和相關的概念。這些基本原理和概念將是這門技術或專業
的主要框架和脈絡。只有在掌握專業知識框架的基礎上,才能開展更進一步的學習和研究。
從這個角度出發,本章將綜合下文實際代碼分析的需求,集中介紹相關的GPS原理和概念。
9.2.1 衛星導航基本原理
本節介紹測距、參考坐標系、時間系統、衛星軌道四個方面的基礎知識。
1.測距原理 [2]
GPS(包括其他的GNSS系統)使用的測距原理非常簡單,它的工作過程如圖9-1所
示。
圖9-1 衛星測距原理
如圖9-1所示,衛星和地面接收器各自有一個時鐘。假設衛星和接收器的時鐘能完美同
步(注意這個假設,以后我們還會講到它)。在0ms時刻,衛星向接收器發送了一串信號。
在67.3ms時,接收器收到了該信號。衛星離接收器的距離就是信號傳播速度乘以傳播時
間。
用公式一來表示圖9-1的衛星測距原理。
[公式一]
D=Δτc
該公式中,c為光速,Δt為信號傳輸時間,D為距離。
有了公式一,我們可以計算接收器到任意衛星的距離。不過,距離(Range)和位置
(Location)顯然是兩個不同的概念。如何根據距離得到位置信息呢?
原來,位置需要放在某個坐標系中來考察,下一節將專門討論坐標系。假設現在已經有
一個坐標系,圖9-2就能回答剛才提出的問題。
和圖9-1比起來,圖9-2有如下特點。
·衛星和接收器的位置都置于一個統一的二維坐標系中來考察。
·接收器離兩個衛星的距離都由公式一計算得到,分別是D 1 和D 2 。
·如果以衛星為圓心,以接收器到衛星的距離為半徑,可以得到圖9-2中的兩個圓。這
兩個圓的相交點到衛星1的距離為D 1 ,到衛星2的距離為D 2 。也就是說,這兩個點就是接收
器的可能位置。
·如果接收器的Y坐標值不能高于衛星的Y坐標值,接收器的實際位置只能是圖9-2中的
(X p ,Y p )。
圖9-2 二維坐標系中接收器位置計算示意圖
掌握了二維坐標系中接收器的位置計算方法,只要再增加一顆衛星,就很容易推導出接
收器在三維坐標系中的位置了。
從理想情況來說,定位(Positioning)計算就這么簡單,但現實情況卻相當復雜。例
如,在上述的討論中還有兩個重要的潛在問題沒有解決。
·如何選擇坐標系?
·出于成本、便攜性等各方面的考慮,接收器的時鐘精度遠不如衛星的時鐘精度,所以
在計算信號傳輸時間時會造成較大的偏差。由于信號傳播速度是光速,所以哪怕這個時間偏
差為0.1ms,距離偏差都會達到30km。
這兩個問題如何解決的呢?下兩節將分別介紹坐標系和時間系統。時間偏差的問題則通
過引入第四顆GPS衛星參與定位計算來解決(詳情見9.2.2節)。
2.坐標系
(1)ECI/ ECEF/ W GS-84 [2]
根據上一節的內容可知,坐標系對于位置計算非常重要。坐標系有很多個,甚至不同的
國家都可能建立更加符合本國實際情況的坐標系。但在GPS中,相關的坐標系主要有兩個。
·地心慣性坐標系(Earth Centered Inertial,ECI):用于描述GPS衛星的位置信
息。在這種坐標系中,原點為地球的質心,衛星圍繞質心運動,并遵守牛頓運動定律。
·地心地球固連坐標系(Earth Centered,Earth Fixed,ECEF):用于描述地面接
收器的位置信息。ECEF最大的特點是它會隨著地球而旋轉。
提示 在GPS的定位計算過程中,需要先把衛星在ECI坐標系的位置轉換成它在ECEF
坐標系的位置。
圖9-3展示了ECI和ECEF坐標系。
圖9-3 ECI和ECEF坐標系
ECI坐標系中,XY平面與地球赤道面重合。X軸指向天球(Celestial Sphere,一種假
想的無限大的球,它和地球同心。所以ECI坐標系不受地球旋轉的影響)的某個位置。Z軸
與XY平面垂直并指向北極。ECI坐標系屬于笛卡爾坐標系,故衛星的位置由(X,Y,Z)
表示。
ECEF坐標系的原點為地球中心(這就是Earth Centered一詞的緣由)。XY平面也與
地球赤道面重合。不過其X軸指向0經度方向,Y軸指向東經90度的方向。所以ECEF坐標系
實際上是隨著地球一起旋轉的。ECEF坐標系也屬于笛卡爾坐標系,故接收器的位置也由
(X,Y,Z)表示。
ECEF是一個笛卡爾坐標系,而我們實際使用的位置信息卻是由經緯度來表示的,如何
將笛卡爾坐標系中的X,Y,Z值轉換成經緯度呢?
該轉換工作涉及另外一個重要的概念,即標準地球模型。GPS參考的地球模型為W GS-
84(W orld Geodetic System 1984,由美國國防部建立)。W GS-84模型如圖9-4所示。
圖9-4 W GS-84模型
圖9-4所示的標準大地模型中,地球被看做一個橢球體。該橢球體的半長軸(Semi
Major Axis,實際長度為6378137.00m)為a,半短軸(Semi Minor Axis,實際長度為
6356752.31m)為b。根據a和b的值,該橢球體的偏心率 ① (Eccentricity)可由以下公式
計算得到。
圖中的Equatorial Plane為赤道面。赤道面和橢球體相交得到的橢圓為赤道
(Equator),它就是緯度為0的地方。圖中的Greenwhich Meridian為格林尼治子午線,
即經度為0的地方。橢球體的表面叫橢球面,即圖中的Ellipsoid。
圖中的P1點的位置采用了笛卡爾坐標系,其值為(x,y,z),而P點的位置則由橢球
坐標系確定,其值為(φ,λ,h)。注意,此處的h是P點與橢球面的高度,即GPS概念中
的高度。
根據相關的公式 [2] ,橢球坐標系和笛卡爾坐標系能相互轉化。
(2)高度計算
根據上節關于橢球坐標系中h坐標值的解釋,GPS中的高度是指它和橢球面
(Ellipsoid)的距離。但值得特別注意的是,這個高度和日常生活中所說的海拔高度不是
同一個概念。日常生活中所說的海拔高度不是基于Ellipsoid,而是基于大地水準面
(Geoid)的。
大地水準面是一個重力等位面。簡單點說,靜止海水在大地水準面上不會因為重力原因
而流動。大地水準面和地球的質量分布等有重要關系。相比橢球面而言,大地水準面的數學
模型非常復雜,很難用數學公式來描述。
大地水準面和橢球面之間的區別影響了我們對高度的計算。圖9-5所示為GPS高度與海
拔高度的區別 [3] 。
圖9-5 高度計算的區別
圖9-5中,地球真實的表面由大海和高山組成,這個表面叫地形(Topography)。
GPS測量的高度(也叫大地高,Ellipsoidal Height)為h,而日常所說的海拔高度
(也叫正高,Orthometric Height)為H。h和H之間的差(也叫大地水準面高,Geoid
Height)為N。
注意 對于高精度的測繪需求,往往需要把h值轉換成H,不過一般情況下二者的差別
不大。
了解了GPS的坐標系統,馬上來看與GPS相關的另外一個非常重要的系統。
3.時間系統 ②
和GPS相關的時間系統有四種,分別是國際原子時(International Atomic
Time,IAT,注意,其對應的法語名為Temps Atomique International,所以其常用縮
寫也為TAI。筆者此處采用英文縮寫IAT)、協調世界時間(Coordinated Universal
Time,UTC)、GPS時間(GPS Time,GPST)和本地時間(Local Time)。四種時間
系統的特點如下。
(1)IAT
1967年,人們利用銫原子振蕩周期極為規律的特性研制出了高精度的原子鐘,并將銫
原子能級躍遷輻射9192631770周所經歷的時間定為1s。IAT起始時間從1958年1月1日0時0
分0秒開始,其精度能達到每日數納秒。細心的讀者可能會問到,在原子鐘出現之前,人們
如何定義秒呢?原來,在原子鐘出現之前,人們使用基于地球自轉的天文測量得到的世界時
(Universal Time,UT)作為時間計量單位。和原子時比起來,UT會由于地球自轉的不穩
定(由地球物質分布不均勻和其他星球的攝動力等引起的)而帶來時間上的差異,該差異大
概在三年內會增加到1s左右。
(2)UTC
也叫世界統一時間、世界標準時間。TAI的精度為每日數納秒,而UT的精度為每日數
毫秒。對于這種情況,“協調世界時”于1972年面世。UTC以原子秒長為基礎,在時刻上
盡量接近UT。UT和UTC之間的間隔不能超過0.9s,所以在有需要的情況下會在UTC內加上
正或負閏秒(Leap second)。因此,協調世界時與國際原子時之間會出現若干整數秒的差
別,而位于巴黎的國際地球自轉事務中央局將決定何時加入閏秒以減少UTC和IAT之間的差
別。UTC時間系統用途很廣。目前幾乎所有國家發播的時號都以UTC為基準。另外,互聯
網使用的網絡時間協議(Network Time Protocol,NTP)獲取的時間就是UTC。UTC的
時間格式為:年(y)月(m)日(d)時(h)分(min)秒(s)。
(3)GPST
GPST也使用IAT中的原子秒為單位,其時間原點定于1980年1月6日UTC 0時。GPST
比IAT慢19s,而它和UTC時間的差異為整數秒,并且這個差值會隨著時間的增加而積累
(2009年,GPST和UTC相差15s)。GPST時間格式由從GPST原點開始的周數和周內秒
數組成。例如2009年7月9日13點08分36秒(轉成時分秒格式的GPST)用GPST表示就是
第1539周392916秒。參考資料[5]介紹了GPST和UTC的轉換方法。
(4)本地時間 [6]
本地時間基于UTC。它將全球分為24個時區,每一時區之中心為相隔15度經線,每一
國家都處于一個或以上的時區內。第一時區的中心位于格林尼治子午線(簡稱子午線)。該
時區以西的地方慢一小時或以上,而東面則較其快。本地時間表達方法遵循ISO 8601,其
格式為“年月日T時分秒Z(或者時區標識)”。例如,20131030T093000Z,表示2013年
10月30日09點30分0秒,Z表示標準時間。北京時間,就是20131030T093000+08,其
中“+08”表示東八區。
提示 以上是本書和時間系統相關的知識。這部分內容原本非常復雜,還涉及較多天文
方面的概念。在此,建議讀者先掌握本節所述內容。
4.衛星軌道相關知識
本節將介紹衛星軌道等方面的知識。首先是衛星運行所遵循的開普勒三定律。
(1)開普勒三定律
衛星圍繞地球運行時將遵循開普勒三定律。圖9-6所示為開普勒第一和第二定律的示意
圖。
圖9-6 開普勒第一和第二定律
左圖所示為開普勒第一定律。圖中的Perigee為近地點,Apogee為遠地點。根據開普
勒第一定律 ③ ,衛星將圍繞地球做橢圓運動,地球為該橢圓兩個焦點中的一個。
右圖所示為開普勒第二定律。根據開普勒第二定律,在相同的時間內,衛星運行時所掃
過的區域的面積相同。即如果圖中的時間段Tv_1等于時間段Tv_2,面積A_1等于面積
A_2。
根據開普勒第三定律可知,圍繞地球橢圓軌道運行的衛星,其橢圓軌道半長軸的立方與
運行周期的平方之比為常量。第三定律可用公式二表達。
[公式二]
開普勒第三定律中,a為半長軸,T為衛星運行周期,k為常量,取值為 。其中,M為
地球的質量,G為萬有引力常數。
開普勒三定律主要用來計算衛星運行位置等相關參數,例如第三定律常用來計算衛星的
軌道高度。這部分內容見參考資料[7]。
(2)衛星軌道及星歷
衛星軌道雖然涉及很多空間科學方面的知識,但對于本書來說,我們只需掌握衛星運行
軌道的幾個重要參數和概念即可。圖9-7展示了衛星運行軌道及相關參數。
圖9-7 衛星運行軌道
左圖中,Equatorial Plane為赤道平面,衛星軌道本身是一個橢圓軌道,它和赤道平
面有一個夾角。這個夾角叫軌道傾角(圖中的Inclination)。右圖中,假設觀察者站在坐
標原點觀察左上角的衛星,則h代表仰角(Elevation angle),z代表天頂角(Zenith
angle),而正北方向離衛星投影點的順時針角度A為方位角(Azimuth angle)。
提示 上述參數是衛星運行軌道中幾個非常重要的參數,不過,讀者現在只需要記住它
們的定義即可。
根據軌道傾角、運行周期等參數,人們將衛星軌道分為如圖9-8所示的幾大類。
圖9-8 衛星軌道分類
1)地球同步軌道(Geosynchronous Earth Orbit,GEO):特點是其軌道高度距離
地面大約35786km,衛星運行周期等于地球自轉周期(23小時56分4秒),衛星運行方向和
地球自轉方向一致。最后,軌道是圓形(即偏心率為0)。根據軌道傾角的不同,地球同步
軌道還可細分為靜止同步軌道、傾斜同步軌道和極地同步軌道。這三者的特點如下文所述。
·靜止同步軌道(Geostationary Satellite Orbit,GSO):如果軌道面與地球赤道
面重合(即軌道傾角為0),則這種軌道叫靜止同步軌道。該軌道的特點是:從地面觀察者
看到該軌道上的衛星始終位于某一位置,似乎保持靜止不動。利用該軌道上的3顆衛星就可
以實現除南北極很小一部分地區外的全球通信。
·傾斜同步軌道(Inclined Geostationary Orbit,IGSO):如果軌道傾角大于0并
小于90度,這種軌道叫傾斜同步軌道。
·極地同步軌道(Polar Earth Orbit,PEO):如果軌道傾角等于90度,稱為極地同
步軌道。運行在這種軌道上的衛星能到達南北極區上空,所以那些需要在全球范圍內進行觀
測和應用的氣象衛星等多采用這種軌道。
2)中地球軌道(Medium Earth Orbit,MEO):也叫中圓軌道,距離地面
10000km,衛星運轉周期在2至12小時之間。運行在該軌道上的衛星大部分是導航衛星,例
如GPS導航衛星有一部分運行在該軌道上。
3)低地球軌道(Low Earth Orbit,LEO):也叫近地軌道或低地軌道,距離地面大
約1000km。由于近地軌道離地面較近,絕大多數對地觀測衛星、測地衛星、空間站都采用
近地軌道。
4)高橢圓軌道:是一種具有較低近地點和極高遠地點的橢圓軌道,其遠地點高度大于
靜止衛星的高度(36000km)。根據開普勒定律,衛星在遠地點附近區域的運行速度較
慢,因此這種極度拉長的軌道的特點是衛星到達和離開遠地點的過程很長,而經過近地點的
過程極短。這使得衛星對遠地點下方的地面區域的覆蓋時間可以超過12小時。具有大傾斜角
度的高橢圓軌道衛星可以覆蓋地球的極地地區,所以對于像俄羅斯這樣的高緯度國家而言,
高橢圓軌道比同步軌道更有實際作用。
以上是衛星運行軌道的幾個重要參數 ④ ,除此之外,還有兩個重要概念需要讀者了解。
·星歷表(Ephemeris):本來用來記錄天體特定時刻的位置的。而在GNSS中,星歷
表則記錄了衛星的一些運行參數,它使得我們通過星歷表就可以計算出任意時刻的導航衛星
的位置和速度。下文我們將見到在GPS中,星歷表包含了非常詳細的衛星軌道和位置信息,
所以其數據量較大,傳輸時間較長。為了克服這個問題,人們設計了星歷表的簡化集,即歷
書。
·歷書(Almanac):包含衛星的位置等相關信息,不過它是星歷數據的簡化集,其精
度較低。所以,歷書數據量較小,傳輸時間較短。
提示 星歷和歷書對于GPS定位計算來說至關重要。本章后文將介紹二者所包含的參數
信息。
至此,本書所涉及的與衛星導航原理相關的知識介紹就告一段落,這些內容對于講解本
章知識點來說已經足夠。但本節所述內容僅僅是衛星導航全部知識的一小部分,有志從事衛
星導航工作的讀者還需要進一步花費時間來學習相關的專業知識。
① 偏心率也叫扁率,對應的英文名為flattening。
② 時間系統相關的知識非常復雜,參考資料[4]介紹得最為簡練。
③ 開普勒三大定律本來描述的是行星在宇宙空間繞太陽公轉所遵循的定律。不過導航衛星
圍繞地球運行也遵循此定律。所以筆者直接以導航衛星和地球為對象來介紹開普勒三大定
律。
④ 衛星運行軌道的分類總結由筆者提煉并整理從網上搜索到的相關內容而來。
9.2.2 GPS系統組成及原理
本節將主要介紹和GPS相關的基礎知識,先來看GPS系統的組成 [8] 。如圖9-9所示。
圖9-9 GPS系統組成
由圖9-9可知,GPS包含如下三個段。
·空間段(Space Segment,SS):空間段由GPS衛星組成。
·控制段(Control Segment,CS):控制段用來控制和監視GPS的運行。控制段包
括一個主控站(Master Control Station,位于美國科羅拉多州)、數個監控站
(Monitoring Station)、地面控制站(Ground Control Station)以及地面天線
(Ground Antenna)。圖9-10為目前GPS系統的CS站點分布圖。
·用戶段(User Segment,US):用戶段主要是GPS的使用者。GPS中,用戶被分
為民用用戶(Civilian Users)和軍用用戶(Military Users)兩大類。其中,軍用用戶需
要得到相關部門的授權才能獲取更高精度的GPS數據。
GPS這三個段將借助GPS規定的通信頻段以及數據封裝格式進行通信。其中,空間段
和控制段能雙向通信,而用戶段只能從空間段獲取數據。
圖9-10 CS站點分布圖
說明 GPS提供兩種類型的服務,分別是標準定位服務(Standard Positioning
Service,SPS)和精密定位服務(Precision Positioning Service,PPS)。其中,SPS
主要面向全世界的民用用戶,而PPS主要面向美國及其盟國的軍事部門以及民用的特許用
戶。
下面介紹GPS空間段以及GPS通信及數據包方面的知識。
1.GPS空間段
GPS空間段的建設歷經了30多年的時間。表9-1展示了這期間GPS衛星更新換代的幾次
重要事件。
參考資料[10]總結了GPS空間段建造歷史以及GPS衛星發射計劃。
目前為止,GPS空間段由32顆GPS衛星 ① (衛星的英文名為Satellite,也稱為Space
Vehicle,簡寫為SV)組成,這些衛星分布在6個軌道上,每個軌道與地球赤道面的傾角為
55度。GPS衛星軌道高度為20180千米,衛星在軌道上的運行周期大約為12小時。不過,由
于地球的自轉,人們在地面上觀測GPS衛星,在23小時56分左右會回到最初的觀測位置。
圖9-11所示為GPS衛星軌道分布圖。
由于每顆GPS衛星的信號只能覆蓋地球表面的一部分,所以GPS空間段在設計時就保
證任何時候,地球表面任何地方都能被至少4顆GPS衛星信號覆蓋。圖9-12為某時刻從地面
觀測到的GPS衛星的位置分布圖。
圖9-11 GPS衛星軌道分布
圖9-12 2001年4月14日UTC時間12點整GPS衛星分布圖 [11]
提示 為什么要確保至少4顆衛星的信號能覆蓋到地球表面任意地方呢?根據前面介紹
的測距原理可知,要計算接收器的位置即(x,y,z)坐標值就需要3顆衛星,而由于接收
器時鐘和衛星時鐘的不同步,所以還需要至少一顆衛星用來計算信號傳輸時間。綜上,GPS
定位需要至少4顆衛星參與。
在此推薦使用GpsPredict軟件獲取和展示GPS衛星軌道及相關信息。圖9-13所示為該
軟件運行時的界面。
圖9-13 GpsPredict運行界面
提示 GpsPredict的軟件下載地址為
http:/ / sourceforge.net/ projects/ gpredict/ files/ 。
2.GPS通信頻段
GPS衛星和地面監控站以及接收器使用無線電波進行通信,GPS一共使用了三個頻段
的無線電波來傳輸數據,如圖9-14 [11] 所示。
圖9-14 GPS衛星通信頻段
GPS一共使用三種頻段的無線電波,由于它們都位于無線電頻譜的L頻段,所以它們分
別被稱為L1(中心頻率1575.42MHz)、L2(中心頻率1227.60MHz)和L5(中心頻率
1176.45MHz)。
在2005年之前,GPS衛星使用L2和L1頻段的無線電波。其中,L1頻段傳輸兩種GPS信
號,一個是民用的C/ A碼(全稱是Coarse/ Acquisition Code),它代表粗捕獲碼數據。另
外一個是軍用的P(Y)碼,它代表精測數據(P代表Presice,Y代表數據是加密的)。L2
頻段僅傳輸P(Y)碼,即僅供軍用。下文還將詳細GPS信號方面的知識。
IIR(M)型號的GPS衛星在L2頻段上增加了一個名為L2C(C為Civil的意思)的GPS
信號。L2C信號可以和C/ A信號共同使用(即所謂的雙頻)以減少大氣電離層 ② 的影響從而
提高定位精度(其精度甚至能超過軍用級定位的精度,詳情見參考資料[12])。另外,L1和
L2頻段上新增了針對軍用用戶的L1M和L2M信號,它們均采用BOC(Binary Offset
Code)方法進行調制和解調,可顯著增強軍用信號的抗干擾能力。
IIF衛星能在L5上發射民用GPS信號,這類信號主要為航空安全服務,它具有更高的功
率,更大的帶寬和更穩定的服務。詳情見參考資料[13]。
在L1頻段,III型衛星將支持一種名叫L1C的新GPS信號。L1C信號可增強GPS系統和
其他GNSS系統(如中國的北斗導航系統也將廣播L1C信號)之間的交互性
(interoperability)。
圖9-15總結了各類型GPS衛星所支持的通信頻段信息。
圖9-15 GPS各類型衛星所支持的通信頻段 [14]
了解了GPS衛星通信頻段的知識后,下面讓我們把注意力放到GPS衛星通過這些頻段
所傳輸的數據上來,即和GPS信號相關的知識點。
3.GPS信號 [11]
GPS信號將借助上一節所述的GPS衛星通信頻段進行無線電傳輸,它由三部分組成,
如圖9-16所示。
圖9-16 GPS信號的組成
由圖9-16可知,GPS信號包含主要三個組成部分。
1)載波:分別是L1和L2(注意,本書不討論L5的情況,感興趣的讀者可閱讀參考資料
[14]),其中心頻率分別是1575.42MHz和1227.60MHz。
2)測距碼(Ranging Code):用來測量衛星和接收器之間距離的一種信號。測距碼
其實是一種經過精心設計的偽隨機噪聲 ③ (Pseudo-Random Noise,PRN)。
GPS有C/ A碼和P碼兩種測距碼。
·C/ A碼(粗捕獲碼),頻率為1.023MHz,周期為1ms,碼長為1023,碼元的寬度為
293.05m,測距精度為2m到3m。
·P碼(精捕獲碼),頻率為10.23MHz,是和粗捕獲碼對應的測距碼,其周期為7天,
碼長為6.187110 12 ,碼元周期0.097752微秒,相應碼元寬度為29.3m,測距精度為0.3m。
P碼供軍事應用,故可以對它進行密。加密后的P碼稱為“Y碼”。
3)導航電文(Navigation Data,也叫D碼):在定位計算時,除了測距碼外還需要
衛星的一些信息,例如星歷、時間等。這些數據封裝在GPS導航電文中,其傳輸頻率為50
比特每秒(即50Hz)。導航電文的詳情見下節。
C/ A碼僅在L1頻段上發送,而P碼同時在L1和L2頻段發送,根據前面介紹的雙頻知識,
接收器可通過接收L1和L2頻段的P碼以消除大氣電離層造成的延時影響從而進一步提高定位
精度。
注意 在數字通信中,一個數字脈沖稱為一個碼元。一個周期中碼元的個數稱為碼字的
長度,簡稱為碼長,常用n表示。
C/ A碼的碼元寬度為293.05m,這是通過以下公式得來。
其測距精度是如何計算出來的呢?接收器在工作時會生成一個C/ A碼,這個C/ A碼將和
某個衛星發送的C/ A碼進行匹配。匹配時涉及碼相位數字信號處理方面的工作,理想情況下
其最高精度能達到碼元寬度的1% ,所以C/ A碼的測距精度為293.051% (約3m)。
關于GPS信號方面的進一步知識,請讀者閱讀參考資料[15]。下面來看看GPS導航電文
的內容。
4.GPS導航電文
(1)數據格式及內容
GPS導航電文(Navigation Message)有其特定的格式,如圖9-17 [11] 所示。
圖9-17 GPS導航電文格式
如圖9-17所示,GPS導航電文的基本單位是幀(Frame,也叫Page)。一幀包含1500
比特。導航電文的傳輸速率是每秒50比特,故傳輸完整的一幀數據需30s。
每一幀中的1500比特又被平均分配,每300比特組成一個子幀(Sub-Frame),所以
一幀包含5個子幀。每一個子幀又由10個字碼(word)組成,每一個字碼包含30位數據。
子幀的第一個字碼叫TLM(Telemetry W ord,遙測碼),第二個字碼叫
HOW (Handover W ord,轉換字)。下文將詳細介紹TLM和HOW 的組成。
一個完整的GPS導航電文由25幀組成,共37500比特,故全部傳輸完它們共需12.5分
鐘。
表9-2為讀者總結了GPS導航電文25幀所包含的數據。
由表9-2可知,所有的25幀數據中,其子幀1到子幀3的內容相同。它們都用來描述信號
發射衛星的一些信息。此處特別提醒讀者,子幀1~3包含的是某顆衛星自己的GPS時間和
星歷數據。所以,對地面接收器來說,某顆衛星的數據每隔30s(每一幀傳輸的時間為
30s,而每一幀的前三個子幀都包含了該衛星最新的信息)就可以得到更新。
特別注意 一個GPS衛星所發送的導航電位包括自己的星歷數據以及其他衛星的歷書數
據。
現在來看TLM和HOW 的內容,如圖9-18 [16] 所示。
圖9-18 TLM和HOW 的構成
圖9-18中,TLM前8位(Preamble,也叫前導碼)由用于同步的二進制數10001011開
始。其第9~22位為TLM消息,供PSS用戶及控制段和空間段使用。第23位為完整性狀態標
志(Integrity Status Flag,ISF),第24位保留,最后六位是奇偶校驗碼。
HOW 前17位用于傳輸星期時間(Time of the W eek,TOW ),第18位為警告
(Alert)標志,該值為1時將提醒SPS用戶測量精度較差。第19位為反欺騙(Anti-
Spoof,A-S)標志,該值為1表示A-S功能開啟。20到22位為子幀的ID(一個幀中包含五
個子幀,子幀的ID從1開始編號)。最后幾位用于奇偶校驗。
(2)星歷和歷書
星歷和歷書的內容如表9-3所示。
㈠ 注意,表9-2中并未列出全部的星歷和歷書數據項,感興趣的讀者請參考[16]。
注意,表9-3中僅包含了星歷和歷書全部參數項的一部分。完整的星歷和歷書參數定義
見參考資料[16]的Table 20-III和Table20-VI。另外,從上表中讀者也會發現,對于同樣
的參數而言,其在歷書數據中的精度要比它在星歷數據中的精度低(即參數的位長較短)。
提示 為了避免翻譯不準帶來的誤解,表9-3中的參數含義說明直接使用了其在官方文
檔中的英文說明。參考資料[16]也有數學公式描述這些參數的作用。
5.定位計算相關知識
(1)定位計算原理 [17]
本節將介紹GPS定位計算相關的知識。在“測距原理介紹”一節中我們曾提到說要計算
三維坐標系中接收器的位置需要三顆GPS衛星,而為了解決接收器和GPS衛星時鐘的不同
步問題,則需要第四顆GPS衛星參與計算。圖9-19展示了定位計算的原理圖。
圖9-19 GPS定位計算原理
圖9-19中,接收器的位置由(X user ,Y user ,Z user )表示。
GPS衛星的位置由(X Sat_i ,Y Sat_i ,Z Sat_i )唯一確定(注意,接收器可根據衛星的星
歷等參數信息將衛星在ECI坐標系的值轉換成ECEF坐標系的值)。GPS衛星發送的GPS信
號到達接收者所用的傳輸時間由Δt i 表示。這樣,每個GPS衛星到接收器的距離就可以計算
出來。圖9-19中,該距離由R i 表示。
現在來考慮GPS衛星與接收器的時間誤差問題。借助高精度的原子時鐘以及地面控制站
的監控與修正,可以認為GPS衛星之間的時鐘是同步。這樣,GPS衛星和地面接收器的時
間誤差就可以用一個參數來表示了。
基于上述內容,得到公式三。
[公式三]
Δt measured =Δt+Δt 0
PSR=Δt measured ·c=(Δt+Δt 0 )·c
PSR=R+Δt 0 ·c
Δt 0 為接收器的時間誤差,Δt為真實的信號傳輸時間,Δt measured 為接收器的GPS信
號傳輸時間。PSR為偽距(pseudorange)。R為GPS衛星到接收器的距離。
顯然,在三維笛卡爾坐標系中,R的值可由下面的公式計算得到。
最終,我們可得到一組方程式,見公式四。
[公式四]
以圖9-19為例,上述公式的i從1~4。
如何計算上述方程組呢?一種常用的方法是通過泰勒級數將其線性化,然后再借助偏微
分方程求解。圖9-20展示了該方法的原理。
圖9-20 公式四求解原理
如圖9-20所示,一個新的位置點被引入,該位置點叫估算位置點(Estimated
Position)。GPS衛星離該位置點的距離由R Total_i 表示。
估算位置點離接收器真實的位置之間有一段距離,二者坐標的差別由公式五表達。
[公式五]
X user =X Total +Δx
Y user =Y Total +Δy
Z user =Z Total +Δz
X user 為接收器的X坐標,X Total 為估算點的X坐標,二者的差值為Δx。
經過一系列的公式替換和變量求偏導,可得到圖9-21所示的矩陣。
圖9-21 GPS定位矩陣計算公式
接收器將利用圖9-21所示的公式進行迭代計算,直到圖左邊的Δx等參數值小于期望誤
差(如0.1m)為止。然后,接收器的位置可通過公式五和根據圖9-21中得到的Δx等值計算
出來。
注意 除了計算接收器的坐標位置外,GPS還能計算出接收器的移動速度,這是基于多
普勒效應來實現的。以GPS為例,多普勒效應就是當GPS衛星與接收器之間存在相對運動
時,接收器一端收到的GPS信號的頻率和GPS衛星實際發送的信號的頻率并不相同,二者
之差稱為多普勒頻移。由于GPS衛星的速度可根據其導航電文中的信息推算出來,故接收器
根據多普勒頻移的相關公式就很容易計算出自己的移動速度了。關于GPS測速方面的知識,
可閱讀參考資料[18]。
(2)DOP介紹 [17]
上一節介紹了GPS定位計算的原理。在真實環境中,GPS定位計算中還存在某些誤
差,這些誤差的原因大體由如下幾個部分組成。
·衛星時鐘:雖然衛星時鐘的精度已經很高了,但由于光速的值很大,這就造成時間上
10ns的偏差都會造成距離上3m的誤差。
·衛星本身的軌道位置:衛星在軌道上的位置精度在5m左右。
·光速:GPS信號從太空中的衛星到地面接收器傳輸時其速度不是固定值,而是會受到
電離層和對流層的影響。
·接收器的時鐘:接收器的時鐘和衛星時鐘不同步,這也會造成相應的誤差。
·GPS信號的多路徑效應:GPS信號傳輸過程中常會因為建筑物或其他反射物發生反
射。顯然,這些反射信號的傳輸時間比沒有反射的信號的傳輸時間要長,這就給接收器測距
時造成一定的誤差。
參與定位計算的GPS衛星的空間分布也會對最終計算結果有較大影響。本節重點介紹
它。
如上,本節重點關注GPS衛星空間分布情況對定位計算的影響。在GPS系統中,因衛
星的空間分布造成的測距誤差可用DOP(Dilution Of Precision,精度衰減因子)等一組
值來描述,這一組值如下。
·GDOP(Geometric-DOP,幾何精度衰減因子):描述衛星空間分布情況對位置計
算和時間測量的影響。
·PDOP(Positional-DOP,位置精度衰減因子):描述衛星空間分布情況對位置計
算的影響。
·HDOP(Horizontal-DOP,水平精度衰減因子):描述衛星空間分布情況對水平位
置(二維空間)位置計算的影響。
·VDOP(Vertical-DOP,垂直精度衰減因子):描述衛星空間分布情況對高度計算
的影響。
·TDOP(Time-DOP,時間精度衰減因子):描述衛星空間分布情況對時間測量的影
響。
從上述各項DOP的描述可知,衛星空間分布的情況將影響定位計算的精度,這是為什
么呢?來看圖9-22的DOP原理。
圖9-22 DOP原理
左圖中,Sat 1和Sat 2這兩顆衛星相距較遠,而右圖中Sat 1和Sat 2兩顆衛星相距較
近。
計算接收器Pos的位置時,Sat 1和Sat 2的測距都會存在一定的測距誤差。每個衛星測
距所造成的誤差由圖中的圓環表示。根據9.2.1節對測距原理的介紹,Pos的位置位于兩個圓
環的重合區域之中。
很明顯,左圖中Pos所在的重合區域面積較小,而右圖中Pos所在的重合區域面積較
大。這說明左圖的測距誤差比右圖的測距誤差小。所以,左圖衛星分布區域情況對應的
DOP值較小,而右圖的DOP較大。
提示 根據DOP的取值情況,定位測量的質量可劃分為4個級別 [15] 。質量非常高:
DOP值為1~3。質量高:DOP值為4~5。質量一般:DOP值為6時。質量差:DOP值大于6
時。
關于DOP更詳細的信息,可進一步閱讀參考資料[17]。
(3)首次定位時間
首次定位時間(Time To First Fix,TTFF)是衡量GPS接收設備性能的一個重要指
標,它描述的是GPS接收器需要花費多長時間來捕獲GPS衛星信號直到計算出自己的位
置。目前,TTFF因啟動模式 [19] 不同而有所區別,這些啟動模式分別如下。
·冷啟動模式(也叫出廠模式):在這種模式下,GPS接收器沒有保存有效星歷、時間
及位置等信息,所以它需要從周圍可搜索到的GPS衛星那接收信號并獲取用于定位的數據
(星歷、歷書、時間等信息)。前面曾介紹,傳輸一個完整的GPS導航電文需要12.5分鐘。
在這種模式下,TTFF至少為12.5分鐘。
·暖啟動模式:在這種模式下,GPS接收器保存有歷書數據(不超過180天)、舊時間
信息(不超過20秒)及舊位置信息(不超過100千米范圍),但星歷數據失效(超過4小
時)。如此,在計算位置時,GPS接收機需要從GPS衛星那接收星歷數據(讀者還記得
嗎,導航電文的25個幀中第2、3子幀包含發送衛星的星歷數據,由于每一幀發送時間為30
秒,所以星歷數據每隔30秒就會更新一次)。所以,在這種模式下,TTFF至少為30秒。
·熱啟動模式:在這種模式下,GPS接收機具有有效星歷數據、時間及位置等信息,這
樣,GPS接收器就無須解碼GPS導航電文中的星歷數據,它只要利用GPS信號進行測距計
算就可以了。熱啟動模式下,TTFF速度很快,能做到10秒以內。
顯然,減少TTFF對提升用戶的使用體驗有極大的幫助。根據上述內容可知,TTFF的
瓶頸主要在星歷、歷書數據等信息的獲取上。為了解決此問題,人們設計了Assisted
GPS(輔助GPS)方法。AGPS使得GPS接收機能通過移動通信網絡(如2G/ 3G等,傳輸速
度遠超GPS衛星信號的傳輸速度)下載星歷數據等信息,從而加快首次定位時間。關于
AGPS的內容,請讀者閱讀9.2.2節。
提示 如果確實需要接收和解析GPS衛星信號,多通道接收方法可用來同時接收多個衛
星的信號從而提升TTFF。關于這一點見參考資料[20]。
6.NMEA-0183和GPX
本節將介紹和GPS相關的兩種數據文件格式,先來看NMEA-0183。
(1)NMEA-0183 [21]
NMEA-0183是美國國家海洋電子協會(National Marine Electronics
Association,NMEA)為海用電子設備制定的標準格式。GPS接收機可按照該標準定義的
格式輸出諸如定位時間、緯度、經度、高度、定位所用衛星數、DOP值等很多信息。
提示 NMEA-0183的輸出內容由ASCII字符組成。簡單點說,可以用文本軟件來查看
和修改NMEA數據。
NEMA文件的內容由一條一條的語句組成,每一條語句都有對應的類型,表9-4列舉了
其中一些常用語句的類型以及它們所包含的數據信息。
下面我們來看一個NMEA語句示例。
[NMEA語句示例]
$GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M,18.0,M,50,000018
上面這條NMEA語句中各項信息的含義如表9-5所示。
NMEA的介紹就到此為止。更詳細的信息請閱讀參考資料[21]。
(2)GPX [22]
和NMEA不同,GPX(GPS eXchange Format)將GPS數據封裝在XML文件中,所
以它遵循XML相關的語法。GPX比較簡單,通過一個例子來介紹。
[GPX示例]
2002-02-27T17:18:33Z
44.586548 2001-11-28T21:05:28Z 5066Crossing總結
- 上一篇: Ueditor word图片转存按钮灰色
- 下一篇: 股票分析软件