《电子技术应用》

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

2017年电子技术应用第6期 作者:左小普1,杨祖芳2,潘 伟3,郑建生1,3
2017/7/10 9:17:00

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

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

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


    摘  要: 全球定位系统(GPS基带信号可以用于导航定位设备的研发、性能测试以及生成式欺骗干扰信号的产生。针对一种基于现场可编程门阵列(FPGA)的GPS基带信号产生与控制模块进行研究,主要通过硬件电路设计和软件代码编写,利用FPGA生成C/A码、P码,利用直接数字式频率合成器(DDS)产生L1、L2载波等功能,实现了多路可控增益GPS信号同时输出。测试结果表明,本设计输出增益可调、输出频点可控,可以为射频模块提供多路基带信号及控制信号。

    关键词: FPGA;GPS;基带信号;DDS

    中图分类号: 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.

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.

继续阅读>>