基于DSP和FPGA的实时图像采集处理系统的设计*

2013-03-11 10:50杨应平贾信庭陈梦苇李志强
网络安全与数据管理 2013年11期
关键词:高电平寄存器时序

戴 权,杨应平,贾信庭,陈梦苇,李志强

(1.武汉理工大学 理学院,湖北 武汉430070;2.武汉理工大学 信息工程学院,湖北 武汉430070)

随着电子技术和计算机技术日新月异的发展,图像信息扮演着越来越重要的角色。图像采集处理系统在产品检测、目标跟踪、自动导航中广泛应用[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所示。

图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的采集和总线时序用硬件描述语言直接配置。

图2 SoPC系统结构模块图

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进行数据通信或嵌入操作系统对整个平台进行便携控制。

图3 ARM与DSP之间的硬件连接图

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则作为程序运行空间。

图4 SCCB协议时序图

CMOS传感器初始配置完成后,经测试,传感器输出的QVGA时序如图5所示,帧率为60 f/s。帧同步信号VSYNC每一个上升沿标志着新的一帧到来,低电平有效,有效期间包含240个行有效周期。图6描述的是行时序。行同步信号HREF高电平有效,有效期间采集640个数据。由于寄存器格式的设置,其中320个数据有效,即在一个完整的行同步和帧同步有效期间,采集一幅320×240的图像。传感器被设置为RGB565输出格式,所以每两个PCLK代表一个有效像素点。PCLK的频率为25 MHz。

图5 OV7670输出的QVGA时序

图6 OV7670的行时序

采集到的图像数据经FPGA预处理后缓存在SRAM中供DSP读取和处理。图7描述了型号为IW61WV1024的SRAM的写时序。显然,CMOS传感器产生的QVGA时序不能满足SRAM的写时序,本文采用Verilog HDL硬件描述语言实现一个SRAM控制器和地址发生器来作为CMOS和SRAM的桥梁。图8为SRAM控制器的仿真结果。为确保图像的实时处理和显示,两块SRAM被配置为乒乓模式。即DSP在读取SRAM_A的数据同时,FPGA往SRAM_B中写入采集到的数据;下一个周期,DSP读取SRAM_B中新写入的数据,而FPGA则往SRAM_A中写入下一帧数据。这样使得图像数据流水般地被DSP读取,实现快速处理和实时显示。

图7 SRAM的写时序

图8 SRAM控制器仿真结果

2.2 DSP对图像数据的搬移和处理

DSP通过外部存储器接口EMIF(External Memory Interface)来使用片外的SRAM存储器,所以对EMIF寄存器的初始化是必不可少的。接着增强型直接存储器访问EDMA(Enhanced Direct Memory Access)接口通道控制器将图像数据从SRAM搬移到片内L2高速缓冲存储器Cache中进行处理。处理后的数据将通过HPI通道被ARM读取。EDMA通道控制器基于RAM结构,其通道由一个参数表来配置,每个参数入口如图9所示。

图9 EDMA事件的通道参数

其中,EDMA通道选项参数OPT在数据传输过程中发挥关键的作用,它决定了传输优先级、传输单元大小、源数据和目的数据维数、源地址和目的地址更新模式、事件链接使能等。EDMA通道选项参数OPT的配置程序如下:

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)分别是原始采集图像、灰度处理图像、二值化处理图像和负片效果处理后的图像。实验证明,系统整体运行流畅。通过简单算法的处理,验证了该图像采集处理系统具有较好的实时性。

图10 经过处理后的图片

设计了一个基于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/FPGAbased 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.

猜你喜欢
高电平寄存器时序
清明
一种基于FPGA的PWM防错输出控制电路
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
基于不同建设时序的地铁互联互通方案分析
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
移位寄存器及算术运算应用
基于FPGA 的时序信号光纤传输系统
浅谈物理电路与数字电路
PDM 1kW中波广播发射机保护电路分析