>
首页 » 业界动态 » 基于DSP的最小图像采集处理系统设计

基于DSP的最小图像采集处理系统设计

作者:戴春雷,张海  时间:2007-02-05 02:44  来源:

摘 要;采用TI 公司的TMS320C6713 ,通过地址译码和总线隔离,直接将数字图像传感器芯片OV7620 接入;利用EDMA 独立传送的特点,在不增加DSP 软件开销和对总线占用的情况下,实现视频图像的实时采集和处理。经过验证,系统具有实时性好、成本低、开发周期短的特点。通过总线隔离和数据锁存实现了DSP 与低速LCD 显示模块的接口。针对具体的硬件电路给出了驱动例程。

关键词:DSP;嵌入式系统;图像采集;图像处理

引 言

在以DSP 为核心的视频处理系统中,视频采集的方法通常可以分为两大类:自动的视频采集和基于DSP 的视频采集。前者通常采用CPLD/ FPGA 控制视频解码芯片,通过FIFO 或者双口RAM DSP 传送数据,特点是数据采集模块独立运行,占用DSP 资源少,但实现相对复杂,成本偏高;后者通常由DSP 控制视频解码芯片并同步各种时序,将视频数据读入。其特点是实现相对简单,成本有所降低,但对视频解码芯片的控制较为复杂,占用DSP 处理时间。

如果通过适当的逻辑电路让数字图像传感器芯片直接接入DSP ,则可省去视频控制解码芯片、CPLD/ FPGAFIFO 或双口RAM ,在不增加DSP 软件开销的情况下,大大降低系统的复杂程度和成本,缩短开发周期。

 硬件系统设计

  系统总体结构

系统结构框图如图1 所示。DSP 采用TI 公司发布的C6000 系列高速浮点型信号处理器TMS320C6713 ,其峰值处理速度达1350 MFLOPS(百万次浮点每秒)。其外部存储器接口EMIF ( External Memory Interface) 包括4 CE 空间, 其中CE0 被配置为16 位同步空间, SDRAM;CE1 16 位异步空间,Flash ;CE2 16 位异步空间, 经过地址译码和总线缓冲将数字图像传感器OV7620 接入;CE3 8 位异步空间,经过数据锁存和总线隔离将LCD 显示模块接入。

  OV7620 的配置和硬件连接

OV7620 OmniVision 公司生产的CMOS 彩色/ 黑白图像传感器, 在本系统中被配置为16 位逐行扫描QVGA 方式, RGB 原始数据输出,分辨率为320×240 ,SCCB 总线,内部默认的行曝光方式;同时使能HREF 信号对PCL K进行门控,即只有当HREF 有效时像素时钟信号才被输出到PCLK引脚上,否则该引脚保持无效。这样EDMA 可以始终处在使能状态,从而简化采集过程。

OV7620 DSP 的硬件连接框图如图2 所示。在对OV7620 复位结束后,DSP 通过GPIO 模拟SCCB 总线完成对OV7620 内部功能寄存器的配置,之后数帧内图像数据和同步信号将逐渐稳定。Y通道和U/ V 通道在分别经过74 HC244 总线缓冲器之后接入EMIF 16 位数据总线。CE2 与地址线EA20 EA21 经过译码产生2 74 HC244 的选通信号, 此时OV7620 的读地址为0xA0000000

 EDMA 数据采集

16 位逐行扫描方式中,图像的每行RGB 原始数据均被OV7620 先后输出两次, 因此, 只须读取其偶数次HREF 信号对应的数据即可获得整个图像信息。这样可以减少图像采集所占用的存储空间和总线资源。OV7620 同步和控制信号与GPIO 的对应关系如表1所列。

本系统采用EDMA 的第12 个通道( EDMA12) 进行图像数据采集。该通道被配置为16 位一维传输方式,中断禁止,PCLK的上升沿触发EDMA12 搬移一个16 位数据存入到SDRAM ,每次EDMA 任务搬移一个HREF(320 16) 的图像数据。帧同步信号VSYNC 上升沿触发DSP 中断,EDMA 通道进行初始化,使能水平参考信号HREF 中断并关闭EDMA 通道( 放弃第1HREF的数据) ,开始一帧的数据传输。HREF 下降沿触发DSP 产生中断,标志OV7620 一次HREF 数据输出的结束。如果接下来一次HREF 数据需要被读入,则中断服务程序会对EDMA12 参数进行修正,使能EDMA12 通道,开始下一行数据的传输;否则,就禁止EDMA12 ,放弃下一次HREF 数据。每接收1帧图像数据共产生240 HREF 中断和120 EDMA 数据传输。

