标题:
GPS系统中伪码P码基于FPGA的扩展
[打印本页]
作者:
pengpengpang
时间:
2014-7-29 23:01
标题:
GPS系统中伪码P码基于FPGA的扩展
摘要:针对GPS系统使用直接序列扩频调制所使用的精测距码P码,P码具有定位精度高,长周期,结构复杂等的特性,以及其广泛的军事应用。通过对P码的产生原理进行深入研究,采用在Xilinx ISE中使用Verilog HDL语言,对P码产生电路进行硬件实现的方法,产生指定PRN号卫星的P码,通过对生成结果进行验证以及特性分析,以解决GPS中长周期精测距码(P码)不借助导航信息中短周期测距码的引导,实现P码的快速直接捕获的问题。
全球定位系统(Global Positioning System,GPS)是美国从上世纪70年代开始规划研制,历时21年,于1994年全面建成,是美国继阿波罗登月、航天飞机之后的第三大航天工程,利用GPS卫星实现全球、全天候、实时、连续导航定位的,具有海、陆、空全方位实时三维(时间、速度、方位)导航与定位能力的第二代卫星导航系统,是目前全球应用最为广泛、最先进的卫星导航定位系统。
GPS系统采用典型的CDMA体制,这种扩频调制信号具有低截获概率特性,系统利用直接序列扩频调制技术,以码分多址复用的形式区分各个卫星信号。GPS卫星信号导航电文为50bps的二进制数据码,利用伪随机噪声码(PRN)对导航电文进行扩频,码片速率远高于其本身的数据码速率,对信号的频谱进行扩展,再使用扩展的码元去调制L波段载波,可以有效地将低速率导航电文发送到接收端。目前现代化的GPS信号有3种载波方式:载波L1频段1 575.42 MHz,L2民用信号(L2C)频段1 227.6 MHz,和一个位于1176.45 MHz成为L5频段的载波。
GPS系统测距伪码有C/A码和P码(Y码),以及新的军用M码叠加在L1和L2频段上。基于码分多址复用(CDMA)的GPS需要其信号中伪码具有良好的自相关和互相关性能,PRN(Pseudo Random Noise Code伪随机噪声码)码序列不仅具有高斯噪声所有的良好自相关特性,而且具有可预知性和周期性的规律,它与自身的相移序列相加,结果仍然为PRN码序列,只是改变了其相位。P(Y)码又称为精确测距码,它同时调制在L1和L2载波信号上,主要应用于精测距、抗干扰及其保密性要求高的环境下。P码是一种高精度定位码,利用P码进行卫星定位要比利用粗测距码C /A码定位精度提高10倍左右,加密后的P码称为Y码,只有特许用户才能破译使用,多用于军事应用当中。由于P码的特点是长周期,结构复杂,因此对P码的捕获一直是备受关注,在P码捕获的过程中需要本地复现P码,产生P码周期内指定PRN号卫星任意时刻的P码数据,对提高P码的捕获研究有着非常重要的意义。
1 P码的产生原理
GPS卫星信号扩频使用的P码,序列长度2.35x1014,速率为10.23 MHz,序列周期为266.41天。在实际应用中,GPS卫星使用序列中的一个星期的码元,作为卫星使用的扩频伪码序列,所以其长度为6.287×1012,远大于C/A码的1 023个码元长度。
依据ICD-GPS-200C,P码的生成主要由4个称为X1A,X1B,X2A和X2B的12位移位寄存器产生PRN序列。图1中给出了这种寄存器方案的详细框图。GPS基于CDMA技术的直接序列扩频调制技术,在P码的情况下,延时的整码片数与对应的卫星PRN号相同。X1A和X1B寄存器的输出由一个异或电路形成X1码发生器,X2A和X2B寄存器输出异或形成X2码发生器,X2结果馈送给一个移位寄存器,延迟卫星PRN号的码片数,然后与X1结果异或合并产生P码。
P码的设计规范要求4个移位寄存器每一个都有一组反馈抽头,这些抽头用异或电路相互合并在一起,并反馈到各个寄存器的输入级。描述这些反馈移位寄存器方案的多项式表达示在表1中。
这4个反馈移位寄存器产生的m序列的自然周期是经过截短的,寄存器X1A和X2A都是在4092个码片之后复位,去掉了它们自然的4 095个码片序列的最后3个码片;寄存器X1B和X2B是在4 093个码片后复位,去掉了它们自然的4 095个码片序列的最后2个码片。这导致在每个X1A寄存器循环,X1B序列相位相对于X1A序列都滞后一个码片,结果在两个寄存器之间有相对相位进动,在X2组寄存器之间也发生同样的相位进动。
P码发生器4个反馈移位寄存器所用多项式和初始状态如表1所示。
在GPS星期的起始点,所有移位寄存器均置于初始状态,在每个移位寄存器历元的末尾,移位寄存器也复位到其初始状态。所谓“4092码片截短”具体功能就是当X1A寄存器的输出序列等于第4 092个码片的时候。输出“1”将X1A复位到初始状态。截断码片状态示于表2中。
X1历元是由X1A的复位信号3750分频得来的,已经验证过X1A历元的周期为4 092x3 750=15 345 000个码片(1.5 s),而X1B的历元时间为4093x3 749=15 344 657个码片,滞后于X1历元343个码片。对于X1B的驱动时钟不是直接来自于P码发生器模块的输入,而是经过一个时钟控制模块。此模块检测来自于X1历元的恢复信号和X1B历元的暂停信号的上升沿来控制X1B工作状态。由于X1B历元快于X1历元343个码片,所以X1B经过一个历元之后就被自己产生的历元信号挂停,然后等待343个码片时间之后,被X1历元恢复工作,从而达到同步进动的效果。
X1历元的重要的功能是为GPS标准时间进行计时和标定。X1历元为GPS系统中重要的所谓“Z计数器”提供计数时钟,其中低19位(这个计数器又被称为周时间计数器,即time-of-week,简称TOW)是以403200为模来计数的。可以计算有1.5x403 200÷60÷60÷24=7天。
X2A/X2B移位寄存器相对于X1A/X1B移位寄存器来说也有相位进动,这表现在每一个X1周期在X2历元和X1历元之间有37个码片的相位进动,这是由将X2周期调整成比X1周期长37个码片而产生的。控制X2A/X2B的原理基本上和控制X1A/X1B相同,但有2个区别:1)挂停信号不是像X1A/X1B一样来自于X1历元而是来自于周复位模块,也就是说X2A/X2B每星期才暂停一次(发生在每个星期的结束时间段,即1.5 s的EOW时间段内X2A/X2B历元发生的时刻),而不是发生在每个历元(即每个1.5 s)的时刻。2)恢复信号也是每星期一次(发生在每个星期的开始时间段,即1.5 s的SOW时间段内),它发生在SOW时间段内中的X2A历元时刻之后的37个码片。在这37个码片时间段内,X2A/X2B均由暂停时钟控制,使得它们在这段时间内保持不变。因此,X2移位寄存器的实际周期为15345037个码片时间,比X1的要长37个。在这里需要说明的是,EOW和SOW均来自周复位模块。Z计数器的零状态下的X1历元被定义为当前星期的开始(SOW),大约在星期六到星期天的午夜,这里午夜的定义是指调整宇宙时间(UTC)的零点也就是所谓的格林威治子午线时刻。而EOW则是SOW的前一个X1历元。
P码的发生是X1与X2的延时叠加而来,X2的延时不像C/A码从移位寄存器上抽头而来,而是直接经过一个37位的移位寄存器,每位m序列的抽头分别对应37颗卫星的PRN号,因此每颗卫星的X2码延时输出码片时间就等于其PRN号,使各个都能产生自己独特的P码序列。
2 P码产生器设计
依据P码产生方框图,P码产生模块分为时钟控制模块、反馈移位寄存器组、译码截止模块、3750/3749分频模块、Z计数器及周复位信号产生模块、37位移位寄存器组。各个模块功能如下:
1)时钟控制模块:依据控制信号,定时控制X1B,X2A和X2B 3个移位寄存器工作,时钟为系统时钟10.23 MHz;
2)反馈移位寄存器组:分别实现4个12级线性反馈移位寄存器(X1A,X1B,X2A,X2B)的功能,根据反馈逻辑多项式各自生成输出移位序列;实现过程中,直接设计触发器的复位整合其初始化量,如初始化时该触发器输出为“1”,则直接设置其触发器复位时输出为“1”,省略初始化信号赋值模块;
3)译码电路:根据各移位寄存器生成序列,对其输出序列进行截断,并产生复位信号使移位寄存器组复位到其初始状态;
4)Z计数器,周复位信号产生器:触发为X1历元,周时间计时,并产生当前星期的开始(SOW)和当前星期的结束(EOW)信号,供X2A和X2B两个移位寄存器时钟控制信号实现时钟的暂停与恢复功能;
5)37位移位寄存器组:A和B移位寄存器的输出(第12级)由异或电路合并起来,形成X1序列,及C和D形成的X2序列,对X2组移位器寄存器产生序列进行移位,移位与所需卫星对应的PRN号一致,输出后与X1组序列再异或操作后,产生对应PRN号的P码。
3 P码产生器仿真
依据表3中P码的码相位分配和码序列初始段,得到卫星PRN号为2的P码数据前12个P码片(八进制)为4000,以此于仿真结果进行验证。
如图,为在Xilinx ISE 10.0中生成的PRN号为2号卫星的P码的仿真信号输出图,图中P_code为P码产生的序列,Select[5:0]为卫星信号选择输入,在此为6’H02。
4 结论
通过对设计结果分析,可以看出P码的长周期,以及结构复杂的特点,也正是因此才保证其应用在精测距、抗干扰及其保密性要求高的环境下,在P码捕获的过程中本地产生复现P码,产生P码周期内指定PRN号卫星任意时刻的P码数据,以解决在不借助短周期粗测距码的引导下,对P码实现直接快速捕获。
作者: 作者:王伟伟,杨长龙 来源:《电子设计工程》2013年第24期
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0