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 datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要