DSP+FPGA实时信号处理系统的设计
·易于扩充和维护。各个PU的内部结构完全相同,而且外部接口统一,所以系统很容易根据需要进行硬件的配置和扩充。当某个模块出现故障时,也易于更换。
·处理模块的规范结构能够支持多种处理模式,可以适应不同的处理算法。
每个PU的核心由DSP芯片和可重构器件FPGA组成,另外还包括一些外围的辅助电路,如存储器、先进先出(FIFO)器件及FLASH ROM等(图2)。可重构器件电路与DSP处理器相连,利用DSP处理器强大的I/O功能实现单元电路内部和各个单元之间的通信。从DSP的角度来看,可重构器件FPGA相当于它的宏功能协处理器(Co-processor)。
PU中的其他电路辅助核心电路进行工作。DSP和FPGA各自带有RAM,用于存放处理过程所需要的数据及中间结果。FLASH ROM中存储了DSP的执行程序和FPGA的配置数据。先进先出(FIFO)器件则用于实现信号处理中常用到的一些操作,如延时线、顺序存储等。
PU单独做成一块PCB,各级PU之间通过插座与底板相连。底板的结构很简单,主要由几个串连的插座构成,其作用是向各个PU提供通信通道和电源供应。可以根据需要安排底板上插座的个数,组成多级线性阵列结构。这种模块化设计的突出优点在于,它使得对系统的功能扩充和维护变得非常简单。需要时,只要插上或更换PU电路板,就可以实现系统的扩展和故障的排除。每一级PU中的DSP都有通信端口与前级和后级PU电路板相连,可以很方便地控制和协调它们之间的工作。
4 应用实例
我们应用上述线性流水阵列结构实现了一个实时目标检测系统,该系统的任务主要是接收摄像头输出的灰度图象,经预处理、编码、直线拟合和目标识别后,输出结果到PC机显示。在这个任务中,预处理模块包括抽样、卷积和编码等步骤,属于低层的处理,其运算数据量大,但运算结构较规则,适于用FPGA进行纯硬件实现;而直线拟合及目标识别等高层图象处理算法,所处理的数据量相对较少,但要用到多种数据结构,其控制也复杂得多,我们用DSP编程来实现。
重构处理模块采用的是Xilinx公司的XC5200系列FPGA芯片。这是一种基于SRAM的现场可编程门阵列。表1给出了XC5200 系列FPGA的一些参数。
表1 XC5200系列FPGA的一些参数
器件 | XC5204 | XC5206 | XC5210 | XC5215 |
逻辑单元 | 480 | 784 | 1296 | 1936 |
最大逻辑门 | 6000 | 10000 | 16000 | 23000 |
多功能块 | 10×12 | 14×14 | 18×18 | 22×22 |
CLB | 120 | 196 | 324 | 484 |
触发器 | 480 | 784 | 1296 | 1936 |
I/O | 124 | 148 | 196 | 244 |
XC5200系列FPGA逻辑功能的实现由内部规则排列的逻辑单元阵列(LCA)来完成,它是FPGA的主要部分。LCA的核心是可重构逻辑块(CLB),四周是一些输入/输出块(IOB)。CLB和IOB之间通过片内的布线资源相连接。LCA由配置代码驱动,CLB和IOB的具体逻辑功能及它们的互联关系由配置数据决定。整个FPGA模块的设计实现在Xilinx公司的Foundation 2.1i开发平台上完成。该系统支持设计输入、逻辑仿真、设计实现(设计综合)和时序仿真等系统开发全过程。
在选用DSP芯片时,主要应考虑性能能否满足快速判读算法的要求,具体说就是要求选择那些指令周期短、数据吞吐率高、通信能力强、指令集功能完备的处理器,同时也要兼顾功耗和开发支持环境等因素。表2列出了一些常用微处理器的性能参数。
我们选择的是应用广泛、性价比较高的TMS320C40芯片。它是美国TI公司推出的为满足并行处理需求的32位浮点DSP。主要特性如下:
表2 常用微处理器对照表
处理器类型 | DSP(Motorola) | ADSP | TMS320 | ||||
96002 | 56156 | 21020 | 2101 | C30 | C40 | C50 | |
字长/bit | 32 | 16 | 32 | 16 | 32 | 32 | 16 |
指令周期/ns | 50 | 50 | 50 | 60 | 33 | 25 | 50 |
1024浮点FFT时间/ms | 1.04 | 2.33 | 0.96 | 2.07 | 2.36 | 1.93 | 3.42 |
·外部时钟40MHz,内部时钟20MHz,所有指令均单周期完成,处理器内部采用高度并行机制,可同时进行多达11项各类操作。
·两套相同的外部数据、地址总线,支持局部存储器和全局共享存储器。
·6个高速并行通信口,采用异步传输方式,最大速率可达20Mb/s。通过令牌传递可灵活实现数据双向传输,这种结构很适合C40之间的互连。
·6个DMA通道,每个通道的最大速率可达20Mb/s。DMA内部总线与CPU的地址、数据、指令总线完全分开,避开了总线使用上的瓶颈。
从结构和功能上看,C40很适合与可重构器件互相配合起来构成高速、高精度的实时信息处理系统,并完全可以胜任图像信息的实时处理任务;此外,C40的开发系统也比较完备,支持C语言和汇编语言编程,能够方便地进行算法移植和软/硬件的协同设计。
衡量系统的整体性能不仅要看所使用的器件和所能完成的功能,还要看器件之间采用怎样的互连结构。XC5200可以完成模块级的任务,起到DSP的协处理器的作用。它的可编程性使它既具有专用集成电路的速度,又具有很高的灵活性。C40内部结构的主要优势是:所有指令的执行时间都是单周期,指令采用流水线,内部的数据、地址、指令及DMA总线分开,有较多的寄存器。这些特征使它有较高的处理速度。FPGA具有硬件的高速性,而C40具有软件的灵活性,从器件上考察,能够满足处理复杂算法的要求。同时,C40的6个通信口和6个DMA通道使其能够在不被中断的情况下比较从容地应付与外界大量的数据交换。
从PU内部互连来看,C40使用了专用的通信口完成与FPGA的互连,能够保证在任何情况下FPGA与C40的数据通道的畅通。另外,FPGA和C40各自都有输入端口,使得系统的处理结构多样化。比如,FPGA可以作为处理流程中的一个模块,独立完成某项功能,也可以作为C40的协处理器,通过C40的调用来完成特定的子函数。底板将互连性延伸到PU之间,使得多个电路板能够组成多处理机系统。前级的C40既可以与下一级的C40通信,也可以将数据发送到下一级的FPGA。
综上所述,本文提出的基于DSP+FPGA的线性流水阵列结构,为设计中如何处理软硬件的关系提供了一个较好的解决方案。同时,该系统具有灵活的处理结构,对不同结构的算法都有较强的适应能力,尤其适合实时信号处理任务。
- 基于DSP+FPGA的WCDMA系统基带发送实现方案(03-08)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)