基于OMAP-L138 DSP和Spartan-6的SDR系统实现
Critical Link公司的某客户需要针对多个应用开发一个扩频无线电收发器。该客户已经开发出一套算法,准备用于对信号进行调制和解调,但他们却缺少构建完整系统的资源和专业知识。客户希望利用软件定义无线电(SDR)系统的灵活性优势。本文将探讨如何基于德州仪器(TI)的OMAP-L138 DSP+ARM处理器与FPGA来实现该系统。
平台
Critical Link选择其MityDSP-L138F嵌入式系统模块作为SDR的基础,因为该模块不仅具有很强的处理能力,而且可以为客户节省大量的预先设计成本。MityDSP-L138F模块具有一个TI的OMAP-L138DSP+ARM处理器,该处理器集成了一个456MHz ARM9处理内核和一个456MHz TMS320C674x DSP内核。此外,该模块还包含了FPGA、NAND和NOR闪存以及DDR2存储器。
出于原型考虑,该设计使用了TI针对无线电的高速ADC与DAC评估套件。此外,它还需要能够在60MHz采样频率转换的数据转换器。
针对A/D转换器,该设计选用了TI的ADS5562。该转换器具有16位精度,可以以80Msps采样速率进行转换。因为扩频无线电需要将信号从背景噪声中抽离,所以高动态范围对于这种无线电来说非常重要。
对于DAC,该平台选用了TI的THS5671。这是一款14位125Msps差分电流输出DAC。负责本项目的客户为该系统提供的前端设计如图所示。
图:客户提供的前端设计。
数据传送问题
许多基于DSP的应用要求具有高速数据传输功能,以使系统能够采集和处理数据,或者将数据传送到外设。通常,数字信号处理器都包含了异步地址/数据总线,以使处理器能够读写外设。这些接口可以满足低速传送数据的要求,但是在高速情况下却会成为瓶颈。
OMAP-L138 DSP+ARM处理器具有一个称为外部存储器接口A(EMIFA)的地址/数据总线。EMIFA允许对外部存储器或设备进行异步寻址,并含有若干控制引脚,以满足不同等待状态和传输宽度等等要求。因为该接口具有很强的通用性,所以每次事务处理都可以利用多个时钟周期来完成。例如,最小的读取周期需要每16位3个周期。在100MHz下运行EMIFA,假设总线上没有其他数据,可得到的数据传输速率最大为66MB/s。在总线上进行交错读写会显著地降低传输速率,因为这必须增加额外的转换周期。
OMAP-L138处理器还包括了一个更为专用的接口,即通用并行端口(uPP)。该接口专门用来将大量数据连续送入处理器内存或从其中读出。uPP的传输速率为每时钟周期1个数据字(8位或16位);或者针对双数据速率为每时钟周期2个数据字,但是时钟速率必须减半。uPP时钟速率可以高达处理器时钟速率的一半。对于在300MHz下运行的OMAP-L138处理器,uPP时钟可以达到75MHz。这使吞吐量可以达到150MB/s。
OMAP-L138处理器实际包括2个uPP接口,每个都可以单独配置。这允许我们为应用建立一个传输端口和一个接收端口,从而消除单一总线上的资源争用问题。
从硬件角度看,uPP接口是一种非常简单的同步数据接口。它包含一个时钟引脚、数据引脚和若干控制引脚,用于指明有效数据和起始/等待条件。事实上,该接口可以与一些并行ADC和DAC实现无缝连接。
架构
因为我们的SDR需要与DSP之间进行高速数据传送,所以我们选择使用uPP端口来实现FPGA接口。我们使用一个端口作为接口的发送端,使用另一端口作为接收端。事实上,该处理系统可以同时进行发送和接收,尽管这并非系统要求。这个功能的优势在于,它允许我们在发送器和接收器之间建立循环,以进行大量的测试和调试工作。
对于一个10MHz载波来说,这种调制所需的处理特性,使系统过多地将全部处理任务在OMAP-L138处理器的DSP中完成。在速度较慢的应用中,DSP可以单独满足数据速率的要求,但由于客户要求以更高的速率发送数据,所以我们需要使用FPGA来执行部分处理任务。
FPGA尤其擅长以非常高的频率执行重复任务,因此,我们选择在FPGA中执行初始解调和基带处理。这样,我们就可以大量减少DSP中的数据并降低DSP的数据速率。在发送侧,DSP可以预先计算最终的射频信号,以便将有效负载数据的编码时间降至最短。因此,FPGA仅仅将发送波形数据从uPP端口发送到DAC。事实上,不使用FPGA也可以完成这项工作,但是我们在设计系统时仍将FPGA加入,以便在需要时使用。
FPGA的双端口RAM中包含一个正弦或余弦查找表,用于合成接收机的本机振荡器信号。FPGA中的乘法器/累加器用于根据要求解调信号。
发送处理链
当ARM微处理器上的软件向DSP发出传输消息包时,发送过程将会启动。DSP对数据进行编码,使其成为扩频调制序列,并将其编入一个预先计算的已调制正弦波查找表。然后,DSP使用uPP的内置DMA引擎建立一个DMA传输,
系统 实现 SDR Spartan-6 OMAP-L138 DSP 基于 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)