基于dsp+fpga的嵌入式图像处理系统的发展

基于dsp+fpga的嵌入式图像处理系统的发展

ID:21906473

大小:55.50 KB

页数:7页

时间:2018-10-25

基于dsp+fpga的嵌入式图像处理系统的发展_第1页
基于dsp+fpga的嵌入式图像处理系统的发展_第2页
基于dsp+fpga的嵌入式图像处理系统的发展_第3页
基于dsp+fpga的嵌入式图像处理系统的发展_第4页
基于dsp+fpga的嵌入式图像处理系统的发展_第5页
资源描述:

《基于dsp+fpga的嵌入式图像处理系统的发展》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于DSP+FPGA的嵌入式图像处理系统的发展伴随着图像处理技术的快速发展,图像处理系统的性能需求也在不断提高,特别是在实时性上的要求[1]。基于PC或者工作站的图像处理系统,常常不是一个可行的选择[2],原因如下:应用对处理时间要求苛刻;CCD摄像机数据量太大。另外,这类系统的资源有效利用率较低,体积大而笨重,功耗高,不适合便携式应用场合[3]。DSP是一种基于指令和代码的流水线处理器,具有强大的数据处理能力和较高的运行速度,采用C/C++或者线性汇编语言编程,可以支持复杂的算法处理[4],而FPGA则属于真正的并行

2、架构[5],不同的处理操作无需竞争相同的资源,每个处理任务都可以不受其他逻辑块的影响自主运行,因此FPGA具有强大的并行处理能力,其现场可编程的属性也带来了更大的灵活性,但是,FPGA不擅长复杂的算法处理和逻辑控制。本文基于DSP+FPGA架构构建了一个嵌入式图像处理系统,使得DSP和FPGA可以发挥各自的特长,协同处理,与单独采用DSP或FPGA的系统相比,本系统具有更强大的数据处理能力,且更灵活、更通用。1系统架构本系统采用DSP+FPGA架构,原理方框图如图1所示,其中DSP芯片采用TI公司单核最高性能的TMS3

3、20C6455(简称C6455)[6]芯片作为核心处理器,负责完成视频图像的复杂算法处理,FPGA芯片采用Altera公司的CycloneⅢ系列芯片EP3C55[7],FPGA作为DSP的协处理器,负责完成图像的采集、显示和传输等辅助功能,使得DSP可以专注于算法处理。DSP和FPGA之间通过32位EMIF接口实现了高速同步无缝互联,由图1可知,本系统的动态存储器均采用DDR2SDRAM,其中C6455所带2片DDR2存储器用来存储图像和算法数据,为C6455处理大数据量、复杂算法提供了保证。FPGA所带2片DDR2存

4、储器用来存储捕捉的Camera图像数据,以便VGA显示和DSP读取。FPGA采集的图像数据可通过EMIF和EDMA从FPGA所带的DDR2存储器搬运到DSP所带的DDR2存储器。图1系统方框图2FPGA设计本文FPGA的主要功能围绕着DDR2存储器的读写,如图2所示。图2FPGA的主要功能模块图相机负责向缓冲区写数据,VGA显示和DSP负责从缓冲区读数据。本文中的DDR2控制器工作于Full?rate模式下,需要向DDR2driver提供2倍数据宽度,即64b数据。本文对每个读写数据通道,使用独立的FIFO进行不同时钟

5、域之间的数据传输。从CameraLink[8?9]相机的LVDS接收器解码得到8b图像数据,在向IFA,进行传输。为方便可视化验证算法处理结果,DSP算法处理结果可以通过McBSP发送给FPGA,FPGA接收到数据,将其转换为可视的屏幕位置送给VGAController,在屏幕上进行叠加显示。本系统应用于近红外图像处理领域,采用的CameraLink相机[10]输出分辨率为1024768,帧率为30f/s,而一般的液晶显示器刷新频率为60Hz,为了将捕捉到的相机数据显示出来,需要将30帧图像插帧为60帧,但是显示时钟与

6、相机时钟并不是同源时钟,其帧率并不是严格的两倍关系,这种相机和显示之间的异步时序关系如图3所示,所以不能简单地将一帧图像显示2次;同时,本系统的近红外图像算法处理时间根据图像的不同而具有不确定性,并非每帧图像都能在一个帧周期内处理完成。基于这两个因素,本系统没有采用常规的乒乓缓冲处理方式,而是采用了三重缓冲解决了这两个问题。图3相机和显示的异步时序关系所谓三重缓冲,也即在DDR2存储器内开辟了三个缓冲:BufferA,BufferB和BufferC。其中,读写操作各占一个缓冲区,第三个存储区作为中转,先不考虑DSP从缓

7、冲区读数据。三重缓冲的示意图如图4所示,假设当前缓冲区BufferA正在进行写操作,缓冲区BufferB正在进行读操作,缓冲区BufferC则有2种可能:已写满(FULL)和已读完(EMPTY)两个状态。此时,如果需要进行读写翻页操作,即读复位信号或写复位信号有效时,DDR2驱动程序可按不同情况给出不同的操作,如表1所示。例如,当读复位信号有效,写复位信号无效时,说明缓冲区BufferA尚未写满,而缓冲区BufferB已经读完,此时,需要查询缓冲区BufferC的状态,如果缓冲区BufferC处于FULL状态,则读缓冲

8、区将由当前的缓冲区BufferB改为缓冲区BufferC,并将缓冲区BufferB设置为EMPTY状态;如果缓冲区BufferC处于EMPTY状态,则将重新读取缓冲区BufferB。图4三重缓冲的示意图表1三重缓冲的决策表再考虑DSP从缓冲区读数据的情况,为保证DSP任意时刻开始读数据,总能读到最新的数据,本文使用图像的场信号FV

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。