基于软件无线电的短波多路并行处理系统的设计与实现
2009-05-27
作者:李国振,葛临东,欧阳喜,刘世刚
摘 要: 针对短波窄带信号的实时处理需求,设计实现了一种基于软件无线电思想的短波多路并行处理系统。该系统采用四片高性价比DSP处理器,并行实时处理四路短波信号;采用一片高性能的FPGA,实现全局控制和协处理工作,具有完全可重复编程和配置功能。在此基础上,开发了FPGA程序和主机应用程序,实现了基于DSP的短波PSK信号解调算法。通过在软件无线电接收系统中的实际应用,证实系统使用灵活、性能优良。
关键词: 软件无线电;数字信号实时处理;TMS320C6711D;DFPLL
软件无线电的基本思想是把硬件作为无线通信的基本平台,通过软件实现尽可能多的功能。本文基于软件无线电的思想,应用PCI总线协议设计实现了一种短波多路并行处理系统。该系统硬件体积小、成本低,集信号采集和处理于一体,能够并行实时处理四路短波信号;DSP软件加载灵活方便,用户可以根据需求加载不同的软件算法,符合软件无线电开放化、标准化、模块化的基本要求[1],具有较强的实用性和灵活性,可以广泛应用于短波通信、数字信号实时处理等领域。
1 系统硬件设计与实现
系统硬件结构如图1所示。系统硬件采用四DSP+FPGA架构,从功能结构上分为以下几个部分:运放和A/D采样模块、FPGA模块、多DSP模块、PCI接口模块、存储器模块等。运放和A/D采样模块完成信号放大和模数转换;FPGA控制管理系统上的各种资源,并为外部接口提供访问的控制时序;多DSP模块完成短波中频数字信号的实时处理;PCI接口模块完成主机与系统之间的通信和数据传输。
1.1 运放和A/D采样模块
运放的选型基于以下几点考虑:频率响应范围、多通道和单电源供电。经过比较,最终选用ADI公司的低功耗、四通道运放AD8544。
A/D采样芯片是系统中一个重要的组成部分。本系统对A/D采样芯片的要求有三点:采样率、分辨率和通道数。经过选型,A/D采样芯片采用AD7654[2],它是ADI公司推出的低功耗、双通道、电荷再分布式A/D转换器,最高采样频率500 kHz。设计采样时钟时,由高稳晶振产生稳定度高达10-8、频率为10 MHz的时钟,经过专用的时钟倍频芯片ICS501,将时钟倍频到20 MHz,同时提高了时钟驱动能力。该时钟经过FPGA内设计的分频电路后送给A/D转换器,作为转换时钟,因此通过对FPGA编程可以灵活改变A/D转换器的采样频率。短波中频模拟信号送入A/D转换器进行16 bit采样量化,输出模式分为串行和并行两种,本文采用并行输出模式。由于FPGA的I/O接口电平为3.3 V,A/D输出接口电平设计为3.3 V。
1.2 FPGA模块
FPGA选用Altera Cyclone II 系列的EP2C35F484C6N芯片,该芯片内部有33 216个逻辑单元,能够根据需求完全重新配置,是一款高性能、高密度的可编程逻辑器件。它的管脚支持大部分的标准接口电平,能够方便地与多种外部接口互连,实现高速的数据I/O,另外还提供了其他资源,方便开发者根据需要设计出更多的功能模块。
1.3 多DSP模块
短波中频信号的实时处理对处理器的处理速度提出了很高的要求,因此,DSP作为系统的核心信号处理单元,需要选择处理能力强的芯片。考虑到芯片的性价比,DSP选用TI公司的TMS320C6711D[3]。TMS320C6711D最高工作频率250 MHz,是一款高性价比16位浮点型DSP。其内核电压1.2 V,I/O电压3.3 V。I/O方面,该器件提供了16个独立通道的增强型DMA控制器、一个32位的外部存储器接口(EMIF)、一个16位的主机口(HPI)、两个32位的通用定时器(TIMER)和两个多通道缓冲串口(McBSP)。FPGA和四片DSP 之间采用星型网络结构设计,两片A/D的4路输出和四片DSP之间可以两两任意结合,每片DSP独立处理一路信号,四片DSP可同时实时处理四路信号;多片DSP也可以通过不同分工,处理同一路信号。因此该结构使用灵活、处理能力强。
1.4 PCI接口模块
目前常见的PCI接口电路实现方案主要有以下三种:采用可编程逻辑器件的IP核、采用部分可编程的PCI接口芯片、采用专用的接口芯片。其中,IP核价格昂贵,部分可编程的半定制PCI接口芯片开发成本高且控制复杂。相比之下,采用PLX公司专用的PCI-IO桥接器PCI9054实现PCI接口电路,该芯片应用广泛,具有很高的性价比。后续设备驱动程序的开发与局部总线接口模块的设计均以PCI9054的工作机理为基础,所以它是系统的一个很重要的组成部分。
PCI9054的主要特点如下:内部具有两个独立的可编程DMA控制器;支持复用/非复用的32位地址/数据;PCI总线端支持32位/33 MHz,本地总线端最高时钟50 MHz,最高传输速率132 Mb/s。
1.5 其他模块
高精度高稳定性的电源是系统正常工作的关键,因此电源芯片的选型显得尤为重要。系统中需要5种电源:1.2 V、2.5 V、3.3 V、5 V和12 V,其中5 V和12 V由PCI总线提供,1.2 V由TPS54612提供,2.5 V由AD780提供,3.3 V由TPS54616提供。由于TMSC320C6711D要求内核电压不迟于I/O电压上电,因此1.2 V和3.3 V电源之间采用肖特基二极管进行隔离。
存储器模块选用存储容量为512 Mbit的同步RAM-MT48LC16M16A2。
2 系统软件设计与实现
系统中的四片DSP是独立并行工作的。A/D采样后的数据直接送给FPGA。一方面,FPGA通过DSP的HPI口将每路数据分别送至对应的DSP,DSP处理完毕后通过McBSP口传回FPGA,FPGA中设计的合路模块,采用轮询机制将四路信号合并成一路,通过PCI接口传送至主机;另一方面,A/D采样数据也可以不经过DSP处理,直接通过PCI接口传送至主机。根据系统的工作方式和功能,系统软件分为几个模块,下面加以介绍。
2.1 4DSP复位及程序引导加载
系统的主要特点是四片DSP独立并行工作,因此系统中四片DSP的复位初始化、程序引导加载等环节的设计是一项十分重要的工作。
系统中设计了三种DSP复位方式:按键复位、看门狗复位和FPGA复位。按键复位和看门狗复位属于硬件复位,FPGA复位属于软件复位。看门狗只在DSP工作异常或电源工作异常时,自动复位DSP。用户可以根据需要,灵活选择不同的DSP复位方式。每片DSP的复位都是独立的,任何一片DSP复位不影响其他DSP的正常工作。
DSP程序的引导采用HPI口引导方式,设计流程如下:首先将编译好的DSP程序通过仿真器下载到DSP内存,主机依次通过PCI通道、FPGA模块和DSP的HPI口将DSP内存读取到主机存盘,DSP工作时只需将该存盘文件通过PCI通道加载至DSP内存,然后向HPIC寄存器的DSPINT位写1,DSP程序即可从地址0处开始运行。与一般采用的DSP程序从Flash启动方式相比,该方式具有以下优点:
(1)省掉了Flash芯片,降低了成本,减小了系统硬件面积;
(2)DSP程序的更新方式与通过仿真器下载程序并对Flash编程的方式相比更方便快捷,因此该方式很好地体现了软件无线电的特点。
调试过程中发现,该下载方式存在以下问题:如果DSP程序使用DSP/BIOS,用仿真器将编译好的DSP程序下载到DSP内存,读取内存后存盘,使用时直接加载文件,程序即可正常启动;如果没有使用DSP/BIOS,按照上述步骤加载DSP程序,程序加载后不能正常运行。通过大量实验找到了原因:带DSP/BIOS的DSP程序在地址0处有一条跳转指令,程序从地址0启动之后,会自动跳转到通过仿真器下载程序后程序指针所指向的首地址c_int00。而研究发现不带DSP/BIOS的DSP程序没有该跳转指令。因此如果使用不带DSP/BIOS的DSP程序,应该首先建立一个中断向量表文件,在开始位置添加跳转指令,然后在cmd文件中定义中断向量的内存映射从地址0处开始,这样程序通过引导加载后才能正常运行。
2.2 FPGA接口逻辑
平台上所有数据流的交互、A/D和DSP的工作方式全由FPGA控制。针对要实现的功能,FPGA的接口逻辑分为以下几个部分:PCI接口时序模块、地址译码模块、A/D控制模块、DSP引导加载模块、DSP内存读取模块、A/D与多DSP互联模块、McBSP输出模块、合路模块。FPGA内部逻辑框图如图2所示。其中合路模块采用状态机轮询机制,状态转移图如图3所示。
为了避免数据的丢失,理论上,DSP对应的FIFO的读时钟最小应等于写时钟的4倍,本文取为8倍,保证了四片DSP处理完的数据安全有序地传送至主机。
2.3 PCI设备驱动程序
驱动程序的基本功能是对设备进行识别和初始化,对内存和I/O端口进行操作,对中断进行设置、响应和调用等,从而实现PCI总线上的数据控制[4]。本系统中,PCI设备的驱动程序由PLX公司的软件开发包(SDK)提供。
2.4 主机应用程序
主机应用程序完成系统所有的控制及主机与系统的交互工作,主要功能包括:控制A/D工作模式和采样时钟、选择数据通道、读取DSP内存、加载DSP程序、设置DSP程序相关参数、显示星座、判决存盘等。主机应用程序的开发基于PLX SDK提供的API DLL,实际应用时和DSP的应用程序需进行任务协调。
2.5 基于DSP的PSK信号解调程序
针对短波中频信号的特点,基于DSP的PSK信号解调程序采用了如下几种关键技术:数字AGC、基于判决反馈环的载波同步(DFPLL)、Gardner符号同步和基于CMA的盲均衡。其中DFPLL的基本思想是:由于在码元同步点附近,信号的码间串扰最小,因此对于每个码元,利用码元同步附近的采样点计算码元的相位,并根据基带信号码元的相位特点,计算出参考载波与信号载波的差值,利用此差值调整VCO的相位,从而进行载波恢复。由于DSP选用的是浮点型,因此信号处理算法很容易在DSP上实现。
经过实际工作测试,上述各个软件模块较好地达到了设计的效果。
3 系统测试方案及结果
搭建如图4所示的测试环境。
由于信号源有限,本方案只测试两个通道。信号发生器采用安捷伦E4434B和E8267D,短波前端模块负责将短波射频信号下变频至中心频率为12 kHz的中频信号。其中E4434B参数设置如下:信号类型8PSK,载频12 MHz,符号速率1 500 S/s(samples per second);E8267D参数设置如下:信号类型QPSK,载频15 MHz,符号速率2 400 S/s。信号发生器输出信号幅度统一设置为-25 dBm,系统中A/D采样频率设置为96 kHz。
测试时,首先对信号发生器按照上述参数进行设置,然后启动系统主机程序,对A/D工作模式和采样时钟进行如上配置。在此基础上,进行如下两项测试。
3.1 信号采集实测
通过A/D数据通道直接采集经A/D采样后的数据,将采集到的数字化中频信号存盘,使用CoolEdit Pro软件进行回放,分析数据的波形和频谱,检验采集效果。
信号时域波形如图5所示,信号频谱如图6所示。从时域波形可以看出:QPSK存在明显的倒?仔现象。从频谱可以看出:采样信号信噪比为50 dB,中心频率为12 kHz,带宽为2 400 Hz。测试结果证明:经过运放、A/D变换、FPGA以及PCI接口的传输,系统可以准确采集到中心频率为12 kHz的短波中频信号。
3.2 信号解调和系统整体性能实测
通过主机程序选择DSP处理后的数据通道,分别设置两片DSP的解调参数、加载DSP解调程序并运行。主机程序界面显示的信号星座图如图7所示。
从星座图可以看出:基于DSP的PSK信号解调程序性能较好。信号发生器采用预设的基带数据流,对I/Q数据判决存盘后检测误码率为0。
本文采用多片DSP和FPGA相结合的方法,设计并实现了一种基于软件无线电思想的短波多路并行处理系统。该系统具有完全可重复编程和配置功能,通过加载不同的DSP程序,实现对不同制式和不同规格信号的采集和处理。不仅功能配置和参数变化十分灵活,而且系统性能的升级和提高也十分方便,可适应于不同短波信号环境需求;同时系统硬件采用PCI插卡式设计,体积小、成本低,能够并行实时处理四路短波信号,具有很高的性价比。因此该系统在短波通信和数字信号实时处理领域具有较好的应用前景。
参考文献
[1] 杨小牛,楼才义,徐建良.软件无线电原理与应用[M].北京:电子工业出版社,2001.
[2] 16-Bit,500 kSPS PulSAR Dual,2-Channel,Simultaneous Sampling ADC AD7654.Analog Devices,2005.
[3] TMS320C6711D FLOATING-POINT DIGITAL SIGNAL PROCESSOR.Texas Instruments,2006.
[4] 李贵山,陈金鹏.PCI局部总线及其应用[M].西安:西安电子科技大学出版社,2003.