《电子技术应用》

基于DSP和FPGA的卫星信号模拟器设计与实现

2016年电子技术应用第9期 作者:江灿辉1,2,孙希延1,2,严素清1,2,纪元法1,2
2016/11/10 9:25:00

  江灿辉1,2,孙希延1,2,严素清1,2,纪元法1,2

  (1.桂林电子科技大学 信息与通信学院,广西 桂林541004;2.广西精密导航技术与应用重点实验室,广西 桂林541004)

  摘  要: 为给卫星导航接收机的测试提供高稳定度、高精度、可复现的卫星信号,设计了一款卫星信号模拟器。该系统以DSP+FPGA作为核心芯片,并集成了射频上变频电路、高速D/A转换电路、Flash芯片和SDRAM芯片。系统可以实现GPS L1信号和BDS B1I、B2I、B3双模多频点卫星信号的模拟。利用商业接收机对硬件平台生成的卫星导航信号进行测试,定位结果验证了卫星信号模拟器设计的正确性,表明该系统达到了预期设计要求。

  关键词: GPS;BDS;卫星信号模拟器;FPGA;DSP

0 引言

  随着我国北斗卫星导航系统的建立和发展,卫星导航在我国得到广泛应用。卫星导航系统已经成为一个国家国防力量的重要体现,卫星导航技术发展趋势也由单一GPS技术向多系统兼容、互操作方向发展。将BDS和GPS组合起来,可以增加接收机的观测量,提高导航定位的精度和服务质量。卫星信号模拟器可以精确生成和复现不同条件下接收机射频前端接收到的卫星信号,为导航接收机的设计和研发提供可靠、准确和易用的测试环境,从而提高接收机的研发效率,减少研发测试费用[1]。在军事领域,接收机被安装在飞机、导弹和火箭等高动态载体上,需要借助卫星信号模拟器进行测试。

1 系统总体架构

  本文所设计的卫星信号模拟器主要由DSP信息处理模块、FPGA信号生成模块、D/A转换模块、射频上变频模块、Flash、SDRAM等模块组成。系统总体架构如图1所示。

图像 001.png

图1  系统总体架构图

  DSP信息处理模块主要实现卫星导航算法。FPGA信号生成模块主要实现数字中频信号合成,FPGA通过DSP的外部存储器接口(EMIF)与DSP相连,FPGA作为DSP外接的异步存储器与DSP进行数据交互。D/A转换模块将FPGA输出的数字中频信号转换为模拟中频信号,本设计有3路D/A转换模块,一路D/A生成GPS L1和BDS B1I频点的模拟中频信号,另外2路D/A分别输出BDS B2I和BDS B3频点的模拟中频信号。3路射频上变频电路分别将D/A输出的模拟中频信号上变频至对应频点的射频信号。Flash芯片用于存储DSP引导装载所需的代码和系统初始化时所需参数。SDRAM用于存储DSP程序中占用空间大且使用频率低的变量和数组。

2 硬件电路设计

  2.1 D/A转换模块电路设计

  为了将生成的BDS、GPS多频点数字中频信号转换为模拟信号,需要多路D/A转换电路来完成。本系统选用AD9742实现中频信号的数模转换。AD9742是ADI公司的一款低功耗、高性能、量化精度为12 bit的D/A转换芯片,其最高采样速率可达165 MS/s。本系统采用3片AD9742实现GPS L1和BDS B1、B2、B3频点中频信号的数模转换,其中GPS L1和BDS B1I信号从一路DA输出。本系统GPS L1和BDS B1、B2、B3信号的中频频率分别为20.42 MHz、6.098 MHz、7.140 MHz和18.520 MHz。D/A转换模块电路示意图如图2所示。

图像 002.png

图2  D/A转换模块电路示意图

  2.2 射频上变频模块电路设计

  射频上变频模块是系统的重要组成部分,上变频模块主要实现信号调制、上变频、功率放大、功率调节等功能。本文选用ADRF6755作为上变频模块。ADRF6755集成正交调制器、频率合成器和可编程衰减器,输出信号频率范围为100 MHz~2 400 MHz,满足本设计输出信号频率的要求。ADRF6755片内集成有一个数字控制输出衰减器,功率调节范围为47 dB,步进为1 dB。本设计中信号采用差分方式从I路输入;通过SPI接口对片内寄存器进行设置,可以实现不同频率的信号输出。GPS L1和BDS B1、B2、B3信号的射频频率分别为1 575.42 MHz、

  1 561.098 MHz、1 207.140 MHz和1 268.520 MHz,对应本振频率分别为1 555 MHz、1 555 MHz、1 200 MHz和1 250 MHz。本设计的上变频模块电路示意图如图3所示。

图像 003.png

图3  上变频模块电路示意图

  2.3 DSP与FPGA接口设计

  DSP通过EMIF接口与FPGA进行通信,同时,将DSP的外部中断信号、多通道缓冲串行口(MCBSP0)信号与FPGA的I/O引脚相连,以实现DSP与FPGA之间的灵活控制及通信。DSP与FPGA电路连接示意图如图4所示。

图像 004.png

图4  DSP与FPGA电路连接示意图

  图4中,AOEN、AWEN、TCE信号为片选和使能信号,用于控制DSP与FPGA之间的读写时序;MCBSP0信号复位FPGA;EXTINT4和EXTINT5信号分别触发DSP芯片的中断4和中断5。

3 软件结构设计

  3.1 DSP信息处理模块软件设计

  DSP信息处理模块主要完成系统初始化信息提取、信号生成参数计算和系统控制参数计算等功能。首先DSP接收上位机软件下发的场景文件和星历文件,并提取相关信息。然后根据场景文件生成载体运动轨迹;根据星历文件中的星历参数计算所有卫星的空间坐标,判断卫星的可见状况;实时计算可见卫星和载体之间的伪距及伪距变化率,进而得到系统仿真起始时间的信号初始状态,并计算出初始码相位、初始载波相位、整数码片数、码频率控制字和载波频率控制字。分别对BDS和GPS进行电文编码,并预存导航电文。DSP完成系统初始化计算后,发送通道状态字给FPGA,FPGA开始生成信号。系统启动以后,DSP实时更新信号生成参数,并通过EMIF与FPGA进行数据交互。DSP算法流程如图5所示。

图像 005.png

图5  DSP算法流程图

  本设计采用数控振动器合成数字中频信号,由于卫星和用户载体存在相对运动,存在多普勒频率偏移;同理,测距码和导航电文也存在多普勒频移[2]。当用户处于高动态运动状态时,多普勒频移将对接收机的定位造成很大的影响。为实时模拟多普勒频移,需要实时调整数控振荡器的频率控制字。本文以BDS B1I信号为例,介绍多普勒效应对模拟器输出信号频率的影响。卫星播发的B1I信号的频率为1 561.096 MHz,由于卫星和用户接收设备存在相对运动,用户接收到的B1I信号的频率不精确为1 561.096 MHz。模拟器模拟的是接收机射频前端接收到的卫星信号[4],因此模拟器输出的射频信号不固定为1 561.096 MHz,NCO频率控制字K不是固定不变的,K随中频信号频率变化而变化。假设卫星和用户接收设备不存在多普勒效应,则频率控制字Kbase的计算方法为[4]:

   QQ图片20161110093559.png

  式中,IFB1I为设定的BDS B1I信号的中心频率;fclk为系统时钟频率;N为NCO中相位累加器的位宽。假设NCO中设定的频率控制字的更新间隔为Δt,本地接收机t时刻伪距为rt,则t时刻接收到的卫星信号的发射时间ts(t)为:

  QQ图片20161110093603.png

  本地接收机t+Δt时刻伪距为rt+Δt,则t+Δt时刻接收到的卫星信号的发射时间ts(t+Δt)为:

  QQ图片20161110093607.png

  用户接收设备在Δt时间内前后两次接收到卫星信号,而这两次卫星信号发射的时间间隔Δts为:

  QQ图片20161110093610.png

  由此可得,Δt时间间隔内载波频率控制字和伪码频率控制字分别为:

  QQ图片20161110093613.png

  式中,Kcarr表示载波频率控制字,Kcode表示码频率控制字,fB1I表示BDS B1I信号伪码速率。

  3.2 FPGA信号生成模块软件设计

  本设计中FPGA模块主要功能包括伪码生成、载波生成、伪码调制、载波调制、系统时序控制和数字中频信号合成。本文研制的卫星信号模拟器FPGA模块结构框图如图6所示。

