一种RTCM电文转换方法及装置与流程

文档序号:11132307阅读:946来源:国知局
一种RTCM电文转换方法及装置与制造工艺

本申请涉及通信技术领域,特别涉及一种RTCM电文转换方法及装置。



背景技术:

在船舶等运输工具通过海事卫星进行通信的系统中,对船舶等运输工具进行定位是十分必要的,在现有技术中通常通过国际海运事业无线电技术委员会颁布的2.3版本协议(Radio Technical Commission For Maritime Services Version 2.3,RTCM2.3)或者船舶自动识别系统(Automatic Identification System,AIS)中的VDM语句来传输数据,基站通过获取基准站中的部分数据来实现对船舶的定位,但是由于现有协议的规定基站只能接收由基准站发送的AIS协议及RTCM2.3协议部分语句,因此难以根据基准站的差分定位数据进行精确的定位。



技术实现要素:

为了解决现有技术中基站与基准站之间不能完全兼容,基站只能接收解码部分基准站的数据,因此提供了一种RTCM电文转换方法及装置,将基准站的数据转换为符合现有通信协议通信规则(例如RTCM2.3或者AIS的VDM语句)的电文传送给基站进行解码解析。

本发明实施例提供了一种RTCM电文转换方法,包括:

接收基准站发送的RTCM电文,形成RTCM电文队列;

将所述RTCM电文队列中连续的若干字节形成缓冲字;

当所述缓冲字包括引导字时,解析所述缓冲字中的电文信息;

根据所述电文信息获取所述RTCM电文中的数据;

将所述RTCM电文中的数据转换为目标数据,发送给基站。

本发明实施例还提供了一种RTCM电文转换装置,包括:

接收单元,用于接收基准站发送的RTCM电文,形成RTCM电文队列;

缓冲单元,用于将所述RTCM电文队列中连续的若干字节形成缓冲字;

解析单元,用于当所述缓冲字包括引导字时,解析所述缓冲字中的电文信息;

处理单元,用于根据所述电文信息获取所述RTCM电文中的数据;

转换单元,用于将所述RTCM电文中的数据转换为目标数据,发送给基站。

由以上本申请实施例提供的技术方案可见,可以将基准站中的全部的RTCM电文发送给基站,从而基站可以根据基准站中的差分定位数据进行精准的定位或者其它应用处理,克服了现有RTCM2.3协议的不足。

当然实施本申请的任一产品或者方法必不一定需要同时达到以上所述的所有优点。

附图说明

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

图1所示为本申请实施例一种RTCM电文转换方法的流程图;

图2所示为本发明实施例一种RTCM电文转换装置的结构示意图;

图3所示为本发明实施例一种RTCM电文转换系统的结构示意图;

图4所示为本发明实施例RTCM电文转换过程的流程图。

具体实施方式

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

如图1所示为本申请实施例一种RTCM电文转换方法的流程图,在本图中描述了在现有的基准站与基站之间加入了一个编解码装置,该装置能够将所有类型的RTCM电文(现有基准站中发送的RTCM协议报文)转换为基站能够接收解析的电文(可以是RTCM电文也可以是AIS的VDM语句),这样基站就能够充分利用基准站的所有数据信息,从而实现更加精准的定位,或者其它应用。

具体包括步骤101,接收基准站发送的RTCM电文,形成RTCM电文队列。

步骤102,将所述RTCM电文队列中连续的若干字节形成缓冲字。

步骤103,当所述缓冲字包括引导字时,解析所述缓冲字中的电文信息。

步骤104,根据所述电文信息获取所述RTCM电文中的数据。

步骤105,将所述RTCM电文中的数据转换为目标数据,发送给基站。

作为本发明的一个实施例,在形成RTCM电文队列之前还包括,剔除所述RTCM电文中的非法数据。

作为本发明的一个实施例,所述剔除所述RTCM电文中的非法数据进一步包括,剔除接收到的RTCM电文中字节前两bit位不是01的字节。

其中,所述RTCM电文中一个字节为8bit,每一bit位都为0或1的二进制数字,剔除前两位不是01的字节后,所剩下字节的二进制前两位为01,也就是说该字节转换为10进制之后大于64小于127,在RTCM电文队列中的字节均为前两位是01的字节。

作为本发明的一个实施例,所述RTCM电文队列为先入先出队列(FIFO)。

