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 sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

python pymodbus模块的具体使用

《pythonpymodbus模块的具体使用》pymodbus是一个Python实现的Modbus协议库,支持TCP和RTU通信模式,支持读写线圈、离散输入、保持寄存器等数据类型,具有一定的参考价值... 目录一、详解1、 基础概念2、核心功能3、安装与设置4、使用示例5、 高级特性6、注意事项二、代码示例

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Nginx添加内置模块过程

《Nginx添加内置模块过程》文章指导如何检查并添加Nginx的with-http_gzip_static模块:确认该模块未默认安装后,需下载同版本源码重新编译,备份替换原有二进制文件,最后重启服务验... 目录1、查看Nginx已编辑的模块2、Nginx官网查看内置模块3、停止Nginx服务4、Nginx

python urllib模块使用操作方法

《pythonurllib模块使用操作方法》Python提供了多个库用于处理URL,常用的有urllib、requests和urlparse(Python3中为urllib.parse),下面是这些... 目录URL 处理库urllib 模块requests 库urlparse 和 urljoin编码和解码