图像 006.png

图6  FPGA模块结构框图

  FPGA模块以通道为基本单元,总共包含48个信号通道,1~12号通道合成GPS L1信号,13~24号通道合成BDS B1I信号,25~36号通道合成BDS B2I信号,37~48号通道合成BDS B3信号。

  系统初始化阶段,FPGA在接收到DSP发送的载波NCO参数、码NCO参数、导航电文和通道状态字后,从通道状态字中提取卫星号并选择对应的信号通道,然后进行导航电文NH调制、伪码调制、载波调制,合成与卫星号相对应频段信号的伪码和载波,最后将同一个频段的多个多通道信号进行合成,生成数字中频信号。同一个卫星导航系统的FPGA各信号通道的模块结构基本相同,BDS系统和GPS系统FPGA信号通道的差异在于信号调制过程中BDS系统MEO卫星信号需对导航电文进行NH码调制,再进行伪码调制;而GPS L1信号不需要进行NH调制。FPGA各模块主要功能为:

  (1)RTC时序控制模块。卫星信号模拟器要求时钟严格同步,即各个芯片或者器件都必须同源。该模块主要功能为协调控制系统各模块之间的工作,给DSP模块提供中断信号。

  (2)载波NCO模块。FPGA模块采用数控振荡器来生成卫星信号的数字载波。本设计中将MATLAB软件生成正余弦的幅值表存入FPGA的ROM核中,然后通过相位查询表生成相应频率的载波信号[5]。

  (3)码NCO模块。FPGA模块采用数控振荡器来生成卫星信号伪码。BDS和GPS卫星的伪码通过MATLAB软件生成,伪码序列存放在FPGA的 ROM核中,其中GPS系统的每个信号通道中的ROM核中都存储有GPS系统32颗卫星的伪码表。

  (4)信号调制合成模块。信号调制的主要功能是实现各系统导航电文的读取和同步,完成伪码、导航电文和载波的调制,实现多路信号的合成,控制通道的状态和配置等。本设计中选用12 bit的D/A模块,这要求多个通道信号合成后为12 bit,需要对每个通道输出数字中频信号的高位进行扩展,在合成信号输出至D/A模块时,只绑定合成信号的高12 bit到D/A模块的物理引脚。

  (5)数据交互模块。系统采用DSP模块的EMIF方式实现数据交互。DSP和FPGA交互的数据主要包括:载波初始相位、载波频率控制字、码初始相位、码频率控制字和通道状态字等。

4 测试结果

  根据接收机定位解算的结果与模拟器预设的载体运动轨迹进行比较,根据接收机定位误差的大小来验证模拟器信号的正确性。模拟器模拟的载体位置纬度为北纬31°、东经121°、海拔高度50 m,测试采用泰斗微电子科技有限公司生产的基带、射频一体化接接收模块TD3020C,BDS B1I信号定位结果如图7所示。由图7分析可知,在纬度和经度方向的定位误差大概在2 m之内,高度方向的定位误差在5 m之内。定位结果说明,本文所设计的卫星信号模拟器工作正常,能正确模拟导航卫星信号。

图像 007.png

图7  BDS B1I信号定位结果

5 结束语

  为便于接收机的研发和测试,本文设计了一种BDS/GPS双模多频点卫星信号模拟器,在DSP+FPGA硬件平台上实现了系统功能。对系统功能进行了测试,测试结果表明,系统可以准确模拟卫星信号。该系统可以应用于导航仪、接收机生产厂商,也可以应用于卫星导航科研院所等单位。

  参考文献

  [1] 王海峰,张升康,王宏博,等.GPS/BDS组合导航态信号模拟器关键技术研究[J].宇航计测技术,2013,33(3):17-22.

  [2] 于厚钢.高动态GPS卫星信号模拟器的基带数字信号处理实现[D].北京:北京邮电大学,2009.

  [3] 李晓敏.GPS/BD双模卫星信号模拟器的数字信号实现[D].北京:北京邮电大学,2013. 

  [4] 赵军祥.高动态智能GPS卫星信号模拟器软件数学模型研究[D].北京:北京航空航天大学,2003.

  [5] 保玲,佘世刚,周毅,等.应用于数字锁相环的NCO设计[J].电子设计工程,2011,19(14):160-162.

  


继续阅读>>