高输出频率GPS接收机FPGA优化设计
扫描二维码
随时随地手机看文章
摘 要: 为使DSP芯片有充裕的资源和时间用于复杂的导航计算、输出高频率的解算结果,通过资源优化,只采用FPGA逻辑电路实现了GPS信号的捕获、跟踪、帧同步、卫星自动搜索、伪距信息生成等基带处理功能,并整理了电文、历书、伪距信息、多普勒频移的格式,以方便传输。实验表明,本方案可行有效,定位频率可达100 Hz。
关键词: 相干积分;滤波器调整;帧同步;伪距生成
当前,以FPGA+DSP为硬件平台实现的软件接收机,由于参数设置灵活、可验证新的导航算法而备受重视。伴随着新算法的日益复杂和对接收机要求的不断提高,对系统的速度提出了更高的要求[1-2]。比较GNSS接收机不同解决方案的处理能力与灵活性[3],将更多的任务交给FPGA处理以减少DSP的负担、提高系统速度。本文采用FPGA完成GPS的基带处理,保留了软件接收机参数的灵活性;节省了DSP资源,增加了定位结果的输出率;在FPGA硬件资源允许下,通道个数可以任意扩展。
1 基带处理FPGA实现方案
如图1所示,GPS信号经天线、射频下变频至中频,进入FPGA。载波环路和码环路对中频信号进行解扩,得到数据比特流。同步电路对数据流进行同步,输出伪距等相关信息。系统启动时,卫星号分配模块和多普勒限定模块接收DSP发送的配置方案。时钟发生器模块用于产生时钟脉冲。
1.1 数控振荡器设计
载波发生器按照输入值产生不同频率的同相I、正交Q两路正弦信号。码发生器除了产生不同频率的C/A码外,还具有对码相位进行移位的操作。为减少资源使用,只采用每次延迟一个码片的操作。延迟移位可减少捕获到多径信号的危险。
1.2 环路滤波器参数调整
考虑到FPGA除法运算的舍入误差和射频芯片带宽的影响,环路参数的调整工作按以下步骤进行。
(1)按滤波器典型值计算公式,计算环路的增益、载波环带宽100 Hz和码环的10 Hz的参数值。此外,为了FPGA能够利用移位进行运算,应化简计算结果。
(2)修改载波环环路增益,使环路稳定。
(3)修改载波环和码环增益,使环路波动最小。
系统使用一阶锁频环辅助二阶锁相环滤波器。当滤波器使用表1的参数时,得到图2所示的系统时域性能。从图2可以看出,第一组锁相环鉴相器的输出抖动大,系统相位误差大。同时I、Q相位图中在正交支路Q上还有很大的能量,环路收敛性差。逐步调整参数比例后,在第二组中相位误差减小到20°以内。
1.3 伪距信息输出
在位同步和帧同步完成后,FPGA能够检测到子帧头位置并通过数据流得到子帧头部的发送时刻(周内时)。为得到子帧头后任意一点的发送时刻,FPGA在检测到子帧头部时对各计时寄存器清零,然后按照各自的频率累加计时。当DSP请求提取伪距信息时,FPGA将该时刻的各计时寄存器值同时转移锁存,并传送给DSP处理。DSP计算出计时寄存器值对应的时间,再加上子帧头对应的周内时即可得到信号的发送时刻。
2 基带处理辅助模块优化设计
接收机的正常工作需要一些辅助模块,以协助接收机在信号遮挡、消失等条件下正常运行。
2.1 卫星号自动分配方法
在系统冷启动时,FPGA自动搜星。为避免自由通道同时搜索同一颗星,需要设计卫星号分配方法。自动分配方法采用申请交换方式。如果自由通道没有捕获到当前卫星,则向卫星号分配库申请新的卫星,同时将正在使用的卫星号上交。为适应热启动,DSP需要将优先搜索的卫星排在分配器前端以获得高的优先级。PRN码库可将刚刚处理过的卫星号自动变为低优先级,以保证系统及时处理新出现的卫星。
2.2 热启动载波多普勒限制
多普勒限制模块与卫星号分配库结构相同。DSP系统根据历书、时间和预存储的位置计算出可视卫星号、概略多普勒频移信息,把结果传送至FPGA,并通知FPGA使用何种搜索模式进行搜星捕获等。此处理方式可大大减少首次定位时间。
2.3 秒时钟脉冲输出
为输出与UTC同步的精准秒脉冲,在FPGA内部设计了时钟发生器。时钟发生器以系统时钟为基准,并输出时钟秒内计时累加器值tc,为DSP系统校正使用。当DSP请求伪距信息时,FPGA同时将tc锁定送出。DSP定时计算后,可得到秒内时误差tc-tu'(tu'为系统当前时间中不到1 s的部分),滤波后把校正值反馈给FPGA进行校正。
3 系统验证
系统使用表1中第二组参数时,环路的牵引过程如图3所示。从即时码支路输出可以看出,开始阶段环路积分值不断增大,最后正交支路积分值变小,同相支路解调出数据流。载波多普勒频移显示环路承受了250 Hz左右的偏差,达到了设计目标。