《电子技术应用》

基于FPGA的GPS基带产生与控制模块设计

2017年电子技术应用第6期
左小普1,杨祖芳2,潘 伟3,郑建生1,3
(1.武汉大学 电子信息学院,湖北 武汉430072;2.武汉工商学院 信息工程学院,湖北 武汉430065; 3.武汉大学卫星导航定位技术研究中心,湖北 武汉430079)
摘要: 全球定位系统(GPS)基带信号可以用于导航定位设备的研发、性能测试以及生成式欺骗干扰信号的产生。针对一种基于现场可编程门阵列(FPGA)的GPS基带信号产生与控制模块进行研究,主要通过硬件电路设计和软件代码编写,利用FPGA生成C/A码、P码,利用直接数字式频率合成器(DDS)产生L1、L2载波等功能,实现了多路可控增益GPS信号同时输出。测试结果表明,本设计输出增益可调、输出频点可控,可以为射频模块提供多路基带信号及控制信号。
中图分类号: TN409
文献标识码: A
DOI:10.16157/j.issn.0258-7998.2017.06.016
中文引用格式: 左小普,杨祖芳,潘伟,等. 基于FPGA的GPS基带产生与控制模块设计[J].电子技术应用,2017,43(6):64-67.
英文引用格式: Zuo Xiaopu,Yang Zufang,Pan Wei,et al. The design and realization of GPS baseband generation and control module based on FPGA[J].Application of Electronic Technique,2017,43(6):64-67.

The design and realization of GPS baseband generation and control module based on FPGA

Zuo Xiaopu1,Yang Zufang2,Pan Wei3,Zheng Jiansheng1,3
(1.School of Electronic Information,Wuhan University,Wuhan 430072,China; 2.Information Engineering College,Wuhan Technology and Business University,Wuhan 430065,China; 3.School of Satellite Navigation and Positioning Technology Research Center,Wuhan University,Wuhan 430079,China)
Abstract: Global Positioning System(GPS) baseband can be used to test the performance of navigation and positioning equipment research and generate deception jamming signal.The design and realization of GPS baseband generation and control module based on field programmable gate array(FPGA) are presented, which includes hardware circuit design and code writing. It realizes multi-channel controllable gain GPS signal output at the same time, generates C/A code and P code by using FPGA, and generates carriers L1,L2 by using direct digital frequency synthesizer(DDS). It shows that the design has the adjustable output gain and the controllable output frequency, and can provide multi-channel the baseband signals and control signals for RF module.

0 引言

    随着GPS使用范围日趋广泛,其安全问题也备受关注。信息化作战情况下,对敌对目标卫星导航定位系统进行干扰,阻止其有效定位,成为了重要的作战手段。随着干扰与抗干扰领域的研究,GPS定位系统对抗干扰的要求越来越高,如何对抗种种人为的和非人为的干扰成为研究热点。目前研究产生的基带码多为C/A码,且多为单路输出,产生多种伪码并输出多路GPS信号是发展方向。因此,本文研究产生多路GPS信号同时输出和利用FPGA生成C/A码、P码。FPGA在硬件系统设计中具有很高的灵活性和可靠性。基带码的结构是可以预测的,方便利用FPGA重复产生并处理。利用FPGA产生基带码,可以研究基带码又可以探究新码型,降低了系统的复杂度,提高了系统的集成度。

1 系统总体方案

    本文主要包括硬件和软件两部分,软件部分指用Verilog产生基带码和控制信号及C程序控制DDS产生载波。硬件电路由FPGA、C8051控制电路和辅助电路组成。由外部向FPGA提供时钟信号和复位信号,FPGA用于产生基带码、增益控制信号及可控放大信号,其他预留的输入输出口留作其他用途。C8051用于向DDS提供控制信号,DDS参考时钟由外部晶振提供。系统总体设计如图1所示。

qrs2-t1.gif

    系统分为基带模块与射频调制模块两部分。基带模块生成基带信号,经调制模块调制得到L1和L2,其中载波L1的频率f1为1 575.42 MHz,载波L2的频率f2为1 227.60 MHz。每颗GPS卫星用两个L波段频率L1和L2发射载波无线电信号。

    本文主要介绍基带模块。外部提供215 MHz的时钟信号供给基带码发生器,同时外部复位信号控制基带码发生器,用于向L1和L2频点的射频调制部分提供C/A码和P码以及增益控制信号。图1中,1-2表示可以提供一路用于二进制相移键控调制(Binary Phase Shift Keying,BPSK),也可提供串并转换之后的两路用于正交相移键控调制(Quadrature Phase Shift Keying,QPSK)。C8051提供控制DDS生成正弦波信号,经倍频得到L1和L2频点的载波用于载波调制。FPGA还提供可控放大信号。

2 基带模块的实现

