版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章直放站数字系统设计
18.1直放站FPGA系统设计直放站可以增强网络覆盖及网络覆盖质量,可以显著降低运营商的覆盖成本。直放站(中继器)属于同频放大设备,是指在无线通信传输过程中起到信号增强的一种无线电发射中转设备。直放站的基本功能就是一个射频信号功率增强器。直放站在下行链路中,由施主天线现有的覆盖区域中拾取信号,通过带通滤波器对带通外的信号进行极好的隔离,将滤波的信号经功放放大后再次发射到待覆盖区域。在上行链接路径中,覆盖区域内的移动台手机的信号以同样的工作方式由上行放大链路处理后发射到相应基站,从而达到基地站与手机的信号传递。
2直放站整体结构
3主要归结起来主要有两点,一是数据接口,二是数据处理。数据接口主要有数据链路接口和配置接口。数据接口包括ADC接口和DAC接口,这两个接口主要承担了信号的输入输出,配置接口,主要是对外围器件的配置,如ATT(衰减器),PLL(锁相环)等。数据处理功能主要利用数字滤波器进行选频,把外的干扰信号滤除。下面对上述提到的接口做详细分析。
4数据接口ADC接口
以TI公司的ADS58C28为例介绍其数据接口的实现。ADS58C28是一个11bit的ADC,该ADC的详细参数在其官方网站上有详细的资料介绍,这里不在赘述,这里重点根据其时序图介绍数据接口的实现。ADS58C28的时序图如下图所示:ADS58C28时序从图中可以看到该ADC采用的是DDR(双数据率)传输方式,即在一个时钟周期内传输两个比特的数据,在时钟的下降降沿传输偶数比特,如D0,D2,D4等;在时钟的上升沿传输奇数比特,如D1,D3,D5等;它总共有6对LVDS线,其中第一对数据线传输0和D0,第二对LVDS传输D1和D2,依次类推;ADC接口的作用就是将ADC的数据接收下来,转换成FPGA能识别和方便处理的方式。其主要包含3个步骤第一,根据其时序图将其DDR(双数据率)传输方式转换成SDR(单数据率)的传输方式,这是因为FPGA内部的处理基本上都是单数据率的。第二,将已经转化成的SDR数据按照MSB(MostSignificantBit即最高有效位)排序。第三,隔离时钟域,为什么还需要这个步骤呢?简单来说就是因为ADC的随路时钟与FPGA的内部时钟是不同的时钟源或者通过不同的传输路径传输之后,会不同步,如果没有将这两个时钟域隔离开关,那么在用FPGA内部时钟同步数据的时候就有可能会错拍,导致数据出错。
第一个步骤DDR转SDR在QuartusII软件中有专门的IPCore来实现该功能,生产方法如下:在Tools菜单下,选择MegaWizardPlug-InManager选项
选择Createanewcustommegafunctionvariation创建一个新的IP;在左边的导航栏中展开I/O文件夹,选ALTDDIO_IN,这个就是专门用于DDR输入转换的,下面的ALTDDIO_OUT则是用于输出的。在右手边的选项中根据自己的需要选择要生产的语言类型和产生的IPCore路径和名称;选择ALTDDIO_IN根据ADS58C28的数据位宽,选择6bits,为使后续排序能更好的采到稳定数据,这里勾选Invertinputclock,这个在后面的介绍中会说明原因;在仿真模型中,列出了要仿真该IPCore需要的元器件库有altera_mf,另外如果需要还可以勾选生成网表,如无特殊要求,一般不用勾选;在在后一页列出了所生成的文件,其中灰色不可选的是IPCore的核心文件,其他的文件可以根据需要勾选,如想用原理图来实现的可以选择.bsf文件,用代码实现的可以选择inst.v或bb.v文件,其中inst.v文件列出了IP例化的端口,二bb.v文件则是一个黑盒子形式,可以根据个人习惯选择,这里选择inst.v文件,当然你也可以全部都选上,这个不会有冲突的。选择实现文件形式生成IPCore后,顶层文件inst.v文件代码,我们可以直接利用该文件对其进行例化。第二个步骤是对转换成SDR格式的数据进行排序。ALTDDIO_IN的时序图如下[23]:根据该时序图,转换之后,我们在inclock的下降沿去采输出数据就能采到比较稳定的数据,由于我们一般都用上升沿去采数据,所以在前面生成IPCore的时候,选择了Invertinputclock。第三个步骤是隔离时钟域,该功能主要利用一个异步FIFO(FirstInFirstOut,即先进先出),FIFO的输入时钟(写时钟)是ADC的随路时钟,该时钟将ADC数据写入FIFO的存储区。输出时钟(读时钟)是FPGA内部的系统时钟,该时钟在FIFO的存储区将已经被稳定保存的数据从存储区读出来,这样就能将ADC的数据与FPGA的内部系统时钟进行同步。其他的选项按默认即可异步FIFOFIFOIP选项DAC接口
以NXP公司的DAC1405为例,其数据接口的时序图如下根据DAC1405的datasheet可知,SYNC(即clock)是输出信号,FPGA要将处理完的数据用这个时钟打出2来,传输格式为SDR,所以相对ADC接口来说比较简单,只要用一个FIFO隔离FPGA内部时钟和DAC的时钟即可,做法与ADC接口大同小异。要注意的一点是由于通过FPGA处理之后,数据分为IQ两路,为了使IQ在FIFO上电时不错位,需将IQ信号按位拼接成一个28bits的数据经过FIFO之后再分离。SPI接口
以TI公司的LMX2531为例,讲解FPGA通过SPI接口配置PLL。从官方的datasheet中可以找到LMX2531的配置时序图,如下图所示:上面分别介绍了ADC接口,DAC接口,SPI接口,跟FPGA相关的接口还有UART接口,I2C接口等等,由于篇幅问题不再一一介绍,有兴趣的读者可以参考相关资料,自己设计。这里推荐一个叫opencores的开源网站,该网站上有各种IPCore可以下载。网址是:。信号处理部分
在直放站中,数据处理最常用的有抽取,下变频,选频滤波,上变频,内插等。另外还有一些特殊功能,如数字预失真,自激对消等,这些系统比较复杂,有专门的书籍对此做详细介绍,本章不做介绍,有兴趣的读者可以参考相关资料学习。以下的章节将重点介绍最常用的抽取内插,上下变频,选频等数字信号处理实现方法。数据的抽取和内插。由于在无线通信中,信号的带宽一般比较宽,如:GSM在国内是30MHz(每载波200kHz),CDMA是10MHz(每载波1.2288MHz)WCDMA是60MHz(每载波5MHz),TD-SCDMA目前国内使用的A频段15MHz(每载波1.6MHz)。在采样定理中我们知道,要完全恢复信号,对信号的采样速率必须大于等于2倍的信号带宽。而在工程中为达到更好的性能,一般会留一定的余量,比如3~4倍甚至更高。因此一般ADC的采样率一般都会比较高。ADC采样后送给FPGA的高采样率数据对FPGA来说意味着需要更高的系统时钟和更高的资源使用,当然这就会带来更高的成本和功耗。为了解决该问题,在FPGA接收到ADC的数据后,一般会做抽取处理,将数据率降到FPGA能处理又不影响性能的速率。在信号与系统的课程中我们知道对信号进行抽取时,为避免高频分量混叠到带内,要在抽取之前加上抗混叠滤波器,所以整个抽取包括两部分:滤波和抽取。下图为4倍抽取,即4个点留下一个。抽取滤波器一般有CIC(级联积分梳状)滤波器,FIR(有限长单位冲激响应)滤波器和HB(半带)滤波器(2倍抽取)等。CIC滤波器的主要特点是仅利用加法器、减法器和寄存器(无需乘法器),因此占用资源少、实现简单且速度高。FIR滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。其实HB滤波器是一种特殊的FIR滤波器,这种滤波器由于通带和阻带相对于二分之一Nyquist频率对称,因而有近一半的滤波器系数精确为零。当作为抽取因子为2的抽取滤波器时,可大大减少滤波的运算量。下面的章节以HB滤波器为例介绍抽取滤波器的实现,起到一个抛砖引玉的作用,其他的滤波器有兴趣的读者可以根据其原理自己实现。FIR滤波器的数学表达式为:,其中,xn-i是时刻n-i的输入信号,hi是第i个系数。这里涉及到一个系数如何产生的问题。一般我们会在Matlab里面有一个叫FDATool的工具里面先设计一个滤波器,并将其系数导出来,放在FPGA的BlockROM里面。在做运算时将系数从ROM里面读出来做运算。下面介绍一下如何用Matlab的FDATool工具设计滤波器。打开Matlab,在命令行窗口输入fdatool指令,按回车,就会弹出FDATool工具的窗口。FDATool界面我们以采样率为122.88MHz,两倍抽取,带宽30MHz,带内纹波0.01dB,为例设计一个半带滤波器。参数设置如下:点击DesignFilter按钮,生成如下滤波器:点击按钮,可以切换到系数从上图我们可以看到半带滤波器中间有几个系数是0,这些系数在做乘法的时候可以不用参与运算,所以可以节省乘法器资源。我们可以通过File菜单下的Export选项将系数导出。导出格式我们下面将利用QuartusII的IPCore来生成这个滤波器。所以要将系数整理成IPCore工具能识别的格式。并将其保存下来,这里保存成hb_filter.fcf。如下图所示:导出的滤波器参数在Tools菜单下,选择MegaWizardPlug-InManager选项,打开IPCore工具,并选择Createanewcustommegafunctionvariation创建一个新的IP。在左边的导航栏中展开DSP文件夹,选中Filters中的FIRCompilerIIv12.0。在右边选择语言种类并命名,这里以VerilogHDL为例,命名为hb_filter。使用FIRComplier生成滤波器按如下配置滤波器的参数,并导入上面用Matlab生成的系数。导入FDATool生成的滤波器参数滤波器输入输出设置滤波器实现参数选择点击Finish完成。在生成的文件中有一个hb_filter_sim文件夹,该文件夹包含了该滤波器仿真的所有文件,有兴趣的读者可以利用该文件夹中的文件用Modelsim对其仿真。内插滤波器的设计与抽取是一个逆过程,实现方法大同小异。有兴趣的读者可以行设计。信号的上变频(DUC)和下变频(DDC)经过抽取后的信号是一个宽带的信号(如上例30MHz),以WCDMA为例,30MHz有6个载波,在FPGA中对载波进行选频滤波,需要将各个载波分别移到零频,再用一个低通滤波器(如FIR滤波器)将其他载波信号滤除。如图9.25所示。下变频的原理主要是将输入信号与一个数控振荡器(NCO)相乘,得到指定载波频谱向下搬移到零频的频谱。原理框图如下图所示:下变频原理NCO采用的直接数字频率合成技术(DDS)是一种实用的频率合成技术,DDS由相位概念出发直接合成所需波形的一种新的频率合成技术。DDS合成技术采用了简便和有效的查表法,
即根据各个正弦波相位计算好相位对应的正弦值,存在ROM中。随着时钟周期变换,相位累加器不断频率控制字累加,送出相应的相位累加值;按照产生的相位累加值在正弦数据存储单元中查出对应的正弦幅度值并输出。当一个周期相位满后,查找表回到初始值。DDC的数学模型如下式所示:从上式可以看出,输出:通过上述分析可以看出,下变频最主要的是完成NCO和一个复数乘法。下面介绍如何用QuartusII的IPCore工具生成NCO。在Tools菜单下,选择MegaWizardPlug-InManager选项,打开IPCore工具,并选择Createanewcustommegafunctionvariation创建一个新的IP。在左边的导航栏中展开DSP文件夹,选中SignalGeneration中的NCOv12.0。在右边选择语言种类并命名,这里选择VerilogHDL,命名为nco。选择NCOIP在弹出的对话框中点击配置NCO的参数,可按照如下参数配置好NCO。由于系统时钟是122.88MHz,而ADC输入的122.88MSPS的数据率在前面已经被抽取了2倍,变成61.44MSPS,所以这里通道数我们选择2通道,可以进行多路复用。可以进行下列参数设置,如下如:NCO实现选项设置最后一页显示了该NCO的资源使用情况。点击Finish按钮完成配置。点击可以配置仿真模型,勾选GenerateSimulatonModel,在Language栏选择VerilogHDL。这样在生成IPCore的同时会生成一个仿真模型,在Modelsim中仿真时可以调用。设置NCO仿真最后点击按钮,IPCore工具会自动按照配置要求生成所需的文件。如下图所示。有了NCO之后,我们还需要做复数乘法,就需要用到FPGA里面的硬件乘法器。当然IPCore工具也可以直接生成一个复数乘法器,只要直接调用即可。为了更好的讲述复数乘法的实现过程,这里选择先生成乘法器,再用乘法器运算实现复数乘法器。下面介绍硬件乘法器的生成。打开IPCore工具,创建一个新的IPCore,在左边的导航栏展开Arithmetic文件夹,选中LPM_MULT。在左边选择VerilogHDL,并命名为mult_s18xs18。乘法器IP由于Altera的FPGA里面的乘法器最小单元是9bit*9bit,用两个9bit*9bit就可以组成一个18bit*18bit的乘法器。为了达到更好的精度又能尽可能的利用好FPGA的乘法器资源,我们选择生成18bit*18bit的乘法器。参数配置如下:乘法器选项由于我们要进行处理的数据都是有符号数的,所以在MultiplicationType选项中选择Signed。其他默认即可由于Altera的硬件乘法在输入输出各配置了一个寄存器,可根据需要进行选择,为了达到跟好的时序收敛性能,在处理中我们一般都会用到流水
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深井泵房施工组织设计
- 历年英语四级真题及答案
- 2025年华师大新版七年级历史下册月考试卷
- 2025年外研版九年级历史上册月考试卷含答案
- 2025年浙教版九年级历史下册阶段测试试卷
- 2025年华师大版选择性必修3历史下册阶段测试试卷
- 2025年度农机环保技术合作开发合同范本4篇
- 房屋建筑设计合同(2篇)
- 担保合同补充协议书(2篇)
- 2025年度绿色建筑项目除草与节能合同3篇
- 数学-山东省2025年1月济南市高三期末学习质量检测济南期末试题和答案
- 中储粮黑龙江分公司社招2025年学习资料
- 湖南省长沙市2024-2025学年高一数学上学期期末考试试卷
- 船舶行业维修保养合同
- 2024年林地使用权转让协议书
- 物流有限公司安全生产专项整治三年行动实施方案全国安全生产专项整治三年行动计划
- 2025届江苏省13市高三最后一卷生物试卷含解析
- 产钳助产护理查房
- 招聘专员转正述职报告
- (完整版)小学生24点习题大全(含答案)
- 2022年五年级解方程小数和分数计算题
评论
0/150
提交评论