论文精选GPS中频信号采集及分析系统

北京儿童医院白癜风外用药 http://pf.39.net/bdfyy/bdfrczy/140306/4349562.html

陶梦,李金城

(北京交通大学电子信息工程学院,北京)

摘要:设计了一种GPS中频信号采集及分析系统,系统利用FPGA将NJ射频前端输出的数字化GPS中频信号进行字节拼接,然后通过USB上传到上位机,实现了射频前端与PC之间实时高速数据传输;研发的VC++数据处理程序将采集到的GPS信号进行文本转换和数据分析。实验证明该GPS中频信号软硬件采集系统不仅能采集GPS中频信号,而且能数据分析,为GPS基带处理算法的研究提供了可靠的原始数据。

关键词:GPS中频信号;USB;信号采集;数据分析

中图分类号:TN.1

文献标识码:A

DOI:10./j.issn.-.

中文引用格式:陶梦,李金城.GPS中频信号采集及分析系统设计[J].电子技术应用,,43(9):34-38.

英文引用格式:TaoMeng,LiJincheng.DesignofasystemforsamplingandanalysisofGPSIFsignal[J].ApplicationofElectronicTechnique,,43(9):34-38.

0引言

随着GPS全球卫星定位系统在提供定位信息和高精度时间信息上的广泛应用,国内外越来越多的企业和研究机构深入研究导航、授时芯片,而要实现这些功能,都离不开对GPS卫星信号的分析。因此,自主研发小型化、便携式GPS中频信号数据采集设备对导航算法研究及芯片设计非常重要[1]。

USB接口数据传输速率高、传输模式灵活,支持低速(1.5Mb/s)、全速(12Mb/s)和高速(Mb/s)3种传输速度以及中断传输、控制传输、同步传输和块传输4种传输模式,目前在PC领域中USB接口已广泛应用[2]。高集成度的GPS接收机射频前端芯片NJ可采集2bit格式的GPS卫星信号,通过位拼接可将实时采样率下降至4MHz左右。USB2.0的传输速度完全可以满足,而从成本和普及率方面综合考虑,使用USB2.0是一个较好的选择。

基于上述分析,本论文设计了一种GPS中频信号采集及分析系统。系统使用FPGA对NJ的数字中频信号进行字节拼接及缓存,通过USB接口芯片(FX)上传到PC。在PC端设计了专用的VC++程序,用于PC端的数据接收、格式转换及分析。

1系统软硬件总体架构

本论文的GPS中频信号采集及分析系统的软硬件总体架构如图1所示,由硬件和软件两部分组成。其中硬件部分包括GPS射频接收芯片NJ、FPGA(cycloneEP1C12QC8N,具有个逻辑单元和52个M4K存储器)和USB2.0接口芯片(FX2-);软件部分包括数据接收程序、格式转换程序、数据分析程序和主控程序组成。

NJ是一个高集成度的GPS接收机射频前端IC,其集成了LNA和本机振荡器的谐振回路,减少了外部元器件数量和PCB的面积。NJ下变频.42MHzGPSL1信号,通过2bitA/D转换器采样后,输出采样率为16.MHz,中频频率为4.MHz的2bits数字信号(符号位SGN和大小位MAG)到FPGA。

FX2-是由Cypress半导体公司所推出的USB2.0芯片,芯片将USB外围接口所需要的各种功能包装成一精简的集成电路,其内部的微处理器方便对芯片的控制与配置[3]。通过对芯片内部编程,使USB2.0芯片配置在SlaveFIFO模式下工作,异步方式传输数据,以支持图1中的高速数据通道;由于该USB2.0芯片具有I2C接口,支持对外部I2C存储器的读写,为了不影响高速数据传输,本论文用FPGA模拟了一个I2C存储器,上位机通过对I2C存储器的读写实现了对FPGA工作状态的控制[4]。

FPGA接收NJ的数字中频信号,进行位拼接和缓存,向USB2.0芯片发送数据,并通过USB2.0接口将采集的数据上传到PC。在PC端接收数据,并进行格式转换和数据分析。分析的主要任务是对GPS中频信号进行C/A码相位和多普勒频率的二维相关值计算,并由Matlab进行三维立体显示。

2FPGA逻辑设计

2.1数据拼接

GPS卫星信号是在16.MHz时钟下利用射频前端NJ接收得到的,由于该信号的位宽为2bits,而FPGA与USB之间的数据总线位宽为8bits,因此需通过“串并转换”,将串行数据转换为并行数据。此时,写入数据速度降低到原来的四分之一(4.MHz),将大大降低数据上传所需的时序要求。

