基于Android操作系统的北斗数据通信系统及方法与流程

文档序号:14675012发布日期:2018-06-12 21:22阅读:594来源:国知局
基于Android操作系统的北斗数据通信系统及方法与流程

本发明属于北斗定位通信技术领域,尤其涉及一种基于Android操作系统的北斗数据通信系统及方法。



背景技术:

随着社会信息化程度的快速提高,人们对位置服务信息的需求变得越来越大,特别是针对移动终端领域,由于其便携、易操作等优点,位置服务信息得到广泛的应用。

Android系统作为首个为移动终端打造的真正开放和完整的移动平台系统,拥有丰富的软件资源和应用场景。Android平台下现有的定位技术有三种,分别为:GPS定位、WIFI定位和基站定位。

GPS定位需要GPS硬件支持,直接和卫星交互来获取当前经纬度。这种方式准确度高,但是缺点也很明显:无短报文通信;不能与友邻共享位置坐标;战时不可用。Android WIFI定位,根据一个固定的WIFI MAC地址,通过收集到的该WIFI热点的位置,然后访问网络上的定位服务以获得经纬度坐标。其缺点是必须使用网络。Android基站定位,利用手机附近的三个基站进行三角定位,由于每个基站的位置是固定的,利用电磁波在这三个基站间中转算出手机所在的坐标。其缺点是误差较大,且必须有手机信号。

现有的通信与定位技术都具有一定的局限性,依据现有技术设计的系统抗干扰能力差、适用范围有限,在地震、洪涝等极端环境下可能导致系统无法使用。



技术实现要素:

针对上述问题,本发明的目的在于提供一种基于Android操作系统的北斗数据通信系统及方法,通过在Android操作系统内部相关层增加对北斗数据的收发、处理与解析,对于用户而言感受不到北斗定位与传统GPS定位操作的差异性,同时又能够享受北斗导航系统带来的便利性。

为达到上述目的,本发明采用如下技术方案予以实现。

技术方案一:

一种基于Android操作系统的北斗数据通信系统,所述北斗数据通信系统包括:北斗模块、定位导航模块、北斗数据通信模块,以及设置在Android操作系统中的分包处理模块、RNSS数据解析模块、定位服务模块、北斗通信服务模块;

所述北斗模块的数据接口与所述分包处理模块上设置的第一数据接口双向通信连接,所述分包处理模块上设置的第一数据输出端与所述RNSS解析模块的数据输入端连接,所述RNSS解析模块的数据输出端与所述定位服务模块上设置的第一数据输入端连接;所述分包处理模块上设置的第二数据输出端与所述定位服务模块的第二数据输入端连接,所述定位服务模块的数据输出端与所述定位导航模块的数据输入端连接;

所述分包处理模块上设置的第二数据接口与所述北斗通信服务模块的数据接口双向连接,所述北斗通信服务模块的数据输出端与所述北斗数据通信模块的数据输入端连接,所述北斗数据通信模块的数据输出端与所述北斗通信服务模块的数据输入端连接。

本发明技术方案一的特点和进一步的改进为:

(1)所述北斗模块与所述分包处理模块采用串口通信;

所述北斗模块,用于获取北斗卫星导航系统发送的北斗数据,并将所述北斗数据通过串口发送给分包处理模块,所述北斗数据包含RNSS定位数据和RDSS定位通信数据;所述RDSS定位通信数据包含RDSS定位数据和RDSS通信数据;

所述分包处理模块,用于将北斗数据区分为RNSS定位数据、RDSS定位数据和RDSS通信数据,并将RNSS定位数据发送给RNSS数据解析模块,将RDSS定位数据发送给定位服务模块,以及将RDSS通信数据发送给北斗通信服务模块;

所述RNSS数据解析模块,用于解析RNSS定位数据得到定位信息,所述定位信息至少包含经纬度信息;并将所述定位信息发送给定位服务模块;

所述定位服务模块,用于获取所述定位信息和RDSS定位数据,并提供Android应用层接口供所述定位导航模块使用;

所述定位导航模块,用于通过所述定位服务模块提供的Android应用层接口获取定位信息,并进行人机交互;

所述北斗通信服务模块,用于获取RDSS通信数据,并提取通信信息,所述通信信息至少包含通信类型、用户地址、发信时间以及通信内容;并将所述通信信息发送给北斗数据通信模块;

所述北斗数据通信模块,用于获取所述通信信息,并进行人机交互。

(2)所述北斗通信服务模块注册在Android操作系统提供的系统广播上,且所述北斗数据通信模块中创建有系统广播接收器,从而所述北斗数据通信模块通过系统广播接收器从系统广播上获取北斗通信服务模块发送的通信信息。

(3)所述北斗数据通信模块,还用于通过所述北斗通信服务模块向所述北斗模块发送查询请求获取北斗数据。

(4)所述Android操作系统包含Android内核层、硬件逻辑层、JAVA本地调用层、系统框架层以及应用层;其特征在于,

