一种gnss接收机的中频数据采集与回放系统的制作方法

文档序号:6019761阅读:148来源:国知局
专利名称:一种gnss接收机的中频数据采集与回放系统的制作方法
技术领域
本发明涉及GNSS卫星导航系统,尤其是一种GNSS接收机的中频数据采集与回放系统,特别适用于基于多模GNSS卫星导航系统接收机的研发。
背景技术
随着全球各种导航卫星系统的建成与完善,卫星导航定位接收机的应用广泛,从单一的GPS时代转变为多星座并存兼容的GNSS新时代,导致卫星导航体系全球化和增强多模化。而GNSS系统的逐步完善和增强,使得兼容和互操作成为新的关注的焦点之一,而如何从最优角度充分利用和发挥多系统的优势,是未来发展的一种趋势。基于软件无线电技术的GNSS接收机在微弱信号处理和多信号兼容等方面具有很大的优势。而在GNSS接收机中,为了对捕获、跟踪及定位等算法进行仿真及验证,优化算法性能,常需要实时的真实数据去对算法进行仿真及测试。发明内容
本发明提供一种GNSS接收机的中频数据采集与回放系统,其目的是,在PC平台进行算法开发时,需要真实的中频数据来对算法的功能及性能进行验证。而在进行接收机的调试中,我们需要连续的、满足基带要求的卫星数据流,而数据回放功能的实现,解决了必须去户外进行调试的问题,使得接收机的算法开发与调试,只需一次露天数据采集,而后续即可全部在室内进行,提高了开发效率,缩短了开发时间。
本发明目的是这样实现的一种GNSS接收机的中频数据采集与回放系统,其特征在于系统包括天线、设有多模GNSS接收机芯片的射频前端单元、设有SPI程序模块、串并转换模块、异步FIFO缓冲模块、USB接口时序模块以及总状态机模块的FPGA控制单元、设有固件程序及驱动程序的USB接口传输单元及上位机;天线连接射频前端单元,SPI程序模块双向连接射频前端单元,射频前端单元连接FPGA控制单元,FPGA控制单元双向连接USB 接口传输单元,USB接口传输单元双向连接上位机;射频前端单元通过天线接收射频卫星信号,经过LNA、混频及A/D采样转换后输出中频信号,SPI程序模块对射频前端单元的工作模式进行配置,实现对包括GPS、北斗2代、GLANASS及伽利略在内的多个卫星导航系统的切换,FPGA控制单元对射频前端单元输出的中频信号进行串并转换后,变为并行数据存入到异步FIFO缓冲模块,USB接口时序模块将异步FIFO缓冲模块中的数据读出后,写入到 USB接口传输单元中,上位机程序将从USB接口传输单元读取到的数据存储到本地的硬盘中。数据回放时,在上位机程序的控制下,将经过格式转换的数据流,在基带时钟的触发下, 传输到基带的中频输入端。
上位机通过程序对FPGA控制单元进行传输控制时,采用异步I/O及多线程方法和循环队列调度方法,保证高速数据传输中的连续性及实时性,最后将采集到的数据存储到本地的硬盘中。
当系统进行数据采集时,为了保证数据的连续性,就需要使上位机的读取速度大于射频前端的写入速度。因此,USB接口传输单元中的固件程序配置如下传输速率设置为高速(High-Speed),传输类型设置为批量传输(BULK传输),工作模式设置为异步SLAVEFIF0模式。当系统进行数据回放时,需要将USB固件程序配置如下传输速率设置为高速(Full-Speed),传输类型设置为批量传输(BULK传输),工作模式设置为异步 SLAVEFIF0模式。同时,在硬件连接中,异步读引脚SLRD需要直接连接到基带时钟的CLK引脚。
本发明与现有技术相比,有以下优点及显著效果
(1)在当前多个卫星导航系统并存的情况下,采用多模GNSS接收机芯片,通过 FPGA中SPI程序对射频前端芯片进行模式的切换,解决了以往的数据采集系统单纯针对 GPSLl信号或者一种信号的问题,多模GNSS接收机芯片,外接天线有源/无源可选。能够采集多个卫星系统信号,射频前端的工作模式切换由SPI程序进行配置即可,便于用户进行选择性开发,应用范围广,更为以后用户进行多兼容系统开发提供便利。
(2)数据缓存模块利用FPGA内部的嵌入式存储器来实现异步FIFO,与现有采用外部SRAM芯片缓冲相比,节省了成本,而且更能方便的修改FIFO深度大小,适应不同FPGA芯片、不同中频采样速率的场合,更利于程序的通用性、可移植性。
(3)上位机部分采用多线程技术及循环队列请求技术解决高速数据传输中数据丢失的问题,使得系统的传输速度得到大幅度提升,数据采集系统可以工作在高速、实时的场合,便于进行实时软件接收机的研发。
(4)在数据采集的功能基础上,增加了数据回放,硬件无需任何改动,只需修改上位机程序及固件驱动程序,即可实现中频数据回放。与同类只有采集功能的平台相比,功能更加强大,性价比更高。为用户进行接收机基带算法、导航解算开发提供了实时、稳定的中频信号流,使得整个研发过程之初,只需进行一次室外采集,后续实际的接收机调试完全可在室内进行,节省了调试时间,提高了开发效率。


