【GPS】GPS分析(QXDM关键字)

一、GPS信号

  1. GPS信号包含主要三个组成部分:

    1)载波:L1和L2频段

    2)测距码(Ranging Code): 用来测量卫星和接收器之间距离的一种信号。

      GPS有C/A码和P码两种测距码:

        C/A码(粗捕获码)  民

        P码(精捕获码)   军

    3)导航电文(Navigation Data,也叫D码): 在定位计算时,除了测距码外还需要卫星的一些信息,例如星历、时间等。

 

 

  2. GPS ——> 微波信号 ——> 穿透能力较差。

  例如:

    1)厚度为1cm的水体完全衰减GPS至无法使用;

    2)几cm后的木头就可以完全遮蔽GPS信号;

    3)玻璃塑料使GPS信号轻度衰减;

    4)(含金属涂层)金属实体完全遮蔽GPS。

  【特别注意】

    (测试GPS时需要注意)

    1)室内无法进行GPS定位;

    2)室外云雨严重时会影响定位精度。

 


 

二、星历与年历

  星历: 得到卫星在天空中的位置轨道信息(精密轨道信息)。

  年历: (粗略轨道信息)。

    【注意】: (1)在真实的位置计算中年历是不起作用的。

          (2)XTRA+年历-------解析出-------->星历(较为准确)。

 


 

三、GPS启动方式

  1)冷启动——> 无星历、年历信息(如手机第一次启动GPS);

  2)温启动——> 含年历,且无大距离移动时;

  3)热启动——> 手机有星历、年历、以及上次定位信息等时。

 


 

四、A-GPS

  通过无线通讯系统实现的A-GPS方案有两种运营模式MSB和MSA。

  判断MSB和MSA定位的方法:

    根据定位运算主体在哪一端【用户设备终端 or 通讯网络】?

  1)MSB

    手机承担位置测量计算工作;

    基于用户终端的A-GPS,用户位置计算在用户终端设备。

  2)MSA

    手机只承担位置测量工作;

    用户终端辅助的A-GPS,用户位置的计算在通讯网络,最后发送到手机。

  

  还有下面一种定位模式:

  3)Standalone

    Standalone模式不使用A-GPS。

 


 

五、GPS平台

  主要有Qualcomm(高通)和Broadcom(博通)。

  【注意】:辅助数据XTRA和LTO有效周期长达一周。

  1)Qualcomm

    XTRA

      "Extened Receiver Assistance" 的缩写。

      高通自己设计的一套辅助数据。加速定位。

      是可以下发星历信息的解决法案,类似AGPS。 都是辅助定位用的。

      【注意】:XTRA+年历-------解析出-------->星历(较为准确)。

  2)Broadcom

    LTO

      "Long Term Orbit" 的缩写.

      自己设计的一套辅助数据。加速定位。


 

六、SUPL

  谷歌服务器。

 


 

七、GPS分析

  主要有五部分。

  1)App层
    在android原生系统上,没有内置的定位app,只有Settings.

        packages/apps/Settings/src/com/android/settings/location/

        frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/

    Android平台中,GPS的开启和关闭主要在Settings中。其模式有三种:

      1.High accruacy 高精度
          使用GPS,Networks,Wi-Fi和Bluetooth进行定位;
          准确度最好,但比较费电
      2.Battery saving
          使用Wi-Fi, Bluetooth和Networks进行定位;
          速度快,省电,但是精度较差。
      3.Device only
          只使用GPS进行定位。

    当Location为“ON”,Mode为“High accruacy”或者“Device Only”时,settings数据库location_providers_allowed字段将被修改为“network,gps”或者“gps”(修改字段的代码在LocationSettings.java中)。

  2)Framework

    Client端
        frameworks/base/location/java/android/location/
      这里主要是API包,供App调用的。(LocationManager.java)
        frameworks/base/location/java/com/android/internal/location/
      这个目录是 Framework 对 Location 服务的内部实现。
    Service端
        frameworks/base/services/core/java/com/android/server/LocationManagerService.java
        frameworks/base/services/core/java/com/android/server/location/

  3)HAL

    一般GPS的修改都在gps.conf里做,其他都是源生,不需要修改。

    路径如下:

        hardware/qcom/gps/etc/gps.conf

  4)Modem(Kernel)

     GPS的驱动接口有URAT、QMI等;

     Linux底层驱动只需要有uart接口就可以接收到gps数据了,而android的hal层会调用linux内核层的uart驱动,所以,只要hal层打开串口,然后read就可以了。

       而gps的标准数据格式为NMEA格式,有以下几个类型。

        1、GPS定位信息    GPGGA
        2、当前卫星信息    GPGSA
        3、可见卫星信息    GPGSV
        4、推荐最小定位信息  GPRMC

  5)固件Log

 

posted @ 2018-08-10 17:51  演武_zhuwei  阅读(3887)  评论(0编辑  收藏  举报