所述Android内核层设置北斗模块的驱动单元;所述硬件逻辑层设置北斗模块提示符和北斗数据接口;所述JAVA本地调用层设置RNSS定位数据的数据接口以及RDSS通信数据的数据接口;所述系统框架层设置定位服务接口函数模块以及北斗通信服务接口函数模块;所述应用层设置普通定位导航模块以及北斗数据通信模块。

技术方案二:

一种基于Android操作系统的北斗数据通信方法,所述北斗数据通信方法应用于技术方案一所述的北斗数据通信系统,所述北斗数据通信方法包括:

北斗模块获取北斗卫星导航系统发送的北斗数据,并将所述北斗数据通过串口发送给分包处理模块,所述北斗数据包含RNSS定位数据和RDSS定位通信数据;所述RDSS定位通信数据包含RDSS定位数据和RDSS通信数据;

所述分包处理模块将北斗数据区分为RNSS定位数据、RDSS定位数据和RDSS通信数据,并将RNSS定位数据发送给RNSS数据解析模块,将RDSS定位数据发送给定位服务模块,以及将RDSS通信数据发送给北斗通信服务模块;

所述RNSS数据解析模块解析RNSS定位数据得到定位信息,所述定位信息至少包含经纬度信息;并将所述定位信息发送给定位服务模块;

所述定位服务模块获取所述定位信息和RDSS定位数据,并提供Android应用层接口供定位导航模块使用;

所述定位导航模块通过所述定位服务模块提供的Android应用层接口获取定位信息,并进行人机交互;

所述北斗通信服务模块获取RDSS通信数据,并提取通信信息,所述通信信息至少包含通信类型、用户地址、发信时间以及通信内容;并将所述通信信息发送给北斗数据通信模块;

所述北斗数据通信模块获取所述通信信息,并进行人机交互。

本发明技术方案二的特点和进一步的改进为:

(1)所述方法还包括:

所述北斗通信服务模块注册在Android操作系统提供的系统广播上,且所述北斗数据通信模块中创建系统广播接收器,从而所述北斗数据通信模块通过系统广播接收器从系统广播上获取北斗通信服务模块发送的通信信息。

(2)所述方法还包括:

所述北斗数据通信模块通过所述北斗通信服务模块向所述北斗模块发送查询请求获取北斗数据。

本发明是基于Android操作系统集成北斗通信模块设计,提出北斗数据通信的一种方法,实现通用地图、导航软件使用北斗导航定位的透明化;利用Android操作系统的北斗数据通信方法提供的短报文双向通信能力、定位导航和授时能力,实现抗干扰能力强、适用范围广、在极端环境下可应用于应急救险的通信系统,应用价值显著。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的基于Android操作系统的北斗数据通信系统框架结构示意图;

图2为本发明实施例提供的Android操作系统架构层次示意图;

图3为本发明实施例提供的RNSS数据在Android操作系统内部总体流程示意图;

图4为RNSS数据在HAL层的基本流程示意图;

图5为RNSS数据在JNI层的基本流程示意图一;

图6为RNSS数据在JNI层的基本流程示意图二;

图7为RNSS数据在Framework层的基本流程示意图;

图8为RNSS数据在应用层的基本流程示意图;

图9为本发明实施例提供的RDSS数据在Android操作系统内部总体流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

Android操作系统:2007年11月,Google推出移动操作系统Android,并宣称Android是首个为移动终端打造的真正开放和完整的移动操作系统。自此,基于Android系统的手机和平板电脑陆续出现,Android系统的开源性优势正日益凸显。Android系统由Linux内核、系统运行库、应用程序框架和应用程序组成。在国内,基于Android平台设计开发的系统应用越来越多,同时也越来越受到消费者的青睐。

北斗卫星导航系统:北斗二号卫星导航系统是中国独立开发的全球卫星导航系统,主要提供三大功能:短报文通信、定位导航和授时。

北斗卫星导航系统包含RDSS体制和RNSS体制,服务于用户位置确定的卫星无线电业务。在卫星导航定位中,通过接收RNSS体制下的导航信号,自主完成位置、航速及航行参数计算,实现无源定位;通过接收RDSS体制下的信号实现用户的定位、通信、位置上报等功能。

其中,RNSS英文全称Radio Navigation Satellite System,由用户接收卫星无线电导航信号,是一种卫星无线电导航业务,自主完成至少到4颗卫星的距离测量,进行用户位置,速度及航行参数计算。

RDSS英文全称Radio Determination Satellite Service,缩写RDSS,是另一种卫星无线电测定业务,用户至卫星的距离测量和位置计算无法由用户自身独立完成,必须由外部系统通过用户的应答来完成。其特点是通过用户应答,在完成定位的同时,完成了向外部系统的用户位置报告,还可实现定位与通信的集成,实现在同一系统中的NAVCOMM集成。

目前北斗导航系统的应用主要是在专用系统方面,对于Android系统使用北斗导航系统,北斗导航的数据处理也是放在专用app中来实现的。对于通用地图软件、导航软件,想使用北斗卫星导航系统定位基本不可能。

本发明实施例提供了一种基于Android操作系统的北斗数据通信系统,实现了在特殊环境下保证定位通信的能力,本发明的技术方案如下:

北斗主机与Android操作系统之间采用串口通信模式,Android操作系统接收到北斗数据,进行分包处理,区分RNSS数据和RDSS数据。其中,RNSS数据和RDSS的定位数据通过解析后发送给Android系统的定位服务,定位服务为Android内部系统服务,直接为Android应用层提供接口,供相关应用程序使用;RDSS的通信数据通过新增的北斗通信服务,注册到系统广播上。需要使用RDSS的应用程序只需创建一个系统广播接收器,即可接收到RDSS数据,做进一步解析处理。应用程序在需要自主获取北斗数据时,在应用软件中完成北斗协议的拼包后,直接调用北斗通信服务将数据发送至底层北斗主机即可。基于Android操作系统的北斗数据通信系统的整体框架如图1所示。

在RNSS数据通道中,解析提取导航数据发送给定位服务,任何使用通用Android SDK开发的应用程序,如百度地图、高德地图等软件,直接安装后即可使用北斗定位导航数据完成定位、导航功能。

在RDSS数据通道中,北斗通信服务注册系统广播消息后,系统广播通知应用层应用程序有可用北斗数据,应用程序经过协议解析、数据提取后,完成北斗通信相关业务。

本发明实施例提供的主要数据处理函数对应Android操作系统架构层次如图2所示,具体的:

在Android内核中,增加了北斗主机的驱动程序;在硬件逻辑层中,增加北斗设备提示符和北斗数据接口;在JNI(Java Native Interface的缩写,中文为JAVA本地调用层)层中,增加了RNSS数据通道的BDLocationProvider数据接口和RDSS数据通道的BDCommunicationOperationProvider数据接口;在系统框架层中,改写LocationManager等相关接口函数,供应用层应用程序调用,完成定位、导航服务。同时增加了BDCommunicationOperationManager等北斗通信服务相关接口函数,注册到系统广播,通知应用层应用程序数据更新情况。

在Android操作系统内部,接收到北斗主机的数据后,操作系统分包处理,区分RNSS数据和RDSS数据,分别通过不同的数据通道进入应用层。

(1)Android操作系统内部RNSS数据处理流程:

在Android操作系统内部,Linux内核层接收到北斗数据,分包处理,获取到RNSS数据,发送给HAL层;HAL层根据协议解析,完成bdlocation数据结构的构造,上报给Framework层;Framework层完成相关函数,供应用层应用程序使用。RNSS数据在Android操作系统内部的处理流程如图3所示。

在HAL层,北斗主机注册为hw模块,通过hw_module_t接口声明初始化、启动、停止、清除等相关函数。在初始化函数qemu_bd_init中打开串口驱动设备,开启读取北斗数据的线程。线程启动完成后,在线程中会设置callback函数,用以传输局给jni层。启动函数qemu_bd_start、停止函数qemu_bd_stop的流程与初始化函数类似,RNSS数据在HAL层的基本流程如图4所示。

在JNI层,java调用C函数的方向上,北斗相关函数均注册到jniRegisterNativeMethods中,android_location_bdlocationProvider_class_init_native函数的函数指针init就调用到hal层的qemu_bd_init函数。class_init_native函数是在java服务层定义的native函数,android_location_bdlocationProvider_class_init_native是c函数,两者通过jni机制形成映射关系。其他函数类似,此处不做赘述,RNSS数据在JNI层的基本流程(自上到下)如图5所示。

在JNI层,C函数调用java方向上,均使用callback函数,发送location、status等消息,RNSS数据在JNI层的基本流程(自下到上)如图6所示。

Framework层是为上层应用调用提供接口。对于jni层获取的数据,完成处理后,更新location信息,并提供给应用层相关接口,RNSS数据在Framework层的基本流程如图7所示。

Framework层将相关数据通过set函数写入location类,应用层应用程序只需要使用get函数即可得到RNSS的定位导航数据,RNSS数据在应用层的基本流程如图8所示。

(2)Android操作系统内部RDSS数据处理流程:

Linux内核层接收到北斗数据,分包处理并获取到RDSS数据,发送给HAL层;HAL层根据协议解析,提取部分定位数据与RNSS数据一起上报并构造location类,供通用地图软件使用,其余RDSS数据用来完成bdcommunicationoperation数据结构的构造,实现其中的打开、启动、关闭、停止等函数,并将bdcommunicationoperation数据结构上报给Framework层;Framework层获取到数据结构后,从而得到通信类型、用户地址、发信时间等信息,完成CommunicationOperation类的构造,供应用层应用程序使用,RDSS数据在Android操作系统内部的处理流程如图9所示。

RDSS数据在HAL层、JNI层、Framework层和应用层的流程与RNSS数据处理流程类似,此处不再赘述。

本发明以便携性、可移植性好的Android操作系统为平台,通过采用:(1)改写Android操作系统内部定位服务相关函数,打通RNSS数据通道,使通用导航定位软件均可使用RNSS数据完成导航定位功能;(2)在Android操作系统内部增加北斗通信服务,完成北斗通信数据从Android操作系统底层到应用层的传递,从而将Android操作系统与北斗卫星导航系统结合,将北斗数据的采集、解析放在操作系统内部处理,将GPS与北斗数据的差异性透明化。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1