1. 前言
疫情宅家,其他工作上的事情不太好做,但是也算是找到一个难得的补充知识的时间了。
作为一个FPGAer,日常当中经常用的就是用FPGA来玩常用的接口,但是感觉这样的日子是走不长远的,需要不断地补充新的知识才可以。
在家这段时间,完成了802.11a的这个协议的OFDM的发射机这一部分的内容的FPGA的实现。于是觉得自己需要把这一部分给记录下来,方便给自己之后进行查阅。
在ZYNQ的系统设计当中,经常需要处理ARM与FPGA之间的数据交互的问题。这就引申出一个很重要的内容就是AXI4接口。
AXI接口我在之前也写过博客记录如何在FPGA当中实现数据的传输:
AXI4向内存写入数据
AXI4从内存获取数据
但是这两篇博客只是实现了一个比较简单的模块,并且里面的功能也是比较固定和死板的。
Ettus Research可以说是在软件无线电领域处于领头地位的公司了,而且对应的许多产品除了PCB之外都是开源的,这给学习软件无线电提供了很多的资料。
以前做FPGA的时候,都不习惯去看别人的源码,现在来看,还是太天真了,当我开始看usrp b205的源码的时候,我发现ettus的源码写得是真的好,有很多值得学习的地方,所以在这里将对usrp b205的源码阅读的个人体会记录一下,也方便自己将来查阅。
公司由于业务需要,现在想要做一款软件无线电的产品,于是需要学习一下usrp的基础款的SDR设备,usrp b205是ettus最新一代当中最小的设备,想必其实现的结构也是最简单的,因此我决定从这一款设备开始。
在上一篇博客当中,实现了载波同步中的二阶锁频环,通过锁频环能够实现相位的跟踪,但是在上篇博客的最后,还是可以看到,经过二阶锁频环之后,对于Q路上的数据,依然有较高的能量。然而在实际发送数据的时候,发送的只是一个实数数据,只有只有I路上有数据,因此在这里进一步地对相位同步才能实现最终的同步。
在前面的一段时间的学习当中,学习了如何对信号进行捕获。在GPS接收机当中,捕获到信号之后,接下来的操作就是对捕获到的信号进行跟踪处理了,在接收机当中,常见的同步方法有PLL,其主要目的是使得本地生成的载波能够跟踪接受到的信号的频率和相位的变化,从而达到相干解调的目的。