1DSP+FPGA 实时信号处理系统
2FPGA+DSP实时三维图像信息处理系统
3,采用FPGA+DSP结构的多通道高速数据采集与实时图像处理系统设计与实现方案
4,基于DSPFPGA的蓝牙数据采集系统设计
5基于DSPFPGA的通用图像处理平台设计
6基于FPGA+ DSP的实时图像处理系统设计与实现
7基于DSP的实时图像目标搜索与跟踪系统设计
1DSP+FPGA 实时信号处理系统
实时信号处理系统要求必须具有处理大数据量的能力,以保证系统的实时性;其次对系统的体积、功耗、稳定性等也有较严格的要求。实时信号处理算法中经常用到对图象的求和、求差运算,二维梯度运算,图象分割及区域特征提取等不同层次、不同种类的处理。其中有的运算本身结构比较简单,但是数据量大,计算速度要求高;有些处理对速度并没有特殊的要求,但计算方式和控制结构比较复杂,难以用纯硬件实现。因此,实时信号处理系统是对运算速度要求高、运算种类多的综合性信息处理系统。
信号处理系统的类型与常用处理机结构
    根据信号处理系统在构成、处理能力以及计算问题到硬件结构映射方法的不同,将现代信号处理系统分为三大类:
    ·指令集结构(ISA)系统。在由各种微处理器、DSP处理器或专用指令集处理器等组成的信号处理系统中,都需要通过系统中的处理器所提供的指令系统(或微代码)来描述各种算法,并在指令部件的控制下完成对各种可计算问题的求解。
    ·硬连线结构系统。主要是指由专用集成电路(ASIC)构成的系统,其基本特征是功能固定、通常用于完成特定的算法,这种系统适合于实现功能固定和数据结构明确的计算问题。不足之处主要在于:设计周期长、成本高,且没有可编程性,可扩展性差。
    ·可重构系统。基本特征是系统中有一个或多个可重构器件(如FPGA),可重构处理器之间或可重构处理器与ISA结构处理器之间通过互连结构构成一个完整的计算系统。
    从系统信号处理系统的构成方式来看,常用的处理机结构有下面几种:单指令流单数据流(SISD)、单指令流多数据流(SIMD)、多指令流多数据流(MIMD)。
    ·SISD结构通常由一个处理器和一个存贮器组成,它通过执行单一的指令流对单一的数据流进行操作,指令按顺序读取,数据在每一时刻也只能读取一个。弱点是单片处理器处理能力有限,同时,这种结构也没有发挥数据处理中的并行性潜力,所以在实时系统或高速系统中,很少采用SISD结构。
    · SIMD结构系统由一个控制器、多个处理器、多个存贮模块和一个互连网络组成。所有“活动的”处理器在同一时刻执行同一条指令,但每个处理器执行这条指令时所用的数据是从它本身的存储模块中读取的。对操作种类多的算法,当要求存取全局数据或对于不同的数据要求做不同的处理时,它是无法独立胜任的。另外,SIMD 一般都要求有较多的处理单元和极高的I/O吞吐率,如果系统中没有足够多的适合SIMD 处理的任务,采用SIMD 是不合算的。
    · MIMD结构就是通常所指的多处理机,典型的MIMD系统由多台处理机、多个存储模块和一个互连网络组成,每台处理机执行自己的指令,操作数也是各取各的。MIMD结构中每个处理器都可以单独编程,因而这种结构的可编程能力是最强的。但由于要用大量的硬件资源解决可编程问题,硬件利用率不高。
DSP+ASIC结构
    随着大规模可编程器件的发展,采用DSP+ASIC结构的信号处理系统显示出了其优越性,正逐步得到重视。与通用集成电路相比,ASIC芯片具有体积小、重量轻、功耗低、可靠性高等几个方面的优势,而且在大批量应用时,可降低成本。
    现场可编程门阵列(FPGA)是在专用ASIC的基础上发展出来的,它克服了专用ASIC不够灵活的缺点。与其他中小规模集成电路相比,其优点主要在于它有很强的灵活性,即其内部的具体逻辑功能可以根据需要配置,对电路的修改和维护很方便。目前,FPGA的容量已经跨过了百万门级,使得FPGA成为解决系统级设计的重要选择方案之一。
    DSP+FPGA结构最大的特点是结构灵活,有较强的通用性,适于模块化设计,从而能够提高算法效率;同时其开发周期较短,系统易于维护和扩展,适合于实时信号处理。
    实时信号处理系统中,低层的信号预处理算法处理的数据量大,对处理速度的要求高,但运算结构相对比较简单,适于用FPGA进行硬件实现,这样能同时兼顾速度及灵活性。高层处理算法的特点是所处理的数据量较低层算法少,但算法的控制结构复杂,适于用运算速度高、寻址方式灵活、通信机制强大的DSP芯片来实现。
