基于SOPC技术的软件无线电系统研究
扫描二维码
随时随地手机看文章
在软件无线电的早期实现方案中多是用DSP和ASIC来完成。然而这种方案有2个突出的缺点:一是系统的速度很难满足高速动态实时数字信号处理的要求;二是系统的体积大、功耗高。这2个突出缺点制约了软件无线电的推广和应用。随着可编程逻辑器件密度、规模和速度的快速增长,各个可编程逻辑器件厂商开始提出自己的SOPC片上可编程系统的软件和硬件一体化解决方案,为实现高速数字信号处理提供了可能。本文运用基于FPGA的SOPC技术构建了软件无线电平台,极大地提高了数字信号处理的能力和速度,减少了系统的功耗和体积。
1 软件无线电的结构
软件无线电的核心思想是将A/D、D/A尽可能地靠近天线,减少模拟处理的环节。在接收端:由天线接收的无线电信号经过必要的低噪声放大后,就直接对其进行数字化(ADC),数字化后的信号经过DSP完成数字下变频、数字滤波、数字解调等信号处理任务;在发射端:需要发射的基带信号通过DSP完成数字调制、数字上变频和数字滤波等信号处理任务后,经DAC转变为模拟信号,然后通过功率放大器放大到足够功率,最后由天线发射出去。理想的软件无线电结构如图1所示。
实际上,上述的软件无线电结构是很难实现的。首先,根据奈奎斯特采样定理,A/D的采样速率至少是其工作带宽的2倍。例如:对于工作在2 MHz~2 000 MHz的JTRS电台,其采样频率至少要达到4 GHz。目前A/D器件的采样频率很难达到这个要求,而且,如果A/D采样后的大量数据流直接交由DSP处理,将给DSP带来巨大的运算压力。以A/D采样速率仅为100 MHz的A/D器件为例,DSP每处理1个采样信号,大约需要100次运算,则总的运算速率为100×100 M=104 MIPS。这样高的运算速率,目前的DSP芯片还难以达到。
针对上述问题,目前最常用的一种解决方案为:基于带通采样的宽带中频软件无线电结构。它的主要思想是:把射频信号通过混频搬移到中频再带通采样,使得A/D采样率、输入带宽满足系统要求,同时在DSP前加数字下变频器。
中频带通采样软件无线电结构采用多次混频体制,即超外差体制,把工作频段上的某一感兴趣的宽带射频信号经过放大、混频和滤波变换到统一的中频FIF上,最后由A/D转换器对中频信号进行采样数字化。它的最大好处就是降低了对A/D采样速率的要求,使软件无线电可实现性更强,但是也使得射频前端复杂化。
限于目前DSP的处理瓶颈,A/D采样后的大量数据一般先交由数字下变频器进行一些前期的处理再传递给DSP进行处理。数字下变频器一方面从包含所有信道的宽带信号中分离出某一用户窄带信道,另一方面对分离出的某一用户通道信号抽取、滤波和降低数据速率。数字下变频器可采用专用的ASIC芯片,如TI公司生产的GC5016芯片等,也可采用FPGA编程来实现。与专用的数字下变频器件相比,FPGA具有更大的灵活性,不会过分依赖于硬件,只需对软件进行修改就可以对系统进行升级和维护。
图2所示为一种典型的带通采样的宽带中频软件无线电结构。该设计方案中DSP主要完成基带信号处理(如定时同步、信道估计、FFT变换、解交织、编译码等)。通用微处理器GPP(General Purpose Processor)一般使用实时操作系统RTOS(Real Time Operation System)来进行任务调度和存储器管理。
2 软件无线电的解决方案
本文主要实现图2中的高速数字信号处理部分,数字信号处理模块是软件无线电的核心部分。在图2中的是高速数字信号处理部分的一种常用方案,通常是采用分离部件搭建的系统存在体积大、功耗高、成本高、各个单元之间的数据传输速率受限等缺点。SOPC方案可解决以上问题,并且还具有极高的灵活性和可扩展性。
SOPC技术是美国Altrea公司于2000年最早提出的。SOPC是一种特殊的嵌入式系统:首先,它是系统芯片(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁剪、可升级、可扩充,并具备软硬件在系统可编程的功能。它结合了SOC和FPGA的优点,具有以下基本特征:至少包含1个以上的嵌入式处理器IP核;具有小容量片内高速RAM资源;丰富的IP核资源可供灵活选择;有足够的片上可编程逻辑资源;处理器调试接口和FPGA编程接口共用或并存;可包含部分可编程模拟电路;单芯片、低功耗[3]。
目前主要的嵌入式处理器IP核有软核和硬核2种,本文采用Altera公司的Nios II软核处理器。Nios II核是用户可随意配置和构建的32位总线指令集和数据通道的嵌入式微处理器IP核,采用Avalon总线结构通信接口。Nios II有3种性能的处理器内核可供选择:快速的内核(Nios II/f)提供高性能;经济的内核(Nios II/e)满足低成本;标准的内核(Nios II/s)则用于性能和尺寸的平衡。此外,Nios II核含有许多可配置的接口模块核,包括:可配置高速缓存(包括片内ESB、外部SRAM或SDRAM)模块、可配置RS232通信口、SDRAM控制器、标准以太网协议接口、DMA、定时器、协处理器等。在下载进FPGA前,用户可根据设计要求,利用Quartus II和SOPC Builder,对Nios II及其外围系统进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。Nios II核在同一FPGA中被植入的数量没有限制,只要FPGA的资源允许[4]。
采用SOPC技术对图2中的高速数字信号处理部分进行改进,设计的SOPC方案如下:将原来由ASIC、DSP和GPP完成的工作全部交由1片FPGA构成的SOPC系统来完成。本文介绍了一种基于SOPC技术的软件无线电系统解决方案,如图3所示。
该系统的功能实现如下:由Nios II处理器1完成原来由ASIC完成的数字上、下变频处理,可通过调用直接数字合成器DDS(Direct Digital Synthesizer)IP模块来实现;Nios II处理器2主要完成调制/解调工作;Nios II处理器4主要完成编码/解码工作;Nios II处理器3用来替代原系统中的GPP完成系统参数的动态配置、人机交互界面、电台管理和控制以及系统中Flash配置内容的在线更新工作。其中,Nios II处理器1、2、4都采用Nios II/f高速型32位内核; Nios II处理器3采用Nios II/s标准内核。此外,利用PCI IP核在FPGA中增加了32 bit的PCI Slave总线接口,省去传统方案中所需的1块专用PCI接口芯片;加入了以太网IP核,配合外部以太网PHY接口芯片为系统扩展了以太网接口,以便支持设备通过网络远程对系统进行配置和管理;增加了SDRAM控制器,为系统外扩了SDRAM存储器,进一步增强了系统的数据处理能力。
3 系统的软硬件实现
下面就高速数字信号处理部分的硬件选型以及SOPC技术的开发流程、开发工具和编程技术作简要介绍。
3.1 高速ADC和DAC设计
软件无线电要求ADC、DAC尽可能地靠近天线,这需要ADC具有很高的采样率、采样精度和动态范围等特征。本系统的ADC采用BB公司的ADS5520,它具有12位的分辨率,125 MS/s的采样速率;在100 M信号输入情况下,信噪比(SNR)高达69.7 dBFS,无寄生动态范围(SFDR)高达82 dBC;芯片既支持3.3 V的单电压供电,也支持2.3 V的差分输入电压;具有串行编程接口,可对内部寄存器进行编程,使器件工作在不同的状态。
DAC采用BB公司的DAC904芯片,14位的分辨率,165 MS/s的转换速率;可以3.3 V或5 V单电压供电。信号输出端使用截止频率为120 MHz的低通滤波器,以及双端到单端变换电路。
3.2 FPGA的设计
本平台的FPGA器件选用Altera公司的Stratix II FPGA。在Stratix II FPGA中,Altera引入了全新的逻辑单元体系结构——自适应逻辑模块(ALM),以及经过改进的片内TriMatrix存储器和数字信号处理(DSP)模块,进一步提高了性能[5]。根据现有的实验室条件本系统选用ALTERA公司的Stratix II EP2S60F1020C3型号的FPGA,它的主要特性如表1所示。
考虑到在Stratix II系列器件上,Nios II/f内核仅占用1 800个逻辑单元却可以达到超过200 DMIPS的性能,可以计算出前面设计的4个Nios II处理器再加上一些外围接口模块和用户逻辑,总共占用的LE资源不会超过40 000。这款FPGA完全满足系统的需求,剩余的资源可以留为以后系统升级所用。
3.3 SOPC的软硬件开发技术
SOPC设计包括以Nios II软核处理器为核心的嵌入式系统的硬件配置、硬件设计、硬件仿真、IDE环境的软件设计、软件调试等。SOPC系统设计的基本软件工具包括:(1)Quartus II,用于完成Nios II系统的分析综合、硬件优化、适配、配置文件编程下载以及硬件系统测试等;(2)SOPC Builder,它是Nios II软核处理器的开发包,用于实现Nios II系统配置、生成以及与Nios II系统相关的监控和软件调试平台的生成;(3)ModelSim,用于对SOPC Builder生成的Nios II的HDL描述语言程序进行系统功能仿真;(4)Matlab/DSP Builder,用于生成Nios II系统的硬件加速器,进而为Nios II系统定制新的指令;(5)Nios II IDE,用于完成基于Nios II系统的软件开发和调试,并可借助其自带的Flash编程器完成对Flash以及EPCS的编程操作。此外,Nios II IDE还包括1个指令集成模拟器、MicroC/OS-II实时操作系统、文件系统以及小型TCP/IP协议栈[6]。
SOPC的开发流程通常包括2个方面:基于Quartus II、SOPC Builder的硬件设计和基于Nios II IDE的软件设计[7]。三者之间的关系如图4所示。
特别值得一提的是,通过Matlab和DSP Builder或直接使用VHDL等硬件描述语言设计,用户可以为Nios嵌入式处理器设计各类加速器,并以指令的形式加入Nios的指令系统,从而成为Nios系统的一个接口设备,与整个片内嵌入式系统融为一体。用户可以根据设计项目按具体要求构建自己的DSP处理器系统,而不必拘于具体的DSP处理器型号。
使用SOPC解决方案带来了整个系统开发平台的统一,和其他解决方案相比,具有体积小、功耗低、成本低的优点。此外,开发环境的集成统一、IP核的使用等缩短了系统的开发周期。基于FPGA的SOPC技术具有很高的灵活性和开放性,这充分体现了软件无线电的优势,是实现软件无线电系统的理想方案。