《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > 基于DSP和FPGA的实时图像采集处理系统的设计
基于DSP和FPGA的实时图像采集处理系统的设计
来源:微型机与应用2013年第11期
戴 权1,杨应平1,贾信庭1,陈梦苇1,李志强2
(1.武汉理工大学 理学院,湖北 武汉 430070; 2.武汉理工大学 信息工程学院,湖北 武汉
摘要: 针对目前对图像采集处理系统的高速性和便携性的要求,设计了一套基于DSP、FPGA和ARM9的实时图像采集处理系统。该系统主要利用FPGA的SoPC系统定制NiosⅡ软核处理器及相关外设IP核来完成图像数据的采集和存储。DSP通过EMIF接口和EDMA接口完成数据的搬移和图像处理的算法。ARM作为主机,通过HPI接口与DSP进行数据通信。结果表明,该平台工作性能稳定,处理能力强,能完成算法的数据处理并对数据实时显示,适用于自动循迹、模式识别等高速数据采集的应用场合。
Abstract:
Key words :

摘  要: 针对目前对图像采集处理系统的高速性和便携性的要求,设计了一套基于DSPFPGAARM9的实时图像采集处理系统。该系统主要利用FPGA的SoPC系统定制NiosⅡ软核处理器及相关外设IP核来完成图像数据的采集和存储。DSP通过EMIF接口和EDMA接口完成数据的搬移和图像处理的算法。ARM作为主机,通过HPI接口与DSP进行数据通信。结果表明,该平台工作性能稳定,处理能力强,能完成算法的数据处理并对数据实时显示,适用于自动循迹、模式识别等高速数据采集的应用场合。
关键词: 图像采集处理;DSP;FPGA;ARM9

 随着电子技术和计算机技术日新月异的发展,图像信息扮演着越来越重要的角色。图像采集处理系统在产品检测、目标跟踪、自动导航中广泛应用[1]。传统的基于计算机的图像处理系统因其体积与功耗的限制而不能进一步推广[2]。随着近20年超大规模集成电路的发展,在嵌入式系统上实现图像处理已成为可能[3]。FPGA在时序、逻辑控制和并行处理方面具有很大的优势,DSP则擅长各种复杂的图像处理算法。采用FPGA和DSP进行图像采集处理的硬件构架被国内外学者广泛采用[4-5]。本文在此基础上,充分考虑成本、速度、灵活性和便携性等因素,设计了一种基于DSP、FPGA和ARM9的图像采集处理平台。该平台采用DSP作为主处理器进行复杂算法的运算,FPGA作为协处理器,内嵌NiosⅡ软核构建可编程片上系统SoPC(System on Programmable Chip),完成图像的采集存储。同时,利用ARM9在任务控制方面的优势,通过主机接口HPI(Host Port Interface)与DSP进行数据通信并显示图像,使其成为一个实时便携的嵌入式系统。该系统设计灵活,扩展和通用性强,具有较好的实时性和通用性。
1 系统硬件设计
 图像采集处理系统主要包括FPGA图像采集、DSP图像处理和ARM主机控制3大部分。硬件系统结构如图1所示。

 FPGA模块主要负责配置CMOS传感器、图像数据的采集存储和图像预处理工作。为了满足I/O口的数量及性能,该平台采用Altera公司的EP3C25F324C8N型号的FPGA芯片。FPGA通过SoPC Builder定制NiosⅡ软核处理器及外设IP核来完成相关工作。SoPC模块结构如图2所示。系统核心是NiosⅡ嵌入式处理器核,其他外设模块核通过片上的Avalon总线与NiosⅡ Core相连,定制灵活,不需要在印制电路板PCB(Printed Circuit Board)这个层面上作很多修改。在这些外设模块中,On-Chip Memory和JTAG UART是构成硬件最小系统的必需模块。PIO用来控制LED进行指示工作。Flash控制器和SDRAM控制器挂接在三态桥上来复用地址和数据线,以节约I/O口的使用,其他模块可作扩展功能使用。图像传感器则采用Omnivision公司型号为OV7670的CMOS传感器,用户可以自由控制图像质量、数据格式和传输方式;通过串行摄像头控制总线SCCB(Serial Camera Control Bus)总线接口编程,还可以控制图像白平衡、饱和度、色度等。OV7670的采集和总线时序用硬件描述语言直接配置。

 

 

 DSP模块用来实现复杂的算法以及与FPGA和ARM模块进行数据交换和搬移。系统选用TI公司的TMS320C6713型号的DSP芯片作为主处理器。这是一款专用于图像处理设计的高性能浮点数字信号处理芯片,它的运行速率最高可达225 MHz。该芯片集成了大量丰富的外围设备模块,包括EDMA、EMIF、HPI等。DSP模块和FPGA模块共享一个64 MB的SDRAM作为数据存储器,一个4 MB的Flash作为程序存储器,两个16 MB的SRAM用来缓存图像数据。SDRAM、Flash、SRAM被分别映射到DSP的CE0、CE1和CE2地址空间。
 ARM模块通过HPI接口从DSP处得到处理后的图像数据,直接显示在TFT或VGA显示器上。系统选用三星公司型号为S3C2410的ARM9芯片。ARM与DSP之间的硬件连接如图3所示。为了减少因PCB走线过长而产生的开关噪声,采用三态缓冲芯片74LVCH162445来增强输出端口的电流驱动能力。在HPI中,每一次传输由主机发起,HPI接口的地址线、控制线只有主机到DSP方向,所以将缓存芯片方向控制信号接高来定向传输。HPI的数据线则为双向传输,当nOE信号为高电平时,主机空闲或发起一次写数据操作;当nOE信号为低电平时,主机发起一次读数据操作。另外,74LVCH162445的使能信号直接接到nGCS4脚防止总线冲突。ARM的加入使系统的外围扩展性进一步加强,如可通过以太网接口和RS232串口与PC进行数据通信或嵌入操作系统对整个平台进行便携控制。

2 系统软件设计

2.1 FPGA对图像数据的采集和存储
 NiosⅡ处理器是Altera公司特有的基于通用FPGA架构的CPU软核,使用者可以根据需要来调整嵌入式系统的特性及性能,使开发更具灵活性[6]。系统使用NiosⅡ来生成SCCB协议所需要的时序,达到对CMOS传感器配置的目的。SCCB协议时序如图4所示。在SCL为高电平期间,SDA由高电平向低电平的变化视为起始信号,而SDA由低电平向高电平的变化视为终止信号。当SCCB总线进行数据传送时,在时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟信号为低电平期间,数据线才允许状态变化。OV7670共有201个寄存器来控制图像的输出,这里通过SCCB总线配置其中的167个,输出格式为RGB565的QVGA模式,像素大小为320×240。另外,NiosⅡ还负责Flash和SDRAM控制器模块的配置,Flash用来固化程序,SDRAM则作为程序运行空间。

2.2 DSP对图像数据的搬移和处理
 DSP通过外部存储器接口EMIF(External Memory Interface)来使用片外的SRAM存储器,所以对EMIF寄存器的初始化是必不可少的。接着增强型直接存储器访问EDMA(Enhanced Direct Memory Access)接口通道控制器将图像数据从SRAM搬移到片内L2高速缓冲存储器Cache中进行处理。处理后的数据将通过HPI通道被ARM读取。EDMA通道控制器基于RAM结构,其通道由一个参数表来配置,每个参数入口如图9所示。
其中,EDMA通道选项参数OPT在数据传输过程中发挥关键的作用,它决定了传输优先级、传输单元大小、源数据和目的数据维数、源地址和目的地址更新模式、事件链接使能等。EDMA通道选项参数OPT的配置程序如下:

    EDMA_OPT_RMK
 (
 EDMA_OPT_PRI_HIGH,EDMA_OPT_ESIZE_16BIT,
 EDMA_OPT_2DS_YES,EDMA_OPT_SUM_INC,
 EDMA_OPT_2DD_YES,EDMA_OPT_DUM_INC,
 EDMA_OPT_TCINT_YES,EDMA_OPT_TCC_OF(6),
 EDMA_OPT_LINK_NO,EDMA_OPT_FS_YES
 ),
2.3 ARM对图像数据的访问和显示
 DSP处理完图像数据后,ARM通过HPI接口访问DSP中的图像数据,具体过程为:首先,ARM初始化HPI控制寄存器HPIC来设置数据传输模式;然后,配置地址寄存器HPIA来设置目的地址或源地址;最后,主机读写数据寄存器HPID来实现数据的传输。
 利用S3C2410内集成的液晶显示器LCD(Liquid Crystal Display)控制器来完成图像数据的显示。LCD驱动程序的关键就是设置LCDCON1-LCDCON5寄存器来产生与具体应用相对应的时序。LCDCON1寄存器设置VCLK中信号的频率;LCDCON2、LCDCON3寄存器的HOZVAL域和LINEVAL域设置场同步信号和行同步信号;HOZAL和LINEVAL的值由LCD屏的尺寸决定。
3 结果与分析
 在整个系统底层驱动调试完成以后,为测试系统的实际性能,通过采集图像并实时显示的实验对系统进行联调。图10(a)、图10(b)、图10(c)、图10(d)分别是原始采集图像、灰度处理图像、二值化处理图像和负片效果处理后的图像。实验证明,系统整体运行流畅。通过简单算法的处理,验证了该图像采集处理系统具有较好的实时性。

 设计了一个基于DSP、FPGA和ARM9的高速图像采集处理平台,详述了系统的硬件模块和软件构架。该平台实现了图像的采集和处理并能实时显示,满足高速性和便携性的应用要求。系统硬件可配置,通用性强,适用于实时测量、自动循迹、模式识别等高速数据处理的应用领域。
参考文献
[1] Duan Jinghong, Deng Yaling, Liang Kun. Development of image processing system based on DSP and FPGA[C]. The Eighth International Conference on Electronic Measurement and Instruments, IEEE, 2007:791-794.
[2] Yan Lei, Zhao Gang, RYU S H, et al. The platform of image acquisition and processing system based on DSP and FPGA[C]. International Conference on Smart Manufacturing Application, KINTEX, 2008:470-473.
[3] Jia Xuedong, Wang Hongxia, Liu Xiaochuan. The design and implementation of a flexible FPGA/DSP based architecture for real-time image processing[C]. Fourth International Symposium on Precision Mechanical Measurements: SPIE,2008: 71302Z-1- 71302Z-6.
[4] Yan Luxin, Zhang Tianxu, Zhong Sheng. A DSP/FPGA-based parallel architecture for real-time image processing [C]. Proceedings of the 6th World Congress on Intelligent Control and Automation, IEEE, Dalian,2006:10022-10025.
[5] BATLLE J, MARTI J, RIDAO P,et al. A new FPGA/DSP-based parallel architecture for real-time image processing[J]. Real-Time Imaging, 2002, 10(8): 345-356.
[6] 任文平,贾赞,申东娅,等.基于FPGA的图像处理电路的设计与实现[J].电子技术应用,2010(2):44-46.

此内容为AET网站原创,未经授权禁止转载。