魏文龙
基于ZYNQ芯片实现卫星导航接收机跟踪软件化
魏文龙
(中国电子科技集团公司第二十研究所,西安 710068)
随着卫星导航系统的不断发展,各导航系统的信号逐渐增加,卫星接收机的通道数不足成为一个普遍问题。以北斗卫星导航系统为例,为解决卫星接收机通道数不足的问题,对原有的卫星接收机软件架构进行调整,基于ZYNQ芯片实现接收机的跟踪软件化。
卫星导航系统;卫星接收机;跟踪软件化
随着卫星导航系统技术不断发展进步,各导航系统的信号也在不断增加。以北斗卫星导航系统为例,随着北斗三号的建成运行,其信号包括了B1I、B1C、B2a、B2b、B3I公开服务信号以及授权信号。北斗二号卫星接收机在接收B1I和B3I的基础上一般会兼容GPS系统L1频点和GLONASS卫星信号。对于北斗三号卫星接收机而言,需要在原来的基础上增加北斗系统的新信号B1C、B2a和B2b[1],由于北斗三号卫星也在播发B1I和B3I信号导致的二代信号可视卫星数增加也需要考虑。
卫星接收机通道数的增加必然导致FPGA硬件资源使用率提高,但是北斗二号卫星接收机硬件资源使用情况表明在原有接收机架构下通道数无法满足新的需求。在硬件资源一定的情况下,要想满足北斗三号卫星接收通道数的要求就必须减少每个通道使用的硬件资源量。原有卫星接收机采用DSP+FPGA架构,FPGA完成信号捕获、信号跟踪、位同步、帧同步和电文提取等功能[2],可从信号跟踪开始将原来FPGA中后续功能分离到软件当中实现,来减少接收机通道对FPGA硬件资源的需要[2]。
卫星接收机接收信号的增加导致软件运算量增加,如果再增加,原来在FPGA实现的功能可能会导致软件处理能力不足。如果基于Xilink的ZYNQ 7000系列芯片设计卫星接收机,可以使用PL完成信号捕获、信号跟踪部分功能,使用双核ARM中的一个来实现原来FPGA中的信号跟踪部分功能、位同步、帧同步、电文提取,再加上原来DSP软件中的捕获调度、捕获结果处理等部分功能完成卫星信号的捕获、跟踪、同步、电文提取。
卫星接收机架构调整之后由两个软件加一个FPGA组成,其中跟踪软件和FPGA配合完成卫星信号的捕获跟踪[3],跟踪软件单独完成位同步和帧同步,而定位结算软件完成卫星接收机定位、测速、授时等功能,本文主要对跟踪软件实现中的信号跟踪模块、信号同步模块、电文提取模块的设计进行说明。卫星接收机整体架构如图1所示。
图1 卫星接收机架构图
卫星接收机中跟踪软件调度FPGA中的捕获模块完成卫星信号捕获,同时根据捕获结果调整捕获通道和卫星号;如果捕获成功,FPGA开始转跟踪,FPGA中的信号跟踪模块只负责卫星信号与本地码的相关计算,软件中的信号跟踪模块实现环路滤波以及跟踪状态判断[4];当跟踪软件判定信号捕获转跟踪成功后进入信号同步,信号同步首先进行位同步,位同步成功之后再进行帧同步;当跟踪软件完成同步之后对卫星电文进行提取并发送给定位解算软件。
跟踪软件以FPGA中断信号为触发条件进行信号跟踪处理,FPGA完成相关运算之后产生到软件的中断信号。跟踪软件收到中断信号之后从FPGA中断读取I、Q支路的即时、超前、滞后信号相关值,将信号相关值经过相应的积分—清除器之后的值送给鉴别器,由鉴别器估算出本地信号和输入信号的相位差异,并经环路滤波器的滤波后作为数控振荡器的输入由软件回写给FPGA。FPGA根据软件输入的调整参数不断调整本地信号的产生。
跟踪软件回写完载波、码NCO之后对环路锁定状态进行检测。跟踪环路存在跟踪门限或者以载噪比C/0来衡量接收机跟踪卫星信号的跟踪情况。若载噪比大于某个门限值,则锁定检测器认为信号跟踪情况良好,否则认为信号失锁。信号跟踪模块工作流程图如图2所示。
信号同步模块分为位同步和帧同步。如果载波环相干积分时间为1 ms,随着载波运行将输出一串码率为1000 Hz的数据流,当信号比特位宽为20 ms时位同步过程就是将1 000 Hz的数据流变成正常的50 Hz,也就是将每20个1 ms宽的数据合并起来组成一个正常的20 ms宽的正常数据比特。
本文位同步方法选择直方图统计法,首先将载波环输出的1ms宽数据比特流用1~20循环编号,其中编号为1的首个数据比特是任意选定;然后逐个统计相邻两个毫秒之间的数据跳变情况。如果第个数据发生了跳变,则第+1个直方的计数器值加1,否则计数器值保持不变。在统计一定时间之后对直方统计结果进行查看,如有一个直方的计数值达到门限1,则认为位同步已经成功,如图3所示。图3表明比特边沿偏差为3 ms,第1~2 ms属于一个比特,第3~20 ms加上后面相邻的第1~2 ms组成一个完成比特。如果最终统计结果至少有两个计数器值达到门限2或者所有计数器没有超过门限2,说明信号太弱或者环路失锁需要重新进行位同步。
帧同步在位同步成功后开始,帧同步的目的是为了确定卫星信号的子帧边缘,将比特流划分为正确的子帧。帧同步首先进行帧头匹配,帧头匹配完成后可以对后续子帧号、周内秒等数据进行有效性判断,最后根据电文校验方式进行校验。为了保证帧同步的准确性使用两帧校验的方法,即第一帧进行帧头、数据有效性、校验判断;第二帧只进行帧头和数据有效性判断,具体过程如图4所示。
图4 帧同步过程
电文提取实际可分为两部分,一部分是电文翻转判断,一部分是电文截取。跟踪软件完成帧同步之后,每当一个比特数据接收完成后对已接收的长度和电文子帧长度对比,如果子帧接收完毕进行电文翻转判断,否则计数器值加1。电文翻转根据帧头是否发生翻转就可判定,如果电文发生翻转需要在电文发送时将电文翻转后再发送,同时将比特计数器清零。电文提取过程如图5所示。
图5 电文提取逻辑
卫星接收机完成改进需要对功能、性能进行验证,以B3I频点为例对接收机定位结果分析。测试条件为静态测试,测试信号为真实卫星信号,统计点数为500,高程定位精度如图6所示,水平定位精度如图7所示。从图6和图7可以看出接收机改进后高程定位误差最大为9 m,水平定位误差最大为6m,接收机改进后定位精度仍然满足单点定位的精度要求。
改进后的接收机由三部分组成[5]:PL逻辑部分、PS信号跟踪部分、PS定位解算部分。从功能划分来看更加合理:逻辑部分主要实现信号捕获和信号相关[6],功能更加单一,不同应用场景变动比较小;PS信号跟踪部分更加灵活,跟踪阶段不同场景下可修改环路参数、结构,实际应用过程中可以动态地改变积分时间,做到动态和性能之间的兼顾,逻辑规模减小,接收机通道上限增加100;PS定位解算部分沿用以前代码设计,变动较小,缩短了开发周期。
[1] 范晶. 北斗卫星导航接收机中信号的捕获与跟踪实现[D]. 西安:西安电子科技大学,2017.
[2] 薛涛,赵伟,李荣冰,等.北斗导航接收机的硬件设计与实现[J]. 航天控制,2015,33(1):94-98.
[3] 谭雨蒙. 北斗三代B2a频点软件接收机的设计[D]. 西安:西安理工大学,2019.
[4] 王瑞京. 北斗导航接收机的硬件设计与实现研究[D]. 北京:北京邮电大学,2011.
[5] 万勇. 基于Zynq的北斗扩展系统的研究与实现[D]. 西安:西安电子科技大学,2018.
[6] 郑世超. 北斗基带信号并行捕获算法研究及FPGA实现[D]. 哈尔滨:哈尔滨理工大学,2018.
Realizing Tracking Software of Satellite Navigation Receiver Based on ZYNQ Chip
WEI Wenlong
With the continuous development of satellite navigation system, the signal of each navigation system increase gradually, and the insufficient channel number of satellite receiver becomes a common problem. Taking Beidou navigation satellite system as an example, in order to solve the problem of insufficient channel number of satellite receiver, the original of software architecture of satellite receiver is adjusted and the tracking software of receiver is realized based on ZYNQ chip.
Satellite Navigation System; Satellite Receiver; Tracking Software-Based
TN967
A
1674-7976-(2022)-01-012-04
2021-05-12。
魏文龙(1993.04—),甘肃武山人,硕士,主要研究方向为卫星导航。