為解決傳統 GPS 定位慢、功耗高的痛點,AGPS 技術通過輔助數據注入提升效率。本教程以 LuatOS 開發環境為基礎,循序漸進地講解 AGPS 輔助定位的開發流程,包括 AGPS 服務器對接、數據解析、定位模塊調優等實戰環節,附帶完整代碼與調試技巧,助開發者快速上手。
一、AGPS 概述
AGPS(Assisted GPS,輔助全球衛星定位系統)通過移動網絡預先獲取衛星星歷、時間等輔助數據,可大幅縮短 GPS 首次定位時間。LuatOS 提供 AGPS 原生支持,適用于物流追蹤、車載定位等場景。
1.1 GPS、WiFi、基站、AGPS 幾種常用定位原理介紹與區別
GPS
GPS(Global Positioning System)即全球定位系統,它是由美國研究的一種定位方式,特點是:不需要 SIM 卡,不需要連接網絡,只要在戶外,基本上就能隨時隨地的準確定位。但是 GPS 啟動后搜索衛星的時間比較多,一般需要2分鐘左右(俗稱冷啟動) 冷啟動包括: 1.GPS 初次使用 2.GPS 電池耗盡 3.關機狀態下移動 1000 公里以上的距離或持續關機超過 4 小時。
原理:接收機接收 GPS 衛星廣播,通過解析可見 GPS 衛星的位置、距離等信息以及相應算法得出自己的位置信息。
優勢:定位精度高,只要能接收到四顆衛星的定位信號,就可以進行定位。 缺點:GPS 受天氣和位置的影響較大。當遇到天氣不佳的時候、或者處于高架橋/樹蔭的下面,或者在高樓的旁邊角落、地下車庫、室內或露天的下層車庫(或者簡單地說當見不到天空的時候),GPS 的定位就會受到相當大的影響,甚至無法進行定位服務。
注意:各國定位系統有:中國北斗、美國 GPS、俄羅斯 GLONASS、歐洲伽利略等,統稱衛星定位。
gps 模組定位精度:3~5 米
LBS(基站)定位
基站包括移動、聯通和電信基站。基站定位是通過移動通信的基站信號差異,通過一定的算法來計算出手機所在的位置,取決于定位地點附近所處的基站覆蓋密度,如果基站多,定位則準確,如果是山區,基站少,則定位就不那么精確;LBS 定位必須聯網,手機處于 SIM 卡注冊狀態(飛行模式下開 wifi 和拔出 SIM 卡都不行)。
原理:運營商蜂窩基站的位置信息都是固定的,通過接收一個或多個基站信號終端,再根據信號強度及基站位置進行推算自身位置
優點:方便,因為它是通過 SIM 卡接收基站信號進行定位的。理論上說,只要計算三個基站的信號差異,就可以判斷出手機所在的位置。因此,只要用戶手機處于移動通信網絡的有效范圍之內,就可以隨時進行位置定位,而不受天氣、高樓、位置等等的影響。
缺點:通過計算基站信號差異而得出的位置坐標值,很明顯地遜于 GPS 的定位精度,受環境影響較大,在郊區和農村可以將移動臺定位在 10~20 米范圍內,在城區由于高大建筑物較多,電波傳播環境不好,信號很難直接從基站到達移動臺,一般要經過折射或反射,因此定位精度會受到影響;其次是使用范圍較窄,LBS 雖然不會受到天氣、高架橋或高樓的影響,但如果超出手機的服務范圍,或者手機所處的基站數量不足,則無法進行 LBS 定位,從這一點上說不太適合野外使用。
定位精度:10-2000 米。
WIFI 定位
Wifi 定位,顧名思義,周圍必須有 wifi 才可以!WiFi 定位的目的是解決室內精確定位,原理類似基站定位。WiFi 定位的條件是:1、必須具有 WIFISCAN 功能,可以掃描到周圍 wifi 的 mac 地址。2、必須能上網,移動數據或者 wifi 聯網皆可。
原理:
每一個無線 AP 都有一個全球唯一的 MAC 地址, WiFi 定位靠的是偵測附近周圍所有的無線網絡基地臺 (WiFi Access Point) 的 MAC 地址,去比對數據庫中該 MAC 地址的坐標,交叉計算出所在地。
優點:
1.定位精度高,wifi 密集人流多的地方相當精確;
2.速度快;
3.周圍的 wifi 即使連接不上也能定位。在不依賴外部設備的情況下,沒有比 WIFI 定位更精準的室內定位方式,室內定位不精準,偏二三十米遠,這個問題當前科技無解。
缺點:
1.依賴wifiscan! 沒有 wifiscan 就不能定位;
2.必須處于聯網狀態。
3.用戶被迫共享了一點流量
精確度:10~200 米
AGPS 輔助定位
AGPS 是輔助 GPS 定位的一種方法。AGPS 和 GPS 是一樣的,只是加上網絡的輔助而已,定位時,必須有 GPS 模塊存在,如果沒有 GPS 模塊,這種定位是不起什么作用的。A-GPS 定位是用來加快定位速度的,由于 GPS 冷啟動時,搜星速度很慢(需要把頭上二十多顆衛星挨個搜一遍),大約 2 分鐘才能搜到,合宙定位模組冷啟動 35s 左右就可以定上位。增加了 AGPS 定位之后可以利用基站大體定位下你所在的位置,然后通過網絡將這個位置發送到服務器,服務器根據這個位置將此時經過你頭頂的衛星參數(哪幾顆、頻率、位置、仰角等信息)反饋給你的定位設備,設備上的 GPS 就可以很有目的的去搜索衛星,此時你的搜星速度大大提高,幾秒鐘就可以定位。
原理:
接收機接收 GPS 星歷文件,通過解析可見 GPS 衛星的位置、距離等信息以及相應算法得出自己的位置信息。
和 GPS 相比比優勢:
1.搜星定位快,不管是冷啟動還是熱啟動都秒定
2.有效減少設備的電量消耗
3.緩解弱 GPS 信號情況下無法定位或精度降低的問題
4.對移動設備的計算能力要求更低。
缺點:
1.必須聯網,如果你的設備不能上網,或是停機了身邊又沒有 wifi,是沒法應用 AGPS 達到秒定效果的。
2.必須有 AGPS 位置服務器的支持 3.與 GPS 一樣,仍無法完美解決室內(室內無法接收 GPS 信號)定位的問題。
精確度:3~5 米
二、演示功能概述
本教程將演示如何使用 Air8000 的 GPS 功能,使用 agps 實現快速定位功能。agps 實現流程圖如下:

Air8000 的 AGPS 實現原理為:通過蜂窩基站或 Wi-Fi 定位獲取粗略位置坐標,再結合網絡下發的衛星輔助數據(星歷),顯著縮短衛星信號搜索時間并加速定位解算,最終實現快速精準定位。
注意:GPS 星歷文件能保持 4 小時,定位成功后會自動更新星歷。
由上面原理可知 Air8000 使用 agps 功能需要訪問兩個服務器,基站定位服務器和星歷下載服務器。(注意:如果使用的是專網卡,需要將下面兩個服務器配置在 sim 卡的白名單中,基站定位服務器和[星歷下載服務器] (download.openluat.com)。)
三、準備硬件環境
1、 Air8000 核心板
2 、GPS 天線
四、準備軟件環境
1. 燒錄工具Luatools;
2. 內核固件文件(底層 core 固件文件):LuatOS-SoC_V2005_Air8000;此頁面有新版本固件的話選用最新版本固件。
3. LuatOS 需要的腳本和資源文件:https://gitee.com/openLuat/LuatOS/tree/master/module/Air8000/demo/GPS
4. lib 腳本文件:使用 Luatools 燒錄時,勾選 添加默認 lib 選項,使用默認 lib 腳本文件;
準備好軟件環境之后,接下來查看如何燒錄項目文件到 Air8000 開發板中,將本篇文章中演示使用的項目文件燒錄到 Air8000 開發板中。
五、GPS 軟硬件參考
本教程使用 api 接口為:
https://docs.openluat.com/osapi/core/libgnss/
5.2 GPS 硬件設計
GPS 在硬件設計中天線部分是比較關鍵的,可以參考這篇文章:Air8000 GNSS 硬件設計指導:https://docs.openluat.com/air8000/luatos/hardware/design/gnssant/
在核心板上內置 GNSS ipex 連接器,同時內置 3.3V LDO, 用于有源天線供電。因此可以使用外部有源天線直接連接 GNSS 連接器。

注意:目前有源天線供電僅支持 3.3V 有源天線,請注意連接的有源天線的供電范圍。
六、代碼示例介紹
6.1 軟件代碼介紹


6.2 效果展示
可以看到沒有使用 agps 輔助定位需要 31 秒左右才能定位成功。使用 agps 后,注入星歷數據后 3s 左右就能定位成功