2.2数据缓存

USB2.0协议拥有较快的数据传输速率,但本设计使用Windows系统PC作为上位机,属于多任务系统,运行时会分出多个时间片给各应用程序,即使只运行本设计中的软件程序,也无法保证稳定的传输速度,将影响数据的实时传输性。为解决该问题,可通过增加存储器以缓存数据。但由于外部增加RAM的成本较大,且前文中提到的数据流采集速率约为稳定不变的4MHz,而Windows平均的传输数据速率高于此采集速率,为了保证数据流的连续性,可利用FPGA内部52个M4K存储器资源生成26KBRAM作为缓冲器,把从位拼接得到的数据暂存在此RAM中,再通过USB2.0传输到上位机PC中进行存储和分析。

本系统中把这26KB缓存空间分成13个2KBRAM,将从位拼接得到的数据依次写进RAM中,同时将写满2KBRAM的缓存数据依次读出传送至FX2,之后FX2一次性将2KB数据通过USB2.0传输至上位机,由此对RAM0至RAM12这13个存储器进行循环操作,完成数据的读写操作。该方法能够最大限度地利用资源,保证了数据流的实时不间断。

缓存数据写入RAM的过程如图2(a)所示。系统在接收到RAM的写指令后,首先向RAM0写入采集到的数据。当RAM0写满后,若RAM1处于忙状态(即Rd_en[1]=1,系统从RAM1中读出数据),则终止写入,系统回归初始状态,等待写指令,否则无间断地向RAM1中写入数据。由此依次对RAM0至RAM12这13个存储器进行循环操作,完成数据的写入。该RAM写操作机制能够保证数据流的实时、不间断,符合数据采集要求。而缓存数据的读出过程如图2(b)所示。系统在接收到RAM的读指令后,首先从RAM0中读出数据,将其传送至FX2的SlaveFIFO。完成RAM0的读操作后,若RAM1处于空闲状态(即Wr_en[1]=0,系统未向RAM1写入数据),则无间断地读取RAM1中的缓存数据,否则等待RAM1完成写操作之后再继续进行读操作。对RAM0至RAM12这13个存储器进行循环读操作,直到采集结束。

2.3数据传送

数据传送即通过FX2的SlaveFIFO模式,将从RAM中读出的数据上传至上位机PC并保存,其高速数据传送通道接口图如图3所示[5]。在开始传送数据前,需通过SlaveFIFO的切换地址fifoaddr配置SlaveFIFO为2′b10,使其能够向FX2的SlaveFIFO写入数据。接收到数据传送指令后,主程序实时监控SlaveFIFO的空满标志empty、full。当发现SlaveFIFO未满时,通过控制SlaveFIFO的写时钟slwr,将从RAM读出的数据传送至SlaveFIFO的双向数据端口fd,构成了高速数据通道,完成数据上传。

2.4FPGA状态转换

FPGA主状态机的状态转换图如图4所示,整个状态机工作在72MHz时钟下,INIT状态对FX2各接口数据进行初始化,之后进入WAIT_CMD状态,等待上位机发指令。当上位机发出采集指令后,由USB向FX2内部芯片下传48B数据发送指令,再由将此48B数据写入I2C的存储器,并分析第一字节数据[6]。当第一字节为8′h0a时,状态机进入CMD_PRO状态,进行指令处理,向RAM发出写指令开始数据缓存,然后进入READ_RAM状态,在识别FX2中SlaveFIFO的空满标志等信号后,读出RAM缓存数据。关于RAM读写调用在上文中有详细介绍,这里不再赘述。当采集结束后,状态机重新回到WAIT_CMD状态,等待下一次采集。

本设计中的采集结束机制分为两种情况,一种是当要向单个RAM写入数据时系统正在读出该RAM中的数据,无法继续进行写操作,导致实时传输数据中断。此时上位机长时间接收不到数据,将自动终止接收数据,这是由数据实时传输数据速率大于上位机接收数据速率导致的,此时软件将通知用户此次数据不可靠;另一种是上位机接收到的数据已经满足采集数据的大小要求,此时上位机主动停止接收数据,FX2slaveFIFO一直处于满状态,FPGA超过规定时间的等待还不能继续上传数据,状态机回到WAIT_CMD状态,此次采集结束,等待下一次采集。

3软件操作

上位机程序使用C语言的MFC编写,操作界面如图5所示。USBConnection键可对FX2中的芯片进行配置,实现USB和FPGA数据通道连接。点击图中的Sample键,发出采集指令后,上位机开始调用FX2专用的批量端点上传函数,反复循环次来接收KB数据,等待接收数据,再通过USB传输指令,使FPGA与上位机协同工作,采集数据[7]。

