百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

「学术论文」基于FPGA的GPS接收机基带处理硬件在环系统

bigegpt 2024-08-21 12:18 2 浏览

摘要:

针对GPS跟踪环路参数调试繁琐复杂、FPGA反复编译耗时多的问题,设计了一种基于FPGA的GPS接收机基带处理硬件在环系统。该系统以FPGA设计的GPS基带处理为核心,完成卫星信号的采集和基带信号处理,并将处理结果通过以太网实时传送到Simulink设计的跟踪环路进行处理,在处理完成后反馈到FPGA的基带处理单元,完成卫星信号的捕获和跟踪。经测试,该系统实现了卫星信号的捕获和跟踪,验证了该平台的有效性和准确性,提高了GPS跟踪环路的设计、调试、验证、实现的效率,对快速开发卫星导航芯片和系统具有积极作用。

中文引用格式:王家燃,王峰,魏东明,等. 基于FPGA的GPS接收机基带处理硬件在环系统[J].电子技术应用,2016,42(7):60-63.

英文引用格式:Wang Jiaran,Wang Feng,Wei Dongming,et al. Hardware-in-the-Loop system of GPS receiver baseband processor based on FPGA[J].Application of Electronic Technique,2016,42(7):60-63.

?

0 引言

卫星导航定位技术对一个国家的军事以及国民经济发展有着重要的意义,而跟踪环路的设计是卫星导航系统的关键部分,对卫星导航系统的定位精度和稳定性起到了关键性作用。同时,跟踪环路的参数设计复杂,特别是在高动态的卫星导航系统和组合导航系统中,跟踪环路的设计、验证、实现成为了卫星导航系统设计的关键一环。

硬件在环(Hardware-in-the-Loop,HIL)是一种半实物实时仿真技术,实现整个系统的半实物实时仿真测试,可以方便快速地实现设计方案的验证与优化,缩短开发周期,降低研发成本。HIL先后在航天航空、军事、汽车等领域得到推广应用[1],目前GPS接收机的设计流程都是先采用MATLAB进行算法设计、验证,然后再采用Verilog或者VHDL进行算法实现[2-4],该过程反复迭代、费时。由此将HIL运用于卫星导航接收机跟踪环路的设计,将MATLAB/Simulink设计的算法模型通过以太网与FPGA联合起来进行在线调试,对验证与优化跟踪环路的设计、缩短开发周期、降低研发成本具有重要意义。

本系统将FPGA设计的GPS基带处理单元与Simulink设计的跟踪环路进行联合[5],将基带信号处理模块集成到FPGA上,在Simulink上完成锁相环路、锁频环路和延迟锁定环路设计,并通过以太网实现FPGA与Simulink之间的通信,完成一个实时的硬件在环系统的设计,通过Simulink设计能够方便快速地设计锁相环路、锁频环路和延迟锁定环路,同时能够方便及时地调整锁相环路、锁频环路和延迟锁定环路的参数,实时调整跟踪环路参数,加快跟踪环路设计。

1 系统总体设计

系统整体设计原理图如图1所示。该系统主要分为4个单元:MAX2769B射频单元、基带信号处理单元、以太网通信单元、PC端Simulink。MAX2769B射频单元用于完成卫星信号的滤波、下变频以及模数转换;基带信号处理单元用于低中频卫星信号的捕获、跟踪,其中LEON3处理器用于完成数据运算、控制捕获和跟踪模块的运行、中断,以及接收捕获和跟踪模块的信息;以太网通信单元用于PC端Simulink跟踪环路模块与卫星信号基带处理单元之间的通信;PC端Simulink用于接收基带信号处理单元的I/Q支路的相关积分结果,并输入锁相环路、锁频环路和延迟锁定环路,得到环路处理结果,再通过以太网反馈到基带信号处理单元。

2 系统的硬件设计

2.1 卫星信号捕获模块设计与实现

卫星信号捕获模块结构如图2所示,采用Verilog[6]语言进行设计,嵌入AHB总线的从设备接口挂载到AHB总线上,实现与LEON3处理器的数据交互。该模块采用双口RAM作为数据缓存RAM,用于缓存AHB总线与捕获模块的交互数据,实现跨时钟域处理,解决时钟不一致的问题。在捕获控制模块的控制下,将缓存之后低中频数据与载波发生器相乘进行下变频,再经过一个CIC(Cascade Integrator Comb)陷波器进行干扰检测和干扰抵消,然后通过分段匹配滤波器进行相关积分并缓存到RAM中供FFT处理,处理完成后进行门限判断,并将捕获结果缓存至双口RAM,同时申请捕获中断,通知LENON3处理器进行读取。

2.2 卫星信号跟踪模块设计与实现