作为本发明的一个实施例,将所述RTCM电文队列中连续的若干字节形成缓冲字进一步包括,获取所述RTCM电文队列中连续的5个字节,将所述5个字节中每个字节的前两bit位删除,将剩下的6bit位按照所述RTCM电文队列中的先后顺序形成所述缓冲字,其中所述缓冲字的第30个bit位为标志位,通过该标志位确定下一个缓冲字是否需要取反。

其中,按照上述方法一个缓冲字为30个bit,由5个字节中每个字节的后6位构成,该缓冲字的第30个bit位为标志位,通过该标志位可以确定下一个缓冲字是否需要取反(第一次获取的30bit默认上一标志位为0,不取反),例如标志位为1时,下一个缓冲字需要全部取反(也就是1变为0,0变为1),如果为0时,下一个缓冲字不需要取反。

作为本发明的一个实施例,当所述缓冲字包括引导字时进一步包括,查找所述缓冲字起始位(例如低8bit位)是否为特定字符串,若为特定字符串则所述缓冲字包括引导字。例如,当缓冲字的高位出现01100110的代码时,就认为该缓冲字中包括了引导字。

作为本发明的一个实施例,在解析所述缓冲字中的电文信息之前还包括,对所述缓冲字进行奇偶校验,当奇偶校验成功时,则该缓冲字成为第一缓冲字,当奇偶校验不成功时,则重复执行将所述RTCM电文队列中连续的若干字节形成缓冲字及后续步骤。

作为本发明的一个实施例,解析所述缓冲字中的电文信息中进一步包括,从所述RTCM电文队列中再连续的获得5个字节,将该5个字节形成缓冲字,根据上一个缓冲字的标志位对本次获得的缓冲字进行取反操作,然后对本次获得缓冲字进行奇偶校验,当奇偶校验成功后,本次获得的缓冲字为第二缓冲字,若奇偶校验不成功,则重复执行将所述RTCM电文队列中连续的若干字节形成缓冲字及后续步骤。

作为本发明的一个实施例,解析所述缓冲字中的电文信息中进一步包括,解析所述第一缓冲字和第二缓冲字,获得所述电文信息,其中包括消息类别、帧长等信息,还可以包括参考站识别、修正Z计数、序列号、站健康等信息。

其中,所述第一缓冲字和第二缓冲字构成了RTCM电文的电文报头,其中包括了基准站的一些信息,具体的定位数据和一些其它相关数据需要在后续的RTCM电文中获取。

作为本发明的一个实施例,根据所述电文信息获取所述RTCM电文中的数据中进一步包括,根据所述帧长从所述RTCM电文队列中获取数据,并根据所述消息类别对获取到的数据进行解析。

其中,RTCM电文中消息类别有很多,例如消息类别1和消息类别41电文数据的数据结构均不相同,需要针对不同的消息类别进行数据解析,从而才能获得电文中包括的定位数据或需要的其它数据。

作为本发明的一个实施例,将所述RTCM电文中的数据转换为目标电文中进一步包括,根据配置信息,将所述RTCM电文中第一消息类别的数据编码为第二消息类别的数据。

其中,例如基站只能接收基准站发送的消息类别为9以及42的RTCM电文,不能接收消息类别为1以及41的RTCM电文,本发明中的RTCM电文转换装置接收基准站的RTCM电文,将消息类别为1以及41的RTCM电文进行解析后得到实际数据,根据预先设置好的配置信息,将这些实际数据编码为消息类别为9以及42的RTCM电文,然后通过无线方式发送给一个或者多个基站。

或者,本发明中的RTCM电文转换装置还可以根据配置信息,将消息类别为1以及41的RTCM电文进行解析后得到实际数据编码为AIS-VDM语句,通过无线方式将AIS-VDM语句发送给一个或者多个基站。

其中,具体的编码手段可以包括修改电文信息中的消息类别、帧长等信息。

通过本发明实施例中的方法,可以将基准站中的全部的RTCM电文发送给基站,从而基站可以根据基准站中的差分定位数据进行精准的定位或者其它应用处理,克服了现有RTCM2.3协议的不足。