图1是本发明的原理框图2是本发明的FPGA与射频前端芯片接口原理图3是本发明的FPGA芯片部分接口原理图4是本发明的FPGA与USB芯片接口原理图5是本发明的FPGA程序内部各模块RTL级原理图6是本发明的FPGA程序中的总状态机模块状态转移图7是本发明的射频前端单元的工作模式切换SPI时序图8是本发明的USB芯片固件程序流程图9是本发明的上位机应用程序流程图。
具体实施方式
如图1所示,本发明为基于多模GNSS卫星接收芯片、FPGA芯片、USB芯片、上位机的多模GNSS中频数据采集和回放平台,构成包括射频前端单元、FPGA控制单元、USB接口传输单元及上位机部分的系统。
其中,FPGA内部的SPI程序单独作为一个模块与射频前端单元双向通信,完成射频前端工作模式的切换。数据采集功能中,FPGA控制单元内部包含四个模块串并转换模块、异步FIFO缓冲模块、USB接口时序模块以及总状态机(FSM)模块。射频前端单元单向连接到串并转换模模块,后续为异步FIFO缓冲模块、USB接口时序模块、总状态机模块。FPGA 与USB芯片双向连接。USB芯片与上位机也为双向通信。其工作流程如下
首先,在上位机中设置要读取的数据总量;接着,上位机通过控制传输端点0发送开始命令,使USB芯片的PA. 7引脚输出高电平。FPGA芯片对USB芯片的PA. 7引脚一直进行轮询,一旦检测到高电平信号,就开始将射频前端芯片的MAG和SIGN信号通过串并转换和缓冲,并通过USB接口时序模块与USB芯片进行单向传输。我们令地址变量Addr为“2”, 就可通过FD[15:0]将并行的数据保存到USB芯片的EP6端点IN缓冲区中。当缓冲区满后, FLAG_FULL引脚的电平拉低,并将数据传输到PC中同时通知上位机读取数据。上位机在收到USB芯片发来的异步I/O的请求后,暂停当前的线程,将USB芯片中的数据读取并保存到本地硬盘中。USB芯片检测到数据被读取后,令FLAG_FULL引脚置为高电平,接着启动下一次的写端点缓冲区操作。这样循环往复,当读取到的数据总量达到预先规定的要求,就完成了一次完整的中频数据采集。
如图2所示,多模射频前端芯片与FPGA的引脚接口包含6个引脚。其中,前3个为 SPI总线的引脚,剩余3个为中频数据引脚。E_CS代表SPI总线中的SCS,E_CLK为SPI总线中的SCLK,E_DATA为SPI总线中的双向引脚SDA。DO、Dl分别代表中频数据幅度(MAG) 与相位(SIGN)信号的引脚。RF2_CLK为射频前端输出的采样频率,为FPGA芯片提供系统时钟。
如图3所示,FPGA芯片采用ALTERA公司的Cyclone III系列芯片—— EP3C40Q240C8。该器件包含39600个逻辑单元,总的内置RAM为1161216 Bits。内置嵌入式乘法器256个,PLL有4个,核心电压1.2V。封装采用PQFP。总的引脚数有M0,其中,最大可用I/O 口是120个。具体的引脚功能为射频前端的RF2_CLK接FPGA芯片的33号引脚,D1、DO接37、38号引脚,E_DATA、E_CLK_及E_CS分别接39、41、43号引脚。USB芯片的 FD15、FD14及FD13接56、55、52号引脚,SLRD接57号引脚。其余引脚为串行FLASH存储器的引脚及电源VCC和地GND。
如图4所示,USB芯片采用业界著名的Cypress公司EZ-USB FX2系列芯片—— CY7C68013A。该芯片主要包括USB2. 0收发器、串行接口引擎(SIE)、增强型8051、8. 5KB的 RAM、4K的FIFO存储器、I/O、数据总线、地址总线和集成的4个缓冲区。在本发明平台中,通过对USB芯片中固件程序的配置,外部逻辑可以对这些端点FIFO缓冲区进行读或写操作。 在该模式下,USB芯片与FPGA芯片的通信引脚为
FIF0ADR[1:0]为芯片端点选择地址线,当FIF0ADR[1:0]为00时,选择端点2 ;当为10时,选择端点6;
FLAGA、FLAGB、FLAGC和FLAGD为空满标志位,用来指示FIF0ADR[1:0]所指端点的缓冲区的空满状态;
SLOE和SLRD为USB芯片的输出使能引脚和读引脚,SLWR为写引脚,PKEND为FPGA 使能强制一个USB的IN数据包引脚,SLCS代表片选,FD[15:0]为双向数据总线;
SCL、SDA为EEPROM引脚,用来进行固件程序的下载和枚举。
如图5所示,为FPGA内部程序的RTL视图。FPGA控制单元包括4个模块,分别为串并转换模块、异步FIFO缓冲模块、USB接口时序模块以及总状态机模块。射频前端芯片的输出采样频率为16. 368M,格式为2bit的SIGN和MAG信号。串并转换模块利用移位器寄存器,将串行数据转为8Bit或者16Bit的并行数据,提高系统传输速度。而且,还计数产生了一个8分频的时钟,作为异步FIFO模块的写时钟。异步FIFO模块的缓冲区深度为8K,数据位宽为16位,写时钟为2. 046M,读时钟为16. 368M。异步FIFO模块的设计主要是考虑了 GNSS数据采集的连续性及实时性,这也意味着异步FIFO的写使能是一直有效的。因此读速率必须要大于写速率,只有这样才能保证数据不丢失。USB接口时序模块主要完成对FPGA 内异步FIFO中数据的读取及对后续USB芯片端点6缓冲区的写入的功能。
如图6所示,是FPGA总状态机模块的状态转移图。它是最重要的部分。不但需要对上位机的控制引脚进行轮询,也要考虑异步FIFO缓冲模块的读写请求,同时也要对USB 芯片端点缓冲区的空满标志进行判断,综合考虑后,才能对异步FIFO的读写进行仲裁并控制USB接口时序模块中的状态转移。
如图7所示,射频前端单元的工作模式切换主要由SPI模块程序完成。它包含3个引脚。片选已经SCS、时钟引脚SCLK以及双向信号总线SDA。当SCS为低电平时,SPI接口有效。SCS为高电平时,射频前端的SPI模块不响应。在读写时序中,SDA的数据是在SCLK 时钟的上升沿锁存,而下降沿采样。每进行一读或写操作,都必须先发SBit的控制命令,然后为32Bit的数据。只是在读操作的时候,SDA需要由输出引脚为输入引脚,并读取SDA上的数据到FPGA中。
如图8所示,USB芯片固件程序基于Cypress公司提供的开发包进行修改而成。 主要的内容有首先,增加了 1个用户自定义控制传输函数,置USB芯片的PA. 7引脚为高电平,以此来启动FPGA的运行。其次,配置TDJnitO函数,使得USB工作于异步Slave FIFO 模式,IN端点为EP6,Bulk传输,512字节/包,4重缓冲。OUT端点为EP2,Bulk传输,512 字节/包,4重缓冲。AUTOIN = AUT00UT = 1,USB芯片自动处理端点数据的输入和输出,字长(WORDffIDE)为16位或8位可选。PA. 7引脚为1/0输出口,FPGA 一直轮询此引脚。在进行数据采集时,端点6传输速率配置为High-Speed。在进行数据回放时,端点2传输速率配置为 Full-Speed。
如图9所示,上位机软件程序在初始化后建立了 2个线程。主线程负责GUI界面的响应,工作者线程则负责数据的采集及处理。2个线程协调工作,主要完成对USB设备(VID/PID)的检测、启动/停止传输操作。当主程序运行的时候,先创建USB连接,获取 USB设备句柄和端点指针。然后,等待用户点击“启动传输”按钮来启动工作者线程。在工作者线程中,采用循环队列请求,一次性建立、初始化N个缓冲区,并连续发送N个异步传输请求。这样,当数据来的时候,可以一直对数据缓存区进行写操作而无需中断设备传输。 具体的传输实现函数采用Cypress公司提供的CYAPI. lib库文件中的BeginDataXferO、 WaitDataXfer ()/FinishDataXfer ()等3个函数来完成异步1/0传输的发起、等待和接收操作。当接收的总的数据量达到用户预先定义的值后,就退出循环,并将缓冲区的数据写到硬盘的文件当中。最后释放所有的缓冲区,结束一次数据采集。
进行数据回放时,硬件方面,需将SLRD引脚接到基带的时钟(CLK)引脚;软件方面,需要同时修改USB固件程序和上位机程序。固件程序中,只需将传输用到的端点由EP6端点改为EP2端点,其余部分保持不变即可。上位机程序中,首先,利用文件函数读取本地硬盘中已经采集好的数据,并放到一个缓冲区中。然后,将批量传输的端点由EP6端点改为 EP2 端点,并将 BeginDataXferO、WaitDataXfer () /FinishDataXfer ()等 3 个函数中的参数由IN改为OUT。
权利要求
1.一种GNSS接收机的中频数据采集与回放系统,其特征在于系统包括天线、设有多模GNSS接收机芯片的射频前端单元、设有SPI程序模块、串并转换模块、异步FIFO缓冲模块、USB接口时序模块以及总状态机模块的FPGA控制单元、设有固件程序及驱动程序的USB 接口传输单元及上位机;天线连接射频前端单元,SPI程序模块双向连接射频前端单元,射频前端单元连接FPGA控制单元,FPGA控制单元双向连接USB接口传输单元,USB接口传输单元双向连接上位机;射频前端单元通过天线接收射频卫星信号,经过LNA、混频及A/D采样转换后输出中频信号,SPI程序模块对射频前端单元的工作模式进行配置,实现对包括 GPS、北斗2代、GLANASS及伽利略在内的多个卫星导航系统的切换,FPGA控制单元对射频前端单元输出的中频信号进行串并转换后,变为并行数据存入到异步FIFO缓冲模块,USB接口时序模块将异步FIFO缓冲模块中的数据读出后,写入到USB接口传输单元中,上位机程序将从USB接口传输单元读取到的数据存储到本地的硬盘中,数据回放时,在上位机程序的控制下,将经过格式转换的数据流,在基带时钟的触发下,传输到基带的中频输入端。
2.根据权利要求1所述的GNSS接收机的中频数据采集与回放系统,其特征在于上位机通过程序对FPGA控制单元进行传输控制时,采用异步IO及多线程方法和循环队列调度方法,保证高速数据传输中的连续性及实时性,最后将采集到的数据存储到本地的硬盘中。
3.根据权利要求2所述的GNSS接收机的中频数据采集与回放系统,其特征在于当系统进行数据采集时,USB接口传输单元的固件程序工作于High-Speed、BULK传输或异步 SLAVEFIF0模式,数据回放时,更新USB固件程序,使USB对应工作于Full-Speed、BULK传输或异步SLAVEFIF0模式,异步读引脚SLRD直接连接到基带时钟的CLK引脚;当系统进行数据采集时,为了保证数据的连续性,要使上位机的读取速度大于射频前端的写入速度,因此,USB接口传输单元中的固件程序配置如下传输速率设置为高速,传输类型设置为批量传输,工作模式设置为异步SLAVEFIF0模式;当系统进行数据回放时, USB固件程序配置如下传输速率设置为高速,传输类型设置为批量传输,工作模式设置为异步SLAVEFIF0模式,同时,在硬件连接中,异步读引脚SLRD需要直接连接到基带时钟的 CLK引脚。
全文摘要
一种GNSS接收机的中频数据采集与回放系统,天线连接射频前端单元,SPI模块双向连接射频前端单元,射频前端单元连接FPGA控制单元,FPGA控制单元双向连接USB接口传输单元,USB接口传输单元双向连接上位机;射频前端单元接收卫星信号,输出中频信号,SPI模块对射频前端单元的工作模式进行配置,进行多个卫星导航系统的切换,FPGA控制单元对中频信号进行串并转换后存入异步FIFO缓冲模块,USB接口时序模块将异步FIFO缓冲模块中的数据读出后,写入USB接口传输单元,上位机从USB接口传输单元读取的数据存储到本地的硬盘中。数据回放时,在上位机控制下,将经过格式转换的数据流,在基带时钟的触发下,传输到基带的中频输入端。
文档编号G01S19/23GK102508267SQ20111030711
公开日2012年6月20日 申请日期2011年10月9日 优先权日2011年10月9日
发明者潘树国, 王庆, 陈冲 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1