数据采集结束后,可通过软件操作界面的TXTConversion窗口将数据格式转换为ASCII码或对应的0-1二进制序列,方便用户使用。

通过图5中的SV-SearchingParamenters窗口可设置参数,进行数据分析。源文件为当前数据采集转换后的0-1二进制序列文件,通过设置卫星号SVnum(1至32号卫星)、毫秒积分msnum(1ms至10ms)、量化位LObits(1bits至10bits)和多普勒频率范围LOFrequency、CA码相位C/APhase以及相对应的频率步长LOStep、C/A步长C/AStep等参数,点击Analysis键,对其进行CA码和多普勒频率的二维搜索。通过时域串行捕获算法计算得到三维数据,并利用Matlab的surf函数仿真出三维立体图,从而分析信号的可靠性[8]。

时域串行捕获算法如图6所示,即本地载波生成器在预先设定的多普勒频率范围内选择一个载波频率,产生两路相位差90°的本地载波cos和sin。将输入信号与这两路本地载波混频,得到同相分量I和正交分量Q。然后将I和Q两路分量分别与本地产生的C/A码序列进行相关运算,并通过绝对值求和Absolute或平方求和square运算得到相关值[9-10]。

4GPS中频信号采集及分析结果

本文通过图形操作界面对卫星信号进行采集、转换和分析,实现了自主研发小型化、便携式GPS中频信号数据采集设备。GPS卫星信号数据于年1月13日下午1点20分在北京交通大学第九教学楼采集,此时的18号星1ms平方和运算对应相关值如图7所示。从图中可明显观察到,该卫星的频率在4.MHz附近,码相位在点附近出现明显的相关峰。图8则是18号星进行绝对值求和对应的相关图,对比图7和图8可以看出,在信号明显的情况下两种运算都能找到相关峰,但绝对值求和得到的相关值基数更小,所需的硬件资源更少,相比之下,平方求和其相关峰则更加明显。

在全搜索的基础上,找到相关峰后还可对其进行更精确的搜索。在图号星全搜索的基础上,将频率搜索范围缩小到4.~4.MHz,并缩小频率步长为、CA码步长为2,对其相关峰进行放大分析,其结果如图9所示,该方法便于分析算法的可靠性以及信号正确性。

软件还支持多毫秒叠加,设置多普勒搜索步长、频率和CA码采样点数等。由于当前某颗卫星的信号比较弱,1ms相关值累加有可能不能准确地找出相关峰,此时可通过多毫秒累积的方法得到相关峰。图10为27号星1ms的相关值,从图中不能明显地观察到相关峰,但通过图11中的2ms运算可以看到,在频率为4.MHz、码相位为处有明显的相关峰。

5结论

本文针对GPS中频信号的采样、转换、分析提出了相应的解决方案。实验证明,基于USB2.0的数据传输方案达到了对GPS中频信号高速准确的采集目标。基于GPS的捕获算法,通过C语言实现时域串行捕获算法检测,验证了数据的可靠性,为之后的GPS算法研究奠定了坚实的基础。

参考文献

[1]曾庆喜,王庆,杨英杰,等.USB接口GPS中频信号采样器研究与实现[J].电子测量与仪器学报,(10):-.

[2]唐磊.基于FPGA的USB、Flash控制器设计[D].北京:北京交通大学,.

[3]吴瑶.USB2.0总线控制芯片FX2结构原理及应用研究[D].北京:北京交通大学,.

[4]扈啸,张玘,张连超.USB2.0控制器CY7C特点与应用[J].单片机与嵌入式系统应用,(10).

[5]胡滨,王庆,严伟.基于USB和FPGA的GPS中频信号采集平台设计[J].舰船电子工程,,9:63-66.

[6]储甜,颜锦奎.基于单片机的USB文件读写[J].电子测量技术.(8).

[7]方可燕.VisualC++6.0实战与精通[M].清华大学出版社,.

[8]王惠南.GPS导航原理与应用[M].北京:科学出版社,.

[9]叶航.GPS接收机测试信号源的设计与实现[D].南京:南京航空航天大学,.

[10]刘圣忠.基于GPS中频数据的软件接收机研究与实现[D].南京:南京航空航天大学,.

预览时标签不可点收录于话题#个上一篇下一篇

转载请注明:http://www.shijichaoguyj.com/wxjs/10417.html

网站简介| 发布优势| 服务条款| 隐私保护| 广告合作| 网站地图| 版权申明

当前时间: