MTK GPS问题调试
目錄
1、基本概念
2、MTK 平臺相關參數(shù)說明
3、Log 抓取分析
4、常見問題分析
參考鏈接
1、基本概念
1.1、GPS定位和網(wǎng)絡定位有什么不同?
GPS定位是需要衛(wèi)星參與的,設備借助搜到的衛(wèi)星訊號,來計算出來設備的位置。open sky環(huán)境下,6顆衛(wèi)星信號強度大于40db,CEP67=3米
網(wǎng)絡定位是指利用基站、WIFI MAC,獲取一個粗略的位置。基站定位和覆蓋范圍有關,所以精度可能很低。WIFI MAC 通過機器能搜到的 WIFI ,從服務器按照 MAC 地址去取到對應 WIFI 的位置信息,及當前信號強度來確定大概位置,精度相對會比基站高點
1.2、3D定位和2D?定位的區(qū)別?
3D一般是指使用至少4顆以上衛(wèi)星完成的定位。
2D一般使用3顆衛(wèi)星完成的定位過程。
3D相比于2D?定位,即定位精度更高。
1.3、衛(wèi)星分布對GPS performance有很大影響嗎?
是的。在NMEA?中GPGGA、GPGSA都有相關數(shù)據(jù)精度因子,該值越小越好,建議小于2。設備位于地球上的某一點,可以認為在地球上方,有4個象限,仰角0~90度。好的衛(wèi)星分布要滿足如下條件:
- 每個象限都有衛(wèi)星;
- 衛(wèi)星不能在同樣的仰角上。
- 低仰角衛(wèi)星被干擾的可能性更大、傳輸距離更遠,容易出現(xiàn)問題。
解釋常見的衛(wèi)星分布:
- open sky的環(huán)境下,各個象限都有衛(wèi)星。
- 窗邊的環(huán)境下,只能看到半邊天的衛(wèi)星,即半圓內(nèi)有衛(wèi)星。
- 在鬧市中,高樓圍起來的街道上,只能看到高仰角的衛(wèi)星。
1.4、如何同步GPS時間到本地時間?
Step1:將設置中的時間選項,設置為用GPS時間同步。
Step2:將設置中的位置服務打開。
Step3:打開任何的地圖應用,定位成功后,就可以看到時間同步了。例如用工程模式下面的YGPS定位APK。
計算方式:GPS UTC 時間 + 當前時區(qū),例如 GPS UTC 時間為?071249.988 ,對應北京時間就是 15(07+08):12:49.988
1.5、各個衛(wèi)星系統(tǒng)的衛(wèi)星編號是多少?
(SatelliteSystem )? (PRN Numbers)? ?(NMEA/PMTK? SVID)
GPS? ? ? ? ? ? ? ? ? ? ? 1 ~ 32? ? ? ? ? ? ? ? ? ?1 ~ 32
WAAS? ? ? ? ? ? ? ? ? ?120 ~ 138 ? ? ? ? ? ? 33 ~ 64
GLONASS? ? ? ? ? ? 1 ~ 24? ? ? ? ? ? ? ? ? ?65 ~ 88? ? (89~96 reserved)
GALILEO? ? ? ? ? ? ? 1 ~ 54? ? ? ? ? ? ? ? ? ?51~104
QZSS? ? ? ? ? ? ? ? ? ?183 ~ 187? ? ? ? ? ? ?reserved
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?193 ~ 197? ? ? ? ? ? ?193~197
BDS? ? ? ? ? ? ? ? ? ? ? 1~30? ? ? ? ? ? ? ? ? ? 201~230
2、MTK 平臺相關參數(shù)說明
2.1、YGPS測試中,FULL start、COLD start、WARM start、HOT start、TTFF 值
定位過程中最重要的輔助資訊包括時間、位置、星歷。
FULL start:沒有任何的輔助資訊。相當于end user第一次買到手機后使用定位應用的場景。
COLD start:有時間輔助資訊,end user不會遇到該場景。
WARM start:有時間、位置輔助資訊,end user此次定位距離上次定位超過2~4個小時。
HOT start:有所有的輔助資訊,end user此次定位距離上次定位小于2~4小時。
對于終端用戶經(jīng)常會遇到的場景是就是 WARM/HOT start。
TTFF的結果和測試環(huán)境、測試的手法、硬件的GPS?性能強相關。MTK給出的數(shù)據(jù)是基于在open sky的環(huán)境下,有6顆衛(wèi)星SNR》40db。
FULL start TTFF:小于50s。
COLD start TTFF:小于40s。
WARM start TTFF:小于35s。
HOT start TTFF:小于5s。
2.2、MTK 輔助定位技術
| 輔助方式 | 輔助數(shù)據(jù)來源 | 有效時間 | TTFF |
| AGPS | 通過網(wǎng)絡連接到AGPS SERVER,從AGPS SERVER獲取aiding data(包括參考時間,參考位置,星歷和almanac) | 2 hours | Spec??<??20s |
| EPO | EPO file可以通過網(wǎng)絡(wifi/數(shù)據(jù)連接)的方式從MTK Server下載到手機中,在使用GPS時就無需再連接網(wǎng)絡。只要使用時間在EPO file的有效期內(nèi),就可以利用EPO加速定位。 文件放在/data/misc/EPO.DAT。 | EPO是預測未來30天所有衛(wèi)星的ephemeris | Condition: 6SVs CNR > 40dB,?(SVs: satellites) CTTFF <??15s,??WTTFF??<??5s?? |
| HotStill | 需要通過實收衛(wèi)星信號且要解算出其衛(wèi)星的ephemeris。 預測的數(shù)據(jù)放在/data/misc/BEE.bin、/data/misc/ARC.bin | 預測未來7天的ephemeris | Condition: 6SVs CNR > 40dB,?(SVs: satellites) WTTFF??<?5s |
三種技術可以同時打開提供輔助資訊,MTK GPS?演算法都會接受,不會沖突。目前MTK的solution已經(jīng)將EPO?、Hotstill默認集成在系統(tǒng)中,默認都是打開的。沒有菜單可以供測試者關閉EPO。
調(diào)試測試 epo 效果
Step1:確保網(wǎng)絡是OK的。
Step2:使用YGPS,將INFORMATION中的Hotstill按鈕設置,使其顯示為Enable Hotstill[Need Restart]。
Step3:退出YGPS,再打開YGPS,并完成3D fix,并保持定位狀態(tài)1min。
Step4:關閉網(wǎng)絡。
Step5:使用adb刪除/data/misc/BEE.bin、/data/misc/ARC.bin。
Step6:在YGPS里,執(zhí)行WARM start,看是否可以在5s內(nèi)完成定位,請在open sky下測試。
調(diào)試測試 Hotstill?效果
Step1:確保網(wǎng)絡是關閉的,使用adb刪除/data/misc/EPO*
Step2:使用YGPS,將INFORMATION中的Hotstill按鈕設置,使其顯示為Disable Hotstill[Need Restart]。
Step3:退出YGPS,再打開YGPS,并完成3D fix,并保持10min。
Step4:在YGPS里,執(zhí)行WARM start,看是否可以在5s內(nèi)完成定位,請在open sky下測試。
2.3、獲取MNL Version
MNL?是Mediatek Navigation Library的縮寫,版本號是以日期標注的,例如MNL_VER_14051401ALPS05_3.60_09。
將設置中的位置服務打開,請進入工程模式下YGPS-----》INFORMATION--àMNL version就可以看到該版本號。
?2.4、Gps在工作期間,上報數(shù)據(jù)的頻率
?1HZ。最高可以調(diào)整到5HZ,但不建議修改到5HZ,因為會帶來高功耗。
請在linux_gps_init接口中,將g_is_1Hz=5即可。具體修改方法,請參考如下:
修改init.rc:
service mnld /system/xbin/mnld
? ??? class main
??? ? group nvram gps inet misc sdcard_rw sdcard_r media_rw
??? ? socket mnld stream 660 gps system。
2.5、軟件配置使用的衛(wèi)星系統(tǒng)
方法一:
找到mnl.prop file(path: /data/misc/,如果不存在,請創(chuàng)建該文件)
打開該文件,添加GNSS_MODE=value?保存后在push to /data/misc/即可。
方法二
修改mnl_process_6620.c中的mnl_config變量中的的GNSSOPMode的值。
對于6625L,默認是GPS+GLONASS ,可以切換成GPS+BEIDOU,但是不能同時support GPS+GLONASS+BEIDOU;
對于MT3332,默認是GPS+GLONASS ,可以切換成GPS+BEIDOU,但是不能同時support GPS+GLONASS+BEIDOU;
對于MT6630,默認是GPS+GLONASS+BEIDOU;
注意:
軟件不支持?Galieo ,支持?QZSS/WASS/EGNOS/MSAS/GAGAN 種類?SBAS?。
如果是在系統(tǒng)運行過程中修改GNSS的配置,為了是修改配置能夠生效,請delete /data/misc/mtkgps.dat。
如果gps正在運行中,記得在修改配置后,關閉GPS,然后刪除/data/misc/mtkgps.dat。
3、Log 抓取分析
3.1、Gps DebugLog 抓取
工程模式----->Location----->YGPS----->NMEA LOG----->找到dbg2file button,當顯示成為Disable dbg2file[Need Restart]表示設置成功,即可抓取GPS DEBUGLOG。默認保存log 路徑如下
#define LOG_FILE?? “/data/misc/gpsdebug.log”
3.4、上層logcat日志幾個關鍵字
LocationManagerService
GnssLocationProvider
MTK_GPS_MSG_FIX_READY
D : mtk_gps_sys_gps_mnl_callback: MTK_GPS_MSG_FIX_READY, GET_RTC_OK, 0.063, 0.002D : mtk_gps_sys_gps_mnl_callback: Age = 2, RTCDiff = 30, Time_interval = 10D pseudo : mtk_gps_sys_nmea_output_to_app: len:46, [vAGPS_Auto_Req]:g_FirstDbtt:0,u2BitMap:0x10fMTK_GPS_MSG_FIX_READY 這一段表示定時刷新上傳數(shù)據(jù),關注最后一個 0.002 ,這個表示距離上一次定位成功時間點,如果單位是 s,如果顯示太長時間,表示定位功能異常了
I GnssLocationProvider: WakeLock acquired by sendMessage(REPORT_LOCATION, 1, Location[gps 32.159382,118.693323 hAcc=9 et=?!? alt=58.1 vel=0.48075056 bear=243.04 vAcc=??? sAcc=??? bAcc=???])I GnssLocationProvider: WakeLock acquired by sendMessage(REPORT_SV_STATUS, 0, com.android.server.location.GnssLocationProvider$SvStatusInfo@9c51571)I GnssLocationProvider: WakeLock released by handleMessage(REPORT_LOCATION, 1, Location[gps 32.159382,118.693323 hAcc=9 et=+1h33m25s726ms alt=58.1 vel=0.48075056 bear=243.04 vAcc=??? sAcc=??? bAcc=??? {Bundle[{satellites=0, maxCn0=0, meanCn0=0}]}])這段log,第一行 REPORT_LOCATION 表示底層數(shù)據(jù)傳遞到FWK層了,包含了 location 數(shù)據(jù), 準備發(fā)往APP層。第三行表示發(fā)生完畢,釋放wakeLock
D LocationManagerService: incoming location from: gpsD LocationManagerService: incoming location from: gps?這里判斷定位類型,包含 gps network 等。
3.3、GPS Host Log
mtklogger目錄下 connsyslog\gpshost\ 路徑下,保存原始的 GPS 數(shù)據(jù)日志,包含 Nmea 和 其他MTK加的數(shù)據(jù),便于分析查看GPS數(shù)據(jù)信息
4、常見問題分析
4.1、GPS軟件工作正常。open sky的環(huán)境下有衛(wèi)星訊號,但是設備一顆星搜不到。
硬件先排查電路設計,目前GPS的硬件設計,一般都是需要在衛(wèi)星訊號進入到chip之前,會有一塊處理電路。
軟件上看,需要先check LNA有沒有使能,即ANT_SEL0有沒有拉高。如果發(fā)現(xiàn)沒有拉高,就需要檢查dws文件配置是否有問題。
4.2、偶現(xiàn) GPS 搜不到星,Cold 啟動或者重啟手機后恢復
可能是 epo 相關配置問題。將 epo 關閉后復測看下,如果是 epo 問題,抓取log給MTK具體解決。
epo hal 層代碼
vendor/mediatek/proprietary/hardware/connectivity/gps/mtk_mnld/mnld_entity/src/epo.c
把代碼中?gps_epo_enable 都強制賦值成 0
或者修改系統(tǒng)配置參數(shù)
vendor/mediatek/proprietary/hardware/connectivity/gps/mtk_mnld/etc/gps.conf
EPO_ENABLE=1 // 0表示關閉 1開啟
DW_DAYS=9 //默認最大下載天數(shù)
EPO_WIFI_TRIGGER=0
RAW_DEBUG_MODE=1
參考鏈接
mtk平臺gps配置相關
MTK 秒定位 檢測EPO流程注意事項
MTK 驅(qū)動(100)---GPS調(diào)試寶典
總結
以上是生活随笔為你收集整理的MTK GPS问题调试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [vue] vue组件里写的原生addE
- 下一篇: [css] 你有用过CSS预处理器吗?