标题:
基于并行DSP的脉冲压缩处理实现(2)
[打印本页]
作者:
yuyang911220
时间:
2015-10-25 17:07
标题:
基于并行DSP的脉冲压缩处理实现(2)
3 基于
DSPs
的频域脉压实现
确定硬件平台后,便可进行算法映射。如前所述,本系统的工作包含数据处理和数据传输2个方面,数据传输为数据处理提供及时可用的数据以及计算结果输出,数据处理是循环往复地对每一块数据进行脉压运算。对于信号处理板及DSP,数据块的传输均可采用DMA方式,这样的优点是传输不占用处理器核的时间①,只需要处理器核做DMA的配置工作。于是数据传输和数据处理可以从物理和逻辑上分开,两者并行工作,且仅通过约定的软件接口及中断触发机制相联系。由上分析,在实现脉压处理控制时可把软件设计分为数据传输层和数据处理层两部分(当然形成系统时还需要增加控制层)。这两层的接口就是数据读入和输出的数据缓冲区,中断信号可使两层同步运行。
在传输和处理分开考虑的前提下,首先讨论数据传输。即为数据处理提供完整的数据通道,使数据处理部分只需从约定的内存区域获取输入数据,把处理结果存放到相应的位置,这可降低程序编写难度并能获得较高的稳定性、可读性。对于频域处理,当数据块完全读入才能开始运算,因此数据传输采用块传输方式,反之若每得到一个采样点就传输一次,系统效率将大大降低,发生总线冲突的可能性会更大。对6.
6MHz
的采样率,完成744点数据块的采样需要111.6μs,而集中传输仅需15μs,即总线有86.5%的空闲率,这使总线上各片控制
信号发生
碰撞的机率大为减少。块采样结束时A/D产生一个窄脉冲信号。每片DSP都可以选择此信号作中断源,在块采样结束时控制处理板上的
ASIC
启动DMA接收这段数据。脉压运算主要是FFT运算②,一组数据的FFT可由一片DSP完成也可由4片共同完成。由FFT的信号流图[3]可知,对于N点FFT,可先在4个DSP上分别完成4个N/4点FFT,然后将结果交织完成N点FFT最后阶段的运算,这样需要在片间交换数据,引入片间数据等待时间。另一种处理方式是由4片DSP分别独立计算N点FFT,并轮流输出结果,我们称之为多片流水处理。相对前者,流水处理避免了片间数据等待,有较高的系统运算效率,缺点是成倍增加系统输出时延(相对数据块采样完成)。流水处理的系统输出时延为:tr+tc+tp+to,而前者为:tr+tc/2+tov+tp/4+to(其中tr,tc,tp,tov,to分别是输入传输、格式转换、脉压处理、交织数据传输以及数据输出的时间),可见流水方式运算效率即CPU利用率较高①,因此本方案采用流水并行方式。
A/D输出的数据是两路合一的,即低16位为I路的采样值,高16位为Q路采样数据,格式为二进制补码形式。这样的数据格式使传输时间减少一半,只是需要在数据接收到DSP时做格式转换,即分别截取I,Q两路数据并转换成浮点存放到各自的接收缓冲区。出于程序模块化考虑,将格式转换的程序放到数据传输部分,这样数据处理部分就只做与脉压相关的运算。
综上所述,脉压软件可以分为数据传输部分和数据处理部分。对于数据接收,利用一片DSP作主控,当A/D完成块数据块采样并发出中断信号时,主控DSP进入中断服务程序并启动相应DSP的数据接收DMA,之后退出中断服务继续本片DSP的工作。而相应DSP在接收DMA结束时进入自己的中断服务程序完成数据格式转换并返回。至此数据传输部分工作完成。对于某一片的数据处理也是一块数据完全读入再开始新一轮远算。脉压系统软件流水时序如图5所示。各片DSP的内存组织及数据流向如图6所示。
最后讨论实时处理的一些条件。首先,由于系统的DMA接收通道有限(这里为1),在本文的处理方式下,数据读入必须在下一块数据开始传输之前完成,即在111.6μs内完成744×32b数据的读入。其次,4片流水处理机制决定数据处理(包括格式转换)的最大时间限制为:111.6×4μs。数据输出通道的速度要求与系统和下一级处理器的连接方法有关,这里暂不讨论。所以不包括输出时间,脉压系统的输出最大延时为111.6×5μs,当然工程上必须留有足够的时间余量来进行系统控制、容错处理以及可能出现的
其他
扩展,本系统的延迟时间约390μs,其中处理时间354μs。
4 结语
实时并行系统的前期算法分析和体系结构映射方案十分重要,良好的框架可以让复杂的算法高效可靠的实现,也可以让软件更容易实现模块化从而减小开发周期。本文谈到的算法分析及实现方法现已应用于实际工程项目中,并且获得了良好的系统性能和稳定性。对各种时宽和信号形式(时宽在几到几十μs之间,信号形式包含相位编码、非/线性调频)的雷达模拟回波信号,实测脉压输出波形与
Matlab
仿真结果基本吻合,主旁瓣比仅差3 dB左右。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0