4.3 导航软件初始化

\qquad HD-GR导航软件的初始化在主程序中进行,主要完成以下处理:

  • 设置射频前端;
  • 初始化基带模块;
  • 初始化与卫星星历、通道跟踪、以及通道分配有关的参数和结构(参见第4.4节“信号捕获和跟踪”和第4.5节“星历/历书解码”)

4.3.1 设置射频前端

\qquad 在HD-GP接收机的前端模块(HD-2769-2RF-2)中,两个射频芯片(MAX2769-1, MAX2769-2)的参考时钟是同源的,信号来自同一个16.368 MHz TCXO,都希望输出中心频率为4.092 MHz的IF。不过,参考设计AGRS_GP_1对它们的应用方式有所不同,下面予以简介。

1、设置MAX2769-1

\qquad MAX2769-1在芯片预置状态下使用,目标是把GPS L1射频信号下变频为基带信号。具体做法是:在AGRS_GP_1项目的FPGA逻辑设计中,将MAX2769-1的PGM引脚连接到逻辑高,即设置为预置状态;将它的SPI接口的三个引脚(SCLK, SDATA, CS)都连接到逻辑高,以选择芯片预置状态7。具体Verilog代码实现参见顶层模块AGRS_GP_1.v。有关MAX2769芯片预置状态的定义参见数据表“MAX2769: Universal GPS Receiver”中的表3。

2、设置MAX2769-2

\qquad MAX2769-2的目标是将1561.098MHz的BDS B1I射频信号下变频为基带信号,芯片预置状态不支持这个频率,因此需要应用SPI接口对芯片进行编程。为此,AGRS_GP_1项目加入了以下支持:

  1. 在FPGA逻辑设计中,添加了外围组件spi_max2769_2,以便导航软件通过它来编程MAX2769-2。
  2. 在FPGA逻辑设计中,将MAX2769-2的PGM引脚连接到逻辑低,即设置为使用SPI接口来配置MAX2769-2。具体Verilog代码实现参见顶层模块AGRS_GP_1.v。
  3. 在导航软件中,使用组件spi_max2769_2支持的接口函数,将预先计算好的BDS B1I射频信号的配置参数设置到MAX2769-2。具体代码实现参见源文件agrs_gp_1_ucos.c中的main(…)函数,以及源文件spi_max2769.hspi_max2769.c。下面对有关配置参数的计算予以说明。

\qquad 为了让芯片MAX2769支持处理BDS B1I射频信号,需要通过设置MAX2769的频率合成器的整数分频比来调整MAX2769的LO。已知BDS B1I 信号的载波频率为1561.098MHz,HD-2769-2RF-2射频前端的TCXO频率为 f T C X O = 16.368 f_{TCXO} =16.368 fTCXO=16.368 MHz,IF输出的中心频率为4.092 MHz。选择频率分频比为 R D I V = 16 RDIV = 16 RDIV=16,则可按以下步骤计算整数主分频比:

f L O = 1561.098 − 4.092 = 1557.006 \qquad f_{LO} = 1561.098 - 4.092= 1557.006 fLO=1561.0984.092=1557.006
f C O M P = f T C X O / R D I V = 16.368 / 16 = 1.023 \qquad f_{COMP} = f_{TCXO} /RDIV = 16.368/16 = 1.023 fCOMP=fTCXO/RDIV=16.368/16=1.023
N D I V = f L O / f C O M P = 1557.006 / 1.023 = 1522 \qquad NDIV = f_{LO}/f_{COMP} = 1557.006/1.023 = 1522 NDIV=fLO/fCOMP=1557.006/1.023=1522

R D I V = 16 RDIV = 16 RDIV=16 N D I V = 1522 NDIV = 1522 NDIV=1522可知,应将整数分频比,即芯片寄存器DIV的新值,配置为BE4080h。

\qquad 有关MAX2769芯片配置参数的完整信息参见数据表“MAX2769: Universal GPS Receiver”。

4.3.2 初始化基带模块

\qquad 为了让GNSS基带模块能够正确处理数字中频信号和产生累积中断,需要导航软件将一些工作参数写入基带模块寄存器,包括:累积中断寄存器(PROG_ACCUM_INT)、TIC信号寄存器(PROG_TIC_DIV)、以及PPS分频信号寄存器(PROG_PPS_DIV)。注意,在写入这些寄存器前后,应该分别设置RESET寄存器一次,以复位包括时基功能在内的整个基带模块。下面列出这些参数的计算公式以及将用于写入寄存器的计算结果,有关代码参见源文件agrs_gp_1_ucos.c中的main(…)函数。

1、基带模块参数

\qquad 计算导航软件工作参数要用到以下基带模块参数值:

  • IF信号中心频率:4.092 MHz
  • IF信号采样频率:16.368 MHz
  • 基带模块时钟频率:16.368×6 MHz

它们在头文件constants.h中进行了定义。

2、累积中断周期

\qquad 累积中断周期ACCUM period = (p + 1) /clock frequency,其中p为写入基带模块寄存器PROG_ACCUM_INT的值。对于16.368×6 Mhz时钟频率的基带模块:

p = ( 16.368 × 6 × 1 0 6 × A C C U M _ p e r i o d ) – 1 \qquad p = (16.368×6×10^6×ACCUM\_period) – 1 p=(16.368×6×106×ACCUM_period)1

当中断周期ACCUM_period为800μs时,p = 78565。

3、TIC信号周期

\qquad TIC信号周期TIC period = (p + 1) /clock frequency,其中p为写入基带模块寄存器PROG_TIC_DIV的值。对于16.368×6 Mhz时钟的基带模块:

p = ( 16.368 × 6 × 1 0 6 × T I C _ p e r i o d ) – 1 \qquad p = (16.368×6×10^6×TIC\_period) – 1 p=(16.368×6×106×TIC_period)1

当TIC信号周期TIC _period为100ms时,p = 9820799。

4、PPS分频信号周期

\qquad PPS分频信号周期PPS_DIV period = (p + 1) /clock frequency,其中p为写入基带模块寄存器PROG_PPS_DIV的值。对于16.368×6 Mhz时钟的基带模块:

p = ( 16.368 × 6 × 1 0 6 × P P S _ D I V _ p e r i o d ) – 1 \qquad p = (16.368×6×10^6×PPS\_DIV\_period) – 1 p=(16.368×6×106×PPS_DIV_period)1

当PPS分频信号周期PPS_DIV_period为1ms时,p = 98207。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值