GNSS主板串口复用数据分发的方法与系统转让专利

申请号 : CN201610112574.7

文献号 : CN105785406B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 韩伟浩莫文晖於永东潘久辉欧阳仲南

申请人 : 广州中海达定位技术有限公司

摘要 :

本发明提供一种GNSS主板串口复用数据分发的方法与系统,识别GNSS主板中单个串口输出数据的类型以及每种类型所述输出数据的时间标签,将输出数据进行分类,并记录每种类型数据相应的频率,获得分类结果,建立套接字线程,识别客户端请求数据的类型和频率,根据客户端请求数据的类型和频率,从所述分类结果中查找类型和频率与所述请求数据匹配的所述输出数据,并将查找到的所述输出数据发送至相应的客户端。整个过程简单,采用套接字线程和数据类型与频率匹配方式,实现数据准确双向传输,避免由于管道破裂导致数据丢失传输,传输失败,其可靠性高,能够简单且可靠实现GNSS主板串口复用数据分发。

权利要求 :

1.一种GNSS主板串口复用数据分发的方法,其特征在于,包括步骤:识别GNSS主板中单个串口输出数据的类型以及每种类型所述输出数据的时间标签,将所述输出数据进行分类,并记录每种类型数据相应的频率,获得分类结果;

对不同类型和频率的所述输出数据分别分配唯一的标识码,获取不同类型和频率数据的标识码信息;

建立套接字线程,识别客户端请求数据的类型和频率;

根据所述客户端请求数据的类型和频率,从所述分类结果中查找类型和频率与所述请求数据匹配的所述输出数据,并将查找到的所述输出数据发送至相应的客户端。

2.根据权利要求1所述的GNSS主板串口复用数据分发的方法,其特征在于,所述建立套接字线程,识别客户端请求数据的类型和频率的步骤包括:建立套接字线程,监听来自客户端的连接请求;

当监听到所述连接请求时,解析所述连接请求,识别所述客户端请求数据的类型和频率。

3.根据权利要求1所述的GNSS主板串口复用数据分发的方法,其特征在于,所述根据所述客户端请求数据的类型和频率,从所述分类结果中查找类型和频率与所述请求数据匹配的所述输出数据,并将查找到的所述输出数据发送至相应的客户端的步骤包括:建立多个并行处理链路;

在每条所述并行处理链路中,根据所述客户端请求数据的类型和频率以及所述标识码信息,从所述分类结果中查找类型和频率与所述请求数据匹配的所述输出数据;

将查找到的结果发送至相应的客户端。

4.根据权利要求1或2所述的GNSS主板串口复用数据分发的方法,其特征在于,所述输出输出数据的类型包括NMEA-0183数据、差分数据、原始数据以及Binex数据。

5.一种GNSS主板串口复用数据分发的系统,其特征在于,包括:分类模块,用于识别GNSS主板中单个串口输出数据的类型以及每种类型所述输出数据的时间标签,将所述输出数据进行分类,并记录每种类型数据相应的频率,获得分类结果;

标识模块,用于对不同类型和频率的所述输出数据分别分配唯一的标识码,获得不同类型和频率数据的标识码信息;

识别模块,用于建立套接字线程,识别客户端请求数据的类型和频率;

匹配模块,用于根据所述客户端请求数据的类型和频率,从所述分类结果中查找类型和频率与所述请求数据匹配的所述输出数据,并将查找到的所述输出数据发送至相应的客户端。

6.根据权利要求5所述的GNSS主板串口复用数据分发的系统,其特征在于,所述识别模块包括:线程建立单元,用于建立套接字线程,监听来自客户端的连接请求;

识别单元,用于当监听到所述连接请求时,解析所述连接请求,识别所述客户端请求数据的类型和频率。

7.根据权利要求5所述的GNSS主板串口复用数据分发的系统,其特征在于,所述匹配模块包括:并行链路建立单元,用于建立多个并行处理链路;

匹配单元,用于在每条所述并行处理链路中,根据所述客户端请求数据的类型和频率以及所述标识码信息,从所述分类结果中查找类型和频率与所述请求数据匹配的所述输出数据;

发送单元,用于将查找到的结果发送至相应的客户端。

8.根据权利要求5或6所述的GNSS主板串口复用数据分发的系统,其特征在于,所述输出数据的类型包括NMEA-0183数据、差分数据、原始数据以及Binex数据。

说明书 :

GNSS主板串口复用数据分发的方法与系统

技术领域

