基于双DSP的实时图像处理系统
2008-12-18
作者:吴东晖 田 元 叶秀清
摘 要:介绍了基于双DSP的实时图像处理系统" title="实时图像处理系统">实时图像处理系统。该系统通过两片TMS320C6201作为系统计算中心,通过可重构的FPGA计算系统" title="计算系统">计算系统获得系统体系机构上最大的灵活性。
关键词:实时图像处理系统 双DSP FPGA计算系统
实时图像处理技术在目标跟踪、机器人导航、辅助驾驶、智能交通监控中都得到越来越多的应用。由于图像处理的数据量大,数据处理相关性高,实时的应用环境决定严格的帧、场时间限制,因此实时图像处理系统必须具有强大的运算能力。各种高性能DSP不仅可以满足在运算性能方面的需要,而且由于DSP的可编程性" title="可编程性">可编程性,还可以在硬件一级获得系统设计" title="系统设计">系统设计的极大灵活性。为了获得足够的计算能力,我们以两片TMS320C6201作为系统的运算中心构筑了实时图像处理系统;为了获取最大的灵活性,在系统体系机构上采用了一种可重构的FPGA计算系统模型" title="系统模型">系统模型。
1 功能强大的TMS320C6x
TMS320C6x系列DSP是TI公司TMS320家族中最新推出的产品之一。由于应用一种高性能的先进VLIW(Very Long Instruction Word)的VelociTITM体系结构,因此可以更好地应用在一些多通道多功能的系统中。
VelociTITM是一种提高处理器指令级并行程度的先进的VLIW技术。并行机制是使DSP的处理性能超过其它超标量结构的处理芯片的有力工具,正是由于在指令并行、流水结构、部件并行等方面的并行操作,使得TMS320C6x能够达到1600MIPS的运行速度。
TMS320C6x系列的DSP芯片结构不同于一般的DSP,属于类RISC结构,从而使它的C编译器具有很高的效率,因此称之为面向C语言结构的DSP芯片。这使得其在绝大多数应用中,可以采用C语言编写TMS320C6x程序,从而充分利用大量用C描述的算法程序,并获得远胜于传统DSP程序的可维护性、可移植性、可继承性,缩短开发周期。
2 FPGA计算系统模型
FPGA是二十世纪80年代后期出现的新型的大规模可编程器件,由逻辑单元和互连线网络两部分组成,两者均可编程。逻辑单元能完成一些基本操作。逻辑单元经互连线网络互连,通过对基本逻辑块和互连线网络编程,可以实现非常复杂的逻辑功能。由于FPGA是基于SRAM结构的器件,所有的可编程逻辑加载在芯片内部的SRAM上,因此可以通过一定的步骤在系统运行时进行编程来改变该器件的功能,从而实现更大的灵活性。
在通常的并行系统设计中,微处理器在空间维上是固定的,而在时间维上是可变的;而连接的专用芯片在空间维和时间维上都是固定的。这样的系统往往只能适用于特定应用场合下的特定算法。为了使系统具有更加优良的性能和灵活性,随着可编程器件FPGA的应用深入,一种新的通用处理模块结构呈现在我们面前——FPGA计算系统结构。图1给出了抽象的FPGA计算系统模型,该模型由微处理器、FPGA以及存储器等三部分构成系统的核心。FPGA计算系统就是充分利用FPGA的高集成度和硬件可编程性在系统中用FPGA实现除了必要模块(如微处理器和存储器等)之外的其它逻辑和硬件互连,从而使系统具有空间上的可编程性。系统的空间可编程性是FPGA计算系统引入的新特征。它是指通过对FPGA的重新编程和配置来改变系统体系结构等一系列硬件逻辑结构。系统的空间可编程性是系统可重构的前提,它使得硬件系统的设计趋于软件编程化。然而需要指出的是,由于FPGA内部结构的完全分布性和内部单元的百分之百的互连连通性,系统的硬件互连编程不象由中央处理单元引起的软件编程那样可以充分总结指令集。但在具体的系统设计中,可以根据实际的数据流结构进行部分限制,这样可以为用户提供一些可选择的重构方案,方便用户使用。
3 基于FPGA计算系统模型的双DSP实时图像处理系统
为了尽可能地获得高性能,我们提出以两个TMS320C62x为中央处理核心构成双DSP处理系统,由FPGA(这里采用ALTERA的FLEX系列)实现系统互连。系统分为处理器模块、FPGA组模块和各总线接口模块等,如图2所示。其中处理器模块包含TMS320C62x、内存空间以及相应逻辑。处理器作为最小处理单元模块而存在,可以完成相应的处理子任务。在我们的系统中设置了两个这样的处理模块。这两个处理模块都是在系统核心FPGA控制下运行的。而FPGA作为系统中心,负责两个微处理器互相通信、互相协调以及它们与外界(这里通过主从总线和互连总线)的信息交换。同时,系统处理子任务可以由FPGA直接派发给处理器。灵活的FPGA体系结构设计是该系统有效性的保证。在实际应用中,可以根据系统的任务,通过配置FPGA控制两个微处理器按流水线方式运行,也可以控制它们按MIMD方式并行处理同一输入图像。为了提高数据交换的效率,在FPGA控制下的数据交换中心设置了灵活的系统存储空间。而这块存储空间与DSP的局部存储空间构成了一种分布共享式的结构。然而不同于一般的分布共享式存储结构的是,我们的系统存储空间相对独立,不是直接挂接在各DSP的地址空间中,而是通过两者的HPI口进行互连。从严格意义上讲,这种结构不能算分布共享式存储结构,而应称之为一种松散的分布共享式存储结构。由于并行效率的要求,我们将系统存储空间设置为两个Bank结构,两个Bank是独立控制和运行的,系统的实现框图见图3。
由于系统的互连、各个接口以及数据通道都是通过FPGA完成,并在FPGA内部实现除一些必要逻辑之外的其它所有逻辑,因此系统的重构非常方便。这是系统设计中的最大特点。另外系统还有其它几个优点:(1)系统可测性。由于所有的接口逻辑(包括微处理器以及板上其它接口)都由FPGA实现,并且由于系统实现主从接口逻辑,完全可以通过软件获取系统内部运行的所有状态。在系统调试阶段,可以增加一些测试点和测试状态字节,相当于将该信息处理子系统在一个优良的数字测试环境下运行,使得系统的可测性大大提高;(2)系统可裁减性。由于FPGA的实现完全类似于软件的编程工作,我们可以使系统设计变为软件模块的设计,模块化设计方法可以使系统具有功能的可裁减性。根据不同应用环境进行不同目标的设计将拥有不同的模块功能;(3)系统设计的方便性。由于FPGA系统的引入,我们可以改变以往的硬件设计方法和步骤,初步的硬件连线只需关注系统外部特征、微处理器系统的可能控制线等,无需详细关注更多的细节,而在系统调试时才注意逻辑接口的具体功能,并且都在FPGA上完成,这使得系统设计的周期变短。本系统已成功地应用在智能移动机器人的实时视觉导航系统中,取得了满意的效果。
参考文献
1 TMS320C62 Technical Brief. Texas Intruments.
2 TMS320C6000 Optimizing C Compiler User’s Guide. Texas Instruments.
3 TMS320C6000 Assembly Language Tools User’s Guide. Texas Instruments.
4 TMS320C62x/C67x Programmer’s Guide.Texas Instruments.
5 TMS320C6x Evaluation Module Reference Guide.Texas Instruments.
6 TMS320C62x/C67x CPU and Instruction Set Reference Guide.Texas Instruments.
7 TMS320C6000 Peripheral Reference Guide. Texas Instruments.
8 TMS320C6000 Peripheral Support Library Programmer’s Reference. Texas Instruments.
9 Sundararajan Sriram, Ching-Yu Hung. MPEG-2 Video Decoding on the TMS320C6x DSP Architecture.Signals,
Systems & Computers, 1998