卫星信号跟踪模块中嵌入AHB从设备接口,并挂载在AHB总线上,如图3所示。将捕获模块中经过干扰抵消后的信号作为跟踪模块的输入信号,载波发生器模块对输入信号进行第一级下变频,再进行半带滤波处理。由于卫星处于运动之中,卫星相对本地接收机频偏也是在不断地变化,需要通过载波发生器模块对信号的频偏进行跟踪,实现第二级精准变频;然后与本地C/A码发生器产生的超前码、即时码、延迟码进行相关累加,并将结果发送到以太网数据缓存FIFO中;再通过以太网传送到Simulink中,经过载波环和码环的计算,再把载波频率控制字以及C/A码生成控制字反馈到各通道的载波发生器和本地C/A码发生器,实现对信号的跟踪锁定。

2.3 以太网通信单元设计与实现

以太网通信单元采用100 MHz的通信速率实现基带信号处理单元与PC端Simulink之间的高速通信。如图4所示,基带处理单元将相关累加结果通过以太网从设备接口传送到接收模块中,在接收缓存后PC端Simulink通过以太网主设备接口读取相关累加结果,并进行载波环和码环的计算,然后再通过主设备接口将计算得出的载波频率控制字以及C/A码生成控制字发送到发送缓存,最后由卫星信号基带处理单元进行读取。

3 系统的软件设计

3.1 卫星信号捕获模块程序设计

卫星信号捕获程序流程如图5所示。系统上电后,开启捕获中断,将CIC滤波器参数发送到捕获数据缓存RAM,配置硬件CIC滤波器模块并回读反馈参数,然后判断CIC滤波器反馈参数是否大于门限值。如果大于门限值,则重新计算CIC滤波器参数,否则等待捕获中断。捕获中断响应后,读取捕获的成功标志位,如果捕获成功,则读取捕获缓存RAM中的捕获卫星号、码相位、相关值最大值及其对应行列值,求出卫星多普勒频率,并将结果送到跟踪数据缓存RAM;如果捕获不成功则首先判断该卫星所有频点是否搜索完毕,如果没搜索完毕则搜索下一个频点。在捕获到一个卫星或者搜索完成某一卫星的所有频点后,统计已捕获、未捕获、需要重捕的卫星数,将捕获信息发送到捕获缓存RAM,进行下一个卫星的捕获。

3.2 卫星信号跟踪模块程序设计

卫星信号跟踪程序主要负责跟踪通道状态的控制,读取PC端Simulink通过以太网传送过来的载波环以及码环参数,并将环路参数反馈到各个跟踪通道,其流程如图6所示。

首先中断开始后读取各个跟踪通道的相干积分值、多普勒频率以及码相位信息,根据当前支路的 I、Q积分值计算出通道的载噪比进行通道失锁检测。如果跟踪通道失锁,则释放跟踪通道并对该卫星重新进行捕获,否则将读取Simulink通过以太网传送过来的载波环以及码环参数并更新到跟踪缓存 RAM 中,锁存各个跟踪通道的数据,退出中断。

3.3 基于Simulink的跟踪环路设计

采用Simulink设计跟踪环路,其中载波环路采用一阶锁频环路辅助二阶锁相环路结构进行载波鉴相、鉴频以及环路滤波,码环采用一阶延迟锁定环路进行鉴相以及环路滤波,如图7所示。

在捕获成功后,FPGA通过以太网向Simulink发送开始信号和I/Q相关值,然后相关值采样模块将I/Q支路即时码相关值送入鉴频器和鉴相器进行鉴频和鉴相处理,最后锁相环路滤波器将鉴相结果和锁频环路滤波器的处理结果进行滤波处理,得到载波频率控制字。同样地,将I/Q支路的延迟、超前码相关值送入码环鉴相器进行鉴相处理,处理完成后通过码环滤波器进行滤波,最后将滤波后输出的载波频率控制字和C/A码产生控制字通过以太网反馈到基带信号处理单元的跟踪通道中。

4 系统的测试与分析

本系统采用Quartus II 11.0进行设计、综合,并将设计结果下载到DE2-115开发板的上进行验证。通过Simulink软件自带的示波器显示其中两个跟踪环路的I、Q支路波形,如图8所示。同时,将I、Q支路的输出的(I,Q)数据对一一标记在相量图中,如图9所示,当锁相环锁定信号后,相位差异值就基本上在零附近晃动,I支路信号功率保持最大,Q支路信号功率接近于0,即大致有一半的数据对集中在正向I轴,而另一半集中在负向I轴[7],由此,跟踪环路完成了对卫星信号的跟踪锁定。最后将6个通道的导航数据输出进行定位解算,得到的经纬度为:113.392862、23.037484,通过谷歌地图显示,得到误差范围在5 m之内,满足定位需求。

5 结论

本文设计了FPGA联合Simulink的GPS接收机基带处理硬件在环系统。介绍了系统的软硬件设计,借助FPGA的高速并行处理能力实现卫星信号的捕获,通过以太网完成Simulink设计的跟踪环路与基带处理单元的实时通信。实验结果表明,该系统能够完成卫星信号的捕获和跟踪,通过Simulink实时在线修改跟踪环路参数,在算法模型以及参数最终确定后再转换为VHDL/Verilog,避免了反复修改算法、参数而需反复编译综合FPGA,提高了开发效率,方便了后期算法优化、升级。

