基于FPGA的视频图像采集系统设计

基于FPGA的视频图像采集系统设计[20191212175908]
摘 要
社会在进步在发展,各行各业对图像采集的要求也越来越高。视频 图像是人类获取以及交换信息的主要来源。现如今,视频图像采集的应用领域已经涉及到了人类的生活和工作的方方面面。伴随着嵌入式系统的兴起和发展,设计出一种价格更加合理、使用更加灵活的图像采集系统已经完全能够成为可能,这种视频图像采集系统的设计也有重要的实际意义。
本设计的创新在于尽可能发挥FPGA在数字信号处理高集成、高速度的优点,解决图像采集数据量大、处理耗时、信号复杂等技术难点。在视频图像采集及处理系统中,FPGA为最主要的的控制芯片,它的任务是获取外部视频解码芯片输入的的图像数据以及负责数据存储。设计中采用VerilogHDL作为编程语言并运用了乒乓设计思想和同步有限状态机的设计方法。本视频采集系统中,为了I2C总线的实现,共用了两种方法:硬件描述语言VerilogHDL和当下最流行的嵌入式软核Nios Ⅱ。
接下来我将先分析图像采集系统的研究现状和意义,简单介绍下系统的设计方案和工作原理,实物在运行中,系统完全能够实现图像的实时采集,并且采集图像较为清晰,收到了预期的效果。
 查看完整论文请+Q: 351916072 
