當我使用arduino GPS模塊時,通常需要花費幾分鐘才能開始發送數據。而且似乎所有GPS模塊都是這種情況,因為它們需要一段時間來“收聽”衛星。但是,每當我使用手機的內置GPS時,它都能在幾秒鐘內找到其位置。為什麼呢?
當我使用arduino GPS模塊時,通常需要花費幾分鐘才能開始發送數據。而且似乎所有GPS模塊都是這種情況,因為它們需要一段時間來“收聽”衛星。但是,每當我使用手機的內置GPS時,它都能在幾秒鐘內找到其位置。為什麼呢?
有幾件事會影響首次修復時間(TTFX)。
獲取曆書和星曆表。從技術上講,這兩件事彼此有點不同,但是出於我們的目的,我們將它們視為相同。它們是衛星的位置,您需要先知道它們的位置,才能確定自己的位置。每顆衛星大約每12分鐘發送一次全部衛星。因此,從單通道接收器和良好信號的完全冷啟動開始,TTFX至少需要12分鐘。您可以通過以下方式加快速度:
標識衛星。您需要至少聽三顆衛星,最好聽更多,以獲得更好的解決方案,但是每個接收器(稱為相關器)一次只能調諧到一個。如果您大致了解自己的位置,現在的時間,並且已經有了年曆,那麼您可以猜測可以看到哪些衛星。通過識別wifi或藍牙信號,知道他們正在使用哪個手機信號塔以及其他來源,電話通常可以大致知道它們的位置。它們還定期獲得非常準確的時間更新,因此通常可以直接獲得正確的衛星。手機和較大的模塊都可以記住上一次使用的時間和位置,並從中使用。
相關器數。由於GPS信號的信噪比非常低,因此您需要特殊的硬件來接收它們。一些接收器只有一個,並且需要圍繞衛星旋轉。其他人擁有更多,並且可以立即收聽更多內容。因此,即使您已經有了曆書/星曆表並且大致知道您的位置,那麼更多的相關器仍將幫助您更快地進行修復。您可能會認為更多的總會更好,但是更多的確會增加成本和功耗。某些電話和模塊具有更多的功能。
信號和天線。如果您對它們有良好的信噪比,則相關器將更快地完成它們的工作。非常差的信號可能根本不起作用。良好的天線設計,放大器,天空視野和良好的PCB佈局可以使一切變得不同。某些模塊開箱即可正常工作,插入天線後效果會更好。
可用衛星數。實際上,那裡有兩個大型衛星群,即GPS(由美國運營)和GLONASS(由俄羅斯運營)。還有更多在建項目:伽利略(EU)和北斗2號(中國),還有一些在當地覆蓋的國家,例如印度的NAVIC或北斗1號。可以使用來自多個星座的衛星的接收器有更多的衛星可供選擇,並且將獲得更快,更準確的定位。
相關器的質量。新的硬件設計優於舊的硬件設計,並且能夠更好地在嘈雜的信號中識別GPS消息的片段。手機可以採取的另一種技巧是捕獲信號片段,然後將其通過互聯網通過具有很好的軟件相關器的服務器傳遞給服務器,並完成曆書/星曆表的檢查。這就是所謂的MSA輔助GPS。
某些電話(甚至是幾個模塊)可能還會使用一些偷偷摸摸的技巧來避免或隱藏較長的TTFX。由於它們一直處於運行狀態,因此他們可能會短暫打開GPS而不通知用戶,以使位置和星曆大致保持最新狀態。其他人可能會在仍在等待真正的修復時顯示最近的位置-在大多數情況下,TTFX看起來不錯,但如果發現位置非常錯誤,則看起來很糟糕。 ol>
以上第1點是最大的不同,通常是基本模塊,更高級的模塊和電話之間的關鍵不同。其他通常不會產生太大的變化,但實際上可能會變得非常複雜。如果您想了解更多信息,則可以搜索“ GPS首次修復時間”。
手機操作系統通過手機網絡通過Internet下載GPS年曆數據(衛星星曆和狀態信息),並將其加載到GPS模塊中的速度比直接從GPS衛星下載數據要快得多。50 bps(是的,就是每秒50位,GPS是較老的技術 strike>進行了優化,可在非常低的SNR下運行),大大縮短了首次修復的時間。這稱為輔助GPS。它還可能具有來自蜂窩調製解調器的非常準確的初始時間參考(蜂窩塔通常通過GPS與時間同步)以及來自蜂窩調製解調器的粗略位置估計。所有這些結合極大地減少了接收機必須執行的搜索量-它知道它應該能夠看到哪些衛星,因此它只查找那些衛星,而無需等待衛星進行發送整個消息。
其他答案已經解釋了“如何”和“為什麼”,所以剩下的就是“什麼”:它稱為 A-GPS (有時是輔助GPS也稱為加速或增強GPS)。
換句話說:手機的GPS比“ GPS的GPS”工作更快的原因是,手機不使用“ GPS” ,而是使用aGPS。
部分答案是手機GPS不僅僅是GPS。小區還使用其他信息進行地理位置定位,例如手機塔的三角剖分和wifi網絡的可見性。例如,非蜂窩版本的iPad Air沒有實際的GPS,但仍可以使用這些技術知道您在建築區域中的位置。
只想在較舊的接收器等待數據時,詳細說明發生的情況。換句話說,為什麼該曆書(和記住的位置)如此有用?
GPS信號非常弱。在給定距離的情況下,信號到達地面時會遠低於本底噪聲。如果您只是以正確的頻率觀看示波器掃描,就永遠不會直接檢測到衛星。
接收器獲取信息的方式是將輸入信號與特定模式進行比較(通過FFT相關)。如果使用正確的模式,則相關性會對齊,並且可以看到數據。
對於一個簡單的老式接收器,要達到這一點,需要設備的相關器做兩件事:來自衛星的消息的頻率和消息的相位(排列碼型)。如果其中任何一個都不正確,則相關不成功並且什麼也檢測不到。衛星的運動意味著接收到的信號會受到較大的多普勒頻移。
有了一個曆書,並對當前位置和時間有了一個很好的了解,接收機就可以估算出衛星和接收機的相對運動,從而消除了大部分的多普勒頻移並在某種程度上接近頻率。這意味著相關器通常只需為信號碼型嘗試不同的相位即可得出結果。相空間搜索可以在幾秒鐘內完成。
如果年曆丟失,或者沒有當前位置和時間的估計,則係統必須嘗試不同的相位和不同的頻率以從每顆衛星獲取數據。現在必須在兩個不同的維度上進行搜索,即使是多通道系統,也可能需要花費幾分鐘才能通過蠻力“發現” 3顆衛星。
即使沒有A-GPS,現代芯片組也可以利用附加信號和大量並行比較器來加快搜索速度。我懷疑您在Arduino防護板上獲得的芯片組可能較舊/便宜,並且不會使用這些較新的功能。
在美國, FCC要求蜂窩電話運營商在撥打緊急服務時能夠在2012年9月11日首次撥打電話後的6分鐘內向300米以內識別呼叫者的位置。
在過去的幾年中逐步採用了這種方法,並且在以後的幾年中,對位置報告的距離和時間的要求都得到了嚴格的要求。
移動電話公司不能保證在僅一兩個移動電話塔與移動電話接觸的偏遠地區,或者在城市環境中反射和建築物密度阻止了位置的移動環境,即使電話有多個發射塔也無法保證接收。 GPS芯片無法在所需的時間範圍內以足夠低的功率提供此功能,以至於手機仍將具有商業可行性(在引入此要求時。芯片組現在具有更高的功率效率和更快的功耗,部分原因在於需求每個電話都包含部分或全部GPS芯片組)。此外,相對於其他手機組件,GPS芯片組非常昂貴。
因此,他們創建了一些不同的競爭系統,它們都屬於輔助GPS的綽號“ AGPS”。
在這些各種AGPS系統後面運行的技術有時會有所不同。
最便宜的蜂窩式AGPS系統記錄幾毫秒的GPS RF信號,然後將其發送到AGPS服務器,然後知道電話的大致位置,就可以使用該GPS RF代碼段來確定更準確的位置。如果沒有良好的蜂窩連接,這些電話將無法獲取GPS坐標。
有些具有完整的GPS芯片組,但允許手機向它們提供年曆和星曆表-這兩條信息使芯片組可以在幾秒鐘內得到修復-之後,它會使用其常規方法生成位置結果。如果有時間,這些電話可以獲得與網絡無關的位置。
大多數GPS芯片組都允許您將星曆和曆書信息加載到其中,因此,如果您的arduino設備具有互聯網連接並且可以訪問AGPS服務器,則可以類似的方式加快GPS修復速度。但是,對於大多數項目,只需在GPS接收器的正確引腳上添加鋰鈕扣電池,就可以保持最新的曆書和星曆表更新,並且由於在短時間內變化很小,因此大大加快了首次定位的速度,因為只要該設備尚未移動數千英里,並且每隔幾天就會通電。