基于DSP的数字图像处理
扫描二维码
随时随地手机看文章
随着计算机、多媒体和数据通信技术的高速发展,数字图像技术近年来得到了极大的重视和长足的发展,并在科学研究、工业生产、医疗卫生、教育、娱乐、管理和通信等方面取得了广泛的应用。同时,人们对计算机视频应用的要求也越来越高,从而使得高速、便捷、智能化的高性能数字图像处理设备成为未来视频设备的发展方向,实时图像处理技术在目标跟踪、机器人导航、辅助驾驶、智能交通监控中都得到越来越多的应用。由于图像处理的数据量大,数据处理相关性高,实时的应用环境决定严格的帧、场时间限制,因此实时图像处理系统必须具有强大的运算能力。各种高性能DSP不仅可以满足在运算性能方面的需要,而且由于DSP的可编程性,还可以在硬件一级获得系统设计的极大灵活性。为了获得足够的计算能力,我们以两片 TMS320C6201作为系统的运算中心构筑了实时图像处理系统;为了获取最大的灵活性,在系统体系机构上采用了一种可重构的FPGA计算系统模型。
1 功能强大的TMS320C6x
TMS320C6000是美国TI(Texas Instruments)公司于1997年推出的新一代高性能DSP芯片。这种芯片是定点、浮点兼容的DSP。其定点系列是 TMS32C62XX,浮点系列是TMS320C67XX。最早推出的C6201芯片的运算速度已经达到1600MIPS,在业界首次突破1000MIPS,在数字信号处理器数里能力上创造了新的里程碑,并因此获得了美国EDN杂志“1997年度创新大奖”2000年3月,TI发布了新的C64XX内核,主频1.1GHz,处理速度接近9000MIPS,总体性能比C62XX提高了10~15倍。其中C6416在2002年3月获得EDN杂志“2001年度创新大奖”。
C6000内部结构的主要特点包括:
①定点/浮点系列兼容DSP,目前CPU主频100MHz~600MHz。
②具有先进VLIW结构内核。
(1)8个独立的功能单元:6个ALU(32/40bit),2个乘法器(16×16),浮点系列支持IEEE标准单精度和双精度浮点运算。
(2)可以每周期执行8条32bit指令,最大峰值速度4800MIPS。
(3)专用存取结构,32/64个32bit通用寄存器。
(4)指令打包技术,减少代码容量。
③具有类似RISC的指令集。
(1)32bit寻址范围,支持bit寻址。
(2)支持40bitALU运算。
(3)支持bit操作。
(4)100%条件指令。
④片内集成大容量SRAM,最大可达8Mbit。
⑤16/32/64bit高性能外部存储器接口(EMIF)提供了与SDRAM、SBRAM和SRAM登同步/异步存储器的直接接口。
⑥内置高效率协处理器(C64X)。
(1)Viterbi编解码协处理器(VCP),支持500路7.95kb/s AMR。
(2)Turbo码编解码协处理器(TCP),支持6路2Mb/s 3GPP。
⑦片内提供多种集成外设(不同芯片的资源不同)
(1)多通道DMA/EDMA控制器
(2)多通道缓冲串口(McBSP)
(3)多通道音频串口(McASP)
(4)可以访问DSP整个存储空间的主机口(HPI)
(5)32bit扩展总线(xBUS)
(6)32bit/33MHz PCI主/从模式接口
(7)32bit通用计数器(Timer)
(8)UTOPIA接口
(9)通用输入/输出(GPIO)
(10)总线主/从模式接口
(11)支持多种复位加载模式(Boot),提供3种节电控制模式(Power Down)
⑧支持IEEE一1149.1(JTAG)边界扫描接口。
⑨内核采用1.0/1.2/1.5/1.8V供电,周边采用3.3V供电。
⑩0.12tzm0.18tμm CMOS工艺,5/6层金属处理。BGA球栅阵列封装。
TMS320C6x系列的DSP芯片结构不同于一般的DSP,属于类RISC结构,从而使它的c编译器具有很高的效率,因此称之为面向C语言结构的 DSP芯片。这使得其在绝大多数应用中,可以采用 C语言编写TMS320C6x程序,从而充分利用大量用c描述的算法程序,并获得远胜于传统DSP程序的可维护性、可移植性、可继承性,缩短开发周期。[!--empirenews.page--]
2 FPGA计算系统模型
在通常的并行系统设计中,微处理器在空间维上是固定的,而在时间维上是可变的;而连接的专用芯片在空间维和时间维上都是固定的。这样的系统往往只能适用于特定应用场合下的特定算法。为了使系统具有更加优良的性能和灵活性,随着可编程器件FPGA的应用深入,一种新的通用处理模块结构呈现在我们面前——FPGA计算系统结构。
FPGA是二十世纪80年代后期出现的新型的大规模可编程器件,由逻辑单元和互连线网络两部分组成,两者均可编程。逻辑单元能完成一些基本操作。逻辑单元经互连线网络互连,通过对基本逻辑块和互连线网络编程,可以实现非常复杂的逻辑功能。由于FPGA是基于SRAM结构的器件,所有的可编程逻辑加载在芯片内部的SRAM上,因此可以通过一定的步骤在系统运行时进行编程来改变该器件的功能,从而实现更大的灵活性。
FPGA计算系统就是充分利用FPGA的高集成度和硬件可编程性在系统中用FPGA实现除了必要模块(如微处理器和存储器等)之外的其它逻辑和硬件互连,从而使系统具有空间上的可编程性。系统的空间可编程性是FPGA计算系统引入的新特征。它是指通过对FPGA的重新编程和配置来改变系统体系结构等一系列硬件逻辑结构。系统的空间可编程性是系统可重构的前提,它使得硬件系统的设计趋于软件编程化。然而需要指出的是,由于FPGA内部结构的完全分布性和内部单元的百分之百的互连连通性,系统的硬件互连编程不象由中央处理单元引起的软件编程那样可以充分总结指令集。但在具体的系统设计中,可以根据实际的数据流结构进行部分限制,这样可以为用户提供一些可选择的重构方案,方便用户使用。
3 基于FPGA计算系统模型的双DSP实时图像处理系统
为了尽可能地获得高性能,我们提出以两个TMS320C62x为中央处理核心构成双DSP处理系统,由FPGA(这里采用ALTERA的FLEX系列)实现系统互连。系统分为处理器模块、FPGA组模块和各总线接口模块等,如图1所示。
其中处理器模块包含TMS320C62x、内存空间以及相应逻辑。处理器作为最小处理单元模块而存在,可以完成相应的处理子任务。在我们的系统中设置了两个这样的处理模块。这两个处理模块都是在系统核心FPGA控制下运行的。而FPGA作为系统中心,负责两个微处理器互相通信、互相协调以及它们与外界(这里通过主从总线和互连总线)的信息交换。同时,系统处理子任务可以由 FPGA直接派发给处理器。灵活的FPGA体系结构设计是该系统有效性的保证。在实际应用中,可以根据系统的任务,通过配置FPGA控制两个微处理器按流水线方式运行,也可以控制它们按MIMD方式并行处理同一输入图像。为了提高数据交换的效率,在FPGA控制下的数据交换中心设置了灵活的系统存储空间。而这块存储空间与DSP的局部存储空间构成了一种分布共享式的结构。然而不同于一般的分布共享式存储结构的是,我们的系统存储空间相对独立,不是直接挂接在各DSP的地址空间中,而是通过两者的HPI口进行互连。从严格意义上讲,这种结构不能算分布共享式存储结构,而应称之为一种松散的分布共享式存储结构。由于并行效率的要求,我们将系统存储空间设置为两个Bank结构,两个Bank是独立控制和运行的,系统的实现框图见图2。
由于系统的互连、各个接口以及数据通道都是通过FPGA完成,并在FPGA内部实现除一些必要逻辑之外的其它所有逻辑,因此系统的重构非常方便。这是系统设计中的最大特点。另外系统还有可测性好,可裁减性,系统设计的方便性等其它优点。