(北京交通大学 电子信息工程学院,北京100044)
设计了一种GPS中频旗子暗记采集及剖析系统,系统利用FPGA将NJ1006射频前端输出的数字化GPS中频旗子暗记进行字节拼接,然后通过USB上传到上位机,实现了射频前端与PC之间实时高速数据传输;研发的VC++数据处理程序将采集到的GPS旗子暗记进行文本转换和数据剖析。实验证明该GPS中频旗子暗记软硬件采集系统不仅能采集GPS中频旗子暗记,而且能数据剖析,为GPS基带处理算法的研究供应了可靠的原始数据。

GPS中频旗子暗记;USB;旗子暗记采集;数据剖析
中图分类号:TN967.1
文献标识码:A
DOI:10.16157/j.issn.0258-7998.170792
中文引用格式:陶梦,李金城. GPS中频旗子暗记采集及剖析系统设计[J].电子技能运用,2017,43(9):34-38.
英文引用格式:Tao Meng,Li Jincheng. Design of a system for sampling and analysis of GPS IF signal[J].Application of Electronic Technique,2017,43(9):34-38.
0 弁言
随着GPS环球卫星定位系统在供应定位信息和高精度韶光信息上的广泛运用,国内外越来越多的企业和研究机构深入研究导航、授时芯片,而要实现这些功能,都离不开对GPS卫星旗子暗记的剖析。因此,自主研发小型化、便携式GPS中频旗子暗记数据采集设备对导航算法研究及芯片设计非常主要[1]。
USB接口数据传输速率高、传输模式灵巧,支持低速(1.5 Mb/s)、全速(12 Mb/s)和高速(480 Mb/s)3种传输速率以及中断传输、掌握传输、同步传输和块传输4种传输模式,目前在PC领域中USB接口已广泛运用[2]。高集成度的GPS吸收机射频前端芯片NJ1006可采集2 bit格式的GPS卫星旗子暗记,通过位拼接可将实时采样率低落至4 MHz旁边。USB2.0的传输速率完备可以知足,而从本钱和遍及率方面综合考虑,利用USB2.0是一个较好的选择。
基于上述剖析,本论文设计了一种GPS中频旗子暗记采集及剖析系统。系统利用FPGA对NJ1006的数字中频旗子暗记进行字节拼接及缓存,通过USB接口芯片(FX2 68013)上传到PC。在PC端设计了专用的VC++程序,用于PC真个数据吸收、格式转换及剖析。
1 系统软硬件总体架构
本论文的GPS中频旗子暗记采集及剖析系统的软硬件总体架构如图1所示,由硬件和软件两部分组成。个中硬件部分包括GPS射频吸收芯片NJ1006、FPGA(cyclone EP1C12Q240C8N,具有20 060个逻辑单元和52个M4K存储器)和 USB2.0接口芯片(FX2-68013);软件部分包括数据吸收程序、格式转换程序、数据剖析程序和主控程序组成。
NJ1006是一个高集成度的GPS吸收机射频前端IC,其集成了LNA和本机振荡器的谐振回路,减少了外部元器件数量和PCB的面积。NJ1006下变频1 575.42 MHz GPS L1旗子暗记,通过2 bit A/D转换器采样后,输出采样率为16.368 MHz,中频频率为4.092 MHz的2 bits数字旗子暗记(符号位SGN和大小位MAG)到FPGA。
FX2-68013是由Cypress半导体公司所推出的USB2.0芯片,芯片将USB外围接口所须要的各种功能包装成一精简的集成电路,其内部的8051微处理器方便对芯片的掌握与配置[3]。通过对芯片内部8051编程,使USB2.0芯片配置在Slave FIFO模式下事情,异步办法传输数据,以支持图1中的高速数据通道;由于该USB2.0芯片具有I2C接口,支持对外部I2C存储器的读写,为了不影响高速数据传输,本论文用FPGA仿照了一个I2C存储器,上位机通过对I2C存储器的读写实现了对FPGA事情状态的掌握[4]。
FPGA吸收NJ1006的数字中频旗子暗记,进行位拼接和缓存,向USB2.0芯片发送数据,并通过USB2.0接口将采集的数据上传到PC。在PC端吸收数据,并进行格式转换和数据剖析。剖析的紧张任务是对GPS中频旗子暗记进行C/A码相位和多普勒频率的二维干系值打算,并由Matlab进行三维立体显示。
2 FPGA逻辑设计
2.1 数据拼接
GPS卫星旗子暗记是在16.368 MHz时钟下利用射频前端NJ1006吸劳绩得的,由于该旗子暗记的位宽为2 bits,而FPGA与USB之间的数据总线位宽为8 bits,因此需通过“串并转换”,将串行数据转换为并行数据。此时,写入数据速率降落到原来的四分之一(4.092 MHz),将大大降落数据上传所需的时序哀求。
2.2 数据缓存
USB2.0协议拥有较快的数据传输速率,但本设计利用Windows系统PC作为上位机,属于多任务系统,运行时会分出多个韶光片给各运用程序,纵然只运行本设计中的软件程序,也无法担保稳定的传输速率,将影响数据的实时传输性。为办理该问题,可通过增加存储器以缓存数据。但由于外部增加RAM的本钱较大,且前文中提到的数据流采集速率约为稳定不变的4 MHz,而Windows均匀的传输数据速率高于此采集速率,为了担保数据流的连续性,可利用FPGA 内部52个M4K存储器资源天生26 KB RAM作为缓冲器,把从位拼接得到的数据暂存在此RAM中,再通过USB2.0传输到上位机PC中进行存储和剖析。
本系统中把这26 KB缓存空间分成13个2 KB RAM,将从位拼接得到的数据依次写进RAM中,同时将写满2 KB RAM的缓存数据依次读出传送至FX2,之后FX2一次性将2 KB数据通过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的Slave FIFO。完成RAM0的读操作后,若RAM1处于空闲状态(即Wr_en [1]=0,系统未向RAM1写入数据),则无间断地读取RAM1中的缓存数据,否则等待RAM1完成写操作之后再连续进行读操作。对RAM0至RAM12这13个存储器进行循环读操作,直到采集结束。
2.3 数据传送
数据传送即通过FX2 的Slave FIFO模式,将从RAM中读出的数据上传至上位机PC并保存,其高速数据传送通道接口图如图3所示[5]。在开始传送数据前,需通过Slave FIFO的切换地址fifoaddr配置Slave FIFO为2′b10,使其能够向FX2的Slave FIFO写入数据。吸收到数据传送指令后,主程序实时监控Slave FIFO的空满标志empty、full。当创造Slave FIFO未满时,通过掌握Slave FIFO的写时钟slwr,将从RAM读出的数据传送至Slave FIFO的双向数据端口fd,构成了高速数据通道,完成数据上传。
2.4 FPGA状态转换
FPGA主状态机的状态转换图如图4所示,全体状态机事情在72 MHz时钟下,INIT状态对FX2各接口数据进行初始化,之后进入WAIT_CMD状态,等待上位机发指令。当上位机发出采集指令后,由USB向FX2内部8051芯片下传48 B数据发送指令,再由8051将此48 B数据写入I2C的存储器,并剖析第一字节数据[6]。当第一字节为8′h0a时,状态机进入CMD_PRO状态,进行指令处理,向RAM发出写指令开始数据缓存,然后进入READ_RAM状态,在识别FX2中Slave FIFO的空满标志等旗子暗记后,读出RAM缓存数据。关于RAM读写调用在上文中有详细先容,这里不再赘述。当采集结束后,状态机重新回到WAIT_CMD状态,等待下一次采集。
本设计中的采集结束机制分为两种情形,一种是当要向单个RAM写入数据时系统正在读出该RAM中的数据,无法连续进行写操作,导致实时传输数据中断。此时上位机永劫光吸收不到数据,将自动终止吸收数据,这是由数据实时传输数据速率大于上位机吸收数据速率导致的,此时软件将关照用户这次数据不可靠;另一种是上位机吸收到的数据已经知足采集数据的大小哀求,此时上位机主动停滞吸收数据,FX2 slave FIFO一贯处于满状态,FPGA超过规定韶光的等待还不能连续上传数据,状态机回到WAIT_CMD状态,这次采集结束,等待下一次采集。
3 软件操作
上位机程序利用C措辞的MFC编写,操作界面如图5所示。USB Connection键可对FX2中的8051芯片进行配置,实现USB和FPGA数据通道连接。点击图中的Sample键,发出采集指令后,上位机开始调用FX2专用的批量端点上传函数,反复循环128次来吸收256 KB数据,等待吸收数据,再通过USB传输指令,使FPGA与上位机协同事情,采集数据[7]。
数据采集结束后,可通过软件操作界面的TXT Conversion窗口将数据格式转换为ASCII码或对应的0-1二进制序列,方便用户利用。
通过图5中的SV-Searching Paramenters窗口可设置参数,进行数据剖析。源文件为当前数据采集转换后的0-1二进制序列文件,通过设置卫星号SV num(1至32号卫星)、毫秒积分ms num(1 ms至10 ms)、量化位LO bits(1 bits至10 bits)和多普勒频率范围LO Frequency、CA码相位C/A Phase以及相对应的频率步长LO Step、C/A步长C/A Step等参数,点击Analysis键,对其进行CA码和多普勒频率的二维搜索。通过时域串行捕获算法打算得到三维数据,并利用Matlab的surf函数仿真出三维立体图,从而剖析旗子暗记的可靠性[8]。
时域串行捕获算法如图6所示,即本地载波天生器在预先设定的多普勒频率范围内选择一个载波频率,产生两路相位差 90°确当地载波cos和sin。将输入旗子暗记与这两路本地载波混频,得到同相分量I和正交分量Q。然后将I和Q两路分量分别与本地产生的C/A码序列进行干系运算,并通过绝对值求和Absolute或平方求和square运算得到干系值[9-10]。
4 GPS中频旗子暗记采集及剖析结果
本文通过图形操作界面对卫星旗子暗记进行采集、转换和剖析,实现了自主研发小型化、便携式GPS中频旗子暗记数据采集设备。GPS卫星旗子暗记数据于2017年1月13日下午1点20分在北京交通大学第九传授教化楼采集,此时的18号星1 ms平方和运算对应干系值如图7所示。从图中可明显不雅观察到,该卫星的频率在4.094 5 MHz附近,码相位在16 000点附近涌现明显的干系峰。图8则是18号星进行绝对值求和对应的干系图,比拟图7和图8可以看出,在旗子暗记明显的情形下两种运算都能找到干系峰,但绝对值求和得到的干系值基数更小,所需的硬件资源更少,比较之下,平方求和其干系峰则更加明显。
在全搜索的根本上,找到干系峰后还可对其进行更精确的搜索。在图7 18号星全搜索的根本上,将频率搜索范围缩小到4.092~4.097 MHz,并缩小频率步长为250、CA码步长为2,对其干系峰进行放大剖析,其结果如图9所示,该方法便于剖析算法的可靠性以及旗子暗记精确性。
软件还支持多毫秒叠加,设置多普勒搜索步长、频率和CA码采样点数等。由于当前某颗卫星的旗子暗记比较弱,1 ms干系值累加有可能不能准确地找出干系峰,此时可通过多毫秒累积的方法得到干系峰。图10为27号星1 ms的干系值,从图中不能明显地不雅观察到干系峰,但通过图11中的2 ms运算可以看到,在频率为4.092 MHz、码相位为8 000处有明显的干系峰。
5 结论
本文针对GPS中频旗子暗记的采样、转换、剖析提出了相应的办理方案。实验证明,基于USB2.0的数据传输方案达到了对GPS中频旗子暗记高速准确的采集目标。基于GPS的捕获算法,通过C措辞实现时域串行捕获算法检测,验证了数据的可靠性,为之后的GPS算法研究奠定了坚实的根本。
参考文献
[1] 曾庆喜,王庆,杨英杰,等.USB接口GPS中频旗子暗记采样器研究与实现[J].电子丈量与仪器学报,2012(10):883-888.
[2] 唐磊.基于FPGA的USB、Flash掌握器设计[D].北京:北京交通大学,2010.
[3] 吴瑶.USB2.0总线掌握芯片FX2构造事理及运用研究[D].北京:北京交通大学,2010.
[4] 扈啸,张玘,张连超.USB2.0掌握器CY7C68013特点与运用[J].单片机与嵌入式系统运用,2002(10).
[5] 胡滨,王庆,严伟.基于USB和FPGA的GPS中频旗子暗记采集平台设计[J].舰船电子工程,2009,9:63-66.
[6] 储甜,颜锦奎.基于单片机的USB文件读写[J].电子丈量技能.2015(8).
[7] 方可燕.Visual C++ 6.0实战与精通[M].清华大学出版社,2000.
[8] 王惠南.GPS导航事理与运用[M].北京:科学出版社,2003.
[9] 叶航.GPS吸收机测试旗子暗记源的设计与实现[D].南京:南京航空航天算夜学,2012.
[10] 刘圣忠.基于GPS中频数据的软件吸收机研究与实现[D].南京:南京航空航天算夜学,2007.