线性流水阵列结构
    在我们的工作中,设计并实现了一种实时信号处理结构。它采用模块化设计和线性流水阵列结构(图1)
    这种线性流水阵列结构具有如下特点:
    ·接口简单。各处理单元(PU)之间采用统一的外部接口。
    ·易于扩充和维护。各个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电路板相连,可以很方便地控制和协调它们之间的工作。
应用实例
    我们应用上述线性流水阵列结构实现了一个实时目标检测系统,该系统的任务主要是接收摄像头输出的灰度图象,经预处理、编码、直线拟合和目标识别后,输出结果到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 常用微处理器对照表
处理器类型
DSPMotorola)
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的线性流水阵列结构,为设计中如何处理软硬件的关系提供了一个较好的解决方案。同时,该系统具有灵活的处理结构,对不同结构的算法都有较强的适应能力,尤其适合实时信号处理任务。
2FPGA+DSP实时三维图像信息处理系统
三维图像信息处理一直是图像视频处理领域的热点和难点,目前国内外成熟的三维信息处理系统不多,已有的系统主要依赖高性能通用PC完成图像采集、预处理、重建、构型等囊括底层和高层的处理工作。三维图像处理数据量特别大、运算复杂,单纯依靠通用PC很难达到实
时性要求,不能满足现行高速三维图像处理应用。
本系统中,采用FPGA实现底层的信号预处理算法,其处理数据量很大,处理速度高,但算法结构相对比较简单,可同时兼顾速度和灵活性。高层处理算法数据量较少、算法结构复杂,可采用运算速度快、寻址方式灵活、通信机制强大的DSP实现。
1 三维图像处理系统组成1.1 硬件系统构成
该系统由五个模块组成,如图1所示。

系统信息处理流程见图2所示。CCD摄像机采集的多路模拟视频信号经MAX440按需要选定后,送入模数视频转换器SAA7111A将摄像机输出的模拟全电视信号CVBS转换成数字视频信号;之后视频信号流入图像预处理器Spartan XC3S400,经过提取中心颜线、提取激光标志线和物体轮廓线的预处理后,配送到两片TS201进行定标参数计算、坐标计算、三维重建、数据融合以及三维构型的核心运算;最后将DXF文件数据经由PCI接口传送到PC,完成三维图像变换和显示等最终处理;整个系统的逻辑连接和控制以及部分数据交换由另一片FPGA来完成。

