GPS中频信号采集及分析系统规划 (gps中频信号频率)
整理分享GPS中频信号采集及分析系统规划 (gps中频信号频率),希望有所帮助,仅作参考,欢迎阅读内容。
内容相关其他词:gps中频信号采集怎么设置,gps采集频率,中频信号采样,gps采集频率,gps采集频率,gps中频信号采集怎么设置,gps采集频率,gps中频信号频率,内容如对您有帮助,希望把内容链接给更多的朋友!
NJ是一个高集成度的GPS*射频前端IC,其集成了LNA和本机振荡器的谐振回路,减少了外部元器件数量和PCB的面积。NJ下变频.MHzGPSL1信号,通过2bitA/D转换器采样后,输出采样率为.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卫星信号是在.MHz时钟下利用射频前端NJ接收得到的,由于该信号的位宽为2bits,而FPGA与USB之间的数据总线位宽为8bits,因此需通过“串并转换”,将串行数据转换为并行数据。此时,写入数据速度降低到原来的四分之一(4.MHz),将大大降低数据上传所需的时序要求。 2.2数据缓存 USB2.0协议拥有较快的数据传输速率,但本规划运用Win*PC作为上位机,属于多任务*,运行时会分出多个时间片给各使用程序,即使只运行本规划中的软件程序,也无法保证稳定的传输速度,将影响数据的实时传输性。为搞定该问题,可通过增加储存器以缓存数据。但由于外部增加RAM的成本较大,且前文中提到的数据流采集速率约为稳定不变的4MHz,而Win平均的传输数据速率高于此采集速率,为了保证数据流的连续性,可利用FPGA内部个M4K储存器资源生成KBRAM作为缓冲器,把从位拼接得到的数据暂存在此RAM中,再通过USB2.0传输到上位机PC中进行储存和分析。 本*中把这KB缓存空间分成个2KBRAM,将从位拼接得到的数据依次写进RAM中,同时将写满2KBRAM的缓存数据依次读出传送至FX2,之后FX2一次性将2KB数据通过USB2.0传输至上位机,由此对RAM0至RAM这个储存器进行循环*作,完成数据的读写*作。该方式能够最大限度地利用资源,保证了数据流的实时不间断。 缓存数据写入RAM的过程如图2(a)所示。*在接收到RAM的写指令后,首先向RAM0写入采集到的数据。当RAM0写满后,若RAM1处于忙状态(即Rd_en[1]=1,*从RAM1中读出数据),则终止写入,*回归初始状态,等待写指令,否则无间断地向RAM1中写入数据。由此依次对RAM0至RAM这个储存器进行循环*作,完成数据的写入。该RAM写*作机制能够保证数据流的实时、不间断,符合数据采集要求。而缓存数据的读出过程如图2(b)所示。*在接收到RAM的读指令后,首先从RAM0中读出数据,将其传送至FX2的SlaveFIFO。完成RAM0的读*作后,若RAM1处于空闲状态(即Wr_en[1]=0,*未向RAM1写入数据),则无间断地读取RAM1中的缓存数据,否则等待RAM1完成写*作之后再继续进行读*作。对RAM0至RAM这个储存器进行循环读*作,直到采集结束。 2.3数据传送 数据传送即通过FX2的SlaveFIFO模式,将从RAM中读出的数据上传至上位机PC并保存,其高速数据传送通道接口图如图3所示[5]。在开始传送数据前,需通过SlaveFIFO的切换*fifoaddr配置SlaveFIFO为2′b,使其能够向FX2的SlaveFIFO写入数据。接收到数据传送指令后,主程序实时监控SlaveFIFO的空满标志empty、full。当发现SlaveFIFO未满时,通过控制SlaveFIFO的写时钟slwr,将从RAM读出的数据传送至SlaveFIFO的双向数据端口fd,构成了高速数据通道,完成数据上传。 2.4FPGA状态转换 FPGA主状态机的状态转换图如图4所示,整个状态机工作在MHz时钟下,INIT状态对FX2各接口数据进行初始化,之后进入WAIT_CMD状态,等待上位机发指令。当上位机发出采集指令后,由USB向FX2内部芯片下传B数据发送指令,再由将此B数据写入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至号卫星)、毫秒积分msnum(1ms至ms)、量化位LObits(1bits至bits)和多普勒频率范围LOFrequency、CA码相位C/APhase以及相对应的频率步长LOStep、C/A步长C/AStep等参数,点击Analysis键,对其进行CA码和多普勒频率的二维搜索。通过时域串行捕获算法计算得到三维数据,并利用Matlab的surf函数*出三维立体图,从而分析信号的可靠性[8]。 时域串行捕获算法如图6所示,即本地载波生成器在预先设定的多普勒频率范围内选择一个载波频率,产生两路相位差°的本地载波cos和sin。将输入信号与这两路本地载波混频,得到同相分量I和正交分量Q。然后将I和Q两路分量分别与本地产生的C/A码序列进行相关运算,并通过绝对值求和Absolute或平方求和square运算得到相关值[9-]。 4GPS中频信号采集及分析结果 本文通过图形*作界面对卫星信号进行采集、转换和分析,实现了自主研究小型化、便携式GPS中频信号数据采集设备。GPS卫星信号数据于年1月日下午1点分在北京交通大学第九教学楼采集,此时的号星1ms平方和运算对应相关值如图7所示。从图中可显著观察到,该卫星的频率在4.MHz附近,码相位在点附近出现显著的相关峰。图8则是号星进行绝对值求和对应的相关图,对比图7和图8可以看出,在信号显著的情况下两种运算都能找到相关峰,但绝对值求和得到的相关值基数更小,所需的硬件资源更少,相比之下,平方求和其相关峰则更加显著。 在全搜索的基础上,找到相关峰后还可对其进行更精确的搜索。在图号星全搜索的基础上,将频率搜索范围缩小到4.~4.MHz,并缩小频率步长为、CA码步长为2,对其相关峰进行放大分析,其结果如图9所示,该方式便于分析算法的可靠性以及信号正确性。 软件还支持多毫秒叠加,设置多普勒搜索步长、频率和CA码采样点数等。由于当前某颗卫星的信号比较弱,1ms相关值累加有可能不能准确地找出相关峰,此时可通过多毫秒累积的方式得到相关峰。图为号星1ms的相关值,从图中不能显著地观察到相关峰,但通过图中的2ms运算可以看到,在频率为4.MHz、码相位为处有显著的相关峰。 5结论 本文针对GPS中频信号的采样、转换、分析提出了相应的搞定方案。实验证明,基于USB2.0的数据传输方案达到了对GPS中频信号高速准确的采集目标。基于GPS的捕获算法,通过C语言实现时域串行捕获算法检测,验证了数据的可靠性,为之后的GPS算法研究奠定了坚实的基础。