一种GPS系统的P码生成器、生成系统及方法技术领域
本发明涉及卫星导航技术领域,具体而言,涉及一种GPS系统的P码生成器、生成系
统及方法。
背景技术
随着人类活动探索范围的扩大和科技水平的提高,卫星导航系统已经成为信息体
系的重要基础设施,成为直接关系到国计民生的关键技术支撑系统,目前应用最广泛的是
GPS接收机,能够精确地测量P码相位进行精确定位,P码,又称为精准测距码,它可以同时调
制在L1和L2载波信号上,主要应用于精准测距、抗干扰及其保密性要求高的环境下。但由于
P码周期长,结构复杂,在对GPS系统导航模拟器关于P码的研究中,如果将P码存储在片内存
储器中,以查找表的方式提取,就会占用可编程器件过多的存储资源,若将其存储在片外存
储器中,或由上位数学仿真机下发,则不能保证P码相位的实时性,同时也使整个系统变得
更加错综复杂,很难在资源有限的硬件系统上实现P码的生成。
针对P码周期长,结构复杂,在对GPS系统导航模拟器关于P码的研究时,很难在资
源有限的硬件系统上实现P码生成的问题,目前尚未提出有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提供一种GPS系统的P码生成器、生成系统及
方法,能够在硬件上实现P码的生成,并将其存储在存储器中,且不会占用过多的存储资源。
第一方面,本发明实施例提供了一种GPS系统的P码生成器,包括:反馈移位寄存器
模块、X1序列生成模块、X2序列生成模块、延时模块和P码产生模块;其中,反馈移位寄存器
模块包括四个反馈移位寄存器,分别为第一反馈移位寄存器、第二反馈移位寄存器、第三反
馈移位寄存器和第四反馈移位寄存器;每个反馈移位寄存器根据上位机配置的参数产生m
序列,并通过反馈移位寄存器内的计数器对m序列进行截短,得到四个不同的序列;其中,第
一反馈移位寄存器输出X1a序列,第二反馈移位寄存器输出X1b序列,第三反馈移位寄存器
输出X2a序列,第四反馈移位寄存器输出X2b序列;X1序列生成模块与第一反馈移位寄存器
和第二反馈移位寄存器的输出端连接,在内部时钟控制下将X1a序列与X1b序列进行异或运
算,并截短,输出X1序列;X2序列生成模块与第三反馈移位寄存器和第四反馈移位寄存器的
输出端连接,在内部时钟控制下将X2a序列与X2b序列进行异或运算,并截短,输出X2序列;
延时模块与X2序列生成模块的输出端连接,用于根据上位机配置的参数对X2序列进行延时
操作,输出延时后的X2序列;P码产生模块与延时模块和X1序列生成模块的输出端连接,用
于对X1序列和延时后的X2序列进行异或运算,并截短,得到P码。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,四
个反馈移位寄存器为12级反馈移位寄存器,每个反馈移位寄存器有一组反馈抽头,反馈抽
头的输入端与反馈移位寄存器的最低级端连接,反馈抽头的输出端与反馈移位寄存器的最
高级端连接。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,X1
序列生成模块和X2序列生成模块内均设置有控制序列生成和截短操作的计数器。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种
可能的实施方式,其中,反馈移位寄存器模块、X1序列生成模块和X2序列生成模块内的计数
器均共用同一时钟发生器。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上
述生成器为FPGA。
第二方面,本发明实施例还提供了一种GPS系统的P码生成系统,包括:上位机和上
述生成器,上位机与上述生成器连接
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,上
位机为DSP,该DSP分别与反馈移位寄存器模块、X1序列生成模块、X2序列生成模块、延时模
块和P码产生模块连接,用于对连接的各个模块进行参数配置。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,上
述生成系统还包括:与生成器连接的数学模拟仿真器,用于接收P码,根据P码进行卫星导航
模拟仿真实验。
第三方面,本发明实施例还提供了一种应用上述生成系统生成P码的方法,该方法
包括:生成器接收上位机下发的配置参数,配置参数包括:生成器内各个计数器的初值参
数、延时模块的延时参数和反馈移位寄存器的初值参数;每个反馈移位寄存器根据上位机
的配置参数产生m序列,并通过反馈移位寄存器内的计数器对m序列进行截短,得到X1a序
列、X1b序列、X2a序列和X2b序列;X1序列生成模块在内部时钟控制下将X1a序列与X1b序列
进行异或运算,并截短,输出X1序列;X2序列生成模块在内部时钟控制下将X2a序列与X2b序
列进行异或运算,并截短,输出X2序列;延时模块根据上位机配置的参数对X2序列进行延时
操作,输出延时后的X2序列;P码产生模块对X1序列和延时后的X2序列进行异或运算,并截
短,得到P码。
结合第三方面,本发明实施例提供了第三方面的第一种可能的实施方式,其中,上
述方法还包括:根据P码进行卫星导航模拟仿真实验。
本发明实施例提供了一种GPS系统的P码生成器、生成系统及方法,通过反馈移位
寄存器模块,产生m序列,并对m序列进行截短操作,得出四个不同的序列后,再针对不同的
序列进行相应操作,由P码产生模块得出P码,可将其存储在片内存储器中,不会占用过多的
存储资源。
进一步,利用本发明实施例提供的GPS系统的P码生成系统,可以通过上位机对
FPGA中各个模块的参数进行配置,实现在硬件系统上生成P码,并利用与生成器连接的数学
模拟仿真器,接收生成器实时生成的P码,根据P码进行卫星导航模拟仿真实验,为GPS系统
的卫星定位的研究提供数据保证。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合
所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附
图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对
范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这
些附图获得其他相关的附图。
图1示出了本发明实施例所提供的一种GPS系统的P码生成器的结构示意图;
图2示出了本发明实施例所提供的一种GPS系统的P码生成方法的流程图;
图3示出了本发明实施例所提供的一种GPS系统的P码生成器生成P码的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅
是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实
施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的
实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实
施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所
有其他实施例,都属于本发明保护的范围。
考虑到P码具有周期长,结构复杂的特点,并且很难在资源有限的硬件系统上生成
的问题,本发明实施例提供了一种GPS系统的P码生成器、生成系统及方法,以实现在硬件系
统上生成P码,并进行GPS系统卫星导航模拟仿真实验,下面通过实施例进行描述,首先对一
种GPS系统的P码生成器进行详细说明。
实施例1
参见图1所示的一种GPS系统的P码生成器的结构示意图,该生成器包括:反馈移位
寄存器模块10、X1序列生成模块20、X2序列生成模块30、延时模块40、P码产生模块50,其中,
反馈移位寄存器模块10包括:第一反馈移位寄存器101、第二反馈移位寄存器102、第三反馈
移位寄存器103、第四反馈移位寄存器104。
具体实现时,每个反馈移位寄存器根据上位机配置的参数产生m序列,并通过反馈
移位寄存器内的计数器对m序列进行截短,得到四个不同的序列;其中,第一反馈移位寄存
器101输出X1a序列,第二反馈移位寄存器102输出X1b序列,第三反馈移位寄存器103输出
X2a序列,第四反馈移位寄存器104输出X2b序列。
X1序列生成模块20与第一反馈移位寄存器101和第二反馈移位寄存器102的输出
端连接,在内部时钟控制下将X1a序列与X1b序列进行异或运算,并截短,输出X1序列;X2序
列生成模块30与第三反馈移位寄存器103和第四反馈移位寄存器104的输出端连接,在内部
时钟控制下将X2a序列与X2b序列进行异或运算,并截短,输出X2序列;延时模块40与X2序列
生成模块30的输出端连接,用于根据上位机配置的参数对X2序列进行延时操作,输出延时
后的X2序列。
P码产生模块50与延时模块40和X1序列生成模块20的输出端连接,用于对X1序列
和延时后的X2序列进行异或运算,并截短,得到P码。
其中,上述提到的m序列是最长线性移位寄存器序列的简称,是一种伪随机序列、
伪噪声(PN)码或伪随机码。m序列是目前广泛应用的一种伪随机序列,其在通信领域有着广
泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量
等领域。
上述GPS系统的P码生成器的反馈移位寄存器模块10中的四个反馈移位寄存器为
12级反馈移位寄存器,每个反馈移位寄存器有一组反馈抽头,反馈抽头的输入端与反馈移
位寄存器的最低级端连接,反馈抽头的输出端与反馈移位寄存器的最高级端连接。下表中
示出了本发明实施例中优选的四个移位寄存器的初始值和反馈多项式:
寄存器
特征多项式
初始值(h)
P码X1a
1+X6+X8+X11+X12
124
P码X1b
1+X1+X2+X5+X8+X9+X10+X11+X12
2aa
P码X2a
1+X1+X3+X4+X5+X7+X8+X9+X10+X11+X12
a49
P码X2b
1+X2+X3+X4+X8+X9+X12
2aa
表1
以X1a为例,特征多项式的含义是将X1a寄存器的第6、8、11、12级进行异或运算后,
作为下一次时钟上升沿到来时第12级的输入。
进一步,上述X1序列生成模块20和X2序列生成模块30内均设置有控制序列生成和
截短操作的计数器,反馈移位寄存器模块10、X1序列生成模块20和X2序列生成模块30内的
计数器均共用同一时钟发生器。
本发明实施例提供了一种GPS系统的P码生成器,通过反馈移位寄存器模块,产生m
序列,并对m序列进行截短操作,得出四个不同的序列后,再针对不同的序列进行相应操作,
由P码产生模块得出P码,实现了在硬件结构中产生P码,并将其存储在片内存储器中,不会
占用过多的存储资源。
实施例2
为了对上述实施例所提供的一种GPS系统的P码生成器进一步理解,本发明实施例
还提供了一种GPS系统的P码生成系统,包括:上位机和上述实施例所述的生成器,其中,上
位机与生成器连接。
上述生成器为FPGA(Field-Programmable Gate Array,现场可编程门阵列),上
位机为DSP(Digital Signal Processing,数字信号处理),DSP分别与反馈移位寄存器模
块、X1序列生成模块、X2序列生成模块、延时模块和P码产生模块连接,用于对连接的各个模
块进行参数配置;进一步,上述生成系统还包括:与生成器连接的数学模拟仿真器,用于接
收P码,根据P码进行卫星导航模拟仿真实验。
具体实现时,上述GPS系统的P码生成系统中,生成器可以由Verilog在基于FPGA的
硬件平台实现,数学模拟仿真器经DSP将所需相位的参数,包括FPGA中各个计数器的初值、
延时参数和反馈移位寄存器的初值下发给FPGA,FPGA便能产生任意时刻相位的P码。
本发明实施例提供的GPS系统的P码生成系统,可以通过上位机对FPGA中各个模块
的参数进行配置,实现在硬件系统上生成P码,并利用与生成器连接的数学模拟仿真器,接
收生成器实时生成的P码,根据P码进行卫星导航模拟仿真实验,为GPS系统的卫星定位的研
究提供数据保证。
上述发明实施例所提供的系统,其实现原理及产生的技术效果和前述方法实施例
相同,为简要描述,系统实施例部分未提及之处,可参考前述实施例中相应内容。
实施例3
对应于上述实施例2所提供的一种GPS系统的P码生成系统,本发明实施例还提供
了一种应用上述系统生成P码的方法,由于上述反馈移位寄存器优选为12级反馈移位寄存
器,因此,每个移位寄存器能够产生周长为212-1=4095位的m序列,本实施例以该4095位的m
序列为例进行说明,参见图2所示的一种P码生成方法的流程图,该方法包括如下步骤:
步骤S202,生成器接收上位机下发的配置参数;
其中,上述配置参数包括:生成器内各个计数器的初值参数、延时模块的延时参数
和反馈移位寄存器的初值参数。
步骤S204,每个反馈移位寄存器根据上位机的配置参数产生m序列,并通过反馈移
位寄存器内的计数器对m序列进行截短,得到X1a序列、X1b序列、X2a序列和X2b序列;
实际上是将每个移位寄存器产生的周长为212-1=4095位的m序列进行截短的,通
过重新填装预置数来实现,将X1a和X2a截短到4092位,将X1b和X2b截短到4093位。
步骤S206,X1序列生成模块在内部时钟控制下将X1a序列与X1b序列进行异或运
算,并截短,输出X1序列;
由于X1a序列与X1b序列在每一次循环都有一位的相位进动,二者异或运算后,可
以产生周长为4092×4093=16748556位的周期序列,实际上X1序列是对其进行截短得到
的。X1序列优选定义为3750个X1a循环,也就是X1的长度为4092×3750个码片,周期为1.5S。
当X1b完成3749个循环,或者说在第4093×3749=15344657个码片时,便暂停自己的时钟控
制,在另外的343个始终内保持静止,而后,在1.5S末与X1a同时重置初始值。至此,完成了一
个完整周期的X1序列,并开始下一个周期X1序列的产生。
步骤S208,X2序列生成模块在内部时钟控制下将X2a序列与X2b序列进行异或运
算,并截短,输出X2序列;
X2a序列与X2b序列以上述步骤S206基本相同的方式输出X2序列,与步骤S206输出
X1序列唯一不同的是,在每一次产生15345000个码片后并不会立即重置初始值,而是在第
15345码片上停留另外的37个码片时间,而后重置并开始下一个周期的X2序列。也就是说X2
序列的周长是15345037。在生成X2序列前15345000的过程与生成X1序列的过程是完全相同
的,只不过X2序列多出了额外的37个码片。
步骤S210,延时模块根据上位机配置的参数对X2序列进行延时操作,输出延时后
的X2序列;
由于上述步骤S208得到的X2序列,多出了额外的37个码片的时常,因此,在步骤
S210中对X2序列进行延时,具体实现时,可以采用37位的延时移位寄存器实现。
步骤S212,P码产生模块对X1序列和延时后的X2序列进行异或运算,并截短,得到P
码。
X1与X2的周长分别是15345000和15345037,由于二者没有最大公约数,所以二者
异或后可以产生周长为15345000×15345037=2.3547×1014个码片的序列。
对于10.23M的码片速率,这一序列的周期为266.41天或者38.058个星期。然而,每
一颗卫星都在一周后进行截短,即每个P码的周期为7天,周长为6.1871×1012个码片。这样
一个X1与X2异或产生的总序列可以分配给38颗PRN号不同的卫星(除去PRN38,还剩37颗),
这是通过延时实现的。实际上,在X2与X1异或之前要进过一个37位的延时移位寄存器,即步
骤S210,选择延时寄存器的哪一位决定了延时的码片数,也决定了卫星的星号,例如,X2被
延迟i个码片,形成X2i,则Pi=X1⊕X2i。
以上每个序列的生成、截短都是由计数器控制实现,各个计数器与提码共用同一
时钟。上位机的数学模拟仿真器经DSP将所需相位的参数(包括FPGA中各个计数器的初值、
延时参数和反馈移位寄存器的初值)下发给FPGA,FPGA便能产生任意时刻相位的P码。
本发明实施例提供的应用GPS系统的P码生成系统生成P码的方法,可以通过上位
机对FPGA中各个模块的参数进行配置,将所需的参数下发给FPGA,使FPGA能够产生任意时
刻相位的P码,实现了在硬件系统上生成P码,并利用数学模拟仿真器,接收生成器实时生成
的P码,根据P码进行卫星导航模拟仿真实验,为GPS系统的卫星定位的研究提供数据保证。
综上所述的生成器、生成系统以及应用生成系统生成P码的方法,该P码的生成过
程可以概括为如图3所示的生成P码的流程图,其中,反馈移位寄存器模块的每个根移位寄
存器都可以产生周长为4095的m序列,将每个反馈移位寄存器内的m序列进行截短成为周长
为4092或者4093的X1a序列、X1b序列、X2a序列和X2b序列,X1a序列和X1b序列经过异或并截
短得到X1序列,X2a序列和X2b序列经过异或并截短得到X2序列。X2序列经过延时后再次和
X1序列进行异或和截短得到P码,每一个序列生成时,都由计数器控制,为计数器和移位寄
存器赋的初值决定了当前P码的起始相位。
应当理解,图3中生成P码的流程图中,每个步骤以及功能模块,其实现原理及产生
的技术效果和前述实施例相同,为简要描述,流程图中部分未提及之处,可参考前述实施例
中相应内容。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以
存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说
对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存
储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。