以下是OV7620数据采集的部分源代码:

interrupt void IN T6_EXT6 (void) {

/ * VSYNC GPIO6 帧同步中断* /

EDMA_OpenCha ( PCL K_EDMA_CHANL) ;

/ * 打开EDMA 通道,准备OV7620 数据搬移* /

EER & = (1 < < PCL K_EDMA_CHANL) ;

/ * EDMA 使能,放弃第1 HREF 的数据* /

ICR = HREF_IN T_CHANL ;

/ * HREF( GPIO7) INT7 中断标志* /

IER| = HREF_IN T_CHANL ;

/ * 使能HREF( GPIO7) IN T7 中断* /

}

interrupt void IN T7_EXT7 (void) {

/ * HREF GPIO7 水平参考中断* /

if ( ! HREF_Data_Switch) {

HREF_Data_Switch = TRUE;

/ 3 接下来的HREF 数据有效3 /

( 3 ( EDMA _ PARAM_ POIN TER + PCL K_ EDMA _

CHANL) ) . CN T = IMA GESIZE_WIDTH ;

/ * 修正EDMA 传输参数计数值* /

ECR| = 1 < < PCL K_EDMA_CHANL ;

/ * 清上周期遗留的PCL K触发事件* /

EER | = 1 < < PCL K_EDMA_CHANL ;

/ * 使能EDMA ,开始读下一行数据* /

}

else {

HREF_Data_Switch = FALSE ;

/ * 接下来的HREF 数据无效* /

EER & = (1 < < PCL K_EDMA_CHANL) ;

/ * 禁止EDMA ,接下来HREF 数据不读* /

}

}

  LCD 模块的驱动

采用液晶显示模块可以使图像处理结果实时显示出来,方便调试和演示,成本也较低。本系统选用北京宁和电子科技发展有限公司开发的NHC_34 彩色液晶显示控制模块。该模块支持256 色彩色显示,每个像素点用1 个字节表示,分辨率为320 ×234 ;支持标准Intel 8 位异步总线时序,2 页显示缓存,可任意设定显示页和操作页。

LCD 模块读写周期最短为350 ns ,DSP 外部总线接口时钟频率一般在100 MHz 以上,即小于10 ns 。通过配置EMIF CE3 空间控制寄存器CECTL3 ( 地址为0x01800014) ,可以将CE3 空间的读写周期延长,LCD模块无缝连接。但这样液晶模块的读写操作会过长地占用系统总线,降低对其他存储空间(尤其是对SDRAM) 的访问效率,进而影响系统的整体速度。

本系统采用了数据锁存和总线缓冲的方法,通过377锁存器模拟低速总线控制信号时序,利用244 数据缓冲器对低速总线数据进行隔离。图3 给出了DSP LCD 模块硬件连接图。系统有2 74 HC377 (简称为“377) ,一片用来锁存模拟LCD 模块的读写控制信号(控制377) ,另一片用来锁存写入数据(数据377) ,由异步写使能控制线AWE作为377 的触发沿输入;CE3 EA20 EA21 经过译码产生2 377 的使能信号,DSP 写数据377 的地址为0xB0000000 ,写控制377 的地址为0xB0040000 。数据377的输出经一片总线缓冲器HC244 (写出244 , HC244 简称为“244) 连接到LCD 模块总线上,244 输出使能信号来自控制377 。另有一片HC244 (读入244) 用来将LCD 模块总线接到DSP 8 位总线上,其输出使能信号同样由CE3 EA20 EA21 经过译码产生,地址为0xB0080000 ,DSP LCD 模块的读地址。