在体系结构设计上,FPGA处理器采用SIMD结构,在一个控制单元产生的控制信号下,数据通路中的三个算法并行运行。由于该系统要求处理速度较高,因而在数据通路中采用了流水线技术以提高速度。此外,本系统中为图像存储采用了许多大容量高速FIFO,以达到减少地址线,简化控制的目的。
1.2 处理器芯片
为满足系统大数据量快速处理的要求,三款核心芯片均为最新高性能产品,其硬件方面的特点给系统设计带来极大的方便,其优异的运算性能可确保系统的快速实时性。
FPGA芯片采用Xilinx公司近期推出的采用90nm工艺的Spartan3系列的XC3S400,该系列芯片是目前为止工艺最先进、价格较低、单位成本内I/O管脚最多的平台级可编程逻辑器件。XC3S400芯片内部时钟频率可达326MHz,信号摆幅1.14V3.45VI/O口支持622Mbps的数据传输率,具有高性能SelectRAM内部存储器,多达4个数字时钟管理器模块和8个全局时钟多路复用缓冲器。
DSP采用ADI公司的最新款基于并行处理设计、具有海量片内RAMTigerSHARC ADSP TS
201。其内部集成的RAM容量高达24Mbit,核心速度最高达600MHz。内设双运算模块,每个包含一个ALUMUL64bit移位寄存器、3232bit寄存器组和一个128bit通信逻辑单元,相关的数据对齐缓冲器;双整数ALU,各有独立的寄存器组,提供数据寻址和指针操作;4128bit宽度内部总线,每个都连接到64Mbit的内部存储器块;提供与主机处理器、多处理器空间、片外存储器映射外设、外部SRAMSDRAM相连的外部端口;14通道DMA控制器;4个全双工低电压差分信号输入的Link Port;具有片内仲裁总线,用于多DSP无缝的连接。
数字化器采用了Philips公司的增强视频输入处理器(EVIP)——SAA7111A模数转换器。该产品广泛应用于个人视频、多媒体、数字电视、可视电话、图像处理、实时监控等领域,纯3.3V CMOS工艺的模拟视频前端和数字视频编码器,能够将PAL/TSC/ECAM视频信号解码为与CCIR-601相兼容的多种数字视频格式,支持TVVTR信号源的CVBSS-Video视频信号,最高图像分辨率可达720×576,支持24位真彩,可以通过串行总线动态配置SAA7111A模数转换器的工作方式和各种参数。
2 模块设计2.1 视频采集与数字化模块
由于模拟摄像机采集的是PAL制的复合视频信号(CVBS),所以必须先将其数字化才能开始后
继数字视频处理。视频采集与数字化模块主要包括一片视频多路复用器MAX440、一片SAA7111A、一片I2C接口控制器PCF8584和一些连接逻辑。MAX440用来快速切换来自不同模拟输入端的模拟视频流,SAA7111A模数转换器是该模块的核心,它采集模拟视频,将其数字化为720×576RGB(888)真彩信号格式的数字视频,其输出的RGB真彩信号为16位,其中高字节和低字节数据周期分别为74ns37ns,即低字节的频率是高字节的1倍。这样就要利用触发器和两个分别为模块化设计的优点13.5MHz27MHz的时钟信号,将输入数据格式转换为24位、周期均为74nsRGB真彩信号,此外,它还为整个硬件系统提供必要的时钟和同步信号;PCI接口控制器通过PCF8584来配置和控制SAA7111A,连接逻辑由FPGA实现。
2.2 FPGA图像预处理模块
预处理从巨大的视频信息中提取极少量的对三维重建有用的信息传送至DSP后处理。该模块包括主处理FPGA芯片和高速FIFO,负责实时采集视频信号并对采集到的无压缩的视频信息进行预处理,包括提取激光中心线、提取轮廓线、提取中心颜线三个部分。
为了提高视频采集的整体性能,更重要的是为预处理提供相邻的有激光帧和无激光帧,必须通过视频帧缓存首先暂存无激光帧。缓存由3AverLogic公司的AL422B及一些由FPGA实现的连接逻辑组成;当前端模块输出无激光帧时,SA7111A控制3AL422B写操作,将其存入
FIFO;当前端输出有激光帧时,后端的视频处理模块控制3AL422B进行读操作,读出暂存在其中的无激光帧数据。预处理FPGA将读取的无激光帧和有激光帧进行相减运算。输出同样采用3组缓存分别用来暂存激光样条数据、目标轮廓线数据和图像中心线数据;所有模块均采用同步时钟控制,同步时钟采用由SAA7111A模数转换器产生的LLC2信号。为了提高系统速度,算法复杂、耗时较长的计算过程进行了流水线处理。
2.3 DSP三维重建模块
为了应对三维图像大数据量复杂高速运算的需要,这里采用了两片TigerSHARC 201芯片并行三维重建运算。由控制FPGA对两片DSP所要处理的图像进行任务分配,DSP结合预处理FPGA存入FIFO的数据和PCI总线所给处理参数进行定标参数计算、坐标计算、三维重建和构型。由于TS201内部集成的总线仲裁机制,双DSP可以实现无缝连接,大大减小了多DSP协调工作的设计难度。DSP间的连接是依靠其拥有的全双工LinkPort,它采用LVDS(低电平差分信号)输入数据。链路口能独立或同时工作,在时钟的上升沿和下降沿锁存数据。链路时钟频率最高可以与处理器核相同,高达500MHz,每个链路能完成500Mbps的单向数据传输。每个DSP4LinkPort合起来最大的通透率为4.0Gbps。连线短且简单,不需要额外的辅助电路,且可有效防止连线长引起的信号畸变。LinkPort传输协议由控制FPGA完成。
2.4 PCI通信接口模块
根据三维信息获取系统的速度传输要求,采用PCI接口完成该系统与通用PC的信息交互。PCI接口控制器是硬件部分的控制中心和数据交换中心,它接收设备驱动程序的命令和数据,配置和控制系统的各个模块使其协调工作,完成系统任务;它还负责将采集到和处理后的数据通过PCI总线转送给通用PC。本系统采用PLX公司的32bit/33MHz PCI9030作为接口芯片,串行EEPROM-FM93CS56L电可擦除只读存储器保存PCI9030的配置信息。
2.5 系统控制与数据交换模块
控制单元对处理器的数据处理单元和输入数据格式转换单元以及所有FIFO存储器产生控制,与预处理FPGA配合完成DSPLinkPort协议。由于数据处理单元中为流水处理,在控制单元的设计中要特别注意由流水线产生的固定周期的延时,延时的周期数等于相应流水线的级数。控制单元还与PCI接口连接,接收来自主计算机的控制信号和背景阈值等信息。控制FPGA还是SAA7111APCI接口和DSP之间的图像和信息交换的桥梁,为其提供所需要的参数和数据信息。
3 软件设计与实现3.1 图像预处理算法
如图3,激光带预处理算法的实现为:由于有激光帧和无激光帧是依次交替产生的,因此首
先要保存一帧有激光帧,在其下一帧,即无激光帧到来时,将保存的有激光帧和当前无激光帧的相同行、列的点相减,再对结果进行亮度提取,处理完成后的数据存入目标缓存。