七、總結
本教程演示了 Air8000 如何使用 AGPS 來進行快速定位,并講解了 AGPS 的實現原理以及注意事項。
八 、GPS 常見名詞解釋
[1]GNSS:混合定位,不同于 GPS 定位,狹義上講的 GPS 系統,單指美國的 24 顆 GPS 衛星以及地面上 1 個主控站、3 個數據注入站和 5 個監測站及作為用戶端的 GPS 接收機組成的一整套系統。GNSS 是指通過觀測 GNSS 衛星獲得坐標系內絕對定位坐標的測量技術。 GNSS 是所有導航定位衛星的總稱,凡是可以通過捕獲跟蹤其衛星信號實現定位的系統,均可納入 GNSS 系統的范圍。國內用戶接觸最多的應該是美國的 24 顆 GPS 衛星,以及中國的北斗衛星(截至到 2023 年 5 月 17 日 10 時 49 分,中國已有五十六顆北斗導航衛星),其余還有俄羅斯GLONASS、歐盟GALILEO、 日本的準天頂衛星系統、印度的 IRNSS(獨立的區域導航系統,覆蓋印度領土及周邊 1500 km 范圍內,提供定位精度優于 20 米的服務)等其余定位系統。
[2]冷啟動:指在一個陌生的環境下啟動 GPS,直到 GPS 芯片和可用衛星聯系并且計算出坐標的過程。以下幾種情況開機均屬冷啟動:
1. 初次開機使用時;
2. 電池耗盡導致 GPS 芯片內星歷信息丟失時;
3. 關機狀態下將接收機移動 1000 公里以上距離。
也就是說,冷啟動是通過硬件方式的強制性啟動,因為物理距離較遠,或者時間間隔很久,GPS 芯片已經把內部的星歷信息清除掉,或者內部的星歷信息完全失效。GPS 接收機失去衛星參數,或者已經存在的參數和實際接收到衛星參數相差太多,導致 GPS 芯片無法靠星歷快速搜星,所以必須從新獲得衛星提供的坐標數據。
這也是很多定位器(譬如車載定位器)啟動后,搜星時間長、定位耗時久的原因
[3]熱啟動:指在上次關機的地方沒有過多移動過,且距離上次定位時間小于 1 個小時。再次定位時,GPS 芯片通過軟件的方式,可以繼續使用之前的星歷快速搜星,實現秒定位。PS:普通的 GNSS 芯片,星歷最長有效期為 12 小時,故此星歷過期后,GPS 芯片無法使用星歷實現快速定位。
[4]溫啟動:指距離上次定位時間超過 1 個小時的啟動,搜星定位時間介于冷啟動和熱啟動之間的情況。
譬如某時間使用過 GPS 定位實現 3D FIX,GPS 芯片內部生成星歷(或者外部灌入 AGPS 數據),那么在 1 小時內啟動 GPS 芯片進行定位的行為就屬于溫啟動。啟動后,GPS 芯片首先會輸出上次的位置信息。因為上次關機前的經緯度和高度已知,但由于關機時間過長,衛星狀態發生了變化,之前 3D FIX 時的衛星接受不到了,所以星歷中參數中的若干顆衛星已經和 GPS 接收機失去了聯系,GPS 芯片需要繼續搜星補充位置信息,所以搜星的時間要長于熱啟動,短于冷啟動。
[5]星歷:是用于描述太空飛行體位置和速度的表達式———兩行式軌道數據系統。衛星、航天器或飛行體一旦進入太空,即被列入 NORAD 衛星星歷編號目錄。列入 NORAD 衛星星歷編號目錄的太空飛行體將被終生跟蹤。衛星、火箭殘骸等飛行體成為太空垃圾時,仍被列入 NORAD 衛星編號目錄,直到目標消失。衛星星歷以開普勒定律的 6 個軌道參數之間的數學關系確定飛行體的時間、坐標、方位、速度等各項參數,具有極高的精度。衛星星歷能精確計算、預測、描繪、跟蹤衛星、飛行體的時間、位置、速度等運行狀態;能表達天體、衛星、航天器、導彈、太空垃圾等飛行體的精確參數;能將飛行體置于三維的空間;用時間立體描繪天體的過去、現在和將來。衛星星歷的時間按世界標準時間(UTC)計算。衛星星歷定時更新。
[6]AGPS:輔助全球衛星定位系統(英語:Assisted Global Positioning System,簡稱:AGPS)指的是一種 GPS 的運行方式。它可以利用地面基地站的資訊,配合傳統 GPS 衛星,讓定位的速度更快
[7]有源天線:通常對于設備或車載機而言,由于設備與 GPS 接收模塊之間往往有距離,考慮到安裝的便利性可能會有超過 1 米的距離,在這種情況下我們只能選擇有源 GPS 天線,由于天線長度的信號衰減需要進行補償,一般有兩級低噪聲放大器(LNA)進行天線前端信號放大,放大后的信號經電纜輸出,電纜同步提供 LNA 所需要的直流電壓
由于天線收到的信號在有源天線接受頭內完成信號接受與天線放大,并且遠離 GPS 設備或其他電器設備,干擾源最小,而且安裝位置由于天線距離延長安裝位置可以選擇非常理想的環境,所以實際使用時往往感覺信號較強
[8]無源天線:使用無源 GPS 天線時,由于只有一個陶瓷片接收天空的衛星信號,直接連接到模塊的 RF-IN 腳,這種聯接方式結構簡單,而且標準的 25254 的陶瓷片成本低廉,技術成熟,占空體積小,適合于強調緊湊型空間 GPS 導航產品,藍牙 GPS,手機 GPS 及其他小型 GPS 消費類產品。
這種天線的布局是從天線的引腳直達模塊的 RF-IN 腳,這根導線需要進行 50 歐阻抗匹配,而且在天線附近不能有電磁干擾,對 PCB 的設計及整機的 EMI 設計要求較高,但如果設計得優良的無源天線 GPS 產品同樣有非常好的表現效果,而且功耗比較低,無需考慮天線自身的功耗。
[9]半邊天以及開拓地帶:GPS 衛星運行在距地 36000KM 的軌道上,信號強度相當弱(GPS 衛星的功率有多大?)。GPS 的民用 C/A 碼從衛星發出來的時候信號只有 27W 左右,達到地球的時候在-158.5dBW 以上。用對數形式表示可能不直觀,換算成十進制等于將近 0.0000000000000001W,相當小。所以,只有室外開闊的、無遮擋、晴好的地方,才能搜到更多的衛星,SNR 值更高(陰天都會有影響哦),GPS 芯片才能更快、更好的實現定位。
半邊天一般指樓宇內窗邊,打開窗戶,只能搜到一半天空的衛星。
[10]定位糾偏:OpenLuat 的所有 GNSS 模塊均使用國際標準WGS-84坐標系,所以開發者在國內常見地圖定位時,會發現與實際情況有幾十米甚至上百米的誤差。這并非模塊問題, 而是國內地圖采用了非標坐標系所致。 國內常見地圖如高德地圖使用GCJ-02坐標系, 百度地圖使用BD-09坐標系,故此開發者需要對模塊輸出的經緯度進行加偏處理,才能在國內的地圖上實現精確定位,坐標轉換可在合宙提供的坐標轉換網站上直觀的展示處理
[11]重捕:是指接收終端在丟失所接收信號狀態下,從重新接收到信號開始,至終端設備輸出符合定位精度要求的定位結果所需的時間。失鎖重捕時間反映了在接收機信號失鎖,定位中斷后重新恢復定位的速度。失鎖重捕時間短的接收機在易中斷環境中(如隧道等)的定位性能好,因此失鎖重捕時間可以有效評估車載終端的性能
[12]低噪聲放大器:主要用于接收信號的前端,放大天線從空中接收到的微弱信號,降低噪聲干擾,以供系統解調出所需的信息數據
今天的內容就分享到這里了~
審核編輯 黃宇
-
定位
+關注
關注
5文章
1554瀏覽量
36563 -
AGPS
+關注
關注
0文章
15瀏覽量
12989 -
LuatOS
+關注
關注
0文章
134瀏覽量
2588
發布評論請先 登錄
Air8000 LuatOS exgnss擴展庫應用秘籍:定位開發避坑指南!
LuatOS exgnss擴展庫實戰進階:GNSS功能開發全流程!
LuatOS中PWM實現LED亮度調節與呼吸燈的實戰教程
LuatOS下GNSS定位開發實戰:初識定位、NMEA解碼與位置追蹤上報
嵌入式開發新選擇:LuatOS腳本框架入門教程
零基礎學習LuatOS編程:快速上手開發實戰教程!
LuatOS編程基礎教程:手把手帶你入門物聯網開發!
快速入門——LuatOS:sys庫多任務管理實戰攻略!
全棧開發進階指南:LuatOS-log庫從入門到實戰!
解鎖LuatOS-log庫:全棧工程師的日志管理實戰課!

LuatOS AGPS 輔助定位開發實戰教程
評論