DSP 根据LCD 模块总线时序,通过定时器延时中断来间隔地写入数据到控制377 ,以模拟相应低速总线的控制信号,并适时从读入244 读取数据(读周期) ,或者写入数据到数据377 (写周期) ,就可以完成对LCD 模块的读/写操作。

LCD 写周期驱动例程如下(该程序通过延时来控制时间间隔) :

# define SET_CS_LCD ( )  ct rl377valu| = 0X01 ; ct rl377reg =ct rl377valu

/ * 向液晶模块写入数据子程序。subaddress :03 A1 A0 的值;writevalu :待写入LCD 的数据* /

void Write2LCD ( unsigned char subaddress , unsigned charwritevalu) {

ct rl377valu| = subaddress < < 3 ;

ct rl377valu & = ( subaddress < < 3) | 0XE7 ;

/ * 根据A0 A1 的值更新ct rl377valu 的对应位* /

ct rl377valu & = 0x23 ; / * 使能CSWR LCD_wren * /

ct rl377reg = ct rl377valu ;

/ * 输出控制数据到377 控制锁存器* /

LCD_wr_reg = writevalu ;

/ * 输出待写数据到377 数据锁存器* /

DELA Y(WR_LCD_DELA YTIME * 10) ;

/ * 延时T4 20 ns ×6 = 120 ns * /

SET_WR_LCD() ;

/ * 置位WR 信号,上升沿将数据写入LCD * /

DELA Y(WR_LCD_DELA YTIME) ; / * 延时20 ns * /

SET_CS_LCD() ;

/ * 置位CS ,使地址信号无效* /

DELA Y(WR_LCD_DELA YTIME * 5) ; / * 延时100 ns * /

SET_WREN_LCD() ;

/ *写出244 输出禁止,数据无效* /

DELA Y(WR_LCD_DELA YTIME * 2) ;

/ * 延时40 ns ,周期结束* /

}

 软件系统设计

软件系统流程如图4 所示。DSP 在复位完成之后首先进行系统的初始化,配置锁相环、EMIF GPIO ,并硬件复位OV7620 ,通过GPIO 模拟SCCB 总线配置其内部功能寄存器,之后对LCD 模块清屏。当EDMA 没有被使能时,OV7620 的同步信号仍能被EDMA 事件寄存器捕获并保持,所以把EDMA 的初始化放在OV7620 LCD模块的初始化之后,并在使能之前清事件标志。在中断被使能之后,OV7620 的帧同步信号会触发系统中断,开始进行数据的循环采集,并在每帧数据采集完成之后置位相应标志,通知主程序进行处理。主程序在接到通知后对OV7620 的原始数据进行插值和平滑,生成待处理的RGB24 位色图像数据。图像处理和运算的结果被送到LCD 模块进行动态显示,LCD 的显示任务主要由中断服务程序完成,而此时主程序已开始等待和处理下一帧图像。

结 论

本系统通过总线隔离和地址译码,只使用简单的逻辑芯片将OV7620 接入DSP ,并充分发挥EDMA 独立传送的特点,仅占用DSP 少量的软件开销和总线资源,就完成图像数据的采集。与采用视频接口芯片、外围FIFO CPLD/ FPGA 等方案相比,很大程度上降低了系统成本,缩短了开发周期,而对系统总线的占用却并没有增加。利用数据锁存和总线缓冲实现了对LCD 模块异步低速总线的接入;利用EDMA 进行总线模拟,进一步降低DSP LCD 模块读/ 写的参与,减少系统中断次数,优化系统性能,能够将图像处理的结果实时和直观地显示出来。

相关推荐

从TI“蝗虫战略”到雷军“芯片免费”

芯片  嵌入式系统  2013-11-07

嵌入式系统领域迎来创新与转型时代

嵌入式系统  通信  2013-05-30

VDC:物联网将改写嵌入式系统开发趋势

物联网  嵌入式系统  2013-05-14

CEVA凭借90%的市场份额继续领导DSP IP市场

CEVA  DSP  2012-05-30

欧胜推出带有语音处理器DSP的下一代音频中枢

欧胜  DSP  2012-05-07

Tensilica HiFi音频/语音DSP迎来又一里程碑

Tensilica  DSP  2012-04-25
在线研讨会
焦点