如图4,实现提取轮廓线算法分为三个部分,首先由计算比较模块对输入像素点的值与预先计算好的阈值进行比较,判断其是否为目标像素;然后利用一个序列检测模块进行一维尺度滤波以去除某些噪声点;再经过一个边缘检测模块,提取出每行的第一个目标像素作为目标的左边缘点;完成后将此点所对应的列地址数据存入目标缓存。在某些情况下,可能整行都检测不到边缘点,这时将0存入目标缓存作为无边缘点的标识。

提取中心线算法实现比较简单,只需对目标缓存的写允许信号加以控制,使RGB数据只能。每行的中心点处写入目标缓存即可。
3.2 三维重建和构型
如图5所示,高速DSP将根据预处理信息得到的激光标志线、轮廓线和中心颜线数据与源数字化图像结合起来进行三维重建。首先根据获取的图像标志点数据结合控制点三维坐标数据计算出系统定标数据;其次根据轮廓线计算物体外表面展开图,再依据定标数据结合展开图和机械参数对图像中的坐标点进行计算,给出数据集,输出深度数据文件;最后对多次扫描的数据进行融合,将离散点构型成立体模型(或立体彩模型),将模型生成DXFSTL等数据文件传入PC机,使用后端处理软件进行显示[3]
3.3 算法实现
图像预处理算法设计使用Verilog HDLXilinx公司的ISE8.1集成编译环境下成功实现;FPGA开发流程不再赘述。
DSP三维重建算法已使用C语言在ADI公司Visual DSP++环境下成功实现。
算法实现步骤如下:
①用C语言编程实现算法。②使用Visual DSP++编译器将源程序编译成目标文件。
③根据产生的目标文件,分析结果及源程序结构并优化源代码。
④应用TigerSHARC 201评估板进行运算时间评估。
⑤重复上述步骤直至达到系统实时性要求,最后下载到目标板。
整个系统联机运行稳定,满足设计要求,实时性好。
实时三维图像信息处理以其数据量大、速度要求高、处理过程复杂的特点使其难以使用集成电路实现。本文研究的以目前最新高性能处理器的FPGA+DSP为核心架构的三维图像处理系统精心设计了算法的硬件实现,充分利用了两种处理器的长处。实验表明,该系统有着良好的性能,对实现基于网络的实时三维扫描应用,如三维传真、机械远程加工、快速成型和虚拟现实,有着重要的意义,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。