卫星导航接收机ZYNQ实现(一)

卫星导航接收机ZYNQ实现(一)

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

上学的时候,得到过一套卫星导航接收机的全套资料,当时照着实现了一遍,也就毕业了,很多地方都没有整明白;做出来的一套还是师傅给调出来的,自己整的那块板子都没能输出定位结果;工作之后也没有从事相关方向的专业,也就搁置起来了。让它跑起来,是多年以来的心愿。


一、方案的选择

硬件选择

当时那套资料是基于FPGA+DSP方案的,因为是十几年前的设计,芯片本身已经非常古老,我手上也没有相关的调试工具,另外,再照着复制一遍即使实现了也毫无意义。接收机的实现除了装用的ASIC芯片之外,大致有两种方案:FPGA+DSP、FPGA+ARM,导师说也有用两片FPGA的,我没见过,可能是一片作为逻辑实现,另一片用软核做控制,本质上没有区别。
无意间接触到ZYNQ这个片子,带ARM的FPGA,觉得这个东西简直是做接收机的不二之选,开发起来也非常方便。于是在网上买了一块微相科技的Z7-lite作为入门,看了一些自带的例程,觉得问题不大。

然后就是射频的选择,当时那套资料使用分立器件搭起来的,自然无法再选择,成本高不说,我根本调不出来,当年实验室因为没有相关仪器,也就没学这部分的调试。MAX2740是记忆中的一个片子,后来查了下MAXIN官网发现有升级版的MAX2769以及MAX2771,价格也很便宜。果断打了一块板子。

软件方案

看了一些论文,ZYNQ这个方案实现的不少,但都没有后明确指出软件的架构。也就靠着自己的理解试着去做了,裸机是比较容易实现的,也是初学者该选的方式,Linux看上去更高级一些,肯定能够胜任,但我感觉它的实时性得不到保证,Vxworks,UCOS,大致看了下本质上并无多大区别,所以我试着用SDK自带的Free RTOS做一下。

二、实现步骤

这里做一个大致的计划,类似于目标。

首先是射频功能的验证,如果射频不通一切便无从谈起,所以第一步是把MAX2769这个片子跑起来。

然后是硬件功能方面的准备工作,ZYNQ我是现学现用,需要验证一些用到的基本功能,包括PL-PS的交互、中断等;

接下来是FPGA部分代码的改写,原来的方案是ALTERO,所有的IP需要用Xilinx重新实现。

最后是软件功能的实现,从DSP/BIOS到Free RTOS,任务、消息邮箱的配合,接收机各部分功能从捕获、跟踪开始到导航定位的实现。


总结

本文所列的目标其实大都已经实现,系列文章是以回顾的方式把过程记录下来。所以接下来的文章会更加详细一些。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值