参考文献

[1] 付志红,马静,谢品芳,等.基于高速数字信号处理平台的实时仿真技术[J].系统仿真学报,2007,19(16):3680-3683.

[2] 姜天林.基于FPGA的GPS基带处理器的研究与设计[D].广州:华南理工大学,2013.

[3] 陈建华.基于FPGA的GPS软件接收机跟踪捕获算法研究[D].南京:南京邮电大学,2013.

[4] 刘雷.基于FPGA的北斗信号捕获与跟踪算法研究[D].西安:西安电子科技大学,2014.

[5] Altera.Hardware in the Loop from the MATLAB/Simulink environment[EB-OL].(2013-09).https://www.altera.com.cn/content/dam/altera-wp-01208-hardware-in-the-loop.pdf.

[6] 吴继华,王诚.Altera FPGA/CPLD设计(基础篇)[M].北京:人民邮电出版社,2005.

[7] 谢钢.GPS原理与接收机设计[M].北京:电子工业出版社,2009.

相关推荐

悠悠万事,吃饭为大(悠悠万事吃饭为大,什么意思)

新媒体编辑:杜岷赵蕾初审:程秀娟审核:汤小俊审签:周星...

高铁扒门事件升级版!婚宴上‘冲喜’老人团:我们抢的是社会资源

凌晨两点改方案时,突然收到婚庆团队发来的视频——胶东某酒店宴会厅,三个穿大红棉袄的中年妇女跟敢死队似的往前冲,眼瞅着就要扑到新娘的高额钻石项链上。要不是门口小伙及时阻拦,这婚礼造型团队熬了三个月的方案...

微服务架构实战:商家管理后台与sso设计,SSO客户端设计

SSO客户端设计下面通过模块merchant-security对SSO客户端安全认证部分的实现进行封装,以便各个接入SSO的客户端应用进行引用。安全认证的项目管理配置SSO客户端安全认证的项目管理使...

还在为 Spring Boot 配置类加载机制困惑?一文为你彻底解惑

在当今微服务架构盛行、项目复杂度不断攀升的开发环境下,SpringBoot作为Java后端开发的主流框架,无疑是我们手中的得力武器。然而,当我们在享受其自动配置带来的便捷时,是否曾被配置类加载...

Seata源码—6.Seata AT模式的数据源代理二

大纲1.Seata的Resource资源接口源码2.Seata数据源连接池代理的实现源码3.Client向Server发起注册RM的源码4.Client向Server注册RM时的交互源码5.数据源连接...

30分钟了解K8S(30分钟了解微积分)

微服务演进方向o面向分布式设计(Distribution):容器、微服务、API驱动的开发;o面向配置设计(Configuration):一个镜像,多个环境配置;o面向韧性设计(Resista...

SpringBoot条件化配置(@Conditional)全面解析与实战指南

一、条件化配置基础概念1.1什么是条件化配置条件化配置是Spring框架提供的一种基于特定条件来决定是否注册Bean或加载配置的机制。在SpringBoot中,这一机制通过@Conditional...

一招解决所有依赖冲突(克服依赖)

背景介绍最近遇到了这样一个问题,我们有一个jar包common-tool,作为基础工具包,被各个项目在引用。突然某一天发现日志很多报错。一看是NoSuchMethodError,意思是Dis...

你读过Mybatis的源码?说说它用到了几种设计模式

学习设计模式时,很多人都有类似的困扰——明明概念背得滚瓜烂熟,一到写代码就完全想不起来怎么用。就像学了一堆游泳技巧,却从没下过水实践,很难真正掌握。其实理解一个知识点,就像看立体模型,单角度观察总...

golang对接阿里云私有Bucket上传图片、授权访问图片

1、为什么要设置私有bucket公共读写:互联网上任何用户都可以对该Bucket内的文件进行访问,并且向该Bucket写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可...

spring中的资源的加载(spring加载原理)

最近在网上看到有人问@ContextConfiguration("classpath:/bean.xml")中除了classpath这种还有其他的写法么,看他的意思是想从本地文件...

Android资源使用(android资源文件)

Android资源管理机制在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等。这些资源统统放在项目的res/独立子...

如何深度理解mybatis?(如何深度理解康乐服务质量管理的5个维度)

深度自定义mybatis回顾mybatis的操作的核心步骤编写核心类SqlSessionFacotryBuild进行解析配置文件深度分析解析SqlSessionFacotryBuild干的核心工作编写...

@Autowired与@Resource原理知识点详解

springIOCAOP的不多做赘述了,说下IOC:SpringIOC解决的是对象管理和对象依赖的问题,IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂管理这些对象的创建以及依赖关系...

java的redis连接工具篇(java redis client)

在Java里,有不少用于连接Redis的工具,下面为你介绍一些主流的工具及其特点:JedisJedis是Redis官方推荐的Java连接工具,它提供了全面的Redis命令支持,且...