[0001] 本发明涉及GNSS(Global Navigation Satellite System,全球导航卫星系统)技术领域,特别是涉及GNSS主板串口复用数据分发的方法与系统。

背景技术

[0002] 随着GNSS技术的飞速进步和应用普及,GNSS接收机的使用量越来越多,市场对GNSS接收机的功能需求也日渐增加。
[0003] 对同一GNSS接收机,要求同时支持多条数据传输和数据记录,而一般GNSS主板板卡只有两三串口,在面对这多数据需求时,如果单一串口对应单一数据传输或记录肯定不够的。特别是随着基于linux等系统的GNSS接收机的出现,系统从单一程序变为多程序线程,这时就得考虑串口的复用问题。但对于linux系统下的串口编程,不具备有串口复用的功能,所以要实现串口数据的复用分发,还得考虑辅助技术。早期的GNSS接收机,系统内部数据大多采用管道机制来处理多发与分流,达到一个串口数据转发到多个应用进程上。
[0004] 使用管道机制处理数据多发,存在的缺点是管道不能进行双向传输,如果要进行数据的双向传输,那么就得建立两条管道,一条用于串口向应用程序传输数据,另一条用于串口接收应用程序传输过来的数据。而且管道操作容易出现管道破裂,其可靠性低。

发明内容

[0005] 基于此,有必要针对一般GNSS主板串口复用数据分发的方法存在实现复杂且可靠性低的问题,提供一种实现简单且可靠性高的GNSS主板串口复用数据分发的方法与系统。
[0006] 一种GNSS主板串口复用数据分发的方法,包括步骤:
[0007] 识别GNSS主板中单个串口输出数据的类型以及每种类型输出数据的时间标签,将输出数据进行分类,并记录每种类型数据相应的频率,获得分类结果;
[0008] 建立套接字线程,识别客户端请求数据的类型和频率;
[0009] 根据客户端请求数据的类型和频率,从分类结果中查找类型和频率与请求数据匹配的输出数据,并将查找到的输出数据发送至相应的客户端。
[0010] 一种GNSS主板串口复用数据分发的系统,包括:
[0011] 分类模块,用于识别GNSS主板中单个串口输出数据的类型以及每种类型输出数据的时间标签,将输出数据进行分类,并记录每种类型数据相应的频率,获得分类结果;
[0012] 识别模块,用于建立套接字线程,识别客户端请求数据的类型和频率;
[0013] 匹配模块,用于根据客户端请求数据的类型和频率,从分类结果中查找类型和频率与请求数据匹配的输出数据,并将查找到的输出数据发送至相应的客户端。
[0014] 本发明GNSS主板串口复用数据分发的方法与系统,识别GNSS主板中单个串口输出数据的类型以及每种类型输出数据的时间标签,将输出数据进行分类,并记录每种类型数据相应的频率,获得分类结果,建立套接字线程,识别客户端请求数据的类型和频率,根据客户端请求数据的类型和频率,从分类结果中查找类型和频率与请求数据匹配的输出数据,并将查找到的输出数据发送至相应的客户端。整个过程简单,采用套接字线程和数据类型与频率匹配方式,实现数据准确双向传输,避免由于管道破裂导致数据丢失传输,传输失败,其可靠性高,能够简单且可靠实现GNSS主板串口复用数据分发。

附图说明

[0015] 图1为本发明GNSS主板串口复用数据分发的方法第一个实施例的流程示意图;
[0016] 图2为本发明GNSS主板串口复用数据分发的方法第二个实施例的流程示意图;
[0017] 图3为本发明GNSS主板串口复用数据分发的系统第一个实施例的结构示意图;
[0018] 图4为本发明GNSS主板串口复用数据分发的系统第二个实施例的结构示意图。

具体实施方式

[0019] GNSS的全称是全球导航卫星系统,它是泛指所有的卫星导航系统,包括全球的、区域的和增强的。
[0020] 如图1所示,一种GNSS主板串口复用数据分发的方法,包括步骤:
[0021] S200:识别GNSS主板中单个串口输出数据的类型以及每种类型输出数据的时间标签,将输出数据进行分类,并记录每种类型数据相应的频率,获得分类结果。
[0022] 针对GNSS主板中单个串口作为研究对象,以求实现单个串口复用。GNSS主板中单个串口实时输出大量的数据流,数据流中包括有多种类型的数据,并且每种类型的数据还有可能以不同的频率(输出间隔)输出。具体来说,上述数据流中可以包括NMEA-0183数据、差分数据、原始数据以及Binex数据,其中,NMEA-0183数据是美国国家海洋电子协会为海用电子设备制定的标准格式。目前业已成了GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services,国际海运事业无线电技术委员会)标准协议;Binex是一种以二进制方式储存GNSS观测数据的格式,Binex数据可以理解为GNSS观测数据。数据的类型可以基于现有统一的规范格式或协议进行合理分类,数据的时间标签用于记录数据输出的时间,基于数据的时间标签可以获得其相应的频率。在获得分类获得GNSS主板中单个串口输出数据的类型以及各种类型数据相应的频率之后,可以将数据类型和相应的频率关联存储,获得分类结果。例如假定有A、B以及C三类数据,每类数据分别有10秒输出1次、2次以及3次的三种频率,即可以记录为A类数据以每10秒输出1次、输出2次或输出3次;B类数据以每10秒输出1次、输出2次或输出3次;C类数据以每10秒输出1次、输出2次或输出3次。
[0023] S400:建立套接字线程,识别客户端请求数据的类型和频率。
[0024] 源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字,其用于标识客户端请求的服务器和服务。套接字之间的连接过程可以分为三个步骤:服务器监听、客户端请求、连接确认,其中,服务器监听是指服务端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态;客户端请求是由客户端的套接字提出连接请求,要连接的目标是服务器端套接字。连接确认是当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的信息发送给客户端,一旦客户端确认了此连接,连接即可建立。套接字,是支持TCP/IP的网络通信的基本操作单元,其可以有效实现双向通信。
[0025] S600:根据客户端请求数据的类型和频率,从分类结果中查找类型和频率与请求数据匹配的输出数据,并将查找到的输出数据发送至相应的客户端。
[0026] 根据客户端请求数据的类型和频率,在步骤S200获得的分类结果中查找类型和频率匹配的数据,并将查找到的结果发送到相应的客户端。在实际操作过程中可能存在多个客户端同时请求数据,不同客户端请求数据类型和频率不相同,此时,需要针对不同的客户端请求,分别发送相应的类型和频率数据。例如,假定步骤S200获得的分类结果中:A类数据以每10秒输出1次、输出2次或输出3次;B类数据以每10秒输出1次、输出2次或输出3次;C类数据以每10秒输出1次、输出2次或输出3次,此时有1号、2号和3号三个客户端,1号客户端请求A类数据、频率为2次/10秒,2号客户端请求A类数据、频率为3次/10秒,3号客户端请求C类数据、频率为1次/10秒,则需要在步骤S200获得的分类结果中发送A类数据、频率2次/10秒至1号客户端;发送A类数据、频率3次/10秒至2号客户端;发送C类数据、频率1次/10秒至3号客户端。
[0027] 本发明GNSS主板串口复用数据分发的方法,识别GNSS主板中单个串口输出数据的类型以及每种类型输出数据的时间标签,将输出数据进行分类,并记录每种类型数据相应的频率,获得分类结果,建立套接字线程,识别客户端请求数据的类型和频率,根据客户端请求数据的类型和频率,从分类结果中查找类型和频率与请求数据匹配的输出数据,并将查找到的输出数据发送至相应的客户端。整个过程简单,采用套接字线程和数据类型与频率匹配方式,实现数据准确双向传输,避免由于管道破裂导致数据丢失传输,传输失败,其可靠性高,能够简单且可靠实现GNSS主板串口复用数据分发。
[0028] 如图2所示,在其中一个实施例中,步骤400包括:
[0029] S420:建立套接字线程,监听来自客户端的连接请求。
[0030] S440:当监听到连接请求时,解析连接请求,识别客户端请求数据的类型和频率。
[0031] 在本实施例中,保持监听状态,实时等待接收、解析来自客户端的连接请求,当监听到连接请求时,第一时间接收并解析客户端的连接请求,识别客户端请求数据的类型和频率。保持监听状态,能够提高提高接收、处理的效率,从而整体提高GNSS主板串口复用数据分发的效率。
[0032] 如图2所示,在其中一个实施例中,步骤S400之前还包括:
[0033] S300:对不同类型和频率的输出数据分别分配唯一的标识码,获得不同类型和频率数据的标识码信息。
[0034] 为了便于后续从分类结果中查找客户端请求数据的类型和频率,在本实施例中,对对不同类型和频率的输出数据分别分配唯一的标识码,获得不同类型和频率数据的标识码信息。非必要的,还可以将标识码信息制作成类似目录的索引信息,并采用统一规范化设置标识码,提高后续操作中匹配的效率,从而整体提高GNSS主板串口复用数据分发的效率。
[0035] 如图2所示,在其中一个实施例中,步骤S600包括:
[0036] S620:建立多个并行处理链路。
[0037] S640:在每条并行处理链路中,根据客户端请求数据的类型和频率以及标识码信息,从分类结果中查找类型和频率与请求数据匹配的输出数据。
[0038] S660:将查找到的结果发送至相应的客户端。
[0039] 在本实施例中,建立多个并行处理链路,在每条并行处理链路中能够同时进行如步骤S640的操作,实现数据的并行处理;另外,在匹配过程中,基于步骤S300生成的标识码信息,快速准确从分类结果中查找类型和频率与请求数据匹配的输出数据,从而整体提高GNSS主板串口复用数据分发的效率。
[0040] 在其中一个实施例中,输出数据的类型包括NMEA-0183数据、差分数据、原始数据以及Binex数据。
[0041] 如图3所示,一种GNSS主板串口复用数据分发的系统,包括:
[0042] 分类模块200,用于识别GNSS主板中单个串口输出数据的类型以及每种类型输出数据的时间标签,将输出数据进行分类,并记录每种类型数据相应的频率,获得分类结果;
[0043] 识别模块400,用于建立套接字线程,识别客户端请求数据的类型和频率;
[0044] 匹配模块600,用于根据客户端请求数据的类型和频率,从分类结果中查找类型和频率与请求数据匹配的输出数据,并将查找到的输出数据发送至相应的客户端。
[0045] 本发明GNSS主板串口复用数据分发的系统,分类模块200识别GNSS主板中单个串口输出数据的类型以及每种类型输出数据的时间标签,将输出数据进行分类,并记录每种类型数据相应的频率,获得分类结果,识别模块400建立套接字线程,识别客户端请求数据的类型和频率,匹配模块600根据客户端请求数据的类型和频率,从分类结果中查找类型和频率与请求数据匹配的输出数据,并将查找到的输出数据发送至相应的客户端。整个过程简单,采用套接字线程和数据类型与频率匹配方式,实现数据准确双向传输,避免由于管道破裂导致数据丢失传输,传输失败,其可靠性高,能够简单且可靠实现GNSS主板串口复用数据分发。
[0046] 如图4所示,在其中一个实施例中,识别模块400包括:
[0047] 线程建立单元420,用于建立套接字线程,监听来自客户端的连接请求;
[0048] 识别单元440,用于当监听到连接请求时,解析连接请求,识别客户端请求数据的类型和频率。
[0049] 在本实施例中,保持监听状态,实时等待接收、解析来自客户端的连接请求,当监听到连接请求时,第一时间接收并解析客户端的连接请求,识别客户端请求数据的类型和频率。保持监听状态,能够提高提高接收、处理的效率,从而整体提高GNSS主板串口复用数据分发的效率。
[0050] 如图4所示,在其中一个实施例中,GNSS主板串口复用数据分发的系统还包括:
[0051] 标识模块300,用于对不同类型和频率的输出数据分别分配唯一的标识码,获得不同类型和频率数据的标识码信息。
[0052] 为了便于后续从分类结果中查找客户端请求数据的类型和频率,在本实施例中,对对不同类型和频率的输出数据分别分配唯一的标识码,获得不同类型和频率数据的标识码信息。非必要的,还可以将标识码信息制作成类似目录的索引信息,并采用统一规范化设置标识码,提高后续操作中匹配的效率,从而整体提高GNSS主板串口复用数据分发的效率。
[0053] 如图4所示,在其中一个实施例中,匹配模块600包括:
[0054] 并行链路建立单元620,用于建立多个并行处理链路;
[0055] 匹配单元640,用于在每条并行处理链路中,根据客户端请求数据的类型和频率以及标识码信息,从分类结果中查找类型和频率与请求数据匹配的输出数据;
[0056] 发送单元660,用于将查找到的结果发送至相应的客户端。
[0057] 在本实施例中,并行链路建立单元620建立多个并行处理链路,在每条并行处理链路中,匹配单元640能够同时进行相应的操作,实现数据的并行处理;另外,在匹配过程中,基于标识模块300生成的标识码信息,快速准确从分类结果中查找类型和频率与请求数据匹配的输出数据,从而整体提高GNSS主板串口复用数据分发的效率
[0058] 在其中一个实施例中,输出数据的类型包括NMEA-0183数据、差分数据、原始数据以及Binex数据。
[0059] 以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。