3.2 HD-GR基带模块介绍

2024-04-27 04:58
文章标签 模块 介绍 3.2 hd gr 基带

本文主要是介绍3.2 HD-GR基带模块介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

\qquad HD-GR接收机的基带模块是在Namuru跟踪模块的Verilog版代码基础上开发的,开发工具使用了Altera的Quartus II v11.0软件包。HD-GR基带模块继承和扩展了Namuru跟踪模块的架构和接口,增加了BDS系统和双系统以及1PPS时标支持功能。

3.2.1 总体描述

\qquad AGRS_GP_1参考工程中的GNSS基带模块支持GPS和BDS双系统,具有20个通道,能同时跟踪10个GPS L1信号和10个BDS B1I信号。

\qquad 分析GPS L1和BDS B1I信号后可知,就基带模块实现而言,它们之间的信号特征差异只表现在数字中频信号频率和C/A码片速率上。在Namuru接收机中,导航固件通过使用Namuru跟踪模块的总线接口能够控制它们。因此,将Namuru跟踪模块扩展为支持GPS和BDS双系统是直接的,无需对其架构和接口做实质性改变。

\qquad 参见图3-8,HD-GR基带模块与Namuru跟踪模块一样,由一个主模块(gnss_baseband)和三个子功能块组成。三个子功能块分别是:10个完全相同的GPS L1跟踪通道和10个完全相同的BDS B1I跟踪通道;一个时基模块;以及一个寄存器和地址译码功能块。

\qquad 相比于Namuru跟踪模块,HD-GR基带模块主要进行了以下扩展:

  1. 主模块对外接口扩展为接收来自两个射频前端芯片的数字中频信号(IF 1, IF 2),以及输出一个1PPS时标pps_timemark(未在图3-1中标出)。参见“1PPS时标产生”小节的介绍。
  2. 时基模块使用工作时钟和两个采样时钟(s1_clk, s2_clk)(包含在IF 1, IF 2信号中)导出总线和跟踪通道处理所需的各种时序信号,以及实现1PPS时标输出的主要处理功能和接口。参见“时基模块”和“1PPS时标产生”两小节的介绍。
  3. 主模块生成和管理20个跟踪通道(实例),10个跟踪GPS L1信号,10个跟踪BDS B1I信号。参见“跟踪通道(模块文件)”小节的介绍。
  4. 主模块与导航固件进行数据交换的总线接口的地址空间从1 Kbytes扩展为2 Kbytes,能够映射512个32位宽的寄存器。具体说明参见“寄存器地址映射和功能描述”小节。

图3-8 HD-GR基带模块顶层架构图

图3-8 HD-GR基带模块顶层架构图(s1_clk、s2_clk分别与后文中的sample_clk_1、sample_clk_2为同一信号)
  • 我的存档免费软件
  • 我的存档学习资料

3.2.2 时基模块

\qquad 在HD-GR基带模块中,时基模块(time_base)不仅导出了基本时序信号,而且实现了产生1PPS时标的主要处理和接口。

1、时序信号产生

\qquad 与Namuru跟踪模块一样,在HD-GR基带模块中,时基模块(time_base)用工作时钟clk导出周期可由导航软件设置的累积中断信号(accum_enable)和观测量锁存脉冲(tic_enable, pre_tic_enable)。不过,为了能够产生与UTC秒时钟对齐的1PPS时标,支持动态延迟和调整观测量锁存脉冲的周期和相位。时基模块还用工作时钟clk和采样时钟sample_clk_1及sample_clk_2分别导出采样工作信号accum_sample_enable_1和accum_sample_enable_2。这些信号都同步于clk上升沿,选通脉冲宽度都为1个clk周期。

图3-9 时基模块输入/输出信号

图3-9 时基模块输入/输出信号

2、1PPS时标产生

\qquad 1PPS时标产生器配合tic_enable信号来工作。图3-9中的时标信号pps_tic_0从tic_enable导出,然后通过基带主模块(gnss_baseband)的接口信号pps_timemark,输出到HD-GR接收机底板的PPS引脚上。信号pps_timemark希望被用作一个准确的1PPS时标,与UTC对齐,脉冲宽度1ms。真正的1PPS输出需要应用许多软件算法来产生,若没有这个pps_tic_0,将无法实现对齐UTC。

\qquad 时标信号pps_tic_0的上升沿吻合于tic_enable上升沿。因此,要将pps_tic_0与UTC对齐,tic_enable必须与UTC对齐。为了确定一个与UTC对齐的1PPS时标,接收机需要能够预测:为产生一个即将到来的时标输出脉冲,需要对一个TIC脉冲施加多大改正量。一旦预测和设置了这个改正量,时基模块就可以通过修改单独一周tic_enable的周期 (TIC period),然后将它设置为初始值,再滑动tic_enable的相位来达到目的。接收机导航软件通过设置TIC计数值(pps_tic_load)和TIC延迟值(tic_delay_value)来完成它们(参见图3-9)。

\qquad 需要指出的是,这里产生的1PPS时标pps_timemark并没有与UTC完全对齐,因为当前的实现没有考虑射频前端中的信号延迟,也没有考虑数字中频信号进入基带模块到完成相关计算之间的信号延迟以及导出时标信号pps_tic_0和pps_timemark所需的处理和传播延迟。

3.2.3 跟踪通道(模块文件)

\qquad 在HD-GR基带模块中,跟踪GPS L1信号和BDS B1I信号的通道模块分别为gps_tracking_channel和bds_tracking_channel。相比于Namuru的跟踪通道及其子模块,只有BDS B1I通道的码产生器(bds_code_gen)存在少许差异,因此在此不再展开对HD-GR跟踪通道的分析,而只列出各跟踪通道及其子模块的文件名称。

// GPS L1信号跟踪通道
gps_tracking_channel.v		// 主模块
|-- gps_carrier_nco.v		// 载波NCO
|-- gps_carrier_mixer.v		// 载波混频器
|-- gps_code_nco.v			// 码NCO
|-- gps_code_gen.v			// 码产生器
|-- gps_accumulator.v		// 累积器
|-- gps_epoch_counter.v		// 历元计数器// BDS B1I信号跟踪通道
bds_tracking_channel		// 主模块
|-- bds_carrier_nco.v		// 载波NCO
|-- bds_carrier_mixer.v		// 载波混频器
|-- bds_code_nco.v			// 码NCO
|-- bds_code_gen.v			// 码产生器
|-- bds_accumulator.v		// 累积器
|-- bds_epoch_counter.v		// 历元计数器

3.2.4 寄存器地址映射和功能描述

\qquad (整理中…)

  • 我的存档免费软件
  • 我的存档学习资料

这篇关于3.2 HD-GR基带模块介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939576

相关文章

Python利用自带模块实现屏幕像素高效操作

《Python利用自带模块实现屏幕像素高效操作》这篇文章主要为大家详细介绍了Python如何利用自带模块实现屏幕像素高效操作,文中的示例代码讲解详,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、获取屏幕放缩比例2、获取屏幕指定坐标处像素颜色3、一个简单的使用案例4、总结1、获取屏幕放缩比例from

nginx-rtmp-module模块实现视频点播的示例代码

《nginx-rtmp-module模块实现视频点播的示例代码》本文主要介绍了nginx-rtmp-module模块实现视频点播,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录预置条件Nginx点播基本配置点播远程文件指定多个播放位置参考预置条件配置点播服务器 192.

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit