GPS定位流程_(1)

news/2024/11/15 1:37:55/

GPS定位流程_(1)

1.1 Android定位架构

Android定位架构
整个定位服务的架构如上图 所示。该结构共分为五层:
第一层是应用层,app层,需要定位服务的客户端。
第二层是框架层,这一层实现了系统服务,主要由Java语言来实现。
第三层是JNI层,frameworks/base/core/jni/android_location_GpsLocationProvider.cpp
JNI层只有一个文件,起到承上启下的作用。向上提供本地函数,向下加载HAL文件并调用HAL的函数。
第四层是HAL层,负责访问驱动程序执行硬件操作。HAL层相当于一个linux应用程序接口,通过open,close等操作,操作硬件设备
第五层是Kernel层,也就是Linux内核层,整个Android系统都是以Linux内核为基础的。
最下面一层是GPS的硬件模块,由驱动层来驱动工作。

1.2 GpsLocationProvider工作流程

在这里插入图片描述
上图 GpsLocationProvider工作流程图

JNI层是由C/C++编写的,JNI层通过JNI回调函数集与JAVA层通信,JAVA层通过native函数集与JNI通信。和GpsLP相关的JNI函数位于com_android_server_loca-tion_GpsLocationProvider.cpp中
JNI层和HAL层都是native层,JNI层和HAL层安卓的接口函数集文件(位于gps.h中)进行通信。 so是shared object的缩写,见名思义就是共享的对象,机器可以直接运行的二进制代码,是由C/C++编译成的动态库。
Java层主要文件是GpsLocationProvider.java。它通过native函数集与JNI层模块通信。
JNI层包括一个核心动态库,即libandr-oid_server.so。其中,和GpsLP相关的JNI函数位于com_android_server_loca-tion_GpsLocationProvider.cpp中。JNI层通过JNI回调函数集将GPS信息返回给Java层。
HAL层也包含一个核心动态库,其命名规范为"gps.xxx.so"。其中,"xxx"为手机所使用的硬件平台名。以笔者的Galaxy Note 2为例,对应的GPS HAL层动态库文件名为gps.exynos4.so。Android系统为GPS HAL层和GPS JNI层双向通信定义了多个接口函数集(如GpsInterface等,它们都定义在gps.h文件中),最后,GPS HAL层将和内核层中的gps驱动交互,驱动来驱动相应的GPS硬件模块。

1.3 GPS定位的实现

GPS定位框架
整个框架分为2个数据流,由上向下的控制流,由下向上的数据流。
“由下向上”:从接受到GPS信号开始到上层应用程序显示定位信息的过程。Modem->系统
“由上向下”:从客户端发起定位请求到GPS定位开启的过程;
框架主要分为Modem的天线、射频、基带、导航数据计算部分,AP侧的UART串口(硬件和驱动)、Android HAL层、Android应用层。
图3 GPS定位流程框图(由下至上的数据流)
在这里插入图片描述定位流程:(由上至下的数据流)
基带射频Modem侧:
1、 射频部分对无线信号(模拟信号)进行放大滤波、模数转换成数字量;
2、 基带对数字量进行捕获,得到导航电文、伪距码、星历等数据;
3、 导航计算部分:Modem侧处理器根据上一步得到数据求得用户的经纬度;
4、 将定位信息等转换成标准数据形式(NMEA),通过串口送给系统AP侧。
系统AP侧:(与Modem侧通过QMI通信-遵循数据协议NMEA)。
1、底层通过串口读取GPS标准数据;(LinuxUART驱动);
2、根据标准输出协议NMEA解析Modem传来的GPS数据,并填写GPSLocation结构体(在HAL);
3、实现各个函数接口打开、关闭、启动、停止等。
4、GPSlocation数据上报给上层
5、安卓上层获取GPSLocation数据,获取想要的经纬度、海拔、UTC、时间等。(安卓应用层);
6、客户端显示最终的位置信息。(安卓应用层)。


http://www.ppmy.cn/news/253602.html

相关文章

ADAS-GPS定位原理概述

前言 “GPS传感器在无人机、室外物流车以及诸多机器人应用中经常出现,它们机器人的定位、导航中发挥着重要的作用,而今天的L2~L5级别自动驾驶系统更是离不开它们,今天我们走进它们的世界,探索其背后原理以及本质。” …

基于北斗观测值的智能手机GNSS定位研究

摘要 【目的】北斗卫星导航系统(Beidou Navigation Satellite System, BDS)由我国完全自主设计建造,是一项重要的国家空间基础设施,旨在为全球用户提供导航、定位与授时服务。当前,大众低成本智能设备卫星定位主要以美国全球定位系统(Global Positioning Systems, GPS)为主…

定位模块介绍及使用(GPS、北斗、GLONASS、伽利略、准天顶)

定位模块 需求介绍定位卫星GPS中国“北斗”卫星导航系统俄罗斯GLONASS卫星导航系统欧洲“伽利略”卫星导航系统日本准天顶卫星系统 常用的定位模块介绍 使用接线卫星测试串口数据解析信息及使用解析定位信息标识符具体信息 使用 后续 需求 我们在平时的开发中,卫星…

车载高精度GNSS定位天线

目前车联网,自动驾驶纷纷成为热门话题,而做为汽车链接万物的前端的天线,出现了一体化的趋势,主要是将蜂窝,GNSS,AM/FM、C-V2X 、WIFI等一体化的趋势,其中主要形态为鲨鱼鳍和圆柱形,鲨…

UE5 材质常用大全

名称快捷方式类别计算方式/简介用法/说明Contant1+鼠标左键基础常量定义浮点数,与多通道运算时,自动影响多通道。各种基础参数Constant2Vector2+鼠标左键基础常量2维向量,2通道,影响2个通道。R/G,用于调整UVConstant3Vector3+鼠标左键基础常量3维向量,3通道,影响3个通道R…

算法设计与分析期末复习(二)

动态规划 基本思想:把求解的问题分成许多阶段或多个子问题,然后按顺序求解各个子问题。**前一个子问题的解为后一个子问题的求解提供了有用的信息。**在求解任何一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优…

为什么CCD的1英寸不是25.4mm而是16mm

这是bai历史问题导致的,大概要du追溯到二十世纪五zhi、六十年代电子dao成像技术刚zhuan开始的时代吧 那时早期的电视摄shu像机使用的感光元件是真空管,真空管的外面是有个玻璃罩子的,真空管外径是把玻璃厚度也算进去的,玻璃管当然…

有测试ipad英寸的软件吗,差距有多大?三款9.7英寸苹果iPad跑分测试

新的iPad与9.7英寸的iPad Pro还有同样尺寸为9.7英寸的iPad Air 2在基准测试网站Geekbench上PK到底会得出什么样的结果呢?想知道答案很简单,让我们一个项目一个项目来揭晓。 首先从CPU的性能基准测试来看,毫无疑问面向更加专业的消费者的iPad …