本文首先研究设计出双模单通道的GPS\BD中频数据采集系统,基于USB3.0与FPGA相结合的技术,完成对卫星信号的采集和传输,接着对中频频域并行码捕获算法进行了研究,确立了基于快速傅里叶变换FFT并行捕获算法的方案,通过MATLAB仿真验证了该方案的可行性。

卫星中频数据是进行软件接收机研究的前提。为了实现设计要求,不仅要考虑器件的实时性和高效性,还要顾及系统的可扩展性。射频前端模块将卫星信号中频化,采用目前高速数字信号处理广泛应用的现场可编程门阵列FPGA作为系统控制中心,对数字中频信号进行处理,实现数据格式转化、数据缓存和USB状态控制,对USB进行端点配置、编写固件程序和PC软件设计,再通过USB接口实现数据的快速传输和PC存储,搭建硬件平台,实现对GPS L1和BD B1信号的数据采集。系统原理框图如图1所示。

其中,天线负责GPS\BD卫星信号的接收,射频前端将接收到的卫星信号放大,滤波,下变频和模数转换为中频信号后输出;FPGA芯片实现射频前端MAX2769的控制与中频信号的接收和处理,转换数据格式送入USB芯片端点FIFO缓冲,构成主从FIFO结构与CYUSB3014之间实现高速数据传输,再通过USB3.0接口传输数据并在PC端完成采集和存储。

本文设计搭建的GPS\BD中频信号采集系统,硬件部分主要包括:射频前端和中频信号采集单元,其中中频信号采集单元包括FPGA控制和USB高速数据传输电路的设计。

射频前端的主要功能是将天线接收到的射频信号进行下变频,对这些微弱信号进行放大,将输出的信号转换为数字形式,并能够在可编程数字信号处理器中处理,例如DSP、FPGA 和PC等。

本文射频前端设计方案采用MAX2769芯片完成,由于其内部集成了完整的接收机链路,只需配合少量的外围元器件就可以实现GPS、北斗、伽利略等多种卫星信号的接收和处理,构建一个完整的低成本接收机方案。芯片内部集成了双通道低噪声放大器、温补晶体振荡器 、混频器、基带可编程增益放大器、抑制镜像滤波器、Σ-Δ小数N分频频率合成器,总噪声系数低达1.4dB。集成的ADC 既可以为I、Q通道各输出1或2bit数字中频信号,也可以I支路输出三个量化位。

FPGA采用Altera公司生产的Cyclone IV系列EP4CE115F芯片,该芯片数据传输速率高达3.125Gbps,片内集成个逻辑单元(LE),234K位RAM,多达360个嵌入式18×18乘法器,用户I\O口多达532个,资源相当丰富。采集系统中硬件连接设计如图2所示。

图2所示编程控制MAX2769芯片工作在SPI模式下,通过3线接口SDATA(串行数据),SCLK(串行时钟)和CS(片选)完成其内部10个寄存器的配置,射频前端对高频信号(L1\B1)进行处理并降至中频(IF),经过单通道系统采集获得实时2bit数字中频数据(符号SIGN和MAG)后,送至基带信号处理器。

USB芯片采用CYUSB3014来实现。该芯片集成了USB3.0和USB2.0物理层(PHY)以及32位ARM926EJ-S微处理器,具有强大的数据处理能力,并可用于构建定制应用,同时还配有512kb的内置SRAM以及更多的接口,具有强大的数据处理能力。系统利用通用可编程接口GPIF II的Slave FIFO方式实现数据的上传需求,由外部控制器控制USB芯片在从属FIFO模式下工作。

图2中FX3芯片与FPGA连接部分,FPGA对接收到的数据进行处理,控制USB芯片工作状态,将数据传送到USB端口FIFO。CLK为16.369MHz接口时钟,由芯片内部产生;FLAGA和FLAGB为CYUSB3014返回给FPGA的状态信号,FIFO 标志位管脚,反映USB端口FIFO当前的状态,FPGA根据返回的状态信号决定是否对CYUSB3014芯片进行数据的读写。

卫星中频数据采集系统先利用射频芯片、FPGA芯片等硬件进行前期的数据传输等处理,再通过USB接口送入PC机进行后期软件处理。软件设计包括三大部分:FPGA编写对射频前端控制,中频数据接收传输、USB芯片工作的Verilog程序和CYUSB3014固件程序、PC端采集存储程序设计。

FPGA程序主要完成射频前端控制、USB芯片的接口控制以及生成缓存FIFO,实现数据传输和控制。将中频信号先缓存在USB接口芯片的缓存区内,同时按照FX3的数据接收时钟发送给FX3,FX3通过特定的固件程序自动完成数据向上位机的发送,通过上位机软件对接收来的数据进行存储。

FPGA程序开发环境为QUARTUS II,编写Verilog HDL代码,经过SPI串行协议配置设置参数分别接收GPS和北斗卫星信号,实现多种卫星信号的中频数据接收。首先通过时序传输对射频前端进行配置,将串行输入端口设置为从ADC输出2位CMOS值,每个寄存器有28个比特位,4个地址位。配置时,数据在先地址在后,串行数据MSB在先,LSB在后。