2.1 基带产生模块的总体设计

    基带产生模块的原理图如图2所示。由外部时钟提供的时钟信号经整数分频,得到的1.023 MHz时钟给C/A码发生器,再经L1串并转换得到L1路C/A码及其IQ两路输出;得到的10.23 MHz时钟送到P码发生器,一路P码经L1串并转换得到L1路P码的IQ两路输出;另一路P码经L2串并转换得到L2路P码的IQ两路输出,C/A码和P码也可直接输出。

qrs2-t2.gif

2.2 分频模块

    分频模块有两个:用于提供C/A码时钟的210分频和P码时钟的21分频,分别得到约1.023 MHz和10.23 MHz的时钟信号。

2.3 C/A码产生模块

    C/A码由一个10级最长线性反馈移位寄存器(maximum,m)序列对产生,即一个C/A码的长度是210-1=1 023码片。C/A码的时钟为1.023 MHz,周期为1 ms[1]。在一个C/A码码片时间内,载波L1重复1 540周。如图3所示,C/A码发生器由G1和G2两个移位寄存器构成,两个移位寄存器的输出相异或得到C/A码输出。X1历元到来时两个寄存器全部置1。

qrs2-t3.gif

    本设计中使用组合逻辑电路,输入信号有C/A码时钟clk、伪码sat_PRN_ID、复位信号reset、C/A码输出out。伪码号取21,用Modelsim仿真的结果如图4、图5所示。

qrs2-t4.gif

qrs2-t5.gif

    如图4所示,C/A码输出1,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,0,1,1…,伪码为21的C/A码前十位的8进制,表示为1 746,即二进制的1111100110,C/A码输出正确。如图5所示,在第1 023个时钟周期之后, C/A码输出恢复到开始的1111100110,符合C/A码长度为1 023这个特征。因此,C/A码发生器设计正确。

2.4 P码产生模块

    除C/A码之外,P码是GPS信号中的另一种伪码,它同时调制在L1和L2载波信号上。P码的周期为7天,码率为10.23 MS/s,码宽Tp约等于0.1 μs。加密后的P码成为Y码,它只有特定的用户才可破译。

    如图6所示,伪随机噪声码(Pseudo Random Noise,PRN)为i的卫星上产生的P码Pi是序列X1与序列X2i的模2和。序列X1的生成电路是由2个十二级反馈移位寄存器构成的,每个十二级反馈移位寄存器各能产生一个周期为4 095码片的最长线性反馈移位寄存器(maximum,m)序列,而这两个m序列通过截短,各自形成周期为4 092码片的序列X1A和周期长为4 093码片的序列X1B。截短码X1A和X1B异或相加,生成周期为4 092×4 093的长码。长码再经过截短,变成周期为1.5 s、长为15 345 000码片的序列X1。

qrs2-t6.gif

    与产生X1序列的过程相类似,另外2个十二级反馈移位寄存器最后产生长为15 345 037码片的序列X1,而序列X2i是X2的平移等价码。对于PRN i,平移等价序列X2i是由X2即延时i个码片后得到的,其中i是1~37的整数。

    序列X1与X2i异或相加后所得序列的周期长约为38星期的P码,经过截短,得到周期为一星期长的P码Pi。GPS采用了37种不同的平移等价码X2i,进而获得37种结构不同、周期均为一星期的P码Pi。GPS星座中的各颗卫星产生一个互不相同的P码,从而实现码分多址[2]

    P码发生模块包含4个十二级反馈移位寄存器X1A、X1B、X2A、X2B,计数器暂停恢复信号resume1a、resume1b、resume2a、resume2b,计数器count1a、count1b、count2a、count2b决定其值。flag1a、flag1b、flag2a、flag2b计数分别决定4个寄存器是否复位。svndaysrst为一周复位信号,当zcount计数达到403 200时,svndaysrst置1,所有计数器复位,svndaysrst复位与rst复位的初值一样。P码输出由X1输出与X2移位输出异或得到,add为延时使能信号,由flag2a和count2a决定。

    P码的仿真主要用于验证P码的初始状态以及寄存器复位、计数复位、相移等功能是否实现,伪码号取5,用Modelsim仿真P码发生器的结果如图7所示。

qrs2-t7.gif

    根据仿真图7,在复位信号rst为1时载入初值,复位信号变为0后第一个时钟上升沿到来,X1A输出0,0,1,0,0,1,0,0,1,0,0,0,X1B输出0,1,0,1,0,1,0,1,0,1,0,0,X2A输出1,0,0,1,0,0,1,0,0,1,0,1,X2B输出0,1,0,1,0,1,0,1,0,1,0,0;P码输出1,0,0,0,1,1,1,1,1,1,1,1……,前12位转换为8进制是4 377,因此P码的初始输出正确。

    图8是P码的计数复位仿真,寄存器X1A和X2A在4 092个基码之后复位,寄存器X1B和X2B在4 093个基码后复位,复位后X1A、X1B、X2A、X2B输出初始值,与此同时代表其循环次数的计数器加1。仿真图完全符合这一特征,因此P码的计数复位正确。