关键字:字FPGA;图像采集;NiosⅡ
目录
摘 要 I
ABSTRACT II
第1章 绪论 1
1.1 图像采集系统的现实的应用 1
1.2 设计研究的主要内容及预期目标 2
第2章 系统方案设计 4
2.1 设计思路 4
2.2 系统设计方案的选择 4
2.3 FPGA介绍 5
2.3.1 FPGA设计的指导性原则 5
2.3.2 FPGA芯片结构 6
2.3.3 基于QuartusⅡ的典型流程FPGA设计 7
2.4 系统设计原则 9
2.5 Verilog HDL 介绍 9
2.6 软硬件开发平台 10
2.6.1 硬件开发平台 10
2.6.2 软件开发平台 10
第3章 视频图像采集系统的硬件设计 12
3.1 系统硬件电路的总体设计 12
3.2 FPGA控制系统设计 13
3.2.1 主控芯片的选择 13
3.2.2 控制部分电源设计 13
3.2.3 复位电路设计 14
3.3 OV7670 图像传感器 16
3.4 存储模块的设计 17
第4章 系统软件设计 19
4.1 软件设计概述 19
4.2 OV7670初始化 19
4.3 I2C总线接口 20
4.3.1 I2C总线 20
4.3.2 I2C总线的数据传输协议 21
4.3.3 I2C控制器的设计 22
4.4 SDRAM控制器的实现 26
4.5图像采集模块的设计与仿真 29
4.6 格式转换程序的设计与波形仿真 32
4.7简单运动检测 34
结束语 36
参考文献 37
致谢 38
附录 39
第1章 绪论
1.1 图像采集系统的现实的应用
人类所获取的信息有80%以上来自于图像。随着计算机技术的发展,科学技术的不断提高,图像技术在日常生活和众多科学研究领域中得到了较为广泛的应用。图像技术包括图像采集、图像传输、图像存储、图像处理和图像分析等。传统的脱机图像处理系统已经不能满足市场需求,在这种趋势下,集成电路亦或专用芯片处理系统发展壮大,高速的图像采集和传输应用需求,极大地推动了图像技术的发展。
许多方面都要用到图像处理技术,其根本原因就在于实时图像处理技术是可以提高图像处理速度的。但是这需要付出一定的代价,不如设备、开发等等。目前,图像采集系统广泛的用于国民经济、国防建设等领域。如医学方面的CT等技术就是利用图像系统对病人进行无痛安全直观地诊断和治疗;还有通讯方面的应用包括可视电话和新一代的手机功能等;另外在卫星遥感方面,广泛用于土地测绘、资源调查、气象检查等。
在数字化信息时代,数字化方式早已取代了传统的模拟存储处理方式。图像采集以及处理技术也正在向数字化方向转变。微电子技术的发展促使超大规模集成电路被成功运用于电子设计的各个领域,数字图像处理技术也有了突破性的进步。在现代多媒体技术中,实时图像采集占有举足轻重的地位。如今,图像采集系统大多采用实时图像采集技术。
对于这些基于图像辨别操控的应用系统,图像采集是它们所必需的前提。而多媒体通信、高清晰度电视以及图像处理、模式识别和计算机视觉等众多领域都对视频图像的采集的要求越来越高,因此图像采集技术的研究的现实意义可见一斑。
传统的数字图像采集打多采用计算机软件、单片机或专用DSP等来实现。上述方法要么处理速度慢,满足不了现代图像处理系统的实时性要求;要么太专业,不方便推广。为了有效地提高各类图像采集速度,许多用于视频图像采集和处理的芯片随之诞生,芯片的处理功能更加强大,使用也更方便。FPGA就是一种较大规模的可编程逻辑器件,能够用于任何的数字逻辑系统,特别是实时处理方面,更有无可比拟的优势。FPGA本身具有高性能、高集成度和低功耗的特点,己经使其具备了高速CPU的性能。用FPGA来做实时图像处理,由于可编程逻辑的大容量、灵活性,能够实现图像极大的并行处理能力理芯片结合起来,就能组成满足更多场合需求的嵌入式图像处理系统,这不但能很好的解决以上的很多问题,还能大大提高系统图像处理的性能。
综上,利用FPGA来实现图像处理比利用其他实现方式要强很多,FPGA芯片的强大的处理能力和可编程性,使其能灵活、高效的运行和分,速度比PC机和数字信号处理芯片还要快。
采用FPGA结合外部存储器的方式,用它来处理像实时图像岂不正好?同时也满足系统对实时性的要求。若是FPGA能与一些现有的图像处析各种图像处理算法。因此,研究基于FPGA进行实时图像处理系统,对开发出高质量高性能的图像处理产品具有不可忽视的现实意义。
1.2 设计研究的主要内容及预期目标
目前,在家用和专业视频设备等领域,数字视频处理技术已经逐渐取代模拟视频处理技术。视频处理的数字化是利用数字信号处理算法对采集到的视频信号进行变换处理来实现的。相对于模拟方式的处理系统,无论在速度、体积、功耗、还是可靠性上都有很大的优越性。FPGA因其具有可编程特性,可作为ASIC开发的先期验证工具,越来越受到硬件开发者的青睐。本课题要求分析视频采集的数字化实现原理,提出设计一种基于FPGA的视频采集系统的实现方法。
具体工作内容:
1.了解视频采集的数字化实现原理。
2. 熟悉FPGA芯片的特点,性能和优势。
3. 熟悉Protel DXP软件,能进行原理图设计和PCB设计。
4.熟练掌握硬件描述语言,并完成系统的软件设计。
5.熟悉硬件调试基本方法,进行硬件电路调试。
6.给出系统原理图、PCB图及相关程。
第2章 系统方案设计
2.1 设计思路
什么才是一个完整的视频图像采集及处理平台?一是要具备图像信号的采集功能,能够对图像进行实时显示,其次是能完成对图像信号的分析,还要能完成诸如图像压缩,识别等以及图像结果的反馈控制的处理算法,一般而言,这些算法的运算量打,还要满足实时出来,显示的要求,因而本文需要在比较分析现有图像处理系统方案的基础上,设计出一种应用性较强的解决方案。需要设计一个基于FPGA的视频图像采集系统,这个系统包括以下几个功能模块:图像采集,图像处理,图像显示。下图是该系统的逻辑功能模块图:
图2.1 逻辑功能模块图
2.2 系统设计方案的选择
图像处理是视频图像采集系统设计中的重点部分,因而选择图像处理芯片显得尤为重要。系统的核心部分图像处理模块里的图像处理芯片选择就是系统设计方案的最终选择。
专用集成芯片(ASIC)、数字信号处理器(DSP)和现场课编程门阵列(FPGA)等等都是专用的图像处理芯片。这些芯片都能够实时高速的完成各种图像处理算法,各有优劣。FPGA是现场可编程门阵列,能通过软件根据所需更改内部硬件逻辑及芯片功能,因此可以有实现的基于门电路的硬件算法来代替原有的有软件顺序执行和实现的图像处理算法。如今芯片已经可以完成复杂的逻辑运算,在集成度、容量和速度等方面也达到了比较高的水准。像这样的采用硬件实现算法处理,运算速度已经不亚于专用集成芯片,可以达到实时图像处理的要求。
由此可见采用FPGA能够利用并行技术实现视频视觉处理算法,其优点很明显,诸如图像运算、处理速度快,实时性好等,软件还可升级。其缺点是FPGA设计比较复杂,设计难度大,功耗高,速度也慢。
ASIC就是专用于数字图像处理的芯片,它和FPGA是电子设计的主流技术,它们之间不同的技术特征决定了它们各自的应用场所。ASIC的优势在于它的处理效率高,实时性好,功耗低,但其应用范围有限,移植性也不好。因而ASIC一般用于批量生产的专业产品中。
DSP是通用的数字信号处理芯片,它是优势在于设计简便灵活。适用于新算法的硬件验证,但DSP是软件编程实现,串行执行,导致其处理效率不如前两种,因而它不能满足一些对实时性要求较高的数字视频应用。
什么才是一个完整的视频图像采集及处理平台?一是要剧本图像信号的采集功能,能够对图像进行实时显示,其次是能完成对图像信号的分析,还要能完成诸如图像压缩,识别等以及图像结果的反馈控制的处理算法,一般而言,这些算法的运算量打,还要满足实时出来,显示的要求,因而本文需要在比较分析现有图像处理系统方案的基础上,采用FPGA作为主芯片设计出一种应用性较强的解决方案。
2.3 FPGA介绍
2.3.1 FPGA设计的指导性原则
这一部分主要介绍FPGA设计的指导性原则,如FPGA设计的基本原则、基本设计思想、基本操作技巧、常用模块等。FPGA设计的基本原则、思想、技巧和常用模块是一个非常大的问题,在此不可能面面俱到,只能简单的大致提到下。FPGA设计的基本原则包括:面积和速度的平衡与互换;硬件原则;系统原则;同步设计原则。FPGA的基本设计思想有:乒乓操作;串并转换;流水线操作;数据接口的同步方法。FPGA设计常用模块有RAM、全局时钟资源与时钟锁相环、全局复位置位信号、高速串行收发器。
2.3.2 FPGA芯片结构
1.可编程输入输出单元
I/O 单元是可编程输入输出单元的简称,外界电路与芯片的接口部分是I/O 单元,用来完成不同的电气特性下对输入和输出信号的驱动以及匹配要求。FPGA内的I/O 是按照组来分类的,每组都可以独立支持不相同的I/O 标准。经过软件配置,可以适配不同I/O 物理特性以及电气标准,还能调节驱动电流的大小,可以改变上拉电阻。现在,I/O 口的频率已经越来越高了,部分高端的FPGA通过ddr寄存器技术能支持高达2Gbps的数据速率。
IOB模块的存储单元能让外部输入信号输入到FPGA的内部,当然也可以直接输入到FPGA的内部。但是前者的保持时间的要求可以降低,一般来说是默认为0的。FPGA的IOB被分为几个组的目的是方便管理和适应多种电器标准,接口电压Vcc决定每个bank的接口标准,一个bank只可以有一种Vcc,不同的bank的Vcc可以不同。同样电气标准的端口才可以连接在一起,Vcc电压相同是接口标准的基本条件。
2.可配置逻辑块(CLB)
FPGA内的基本逻辑单元就是CLB。器件的不同会使CLB的实际数量和特性不同,每个CLB都含有一个科配置开关矩阵,该矩阵是有一些选型电路和触发器,4或6个输入组成。每个CLB模块都可以用于实现组合逻辑和时序逻辑,还能用来配置分布式RAM和分布式ROM。
3.数字时钟管理模块
现在大多数FPGA都提供数字时钟管理,精确的时钟综合是由相位环路锁定提供的,同时能降低抖动,并实现过滤功能。
4.嵌入式块RAM
绝大部分FPGA都有内嵌的块RAM,这就大大的扩展了FPGA的应用范围和它的灵活性。块RAM可以用来配置为单端口RAM、双端口RAM、FIFO、内容地址存储器(CAM)等等常用存储结构。RAM,FIFO都是较为普及的概念了,这里不多说了。CAM储存器内部的每个存储单元里都有一个比较逻辑,每一个写入CAM的数据都会和其内部的每一个数据进行比较,并且会返回与端口数据相同的所有数据的地址,因此在路由的地址交换器中有广泛的应用。除去块RAM,还能够把FPGA中的LUT灵活的配置成RAM,ROM等结构。实际应用中,芯片内部块RAM的数量同样是选择芯片的一个不可忽视的因素。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/gdxx/483.html

好棒文