MAX2769的串行配置时序如图3所示。

经过配置后射频前端输出的卫星中频信号,FPGA将2位串行数据经缓存转换成16位并行数据传输到USB并行数据总线,同时采用Slave FIFO从机方式对USB芯片进行读写操作的控制,将传送至端点FIFO中的并行数据处理后供上位机完成存储和处理。

固件程序主要完成对CYUSB3014芯片的初始化,配置GPIF II接口为32位同步Slave FIFO工作模式,外部处理器可像对普通FIFO一样对FX3 FIFO进行读写;将经过采样和FPGA处理后的数据存入CYUSB3014的FIFO缓冲区,并发给主机,接收和执行PC机的指令,通过UART与FPGA进行通信。

上位机程序完成数据的传输以及校验,确保数据传输过程正确无误,同时还要实现传输的即时性、灵活性以及简单明了的界面信息显示。上位机软件读取USB端点FIFO的数据,保存到硬盘文件,为接下来的数据测试以及基带处理算法研究提供数据。

默认采集的GPS L1信号经射频前端下变频为3.996MHz的模拟中频信号,BD B1中频中心频点为3.MHz,通过A\D采样为2bit数字中频信号,采样时钟为16.369MHz。MAX2769芯片变频频率范围为1550~1610MHz,为验证射频前端模块能否正确采集卫星信号,并进行处理,下图4所示为射频开发板连接实物图, 示波器所示对MAX2769配置后输出时钟信号频谱如图5所示。

射频模块屏蔽罩可以有效减少外界环境对射频信号的干扰,保证接收机能稳定的工作。卫星中频数据送至信号处理部分,采用的HG-USB30-A开发板,带有USB3.0接口,适用于FPGA数据的采集,控制和开发。

为验证设计的GPS\BD双模单通道中频信号采集系统是否正确工作,搭建实验环境,在室外使用该采集系统进行卫星信号采集,通过上位机软件,将接收到的卫星中频数据保存到硬盘,用16进制文本器查看数据。

中频信号采集系统硬件平台如下图6所示,图7所示为上位机软件采集到的GPS文本数据。

信号捕获是GPS接收机内信号处理的第一步,是信号跟踪定位、解调导航等后续处理过程的前提,由于卫星的移动和信号的传播,可见卫星及其信号的载波频率,码相位等关键参数是不断变化的,因此接收机需要通过捕获来确定这些参数,对其后跟踪环路进行初始化。

而如何实现高动态下的快速捕获是难点,传统时域串行滑动相关算法,由于其捕获时间长,资源和功率消耗大的缺点,本文研究基于FFT的频域并行码相位捕获算法并对其进行改进。

1算法分析

FFT算法的核心是解扩输入信号,把本地伪码的时域循环运算与中频信号转换到频域中的乘法运算,其本质即输入的中频信号与码相位的二维搜索完成同步对齐的过程,长度为N的有限长序列x(n) 的DF为:

根据式(4)可以较快地搜索到BD/GPS输入信号和本地信号之间的相关性,进而找到C/A码的起始位置和多普勒频率初始值。

FFT改进算法的系统框图如图8所示。

本文FFT算法基于快速傅里叶变换和信号卷积的关系,具体的捕获过程为:

(1)用采集的中频信号数据与本地产生的载波的同向和正交两路信号相乘,再通过低通滤波器得到基带复信号;

(2)对复信号做FFT;

(3)对本地伪码发生器的输出伪码信号做FFT处理并对它取共轭;

(4)对(2)、(3)步骤的结果进行复数相乘并做快速傅里叶反变换IFFT;

(5)对第(4)步的结果取模与门限比较并判定捕获结果,大于门限即可认为捕获成功。

通过不断调整本地载波频率和伪码相位,直至载波频率差和伪码相位差为零的过程,达到理想的状态,实际上只要大于设定门限,在信号存在且强度足够的情况下就会实现强自相关峰的结果完成信号的捕获。

2算法实现

用MATLAB编写基于FFT的GPS\BD卫星信号捕获程序,该实验中采用中频信号系统采集到的数字中频信号,中频数据频率为fc=Hz,采样频率为fs=16367667Hz,多普勒范围±6500Hz,多普勒扫描步长500Hz。C\A码的码元速率为1.023MHz,整个码周期包括1023个码元,根据一个C\A码周期为1ms,有5714个离散的采样数据,完成捕获处理必须至少用1ms的数据。

图9所示为捕获得到的各通道卫星信息结果显示图,GPS的28、20号卫星和BD的3、14号捕获三维图如图7所示。尖峰为信号捕获到的相关峰值,当捕获结果中未出现峰值,表明中频信号中不包括该号卫星的信号,如果出现了最大相关峰值,说明采集到的中频信号中包含该号卫星的信号。从图7中可看出此种算法得到了很好的相关峰.

作者信息

韩晓冰,高梦,汪金萍;西安大学通信与信息工程学院,西安北斗安全年技术有限公司。