qrs2-t8.gif

    X1B寄存器在循环了4 093个X1B后暂停,直到X1A循环了3 750个X1A后才恢复移位。X2B寄存器与之类似,但是在X1A寄存器完成3 750个循环之后,仍维持37个基码时间不动,X2A寄存器在3 750个循环之后也保持37个基码时间不动,之后由一周复位信号使其恢复,如图9所示。

qrs2-t9.gif

    由图9可以看出,在X1B暂停时,其输出保持不变,暂停时刻flag1aout为3 749,恢复时flag1aout为4 092,相隔343个基码时间。X2B暂停时,其输出亦保持不变,flag1bout恢复计数后,从1计数到37,X2A和X2B正好开始移位输出,符合P码的原理。当X1A循环3 750个循环后zcountout加1,当zcountout为403 200后复位。综上所述,P码发生器的设计正确。

    对于上述P码产生程序,PRN号确定时,输出的P码由4个寄存器的值以及计数器决定,如果知道这些值并作为初值输入到程序中,就可以输出任意时刻的P码。

3 控制模块的实现

3.1 载波发生模块

    载波发生器采用ADI公司的集成DDS芯片AD9956,通过对频率控制字(Frequency Tuning Word,FTW)和分频字R的控制,能够输出特定的频率值[3]

    输出信号频率与频率控制字关系如下:

    qrs2-gs1.gif

式中,fo表示输出信号的频率;FTW表示48位的控制字,取值范围是0~247,R表示分频系数,可取1、2、4、8;fREFCLK表示输入时钟390 MHz。

3.2 载波发生控制模块

    载波发生控制模块采用C8051F,向DDS提供14个控制接口,用于对DDS提供控制信号的调谐数据。根据后续调制电路的要求,需要获得70 MHz的信号用于得到L1频段的载波,60 MHz的信号用于得到L2频段的载波,因此需分别对产生L1频段和L2频段的DDS进行控制。

3.3 增益控制模块

    对载波及已调信号增益的控制,主要由FPGA提供增益控制信号实现,用芯片HMC468LP3和HMC273MS10G配合实现。只需对电平控制就可实现增益的改变。

4 系统测试与分析

4.1 测试仪器与设备

    信号源采用Rohde & Schware SMB100A Signal Generator,频率范围为9 kHz~6 GHz。频谱仪采用Rohde & Schware FSC6.Spectrum,频率范围为9 kHz~6 GHz。

4.2 C/A码频谱分析

    在频域,一个码速率为1.023 MHz的随机序列的功率谱函数在1.023 MHz的整数倍处为0。C/A码虽然不是完全随机的,但是其功率谱与随机序列相似[4]

    图10为调制之后的频谱,载波频段L1为1 575.42 MHz,第一个零点M2的频率为1 576.43 MHz,与中心频率L2相差约1.023 MHz。可以看出,第一副瓣相对于主瓣输出功率衰减约15 dBm,与实际的GPS信号基本符合。

qrs2-t10.gif

4.3 P码频谱分析

    如图11所示,调制之后的频谱中心频率为1 575.42 MHz(M2点处),之后的第一个零点M1为1 585.65 MHz,相隔10.23 MHz。如图12所示,调制之后的频谱中心频率为1 227.6 MHz,之后的第一个零点M1为1 237.83 MHz,相隔10.23 MHz,达到要求。

qrs2-t11.gif

qrs2-t12.gif

5 结论

    GPS基带信号可以通过调制而依附在正弦形式的载波上,然后卫星将调制后的载波信号播发出去。因此,GPS基带信号的研究对于导航定位设备的研发、检测及生成式干扰信号的研究具有重要的应用价值。本文提出的基于FPGA产生的GPS基带信号具有输出增益可调、输出频点可控,可以为射频模块提供多路基带信号及控制信号等特点。

参考文献

[1] 王伟权,刘昌孝.用FPGA实现GPS的C/A码发生器[J].桂林电子科技大学学报,2006,26(5):347-350.

[2] 谢钢.GPS原理与接收机设计[M].北京:电子工业出版社,2009.

[3] Rochester Electronics.AD9956 data sheet[Z].2013.

[4] 瞿铁锚.基于FPGA的GPS星座模拟器的研究与开发[D].南京:南京航空航天大学,2007.

[5] 王立宾,贺宏.GPS M码、C/A码和P码性能比较研究[J].测控遥感与导航定位,2008,38(4):34-36.



作者信息:

左小普1,杨祖芳2,潘  伟3,郑建生1,3

(1.武汉大学 电子信息学院,湖北 武汉430072;2.武汉工商学院 信息工程学院,湖北 武汉430065;

3.武汉大学卫星导航定位技术研究中心,湖北 武汉430079)

继续阅读>>