基于TMS320VC5402多DSP智能相机设计
摘要:提出了并实现了基于TI的TMS320VC5402多DSP智能相机,该相机采用模块化,结构化的设计。利用FPGA配置灵活的特性实现了模块的可扩展性,而且可以实现相机拓扑结构的可重构,并实现了与硬件特性相结合的算法。该相机的设计方案有广泛的适应性,对软件的结构和算法稍作修改即可应用于不同的工作场合。
关键词:智能相机 数字信号处理器(DSP)FPGA 模块化
智能相机作为一种低能耗,低成本,高性能的嵌入式系统,广泛应用于工业控制,智能交通,安全门禁等各个领域,是各系统中监控部分的核心器件。但随着这些系统所要处理的图像数据量越来越大,采用的算法越来越复杂,这对于采用单处理器的智能相机提出了一个巨大的挑战。目前解决该问题一般采用两种方法:采用性能更好的处理器,但在提高性能的同时也提高了成本;采用多处理器组成互联系统,能够在增加整体数据处理能力的同时有效的控制成本 。本文提出了一种采用多DSP并行处理,具有模块化特征的智能相机。该相机的结构实现灵活,可以很容易的重构和扩展。这样一方面可以通过软件编程来适应处理问题的算法的升级和改进;另一方面可以通过简单的硬件扩展来适应处理数据的大量增加 。
1:硬件系统的设计
该多DSP智能相机图像获取部分采用的是LM9617COMS图像传感器,该图像传感器是一款高性能,低能耗的1/3’’ 的灰度图像传感器,能够获取静态和动态图像,支持12位灰度图像,图像分辨率为648×488(pixels),实验中我们采用了8位灰度图像,每幅需要占用的存储器空间是300K(bytes)。图像处理采用的是TI公司生产的数字信号处理器(Digital Signal Processor,DSP)TMS320VC5402,该DSP采用改进的哈佛结构,专门硬件逻辑的CPU,片内存储器,片内外设和专用的指令集,模块化的结构设计,高性能低功耗的IC工艺,并且成本低廉,峰值处理能力达到100MIPS。图像存储在主控制模块和扩展模块中都采用了ISSI公司生产的SRAM,其中主控制模块采用的是IS61LV10248,其容量为1M(bytes)。而在扩展模块中采用的是ISWV20488,其容量为2M(bytes)。主控制模块中的地址发生与控制采用的是Lattice公司生产的CPLD ispMach4256V.,该CPLD提供了128个I/O,可以满足地址逻辑和控制的要求。而在扩展模块中为了扩展的方便采用了SpartanII系列的FPGA,该FPGA提供了284个I/O和14个RAM块,其逻辑结构能够高效实现SRAM访问控制,并能满足显示和控制的要求。主控制模块中之所以需要地址发生与控制逻辑是因为DSP TMS320VC5402的外部数据和I/O空间最大只能达到64K,要访问更大的地址空间范围只能通过CPLD或FPGA来产生高位地址,这样DSP才可以访问到超过64K地址范围外的数据。一款高性能的多DSP智能相机不仅仅要求有高速的运算能力,还应当有较好的数据交换能力和扩展性。在本设计中并没有采用共享总线的结构,因为在共享总线系统中各个处理模块要分时使用总线,这样会影响系统的数据交换能力;而是将数据线直接接到DSP与SRAM上,这样可以加快数据的访问速度。
1.1 模块化结构
该智能相机由3个主要模块构成:主控制模块;扩展模块;显示与控制模块。其中主控制模块完成图像的获取与简单的预处理,对系统进行监控,与上位机进行通讯,接收上位机的控制命令。显示与控制模块用来对图像的处理结果进行显示,主要用来调试系统;而控制部分则是对处理结果进行响应,输出控制信号。扩展模块用来完成图像的处理,如果处理能力不足可以再添加更多的处理器。
1.2 较强的算法适应能力
通常我们采用的并行算法包括数据并行算法与控制并行算法。该多DSP的结构能够很好的支持这两类算法的实现。若采用数据并行算法,则主控制模块中的DSP可以负责分配运算任务,控制扩展模块中的DSP完成图像处理。如果算法采用控制并行算法,即每一级处理器接收前一级处理器的计算结果,完成算法所规定部分,并将处理结果传给下一级处理器,这种并行算法可以在该多DSP智能相机上更快的实现。
1.3 扩展性
该智能相机有很好的扩展性,具体表现在:
1. 系统可裁减,由于系统采用模块化结构,可以根据需要裁减。
2. 数据和地址接口可扩展。数据和地址及其控制都是由FPGA产生,实现的接口数量只受到FPGA容量的限制,原理上可以实现任意多个接口。本智能相机只实现了两个接口,但这两路接口是独立的,可以同时工作。数据传输处理速度只受芯片性能的制约。
3. 控制总线可以扩展。控制总线由多通道缓冲串行口(McBSP)实现,可以实现全双工通信,每个DSP可以和任意一个DSP通信,也可以和任意多个DSP通信。还可以通过该总线增加模块来实现多个模块的并行处理。
2. 系统监控软件的设计与处理算法的快速实现:
在软件设计上,为了便于开发与维护,整个系统软件设计成监控软件和图像处理算法两部分。
监控软件可以同硬件平台相结合为图像处理算法提供一个高效稳定的工作环境。一些嵌入式实时操作系统例如uC/OSII,VxWorks,eCos等虽然能够提供系统的监控能力,但需要将其移植到我们的DSP平台上,并且需要相对较大的存储空间,很难在存储容量较小的目标系统中应用。该系统监控软件的设计参考了Freescale的68H系列MCU监控软件的设计思想,结合系统的实际情况,参考嵌入式操作系统uC/OSII 和eCOS的实现方法实现了基于DSP的简单的监控程序 。该程序可以完成系统初始化,资源的分配和管理,算法的调度以及对整个系统运行状况的监控。该监控程序存储空间占用较少,并且采用了模块化,层次化的结构,可以很容易的移植和修改。其层次结构如图1所示:
其中硬件抽象层负责对目标硬件平台进行操作和控制,包括中断和例外处理,目标系统所使用的各种外部设备的驱动,并为内核及内核API层软件提供操作接口。这样内核及内核API层就不需关心如何实现对底层硬件的操作,只需调用硬件抽象层提供的逻辑硬件来对硬件设备进行操作,这样就保证了监控程序的可移植性。只需对硬件抽象层进行修改就可以将整个监控系统及应用移植到新的平台上。内核及内核API提供了对上层用户软件的调用接口,用户程序可以调用内核API来完成任务创建,调度,对硬件的访问,这样可以保证应用程序不需更改就可以运行于不同的目标硬件平台上。这样就保证了对原有的图像处理算法资源的利用。
算法实现上为了提高处理速度,将算法的设计与硬件的结构结合在一起,大大提高了算法的执行速度与效率。其中扩展模块中硬件实现采用了大容量的SRAM来提高算法对存储空间的要求,并将SRAM的存储空间映射到两块DSP的程序空间,通过对FPGA的配置使得DSP可以读写SRAM中的任意地址的数据 。存储器映射实现如图2所示:
外部存储空间的内容只能映射到TMS320VC5402的内部DRAM地址范围在0x4000-0x8000的存储空间,这是DSP器件的特性决定的。通过该映射的实现我们的算法设计作了如下改进:当图像经过预处理存储到SRAM中进行进一步处理时,可以首先确定有效图像数据在SRAM中的地址范围,当进一步对图像处理时就不需要读入整幅图像,而只需读入要处理的图像部分,这样可以大大提高处理速度,也避免了无用的图像数据干扰,图像处理的精度也提高了。
本文作者创新点在于以动态可重构、模块化、易于扩展的思想构造了多DSP智能相机.并详细地分析了主控制模块、扩展模块和显示控制模块的体系结构和工作原理并完成了可移植的监控程序的设计。如果由于算法的复杂性增加,现有多DSP系统不能满足实时计算要求时,本系统还可根据算法对计算能力的需要方便地扩展,通过增加DSP数目的方法来达到提高系统处理能力。今后应进一步研究系统的容错能力,在一片DSP损坏时如何能够将该DSP处理的任务无缝的迁移到另一片DSP上并能顺利处理完任务。当对扩展模块进行扩展时,若采用4片或更多片DSP时如何设计更有效的并行结构与分配算法,使得图像数据在各DSP之间分配处理达到效率最佳。
|