发明内容
有鉴于此,本发明的设计目的在于,提供一种时间短、效率高的获取星历数据的方法及系统,以实现GPS信号接收机的快速定位。
本发明实施例是这样实现的:
一种获取星历数据的方法,包括:
A、获取卫星所发出的导航比特,并将每30导航比特组合成一个导航字;
B、解析所述导航字中的星历数据;
C、判断已解析的星历数据参与定位计算是否完整,如果是,则将已解析的星历数据参与定位计算;否则,则返回执行步骤A。
优选地,在上述的获取星历数据的方法中,所述步骤A进一步包括:
将上一个导航字的最后两个比特作为校验位。
优选地,在上述的获取星历数据的方法中,在所述步骤A之后,还包括:
D、根据所述校验位和所述导航字的30个导航比特,判断所述导航字是否正确,如果是,则执行步骤B;否则,则执行步骤E;
E、判断所述导航字包含的星历数据是否为可推导星历数据,如果是,则通过预设方式推导出所述星历数据,执行步骤C;否则,返回执行步骤A。
优选地,在上述的获取星历数据的方法中,所述步骤E具体为:
判断所述导航字包含的星历数据是否为周时间,如果是,则通过上一帧或下一帧的周时间推导出所述导航字的周时间;否则,返回执行步骤A。
一种获取星历数据的系统,包括:
接收模块,用于获取卫星所发出的导航比特;
合成模块,用于将每30导航比特组合成一个导航字;
解析模块,用于解析所述导航字中的星历数据;
判断模块,用于判断已解析的星历数据参与定位计算是否完整;
控制模块,用于当所述判断模块判断出已解析的星历数据已经完整时,则将已解析的星历数据参与定位计算,或,当所述判断模块判断出已解析的星历数据尚未完整时,则重新启动所述接收模块。
与现有技术相比,本发明实施例提供的技术方案具有以下优点和特点:
在本发明提供的获取星历数据的方法中,每个导航字被合成后,都要及时的解析导航字中的星历数据,并判断在已解析的导航字中,被解析出的星历数据用来参与定位计算是否完整,如果完整,则将完整的星历数据参与定位计算,如果不完整,则需要继续合成下一个导航字,以重新进行上述各个步骤,直至星历数据完整为止。由于本发明提供的方法是在每个导航字被合成后,及时的进行解析和判断星历数据的完整性,即使没有获取完所有的导航字,但只要参与定位计算的星历数据完整,则可将这些星历数据参与定位计算,从而可以不必在获取完所有与定位计算无关的导航字才开始定位,因此,本发明提供的方法减少了获取星历数据的时间,从而大大的缩短了GPS定位的时间。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种获取星历数据的方法,包括:A、获取卫星所发出的30个导航比特,将所述30个导航比特合成一个导航字;B、解析所述导航字中的星历数据;C、判断已解析的星历数据参与定位计算是否完整,如果是,则将已解析的星历数据参与定位计算;否则,则返回执行步骤A。上述获取星历数据的方法具有定位时间短、效率高等优点。由于上述获取星历数据的方法的具体实现存在多种方式,下面通过具体实施例进行详细说明:
请参见图1所示,图1所示的为一种获取星历数据的方法,包括:
步骤101、获取卫星所发出的导航比特,并将每30导航比特组合成一个导航字;
步骤102、解析所述导航字中的星历数据;
步骤103、判断已解析的星历数据参与定位计算是否完整,如果是,则执行步骤104;否则,则返回执行步骤101;
步骤104、将已解析的星历数据参与定位计算。
在图1所示的实施例中,每个导航字被合成后,都要及时的解析导航字中的星历数据,并判断在已解析的导航字中,被解析出的星历数据用来参与定位计算是否完整,如果完整,则将完整的星历数据参与定位计算,如果不完整,则需要继续合成下一个导航字,以重新进行上述各个步骤,直至星历数据完整为止。其中,在判断已解析的星历数据参与定位计算是否完整时,可以忽略一些无关的数据,例如,星期数、用户测距精度、卫星的健康状况、数龄期、子帧ID和帧头标志等信息。
由于本发明提供的方法是在每个导航字被合成后,及时的进行解析和判断星历数据的完整性,即使没有获取完所有的导航字,但只要参与定位计算的星历数据完整,则可将这些星历数据参与定位计算,从而可以不必在获取完所有与定位计算无关的导航字才开始定位,因此,本发明提供的方法减少了获取星历数据的时间,从而大大的缩短了GPS定位的时间。
由于某些特殊原因,在获取导航比特时,可能会出现一些信息出现错误,导致信息丢失,所以对于此类型的导航字需要判断该导航字中包含的星历数据是否为可推导星历数据,如果是,则可通过预设方式推导出该星历数据,并继续进行后续的判断完整性的操作,如果否,则说明该导航字既不能被解析,也不能被推导出来,所以需要继续等待下一个导航字,以获取到完整的星历数据,下面详细介绍关于解决上述问题的方案的步骤。
请参见图2所示,图2所示的为获取星历数据的方法的另一个实施例,该方法包括:
步骤201、获取卫星所发出的导航比特,并将每30导航比特组合成一个导航字,将上一个导航字的最后两个比特作为校验位,执行步骤202;
步骤202、根据所述校验位和所述导航字的30个导航比特,判断所述导航字是否正确,如果是,则执行步骤203;否则,则执行步骤204;
步骤203、解析所述导航字中的星历数据,并执行步骤206;
步骤204、判断所述导航字包含的星历数据是否为可推导星历数据,如果是,则执行步骤205;否则,返回执行步骤201;
步骤205、通过预设方式推导出所述星历数据,并执行步骤206
步骤206、判断已解析的星历数据参与定位计算是否完整,如果是,则执行步骤207;否则,则返回执行步骤201;
步骤207、将已解析的星历数据参与定位计算。
在图2所示的实施例中,步骤205具体为通过上一帧或下一帧的周时间来推导出所述导航字的周时间。假设上一帧的周时间为100,则本帧的周时间为101,其中,周时间是以6S为单位,即本帧的周时间为101×6S=606S。
下面根据实例来说明图2所示的方法。
请参见图3所示,该图为子帧2的导航字结构示意图。假设子帧1已经解析完整,由于某些原因,子帧2的前3个字的某些BIT位错误,导致信息丢失,根据本申请的技术方案,我们从起始位置开始校验各个字,具体方案过程如下:
对子帧2的第一个字进行组字校验,校验失败时,我们检测该字对应得星历信息是否为周时间。由于该导航字是子帧2的第一个字(TLM字),没有包含周时间信息,它包含的信息不属于必要星历数据。等待下一个字的30比特完成。
对第二个字进行组字校验,校验失败时,由于该字包含的星历为周时间(以6s为单位),可以根据第一个子帧的周时间推导出来,假设第一个子帧的周时间为256,则本子帧的周时间为257,同时将周时间对应的标志位置1,然后检测必须星历的完整性,发现星历仍不完整,不能参与定位过程。等待下一个字的30比特完成。
对第三个字进行组字校验,检验失败时,检测该字是否包含周时间,因为该字没有包含周时间信息,
该字包含的数龄期(IODE)和子帧3的传送的IODE数据相同,可以在解析第三子帧时再进行赋值;正常情况下,这两个IODE应该和子帧1的IODC的低8位相等,所以也可以用第一子帧的IODC第八位的结果进行赋值。赋值后,将此星历项对应的标志位置1;该字还包括了卫星轨道半径的正弦调和修正值(C),是无法经过推导获得的,只好等30秒之后的同一个字到达时再进行解析。因为有星历IODE的标志位置1,所以需要检测星历的完整性,检测发现必要星历不完整,等待下一个字的30比特完成。
对第四个字进行组字校验,校验成功后,解析星历,并将标志位置1,检测必要星历的完整性,因为星历还不完整,继续等待下一个字的30比特完成。
假设以后的过程中,包括必要星历数据的导航字都能校验正确,依以上的方法进行操作,直到循环至下一个子帧2来临,并依次解析第一个字,第二个字,检测必要星历的完整性。
等到解析第三个字的时候,如果校验成功,解析星历,并将卫星轨道半径的正弦调和修正值对应的标志位置1,然后检测必要星历的完整性,我们将发现,导航定位需要的全部星历已经完整,于是我们在此时,不用等第二帧导航字全部解析完,就可以将当前解析出来的星历用于导航定位解算,因此,本发明提供的方法减少了获取星历数据的时间,从而大大的缩短了GPS定位的时间。
请参见图4所示,图4所示的为一种获取星历数据的系统,该系统包括:接收模块301,用于获取卫星所发出的导航比特;合成模块302,用于将每30导航比特组合成一个导航字;解析模块303,用于解析所述导航字中的星历数据;判断模块304,用于判断已解析的星历数据参与定位计算是否完整;控制模块305,用于当所述判断模块判断304出已解析的星历数据已经完整时,则将已解析的星历数据发送至GPS定位计算系统5中参与定位计算,或,当所述判断模块判断出已解析的星历数据尚未完整时,则重新启动所述接收模块301。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员可以理解,可以使用许多不同的工艺和技术中的任意一种来表示信息、消息和信号。例如,上述说明中提到过的消息、信息都可以表示为电压、电流、电磁波、磁场或磁性粒子、光场或以上任意组合。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。
对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。