如图2所示为本发明实施例一种RTCM电文转换装置的结构示意图,在该图中描述了设置于基准站与基站之间的RTCM电文转换装置,将通过串口接收来自基准站的RTCM电文,并将电文中的全部数据传送给基站,不用修改现有协议,并且兼容现有设备,令基站可以更加精确的进行定位等应用处理。

具体包括接收单元201,用于接收基准站发送的RTCM电文,形成RTCM电文队列。

缓冲单元202,用于将所述RTCM电文队列中连续的若干字节形成缓冲字。

解析单元203,用于当所述缓冲字包括引导字时,解析所述缓冲字中的电文信息。

处理单元204,用于根据所述电文信息获取所述RTCM电文中的数据。

转换单元205,用于将所述RTCM电文中的数据转换为目标数据,发送给基站。

作为本发明的一个实施例,所述接收单元还用于,在形成RTCM电文队列之前,剔除所述RTCM电文中的非法数据。

作为本发明的一个实施例,所述缓冲单元还用于,获取所述RTCM电文队列中连续的5个字节,将所述5个字节中每个字节的前两位删除,将剩下的6bit位按照所述RTCM电文队列中的先后顺序形成所述缓冲字,其中所述缓冲字的第30个bit位为标志位,通过该标志位确定下一个缓冲字是否需要取反。

作为本发明的一个实施例,所述解析单元进一步用于,查找所述缓冲字中的高位起始位是否为特定字符串,若为特定字符串则所述缓冲字包括引导字。

作为本发明的一个实施例,还包括校验单元206与所述解析单元相连接,用于对所述缓冲字进行奇偶校验,当奇偶校验成功时,则该缓冲字成为第一缓冲字,当奇偶校验不成功时,则回到缓冲单元重复执行将所述RTCM电文队列中连续的若干字节形成缓冲字及后续步骤。

作为本发明的一个实施例,所述解析单元进一步用于,从所述RTCM电文队列中再连续的获得5个字节,将该5个字节形成缓冲字,根据上一个缓冲字的标志位对本次获得的缓冲字进行取反操作,然后对本次获得缓冲字进行奇偶校验,当奇偶校验成功后,本次获得的缓冲字为第二缓冲字,若奇偶校验不成功,则重复执行将所述RTCM电文队列中连续的若干字节形成缓冲字及后续步骤。

作为本发明的一个实施例,所述解析单元进一步用于,解析所述第一缓冲字和第二缓冲字,获得所述电文信息,其中包括消息类别、帧长等信息。

作为本发明的一个实施例,所述转换单元进一步用于,根据配置信息,将所述RTCM电文中第一消息类别的数据编码为第二消息类别的数据。

通过本发明实施例中的装置,可以将基准站中的全部的RTCM电文发送给基站,从而基站可以根据基准站中的差分定位数据进行精准的定位或者其它应用处理,克服了现有RTCM2.3协议的不足。

如图3所示为本发明实施例一种RTCM电文转换系统的结构示意图,在本图中描述了基准站、电文转换装置以及基站组成的系统,其中电文转换装置将基准站中所有消息类别的电文转换为基站能够接收的电文。

在该实施例中电文转换装置通过串口接收基准站的RTCM2.3协议的电文,并将例如消息类型为1或者41的电文转换为消息类型为9或者42的电文,或者将消息类型为1或者41的电文转换为AIS-VDM语句的电文,通过无线TCP/IP协议的方式传送给基站,具体转换过程如图4所示,图4所示为本发明实施例RTCM电文转换过程的流程图。

包括步骤401,电文转换装置通过串口接收基准站的RTCM电文,例如为RTCM2.3版本的电文。

步骤402,将所述RTCM电文中的非法数据剔除。

在本步骤中,接收到的每个字节都为8bit,只保留前两个bit位是01的字节,剔除其余字节。

步骤403,将剔除后的字节缓存存入到先入先出队列(FIFO队列)。

步骤404,取所述先入先出队列中的5个字节,进行预处理,压入缓冲字中。

其中,所述缓冲字可以为一段内存空间,该内存空间为30个bit组成,每个从先入先出队列中获取的字节为8bit,每个字节的前两个bit都是01,将5个字节中每个字节的前两个bit删除,剩下6bit,按照每个字节在先入先出队列中的先后顺序,将每个字节剩下的6个bit压入缓冲字的bit位中。

其中,缓冲字中的第30个bit位为标志位,通过该标志位可以确定下一个缓冲字是否需要取反。

