基于fpga的视频信号采集与处理系统(编辑修改稿)内容摘要:

RGB 信号从 VGA 缩小到 CIF 以下的任何尺寸。 ( 9) 时序发生器 通常时序发生器有以下功能 : ① 阵列控制和帧率发生 ② 内部信号发生器和分布 ③ 帧率的时序 ④ 自动曝光控制 ⑤ 输出外部时序 (VSYNC, HREF/HSYNC 和 PCLK) 其输出外部时序如图 25 所示: 水平时序: 图 25 OV7670 输出水平时序 VGA 框架时序如图 26 所示: 河南理工大学毕业设计(论文)说明书 11 图 26 OV7670 输出 VGA框架时序 ( 10) 数字视频端口 寄存器 COM2[1:0]调节 IOL/IOH 的驱动电流,以适应用户的负载。 ( 11) SCCB 接口 用于对 OV7670 内部各个寄存器的 读与写。 ( 12) LED 和闪光灯输出控制 OV7670/OV7171 有闪光灯模式,控制外接闪光灯或闪光 LED 的工作。 河南理工大学毕业设计(论文)说明书 12 3 系统设计及硬件实现 系统结构及工作流程 系统结构 在前言中已经提到,本系统的主要是基于 FPGA 架构的,由 FPGA 作为核心控制及处理单元,其余外部设备与芯片包括 SRAM 存储器、 SDRAM存储器、 EPCS4 配置芯片、 TFT 液晶显示屏等。 系统框图如图 31 所示, O V 7 6 7 0图 像 传 感 器F P G A ( E P 2 C 8 Q 2 0 8 C 8 )2 . 8 寸 T F T液 晶 显 示 屏S R A MS D R A ME P C S 4S D 图 31 系统总体框架 系统工作流程 ( 1) 系统上电, FPGA 通过配置芯片完成硬件电路配置; ( 2) 硬件电路配置完毕, FPGA 内部的特定模块对 OV7670 和 TFT液晶屏进行寄存器的配置初始化设置; ( 3) 初始化设置完毕,启动 OV7670, FPGA 采集图像数据到 FPGA内部,经过格式转换后,一路存入 SRAM 缓存,一路直接在 TFT 液晶屏上实时显示。 ( 4) 一帧图像数据全部存入 SRAM 后, FPGA 内部的 NIOS II 软核读取 SRAM 图像数据并解析,处理后以图片格式存入 SD 卡中。 器件选型及硬件电路实现 FPGA 选型 FPGA 是该系统的核心 ,由于本系统目前只是完成简单的图像处理,河南理工大学毕业设计(论文)说明书 13 故 FPGA 选用 Altera 公司的低成本 FPGA Cyclone lI 系列器件。 Cyclone II系列器件简介如表 3l 所示。 表 31 Cyclone II系列 FPGA参数对比 Cyclone II 器件采用 90nm 工 艺制造,它延续 Cyclone 的低成本定位,在逻辑容量、 PLL、乘法器和 I/O 数量上都较 Cyclone 有了很大的提高,应用 Cyclone II 进行图像处理开发有如下优点: (1) 低成本高性能,适应图像处理要求较高的需要。 Cyclone II 器件架构 是专门为低成本设计优化的,提供了大量的逻辑单元 (LE),密度超过第一代 Cyclone FPGA 三倍;其内部的逻辑资源可以用来实现复杂的应用。 与其他低成本 90nm FPGA 相比, Cyclone II FPGA 快 60%,是市场上性能最好的低成本 90nm FPGA。 (2) 丰富的内嵌存储器资源,适应大量图像数据存取的需要。 Cyclone lI FPGA 基于流行的 M4K 存储器块,提供大量的嵌入式存储器,支持多种操作模式的配置,包括 RAM、 ROM、 FIFO 缓冲器以及单端口和双端口模式。 (3) 丰富的硬件乘法器,适 应图像处理算法的需要。 Cyclone II FPGA提供了大量的比特乘法器,可用于实现通用 DSP 功能。 出于成本及系统实现功能的考虑,本系统的 FPGA 目前暂时选用EP2C8Q208C8。 FPGA 配置电路 由于目前的 FPGA 大多采用 SRAMI 艺,系统掉电后 SRAM 内部的数据将丢失,无法保存,因此必须通过外部配置,才能再次对 FPGA 内部的河南理工大学毕业设计(论文)说明书 14 多路器、逻辑、互连线结点和 RAM 初始化内容进行编程。 下面简单介绍一下 FPGA 的三种配置方式。 ① FPGA 主动方式 在主动方式下,配置过程如下: FPGA 主动输出控制 和同步信号 (包括配置时钟 )给 Altera 专用的串行配置芯片 (EPCSl 和 EPCS4 等 ),配置芯片在收到命令后,将配置数据发送到 FPGA。 要支持的这种主动方式, Altera FPGA 只能够与 Altem 公司提供的主动串行芯片 (EPCS 系列 )配合使用,Altem 称这种配置方式为主动串行 AS(Active Serial)模式。 AS 方式下配置芯片与 FPGA 相连的信号有:串行时钟输入 (DCLK), AS 控制信号输入(ASDI),片选信号 (nCS),串行数据输出。 ② FPGA 被动方式 在被动方式下,由系统中的其他设备,如 Altem 的配置芯片 (EPC 系列 )、微处理器、 CPLD 等发起并控制配置过程, FPGA 处于完全被动的地位。 FPGA 接收配置时钟、配置命令和配置数据,给出配置的状态信号以及配置完成指示信号等。 被动方式可以具体细分为以下多种模式,包括被动串行 PS(Passive Serial)、快速被动并行 FPP(Fast Passive Parallel)、被动并行同步 PPS(Passive Paraltel Synchronous)、被动并行异步 PPA(Passive Parallel Asynchronous),以及被动串 行异步 PSA(Passive Serial Asynchronous)。 上述模式这里不再详述。 PS 方式下配置设备与 FPGA 相连的信号有: DCLK(配置时钟 ),DATA0(配置数据 ), nCONFIG(配置命令 ), nSTATUS(状态信号 ), CONF DONE(配置完成指示 )。 ③ JTAG 方式 JTAG 是 IEEE 1149. 1 边界扫描测试的标准接嗣。 绝大多数的 Altera FPGA 都支持由 JTAG 口进行配置,并支持 JAM STAPL 标准, JTAG 配置方式比其他任何一种配置方式的优先级都高。 扶 JTAG 接叠进行配 置可以使用 Altera 的下载电缆,通过 Quartos II 工具下载,也可以采用微处理器河南理工大学毕业设计(论文)说明书 15 来模拟 JTAG 时序进行配置。 JTAG 方式下 FPGA 需要用到以下信号: TDI(测试数据的输入 ),TDO(测试数据的输出 ), TMS(模式控制管脚,决定 JTAG 电路内部的 TAP状态机的跳转 ), TCK(测试时钟 )。 Cyclone II 的器件都支持上述三种配置方式,本系统可以通过不同的下载接口可以选择采用 AS 方式还是 JTAG 方式。 电路原理图如图 32 所示。 图 32 FPGA配置电路 SDRAM 电路实现 本系统 FPGA 内部设计有 NIOS II 软核, SDRAM 主要用来存放软件MCU 中的软件程序,软核 CPU 中设计的复位基地址 Reset Vevtor 及中断向量基地址 Exception Vector,都定义在 SDRAM 上,即通常说的内存。 如下图 33 所示: 河南理工大学毕业设计(论文)说明书 16 图 33 SDRAM 设置 在 Altera 公司 FPGA 开发软件 quartus ii 中,集成有 SOPC Bulider。 SOPC( System On Programmable Chip,可编程片上系统)是 Altera 公司提出的一种灵活、高效的 SOC 解决方案,是一种新的软硬件协同设计的系统设计技术。 它将处理器、存储器、 I/O 口、 LVDS 和 CDR 等系统设计需要的功能模块集成到一个可编程器件上,构成一个可编程片上系统。 本系统所用的 SDRAM 控制器,就是在 SOPC Builder 中生成,大大减小了开发难度。 对于本系统而言,只需要一片 SDRAM( K4S641632),其大小为64Mb(1M 16Bit 4Bank)。 FPGA 与 SDRAM 的连接比较简单,只需要在FPGA 内部实现 SDRAM 控制器并且配置 FPGA 相应引脚 为 SDRAM 对应的引脚,即 A0— A10, BA0 一 BAl, DQ[15: 0], CLK, CKE, aWE, nCAS,nRAS, LDQM, UDQM,然后将上述引脚与 SDRAM 相连即可。 电路原理图如图 34 所示。 河南理工大学毕业设计(论文)说明书 17 图 34 SDRAM 硬件电路图 SRAM 电路实现 在该系统中, SRAM 主要用来做为图像数据的缓存,用以之后软核CPU 对图像的处理工作。 本系统采用一片 IS61LV2561610T SRAM 芯片即可达到系统要求, FPGA 与 SRAM 的连接如下图 35 所示,此模块最主要的是其控制器的设计,将在下 一章软件设计时详细说明。 河南理工大学毕业设计(论文)说明书 18 图 35 SRAM 硬件电路图 其他硬件电路 上面将几个比较复杂的模块详细说明了一下,剩余的几个模块,如OV7670、 TFT 液晶、 SD 卡。 这几个与 FPGA 之间都只是简单的接线连接,在这里就不再详细叙述。 这几个模块最重要的是软件设计,将在下一章详细说明。 河南理工大学毕业设计(论文)说明书 19 4 系统软件设计 软件设计概述 本系统软件设计主要分两部分,一部分是由硬件描述语言设计的系统各个外部的控制模块,如 PLL、 MCU 主控模块、 OV7670 初始化模块、0V7670 数据采集模块、 SRAM 控制、 TFT 液 晶显示控制等。 另一部分是NIOS II 软核中的程序设计,主要包括: SD 卡控制、图像算法处理等。 系统框图如下图 41 所示: P L LO V 7 6 7 0 初 始 化O V 7 6 7 0 数 据 采 集S R A M 控 制T F T 控 制S D 卡S D R A M图 像 算 法F P G AM C U 图 41 FPGA内部功能模块连接图 系统启动后, MCU 先完成对 TFT 液晶的初始化设置,然后 OV7670初始化模块完成对 OV7670 内部各寄存器的配置;完成后产生一个信号,通知 MCU 单元 0V7670 已初始化完毕,然后 MCU 启动 OV7670 采集模块和 TFT 控制模块,实现图像的实时显示。 另一方面, OV7670 采集到的数据,也送入 SRAM 控制模块,一帧图像数据全部存入 SRAM 后, FPGA内部的 NIOS II 软核读取 SRAM 图像数据并解析,处理后以图片格式存入SD 卡中。 另外, PLL( Phase Locked Loop,锁相环)模块提供三路不同的河南理工大学毕业设计(论文)说明书 20 频率信号,为驱动其他模块提供。 VHDL 简介及特点 VHDL ( VeryHighSpeed Integrated Circuit HardwareDescription Language, 超高速集成电路硬件描述语言 ) 诞生于 1982 年。 1987 年底,VHDL 被 IEEE 和美国国防部确认为标准 硬件描述语言。 VHDL 主要用于描述数字系统的结构,行为,功能和接口。 除了含有许多具有硬件特征的语句外, VHDL 的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。 与其他硬件描述语言相比, VHDL 具有以下特点: ① 功能强大、设计灵活 VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。 它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。 VHDL 支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。 VHDL 还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。 ② 支持广泛、易于修改 由于 VHDL 已经成为 IEEE 标准所规范的硬件描述语言,目前大多数EDA 工具几乎都支持 VHDL,这为 VHDL 的进一步推广和广泛应用奠定了基础。 在硬件电路设计过 程中,主要的设计文件是用 VHDL 编写的源代码,因为 VHDL 易读和结构化,所以易于修改设计。 ③ 强大的系统硬件描述能力 VHDL 具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。 而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。 另外, VHDL 支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。 VHDL 支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。 河南理工大学毕业设计(论文)说明书 21 ④ 独立于器件的设计。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。