文献标识码: A
文章编号: 0258-7998(2011)08-108-05
随着软件无线电在卫星导航接收机上的广泛应用,卫星导航接收机的硬件部分简化为射频前端和高速数据采集模块两部分。随着GPS现代化和伽利略、北斗信号的发展,未来接收机必须能够接收多个频点的导航信号,为了避免多频下变频存在的多路频率混频的难题,可以在射频上直接进行数字采样和数据传输。
2009年,瑞士的洛桑联邦理工大学设计出了多频射频直接采样的前端,并对各级信号增益和三阶截止点进行了详细的评估。同时对多频信号的采样率要求进行了分析[1]。2009年,北京航空航天大学设计出了能够同时在射频上直接采集GPS L1、L2双信号的接收机,采样率为100 MHz[2]。
国内外目前对于多频射频直接采样的高速数据采集部分研究很少,北京航空航天大学之前的方案只是做到双频的集成,采样率较低。而洛桑联邦理工大学的射频前端方案成熟但是对于数据采集和定位分析的工作没有论述。能够同时接收GPS 3个频带信号、伽利略信号以及北斗信号的接收机需要的采样率更高更难以实现。因此多频直接采样接收机的硬件设计工作在国内外均开展较少,其中高速数据采集以及多频射频前端设计是其中的两个关键问题。
1 硬件系统设计
卫星导航系统软件接收机的思想是让宽带A/D转换器尽可能靠近射频天线,尽早地将模拟信号转为数字信号[3],最大程度地用软件来实现接收机的各种功能。
本文中数据采集系统的工作原理是,使用宽频天线接收信号后,在射频前端进行放大、滤波和增益控制工作。其中多频技术需要使用分路滤波技术。前端输出的信号被送到高速ADC进行采样,其后通过FPGA进行缓冲和处理(如FIR数字滤波器处理等)。然后PFGA将数据封装成帧结构通过以太网口将其传送到主机上。主机在物理层抓获以太网数据包,分析MAC地址后将需要的数据存储到硬盘之中。
1.1 射频前端设计
直接采样的射频前端与传统的采用下变频技术的接收机前端有所不同。如图1所示,直接采样的射频前端使用高增益GNSS天线接收信号。而信号经过LNA作第一级放大后,经过1.1 GHz~1.7 GHz带通滤波,再使用PA进一步放大。此后射频信号分为3路,分别进行滤波、放大、再滤波后合并,之后使用AGC环路调节输出信号功率。
下变频前端的混频器频率由晶振提供,通过混频对射频信号进行多级下变频,并进行放大和滤波,最后输出中频信号供ADC采集。
在射频上直接进行采样不需要本地晶振,但是所有放大器和滤波器均需要在射频下工作。多频前端需要对不同的频带进行分路滤波放大,同时将带外噪声尽可能地滤除掉。本系统使用了实验室自行设计的射频前端,能够在ADC之前得到频谱形状如图2所示的信号。它包括了GPS的L1、L2、L5信号和伽利略E1、E5a、E5b以及部分北斗卫星的信号。表1列出了上述导航系统的信号频率及带宽。
前端将信号放大至ADC可以采样的电平,对于ADC08D500, 1 bit量化的信号最小输入能量是-47.92 dBm[5]。GNSS天线的增益为50 dB,两级LNA增益共约35 dB, PA增益20 dB,前端总插入损耗约为20 dB, AGC环路增益动态范围为-35 dB~+22 dB,使用前端的增益足够对信号进行4 bit采样。
对于GNSS信号,超过2 bit采样对信噪比的改善作用不是很明显,而太高量化位数会增加数据处理的困难。本设计选择存储了1 bit和2 bit的采样数据,但是在ADC采样时仍然进行了8 bit采样,以便于FPGA进行FIR滤波。经过FIR滤波以后的数据可以进行截位处理,即截取1 bit或者2 bit进行保存。
前端设计的主要难点在于以下三个方面:射频宽频带放大器容易饱和;分路放大再合路会给信号带来很大损耗;射频AGC电路需要进行特殊屏蔽处理。
1.2 采样率的选择
卫星导航系统使用扩频通信技术,ADC采集的是噪声信号,信号频带上的混叠相当于将其他频带信号作为噪声混叠到目标频带中。因此可以容忍一定程度信号频谱的混叠。对于GPS的3个频带,根据带通采样原理可以计算需要的采样频率。计算时不仅要求信号采样后频谱自身不混叠,同时不同频带的频谱两两之间也不混叠。
对于GPS的L1、L2、L5信号(实际也包括了伽利略的E1、E5a),采样后频谱不混叠可选用的最低采样频率是158 MHz。若考虑伽利略的E5b,直采系统的最低采样率为227 MHz [1]。为了满足不同采样频率的要求,本设计采样频率合成器生成多种采样时钟,使用FPGA的SPI对频率合成器进行配置,本文1.3节中将会介绍多种采样时钟的生成方法。
1.3 ADC模块的设计
ADC08D500是美国国家半导体公司生产的高速模数转换芯片,其取样率可高达500 MS/s,使用差分输入,有效位数为8 bit,可以进行双通道采样, 而功耗仅有1.4 W[5]。
ADC08D500除了单通道能实现最高采样达500 MS/s的速率外,还能够进行双边沿采样(DES),只对某一路通道的信号在时钟信号的一个周期的上下两个边沿进行采样,利用芯片内置的两个转换器进行交错操作,最终达到1 GS/s的采样率。
ADC采样的时钟来自于频率合成器输出的时钟。为了满足ADC采样对于采样时钟的相位噪声的要求,本设计使用了10 MHz的原子钟作为频率合成器输入,通过FPGA的SPI将频率合成器输出配置成需要的频率,如230 MHz。此外本文还使用了TCXO作输入,对频率合成器输出信号的相位噪声情况进行衡量。通过相位噪声和时钟抖动的情况计算出频率合成器输出时钟总的抖动为1.24 ps,这个抖动情况能够满足ADC08D500对GNSS信号的采集需要。
ADC08D500的输出有两个通道四组8 bit差分总线,分别是I[7:0]、Id[7:0]、Q[7:0]、Qd[7:0],另外还有两组输出的差分时钟做FPGA的数据采集时钟。
1.4 高速数据传输设计
将卫星导航信号进行数字化时,通常将量化位数选取为1 bit或者是2 bit。当采样率为230 MHz时,2 bit采样数据传输需要约60 MB/s的接口传输速度和硬盘写入速度。千兆位以太网的理论速度达1 000 Mb/s,能够满足数据传输的需要,而且ISE工具自带了Ethernet MAC IP核。因此,本文中采用以太网进行数据的传输。
使用以太网传输数据,可以在FPGA实现TCP/IP协议功能,也可以直接通过以太网的物理层进行数据传输。Virtex5 FPGA内部拥有嵌入式软核处理器MicroBlaze,能够进行FPGA内部的嵌入式开发。开发以太网时通常在嵌入式系统中添加TCP/IP协议栈,常用的TCP/IP协议栈是Lwip或者是Treck协议栈[6]。但是使用TCP/IP协议,协议的每一层都会在数据帧前添加各自的帧头,再加上协议的一些检错重发等功能,真正待传输的数据的吞吐率是很低的,千兆以太网的速度通常只有200 Mb/s~300 Mb/s,不能满足本系统对于数据传输率的要求。
在物理层直接传输数据,数据传输速率几乎可以达到以太网的理论传输极限(实测能超过900 Mb,根据数据帧封装不同有所差异)。虽然没有TCP/IP协议中对丢包错包等数据完整性问题的修正功能,但可以通过上层的校验和序号发现数据帧错误和乱序。下文将讨论在主机端如何在网卡上直接捕获并存储高速数据。
整个数据采集系统的结构如图3所示,除了ADC电路的设计,主要工作在FPGA下完成。
1.4.1 FPGA数据预处理
本文使用Xilinx公司的Virtex5系列FPGA开发板ML506进行数字信号处理,开发环境基于ISE Design suite 11进行。
从ADC传送出的数字信号为8对或者16对差分数据以及1路差分时钟。对于采样数据的截位处理可以分为直接截位和滤波后截位两种处理方式。直接截位是只选择其中的高位数据进行传输,滤波后截位是接收全部的8 bit数据,将数据送给数字滤波器处理后再进行截位,本文采用先滤波后截位的方法,可以选择保存1 bit或者2 bit数据。
ADC08D500器件以230 MHz的高采样率进行8 bit量化时,输出数据率将非常大。单独对其中任一导航信号频带来说,高达230 MHz的采样率都是不必要的。对此,在FPGA中添加入FIR(有限冲激响应数字滤波器),分别滤出采样后导航信号各频带,在使用截位输出来降低量化位数的同时,使用抽取来降低采样率。以GPS系统为例,当采样率为230 MHz时,L1、L2和L5的中频分别为195.42 MHz、77.6 MHz和26.45 MHz。因此,在FPGA中生成3个FIR(带通FIR)就可以滤除带外信号,消除信号互相之间的干扰。具体实现方法是在MATLAB通过“ftdtools”滤波器设计工具,计算滤波器参数以生成COE形式的滤波器文件。
将设计出的3个滤波器文件(.COE文件)导入FPGA的FIR IPcore中,就可以生成相应的滤波器Verilog代码,即可获得对应的频率幅度响应图,其效果如图4所示。
FIR输出数据可以根据数据传输能力和需要进行截位,一般只截取最高的符号位或者选取其中2位。数据分三路进行FIR滤波之后,即可对每一路数据进行降采样处理。直接进行抽取就可以降低数据量和采样率,这将降低后续数据处理复杂度。
在对三路滤波后信号进行传输过程中,通过以太网封装帧给不同频点信号赋予不同的MAC地址。主机捕获时可以通过识别MAC地址的方法,将三路数据进行分类存储。
1.4.2 以太网数据传输
V5系列FPGA开发板上有以太网物理芯片88E1111实现开发板与电脑网卡的以太网物理层连接,ISE 11套装中的core generator可以生成Ethernet MAC IP核,直接例化它就可以进行以太网数据传输的开发[7]。其结构如图5所示。
直接接收ADC的输出数据或者是FIR截位之后的数据作为图6模块中的用户输入数据。因为设置的MAC核按照字节来传输数据,所以在MAC核前面需要添加一个FIFO进行缓冲和串并转换,进入FIFO的数据是1 bit或2 bit,按照整字节输出数据。
直接发送的数据帧是以太网物理层的数据帧,高层协议(TCP/IP协议)并没有使用到。
以太网数据帧的包头首先是8 B的前导码(7 B原语和1 B帧起始)[7],然后是6 B的目的MAC地址和6 B的源MAC地址,之后是2 bit的协议类型或数据包长度,中间是46~1 500 B的数据内容,以及4 bit的校验位,如图6所示。基于EMAC核实现以太网络协议数据报文的发送具体包括以下几个步骤:数据输出缓冲、MAC地址添加、数据FCS校验和原语添加。最终经过MAC封装以后,整个数据报文的长度为64~1 518 B。校验位和前导码是可以选择自动添加的,所以在输入数据时,通过编写状态机代码添加正确的MAC地址,设置固定字节的数据包大小就可以让数据正确地传输了。设计时设置每个数据帧除了帧头信息以外有1 024 B的数据,正好是1 KB,即可方便地观察数据包是否出错和衡量整体数据传输完整性。
千兆位以太网使用的时钟是ML506板载的晶振分频出的125 MHz时钟,通过FPGA内部的PLL合成。
1.4.3 上位机数据捕获
因为FPGA发送数据时仅使用了以太网的物理层,所以在主机抓包的时候仅需要关注数据包的MAC地址信息即可,不需要再对TCP/IP协议进行分析和处理。
因此本文采用winpcap(windows packet capture)开放代码来实现MAC数据报文的采集功能。winpcap能够为win32应用程序提供访问网络底层的能力,因此独立于TCP/IP协议的以太网数据包能够被上层应用程序捕获和保存。
由于一般的SATA硬盘的写入速度在40 MB/s~80 MB/s,为了保证数据能够完整写入硬盘,应尽可能使用高速硬盘。同时,在编写捕捉和存储数据的软件时,应该设立一定的缓冲区域。将网络采集到的数据首先写入内存之中,待累积了一段数据之后将其一次性写入硬盘,以减少CPU时间分配对写入数据完整性的影响。
2 实验结果
通过SPI配置的不同采样率对实际卫星信号进行采集,存储下来的数据文件采用实验室自研的捕获算法可以成功地捕获出GPS L1、L2、L5信号。图7是在采集的一段数据中L2、L5信号的捕获结果。通过与下变频前端采集的数据进行对比分析可以发现,两个系统捕获到的卫星数量、编号、多普勒频偏是一致的,但直接采样数据的信噪比要略高。该实验结果如表2所示。这说明该系统采集的数据是正确有效的。
本文介绍了使用射频直接采样技术的多频GNSS数据采集系统的设计实现方法。本文首先提供了主要的硬件平台结构设计方案,并对于射频前端的电路设计和高速数据采集这两个关键技术进行了详细阐述。在此基础上,本系统实现了多频多系统卫星导航信号的采集功能,并且与下变频方法采集的数据进行了对比。实验表明,该系统在性能和可扩展性方面都要优于传统的下变频采集系统,具备很好的通用性。随着技术的发展,更多更高性能的射频放大滤波器件的价格不再昂贵,运用直接采样技术的多频卫星导航接收机将具备很大的发展空间。
参考文献
[1] RIVERA P E, CHASTELLAIN F, BOTTERON C, et al.Design of a GPS and Galileo Multi-Frequency[A].VTC Spring 2009. IEEE 69th Digital Object Identifier: 10.1109/VETECS. 2009.
[2] Liu Hongquan, Kou Yanhong. Design and implementation of a GNSS signal collection system using direct RF sampling [A]. Microelectronics & Electronics, 2009. PrimeAsia 2009. Asia Pacific Conference on Postgraduate Research in Digital Object Identifier: 10.1109/PRIMEASIA.2009.
[3] 姜宇柏,游思晴. 软件无线电原理与工程应用[M].北京:机械工业出版社,2007.
[4] Mitel Semiconductor. GP2015 GPS Receiver RF Front End. 1996.
[5] National Semiconductor Corporation. ADC08D500 High Performance, Low Power, Dual 8-Bit, 500 MSPS A/D Converter.2008.
[6] ADAM D. Design and implemetation of the LwIP TCP/IP stack[M]. Swedish: Institue of Computer Science. 2001.
[7] Xilinx Inc. UG194“Virtex-5 FPGA Embeded Tri-mode Ethernet MAC User Guide”. 2008.