步骤405,根据上一个缓冲字中的标志位,判断是否要对本次的缓冲字中每个bit位的数据取反。

例如,如果上一个缓冲字中第30个bit位为1时,则进入步骤406对本次的缓冲字取反,将本次缓冲字30个bit位的0或1取反,如果本次缓冲字标志位为0时,则进入步骤407,其中本次处理的缓冲字为第一个消息的第一个缓冲字时,默认上一个缓冲字的标志位为0,不对第一个缓冲字取反。

步骤407,查找所述缓冲字的高位8个bit位,是否为引导字。

在本步骤中,利用8个bit位判断是否为引导字为举例,缓冲字中其它长度的bit位进行引导字判断也是可行的,在本例中,引导字可以为01100110,当缓冲字的最高8bit位为01100110时,则进入步骤408,否则返回步骤404,寻找新的缓冲字以及判断该新的缓冲字是否具有引导字等步骤。通常RTCM电文包括多个消息,每一个消息只有第一个缓冲字具有引导字。

步骤408,对所述具有引导字的缓冲字进行奇偶校验,如果校验成功则进入步骤409,否则返回步骤404,寻找新的缓冲字以及判断该新的缓冲字是否具有引导字等步骤。

步骤409,将该缓冲字作为第一缓冲字。

步骤410,继续获取所述先入先出队列中的5个字节,进行预处理。

在本步骤中,在获得第一缓冲字后,按照顺序从先入先出队列中获取5个连续的字节,所述预处理与前述步骤404相同,每个从先入先出队列中获取的字节为8bit,每个字节的前两个bit都是01,将5个字节中每个字节的前两个bit删除,剩下6bit,按照每个字节在先入先出队列中的先后顺序,将每个字节剩下的6个bit进行排列,形成本次的缓冲字同样具有30个bit位。

步骤411,根据上一个缓冲字中的标志位,判断是否要对本次的缓冲字中每个bit位的数据取反。

如果根据上一个缓冲字的标志位标志位判断需要取反(例如上一个缓冲字的第30个bi t位为1时),则进入步骤412对本次缓冲字中每个bit位取反,否则进入步骤413。

步骤413,对上述本次缓冲字进行奇偶校验,如果校验成功则进入步骤414,否则返回步骤404,寻找新的缓冲字以及判断该新的缓冲字是否具有引导字等步骤。

步骤414,将该本次的缓冲字作为第二缓冲字。

步骤415,解析所述第一缓冲字和第二缓冲字,获得电文信息。

在本步骤中,获得的电文信息包括消息类别、帧长,还可以包括参考站识别、修正Z计数、序列号、站健康等信息。

步骤416,根据所述消息类别和帧长,从先入先出队列中获取数据。

在本步骤中,根据帧长从先入先出队列中获取数据,然后根据消息类别对数据进行解析,获得RTCM2.3电文中的有效数据,其中,所述有效数据可以用于定位也可能包括其它用途的数据。

其中,在获取先入先出队列中的数据时,同样一个缓冲字一个缓冲字的获得,还需要根据上一个缓冲字的标志位对每次获得的一个缓冲字进行取反操作,并进行奇偶校验,以保证每次获得的缓冲字都是正确的。

步骤417,根据预先定义的配置文件,将解析得到的有效数据转换为目标数据。

在本步骤中,例如配置文件规定将消息类别为1或者41的有效数据转换为消息类别为9的电文,则通过电文转换装置中的编码器将上述有效数据编码为消息类别为9的RTCM2.3电文,其中,包括对电文报头两个30bit长度的电文信息进行重新编写,写入消息类别为9以及其他相关参数,并且按照消息类别为9的数据结构编写有效数据,最终形成消息类别为9的RTCM2.3电文。

另一个实施例中,配置文件规定将消息类别为41的有效数据转换为AIS-VDM语句,则电文转换装置中的编码器根据AIS-VDM语句的规则将有效数据转换为AIS-VDM语句。

步骤418,将转换后的目标数据通过无线网络的形式发送给一个或者多个基站。

通过上述本申请实施例中的方法及装置,可以将基准站中的全部的RTCM电文发送给基站,从而基站可以根据基准站中的差分定位数据进行精准的定位或者其它应用处理,克服了现有RTCM2.3协议的不足。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

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