第8章_直放站系统设计.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

FPGA系统设计第8章直放站数字系统设计1FPGA系统设计8.1直放站FPGA系统设计直放站可以增强网络覆盖及网络覆盖质量,可以显著降低运营商的覆盖成本。直放站(中继器)属于同频放大设备,是指在无线通信传输过程中起到信号增强的一种无线电发射中转设备。直放站的基本功能就是一个射频信号功率增强器。直放站在下行链路中,由施主天线现有的覆盖区域中拾取信号,通过带通滤波器对带通外的信号进行极好的隔离,将滤波的信号经功放放大后再次发射到待覆盖区域。在上行链接路径中,覆盖区域内的移动台手机的信号以同样的工作方式由上行放大链路处理后发射到相应基站,从而达到基地站与手机的信号传递。2FPGA系统设计直放站整体结构3FPGAADC接口DDCDUCDAC接口NCOA/DD/A122.88MSPS61.44MSPS宽带1/4下变频2倍抽取监控监控接口模块时钟及复位模块NCO上下行共用选频8倍抽取8倍内插7.68MSPS7.68MSPS122.88MSPS61.44MSPS61.44MSPS61.44MSPS61.44MSPS61.44MSPS中频92.16MHz中频92.16MHzSPI接口PLLFPGA系统设计主要归结起来主要有两点,一是数据接口,二是数据处理。数据接口主要有数据链路接口和配置接口。数据接口包括ADC接口和DAC接口,这两个接口主要承担了信号的输入输出,配置接口,主要是对外围器件的配置,如ATT(衰减器),PLL(锁相环)等。数据处理功能主要利用数字滤波器进行选频,把外的干扰信号滤除。下面对上述提到的接口做详细分析。4FPGA系统设计数据接口ADC接口以TI公司的ADS58C28为例介绍其数据接口的实现。ADS58C28是一个11bit的ADC,该ADC的详细参数在其官方网站上有详细的资料介绍,这里不在赘述,这里重点根据其时序图介绍数据接口的实现。ADS58C28的时序图如下图所示:FPGA系统设计ADS58C28时序FPGA系统设计从图中可以看到该ADC采用的是DDR(双数据率)传输方式,即在一个时钟周期内传输两个比特的数据,在时钟的下降降沿传输偶数比特,如D0,D2,D4等;在时钟的上升沿传输奇数比特,如D1,D3,D5等;它总共有6对LVDS线,其中第一对数据线传输0和D0,第二对LVDS传输D1和D2,依次类推;ADC接口的作用就是将ADC的数据接收下来,转换成FPGA能识别和方便处理的方式。其主要包含3个步骤第一,根据其时序图将其DDR(双数据率)传输方式转换成SDR(单数据率)的传输方式,这是因为FPGA内部的处理基本上都是单数据率的。FPGA系统设计第二,将已经转化成的SDR数据按照MSB(MostSignificantBit即最高有效位)排序。第三,隔离时钟域,为什么还需要这个步骤呢?简单来说就是因为ADC的随路时钟与FPGA的内部时钟是不同的时钟源或者通过不同的传输路径传输之后,会不同步,如果没有将这两个时钟域隔离开关,那么在用FPGA内部时钟同步数据的时候就有可能会错拍,导致数据出错。第一个步骤DDR转SDR在QuartusII软件中有专门的IPCore来实现该功能,生产方法如下:FPGA系统设计在Tools菜单下,选择MegaWizardPlug-InManager选项FPGA系统设计选择Createanewcustommegafunctionvariation创建一个新的IP;FPGA系统设计在左边的导航栏中展开I/O文件夹,选ALTDDIO_IN,这个就是专门用于DDR输入转换的,下面的ALTDDIO_OUT则是用于输出的。在右手边的选项中根据自己的需要选择要生产的语言类型和产生的IPCore路径和名称;FPGA系统设计选择ALTDDIO_INFPGA系统设计根据ADS58C28的数据位宽,选择6bits,为使后续排序能更好的采到稳定数据,这里勾选Invertinputclock,这个在后面的介绍中会说明原因;FPGA系统设计在仿真模型中,列出了要仿真该IPCore需要的元器件库有altera_mf,另外如果需要还可以勾选生成网表,如无特殊要求,一般不用勾选;FPGA系统设计在在后一页列出了所生成的文件,其中灰色不可选的是IPCore的核心文件,其他的文件可以根据需要勾选,如想用原理图来实现的可以选择.bsf文件,用代码实现的可以选择inst.v或bb.v文件,其中inst.v文件列出了IP例化的端口,二bb.v文件则是一个黑盒子形式,可以根据个人习惯选择,这里选择inst.v文件,当然你也可以全部都选上,这个不会有冲突的。FPGA系统设计选择实现文件形式FPGA系统设计生成IPCore后,顶层文件inst.v文件代码,我们可以直接利用该文件对其进行例化。第二个步骤是对转换成SDR格式的数据进行排序。ALTDDIO_IN的时序图如下[23]:FPGA系统设计根据该时序图,转换之后,我们在inclock的下降沿去采输出数据就能采到比较稳定的数据,由于我们一般都用上升沿去采数据,所以在前面生成IPCore的时候,选择了Invertinputclock。第三个步骤是隔离时钟域,该功能主要利用一个异步FIFO(FirstInFirstOut,即先进先出),FIFO的输入时钟(写时钟)是ADC的随路时钟,该时钟将ADC数据写入FIFO的存储区。输出时钟(读时钟)是FPGA内部的系统时钟,该时钟在FIFO的存储区将已经被稳定保存的数据从存储区读出来,这样就能将ADC的数据与FPGA的内部系统时钟进行同步。其他的选项按默认即可FPGA系统设计异步FIFOFPGA系统设计FIFOIP选项FPGA系统设计DAC接口以NXP公司的DAC1405为例,其数据接口的时序图如下FPGA系统设计根据DAC1405的datasheet可知,SYNC(即clock)是输出信号,FPGA要将处理完的数据用这个时钟打出2来,传输格式为SDR,所以相对ADC接口来说比较简单,只要用一个FIFO隔离FPGA内部时钟和DAC的时钟即可,做法与ADC接口大同小异。要注意的一点是由于通过FPGA处理之后,数据分为IQ两路,为了使IQ在FIFO上电时不错位,需将IQ信号按位拼接成一个28bits的数据经过FIFO之后再分离。FPGA系统设计SPI接口以TI公司的LMX2531为例,讲解FPGA通过SPI接口配置PLL。从官方的datasheet中可以找到LMX2531的配置时序图,如下图所示:FPGA系统设计上面分别介绍了ADC接口,DAC接口,SPI接口,跟FPGA相关的接口还有UART接口,I2C接口等等,由于篇幅问题不再一一介绍,有兴趣的读者可以参考相关资料,自己设计。这里推荐一个叫opencores的开源网站,该网站上有各种IPCore可以下载。网址是:。信号处理部分在直放站中,数据处理最常用的有抽取,下变频,选频滤波,上变频,内插等。另外还有一些特殊功能,如数字预失真,自激对消等,这些系统比较复杂,有专门的书籍对此做详细介绍,本章不做介绍,有兴趣的读者可以参考相关资料学习。FPGA系统设计以下的章节将重点介绍最常用的抽取内插,上下变频,选频等数字信号处理实现方法。数据的抽取和内插。由于在无线通信中,信号的带宽一般比较宽,如:GSM在国内是30MHz(每载波200kHz),CDMA是10MHz(每载波1.2288MHz)WCDMA是60MHz(每载波5MHz),TD-SCDMA目前国内使用的A频段15MHz(每载波1.6MHz)。在采样定理中我们知道,要完全恢复信号,对信号的采样速率必须大于等于2倍的信号带宽。而在工程中为达到更好的性能,一般会留一定的余量,比如3~4倍甚至更高。因此一般ADC的采样率一般都会比较高。FPGA系统设计ADC采样后送给FPGA的高采样率数据对FPGA来说意味着需要更高的系统时钟和更高的资源使用,当然这就会带来更高的成本和功耗。为了解决该问题,在FPGA接收到ADC的数据后,一般会做抽取处理,将数据率降到FPGA能处理又不影响性能的速率。在信号与系统的课程中我们知道对信号进行抽取时,为避免高频分量混叠到带内,要在抽取之前加上抗混叠滤波器,所以整个抽取包括两部分:滤波和抽取。FPGA系统设计下图为4倍抽取,即4个点留下一个。FPGA系统设计抽取滤波器一般有CIC(级联积分梳状)滤波器,FIR(有限长单位冲激响应)滤波器和HB(半带)滤波器(2倍抽取)等。CIC滤波器的主要特点是仅利用加法器、减法器和寄存器(无需乘法器),因此占用资源少、实现简单且速度高。FIR滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。FPGA系统设计其实HB滤波器是一种特殊的FIR滤波器,这种滤波器由于通带和阻带相对于二分之一Nyquist频率对称,因而有近一半的滤波器系数精确为零。当作为抽取因子为2的抽取滤波器时,可大大减少滤波的运算量。下面的章节以HB滤波器为例介绍抽取滤波器的实现,起到一个抛砖引玉的作用,其他的滤波器有兴趣的读者可以根据其原理自己实现。FIR滤波器的数学表达式为:,其中,xn-i是时刻n-i的输入信号,hi是第i个系数。这里涉及到一个系数如何产生的问题。一般我们会在Matlab里面有一个叫FDATool的工具里面先设计一个滤波器,并将其系数导出来,放在FPGA的BlockROM里面。在做运算时将系数从ROM里面读出来做运算。FPGA系统设计下面介绍一下如何用Matlab的FDATool工具设计滤波器。打开Matlab,在命令行窗口输入fdatool指令,按回车,就会弹出FDATool工具的窗口。FPGA系统设计FDATool界面FPGA系统设计我们以采样率为122.88MHz,两倍抽取,带宽30MHz,带内纹波0.01dB,为例设计一个半带滤波器。参数设置如下:FPGA系统设计点击DesignFilter按钮,生成如下滤波器:FPGA系统设计点击按钮,可以切换到系数FPGA系统设计从上图我们可以看到半带滤波器中间有几个系数是0,这些系数在做乘法的时候可以不用参与运算,所以可以节省乘法器资源。我们可以通过File菜单下的Export选项将系数导出。FPGA系统设计导出格式FPGA系统设计我们下面将利用QuartusII的IPCore来生成这个滤波器。所以要将系数整理成IPCore工具能识别的格式。并将其保存下来,这里保存成hb_filter.fcf。如下图所示:导出的滤波器参数FPGA系统设计在Tools菜单下,选择MegaWizardPlug-InManager选项,打开IPCore工具,并选择Createanewcustommegafunctionvariation创建一个新的IP。在左边的导航栏中展开DSP文件夹,选中Filters中的FIRCompilerIIv12.0。在右边选择语言种类并命名,这里以VerilogHDL为例,命名为hb_filter。FPGA系统设计使用FIRComplier生成滤波器FPGA系统设计按如下配置滤波器的参数,并导入上面用Matlab生成的系数。导入FDATool生成的滤波器参数FPGA系统设计滤波器输入输出设置FPGA系统设计滤波器实现参数选择FPGA系统设计点击Finish完成。在生成的文件中有一个hb_filter_sim文件夹,该文件夹包含了该滤波器仿真的所有文件,有兴趣的读者可以利用该文件夹中的文件用Modelsim对其仿真。内插滤波器的设计与抽取是一个逆过程,实现方法大同小异。有兴趣的读者可以行设计。FPGA系统设计信号的上变频(DUC)和下变频(DDC)经过抽取后的信号是一个宽带的信号(如上例30MHz),以WCDMA为例,30MHz有6个载波,在FPGA中对载波进行选频滤波,需要将各

1 / 64
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功