基于FPGA的视频信号采集与处理系统方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的视频信号采集与处理系统
摘要
图像是人类获取和交换信息的主要来源。

现如今,图像处理的应用领域已经涉与到人类生活和工作的方方面面,如航天和航空技术、工业和工程、军事公安、生物医学工程等等。

在图像处理系统中,实时图像的采集是整个系统的前端部分,也是整个系统最重要的部分。

前端的图像采集速度与质量,直接影响到图像处理系统后端的算法处理与应用。

本文主要设计图像处理系统的前端部分,即视频信号的采集。

本文设计中采用CMOS图像传感器OV7670对外界图像进行实时采集,通过FPGA部设计的初始化模块对图像传感器输出信号的格式进行配置。

根据其输出信号的时序,在FPGA部设计采集单元。

采集到的数据一路送到TFT液晶屏上进行实时显示,另一路送入SRAM缓存。

当一帧图像存储完成后,在NIOS II软核中对图像进行处理,并将处理结果以图片的方式,存储到外部存储器SD卡中。

关键字:FPGA;实时图像; CMOS;图像采集
Abstract
The image is human access and exchanges the primary source of information.Nowadays, Image processing applications have involved human life and all aspects of the work, such as aerospace and aviation technology, industry and engineering, military police, biomedical engineering and so on. In the image processing system,Real-time image collection is the head part of the whole system, is also the most important part of the whole system. Part of the image acquisition speed and quality, directly affect the image processing system and the algorithm after processing and the application.
This paper mainly designs image processing system, namely the head part of video signal collection.
This paper applied to the design of CMOS image sensor to the outside world OV7670 real-time image acquisition. Through the FPGA design inside the initialization of the module of image sensor output signal format configuration. According to its output signal timing, In the FPGA design inside acquisition cell. The data collected one way to TFT LCD screen on the real-time display, and the other way into an SRAM cache, when a frame image storage completed, processing the image in the NIOS II MCU. And the result of processing, storage to external storage SD card.
Key words:FPGA;Real-time image;CMOS;Image acquisition
目录
1 前言1
1.1 数字图像处理发展史1
1.2 系统整体设计2
2 CMOS原理和特性与CMOS摄像头的基本结构4 2.1 CMOS原理与特性4
2.1.1 CMOS数字图像传感器基本原理4
2.1.2 CMOS图像传感器的特性5
2.2 COMS传感器的基本结构6
2.2.1 OV7670简介6
2.2.2 OV7670部结构8
3 系统设计与硬件实现12
3.1 系统结构与工作流程12
3.1.1系统结构12
3.1.2系统工作流程12
3.2器件选型与硬件电路实现12
3.2.1 FPGA选型12
3.2.2 FPGA配置电路13
3.2.3 SDRAM电路实现15
3.2.4 SRAM电路实现17
3.2.5其他硬件电路18
4 系统软件设计19
4.1 软件设计概述19
4.2 VHDL简介与特点20
4.3 OV7670初始化模块21
4.4 OV7670数据采集模块23
4.5 SRAM控制模块和TFT液晶控制模块25 4.6 MCU单元设计26
4.6.1 SOPC Builder简介26
4.6.2主控制单元MCU的实现28
4.7 NIOS II软件开发29
4.7.1 NIOS II集成开发环境29
4.7.2 MCU软件设计30
4.7.3简单运动检测31
4.7.4 BMP图片存储32
5 总结与展望34
参考文献35
附录 136
附录 243
致44
1 前言
1.1 数字图像处理发展史
数字图像处理技术起源于20世纪20年代,当时通过海底电缆从英国伦敦到美国纽约传输了一幅照片,它采用了数字压缩技术。

就1920年的技术水平看,如果不压缩,传一幅图片要一个星期时间,压缩后只需要3小时。

1964年美国的喷气推进实验室处理了太空船“徘徊者七号”发回的月球照片,这标志着第三代计算机问世后数字图像处理概念开始得到应用。

其后,数字图像处理技术得到迅速发展,目前已成为工程学、计算机科学、信息科学、统计学、物理学、化学、生物学、医学甚至社会科学等领域各学科之间学习和研究的对象。

从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。

人们已开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界。

如今图像处理技术已给人类带来了巨大的经济效益和社会效益。

而在图像处理系统中,图像采集是图像处理最重要的前提。

前端的图像采集速度与质量,直接影响到图像处理系统后端的算法处理与应用。

图像采集卡是常用的图像输入设备,通常占用PC机总线的一个插槽。

它主要包括图像存储器单元、CCD或CMOS摄像头接口、PC机总线接口等。

传统的图像采集卡大多数采用PCI接口,这种图像采集卡适用于将模拟信号经A/D转换器转换成数字信号,或本身就是数字信号,再通过PCI接口传输至PC机,进行图像处理。

但使用嵌入式系统实现图像采集和处理时,带有PCI接口的图像采集卡就不适用。

另外在图像处理的实时性方面,一般的所用的PC软件或MCU软件方法已不能满足要求,究其原因就是因为其本质是顺序执行指令,不能做开并行处理。

而一般采集的图像数据量较大,运算量也相应比较大。

另一方面,现今的图像处理应用也向嵌入式小型化方向发展。

因此,现场可编程门阵列(FPGA,Field-Programmable Gate Array)以其较高的并行处理
能力、丰富的部资源和较大的灵活性,在视频图像处理方面,显现出独特的优势。

FPGA,即现场可编程门阵列是用户自编程ASIC的一种,它使用户可以在现场通过编程形成自己所需要的ASIC,并可不断对自己已经提出的要求或初始设计进行更改。

1985年,Xilinx公司推出了世界上第一款FPGA,在随后的20多年的发展过程中,FPGA硬件体系结构和软件开发工具都在不断的完善,成熟。

现在如今,Xilinx、Altera等世界顶级厂商已经将FPGA器件的集成度提高到一个新的水平。

此外,FPGA还嵌入用户可以自己定制的软核CPU,加上完整和多平台设计环境,还可以利用第三方的综合、仿真工具,提高了设计效率,缩短了设计周期。

随着现代大容量、高密度、高速度FPGA的出现,在这些FPGA中一般都嵌有可配置的高速RAM、PLL以与硬件乘法器等DSP专用IP模块,而且在原有逻辑宏单元的基础上嵌入了许多面向DSP的专用模块,结合这些硬件资源使DSP开发者能十分容易地在一片FPGA上实现整个DSP系统,使得之前主要由DSP完成数字图像处理算法,对数字图像进行算法级处理的系统,完全可以在一片FPGA 上来实现,大大缩减了外部硬件电路。

同时FPGA中能嵌入高速的ROM和RAM模块,实现高达10Mb/s的读写速率(Altera 公司的Stratix系列),FPGA的设计非常灵活,通用DSP芯片通常只有1—4个乘法器,而在FPGA中可以配置数十个乘法器(例如Altera公司最新的低成本的CycloneII系列FPGA可以提供多达150个18×18位的乘法器),用来实现通用的DSP功能。

很多FPGA供应商提供了专用的开发软件(例如Altera公司的DSP Builder),以MATLAB工具箱的形式出现,利用MATLAB 中的Simulink工具进行图像化设计,建立各种数字信号DSP模型,完成后利用DSP Builder将其转换成硬件描述性语言VHDL,通过综合、下载,最后得到能实现DSP功能的FPGA电路,使得DSP算法处理开发变得简单。

1.2 系统整体设计
本文主要研究是基于FPGA设计一个完整和视频信号采集与存储系统。

本系统能够实时采集数据,其图像的质量可以通过对数字图像传感器进行配置初始化,以得到最佳图像。

之后送入FPGA,一方面在TFT液晶屏上实时显示,另一方面在存入SRAM缓存,然后在NIOS II软核中对其进行处理,之后以图片的格式存入SD卡。

基本系统框图如图1-1所示:
图1-1 系统框图所应用场合如图1-2所示。

:
图1-2 参考应用场合
2 CMOS原理和特性与CMOS摄像头的基本结构
2.1 CMOS原理与特性
CMOS(Complementary Metal-Oxide-Semiconductor)图像传感器是在60年代末期出现的,但由于其性能的不完善严重影响了图像质量,从而制约了它的发展和应用。

在70年代和80年代,CCD在可见光成像方面取得了主角的地位。

进入到90年代,由于对小型化、低功耗和低成本成像系统消费需求的增加和芯片制造技术和信号处理技术的发展,为新一代低噪声、优质图像和高彩色还原度的CMOS传感器的开发铺平了道路,CMOS 图像传感器成为固体图像传感器的研究开发热点,CMOS传感器的性能也因此大大提高。

CMOS图像传感器的迅速发展并商业化得益于成熟的CMOS工艺,目前国外诸多公司和科研机构已经开发出不同光学格式、多种类型的CMOS图像传感器,并将其应用于光谱学、X射线检测、天文学(观测研究)、空间探测、国防、医学、工业等不同的领域。

2.1.1CMOS数字图像传感器基本原理
CMOS数字摄像头是由CMOS数字图像传感器芯片、芯片外围电路和光学镜头组成的。

在通常情况下,图像传感器芯片的性能就决定了摄像机的性能。

典型的CMOS图像传感器芯片是由像素感光阵列与辅助电路构成,其结构如图2-1所示。

其中像素感光阵列主要完成光电转换功能,实现图像的采集,是芯片的核心组成部分。

辅助电路主要完成驱动信号的产生、光电信号的处理和信号输出等任务,是芯片实现各种功能的关键电路。

图2-1 CMOS图像传感器基本组成原理
像素感光阵列是由光电二极管和MOS场效应管阵列构成的集成电路。

在实际工作中,CMOS图像传感器首先在行选择译码器的控制下依次接通被选中行的像素模拟开关,图像信号通过行开关传送到列线上,再通过列选择译码器的控制传送到放大器。

经过处理的模拟信号最后由A/D转换器进行模数转换,再经预处理电路处理后通过接口电路输出。

2.1.2CMOS图像传感器的特性
(1)光照特性
CMOS传感器的主要应用也是图像的采集,也要求能够适应更宽的光照围。

因此也必须采用非线性的处理方法和自动调整曝光时间与自动增益等处理方法。

结果与CCD相机一样损失了光电转换的线性,正因为此项,它也受限于灰度的测量。

(2)输出特性
CMOS图像传感器的突出优点在于输出特性,它可以部分输出任意区域围的图像。

(并非所有CMOS传感器都具有这个功能,如果生产厂家没有给您提供)这个特性在跟踪、寻的、搜索与室外拍照等的应用前景非常之好。

也是CCD传感器所无法办到的。

(3)光谱响应
光谱响应受半导体材料限制,同种硅材料的光谱响应基本一致,与CCD 的光谱响应基本一致。

(4)光敏单元的不均匀性
光敏单元的不均匀性是CMOS图像传感器的弱项,因为它的光敏单元不像CCD那样严格的在同一硅片上用同样的制造工艺严格制造,因此远不如CCD的光敏单元的一致性好,但是它部集成单元多,处理能力强能够弥补这个缺陷。

2.2 COMS传感器的基本结构
2.2.1 OV7670简介
下面以OmniVision公司的OV7670图像传感器为例,来说明COMS传感器的基本结构。

OV7670 CAMERACHIPTM图像传感器,体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。

通过SCCB 总线控制部寄存器,可以使OV7670输出整帧、子采样、取窗口等方式的各种分辨率的图像数据。

SCCB是OmniVision公司定制的串行摄像头控制总线(Serial camera control bus),它用于对摄像头的寄存器进行读写,以达到对摄像头输出图像的控制。

两线制SCCB与I2C总线类似,是一种双向二线制同步串行总线。

SCCB的数据传输由微处理器控制,微处理器能够发出数据传输启动信号、时钟信号以与传送结束时的停止信号。

SCCB接口有两个管脚,SIO_C 是SCCB时钟输入信号,它的最大频率为400KZ,SIO_D是SCCB数据输入输出口,根据协议把参数写入寄存器和读取寄存器的数值。

SCCB的时序图,如下图2-2所示:
图2-2 SCCB控制协议
OV7670摄像头的VGA图像最高达到30帧/秒。

用户可以完全控制图像质量、数据格式和传输方式。

所有图像处理功能过程包括伽玛曲线、白平衡、饱和度、色度等都可以通过SCCB接口编程。

OmmiVision 图像传感器应用独有的传感器技术,通过减少或消除光学或电子缺陷如固定图案噪声、托尾、浮散等,提高图像质量,得到清晰的稳定的彩色图像。

其主要性能参数,如表2-1所示:
表2-1 OV7670性能参数
2.2.2 OV7670部结构
其部功能模块如图2-3所示:
图2-3 OV7670部组成
其中包括:
(1)感光阵列(共有656x488个像素,其中在YUV的模式中,有效像素为640x480个),如图2-4所示,显示了一个断面的图像传感器阵列
图2-4 一个断面图像传感器阵列
(2)模拟信号处理
该模块执行所有模拟功能,包括:
①自动增益
②自动白平衡
③A/D转换
原始的信号经过模拟处理器模块之后,分g和BR两路进入一个10 位的A/D 转换器,A/D 转换器工作在12M频率,与像素频率完全同步,(转换的频率和帧率有关)。

除A/D转换器外,该模块还有以下两个功能:(3)黑电平校正(BLC)
(4)U/V通道延迟
(5)A/D围控制
A/D围乘积和A/D的围控制共同设置A/D的围和最大值,允许用户根据应用调整图片的亮度。

(6)测试图案发生器
测试图案发生器有如下功能:
①八色彩色条图案
②渐变至黑白彩色条图案
③输出脚移位“1”
(7)数字信号处理器
该模块控制由原始信号插值到RGB 信号的过程,并控制一些图像质量:
①边缘锐化(二维高通滤波器)
②颜色空间转换(原始信号到RGB 或者YUV/YCbYCr)
③RGB色彩矩阵以消除串扰
④色相和饱和度的控制
⑤黑/白点补偿
⑥降噪
⑦镜头补偿
⑧可编程的伽玛
⑨十位到八位数据转换
(8)图像缩放
这个模块按照预先设置的要求输出数据格式,能将YUV/RGB信号从VGA 缩小到CIF以下的任何尺寸。

(9)时序发生器
通常时序发生器有以下功能:
①阵列控制和帧率发生
②部信号发生器和分布
③帧率的时序
④自动曝光控制
⑤输出外部时序(VSYNC, HREF/HSYNC和PCLK)
其输出外部时序如图2-5所示:
水平时序:
图2-5 OV7670输出水平时序
VGA框架时序如图2-6所示:
图2-6 OV7670输出VGA框架时序
(10)数字视频端口
寄存器COM2[1:0]调节IOL/IOH的驱动电流,以适应用户的负载。

(11)SCCB接口
用于对OV7670部各个寄存器的读与写。

(12)LED和闪光灯输出控制OV7670/OV7171有闪光灯模式,控制外接闪光灯或闪光LED的工作。

3 系统设计与硬件实现
3.1 系统结构与工作流程
3.1.1系统结构
在前言中已经提到,本系统的主要是基于FPGA架构的,由FPGA作为核心控制与处理单元,其余外部设备与芯片包括SRAM存储器、SDRAM存储器、EPCS4配置芯片、TFT液晶显示屏等。

系统框图如图3-1所示,
图3-1 系统总体框架
3.1.2系统工作流程
(1)系统上电,FPGA通过配置芯片完成硬件电路配置;
(2)硬件电路配置完毕,FPGA部的特定模块对OV7670和TFT液晶屏进行寄存器的配置初始化设置;
(3)初始化设置完毕,启动OV7670,FPGA采集图像数据到FPGA部,经过格式转换后,一路存入SRAM缓存,一路直接在TFT液晶屏上实时显示。

(4)一帧图像数据全部存入SRAM后,FPGA部的NIOS II软核读取SRAM图像数据并解析,处理后以图片格式存入SD卡中。

3.2器件选型与硬件电路实现
3.2.1 FPGA选型
FPGA是该系统的核心,由于本系统目前只是完成简单的图像处理,故
FPGA选用Altera公司的低成本FPGA Cyclone lI系列器件。

Cyclone II 系列器件简介如表3-l所示。

表3-1 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。

3.2.2 FPGA配置电路
由于目前的FPGA大多采用SRAMI艺,系统掉电后SRAM部的数据将丢失,无法保存,因此必须通过外部配置,才能再次对FPGA部的多路器、逻辑、互连线结点和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工具下载,也可以采用微处理器来模拟JTAG时序进行配置。

JTAG方式下FPGA需要用到以下信号:TDI(测试数据的输入),TDO(测试数据的输出),TMS(模式控制管脚,决定JTAG电路部的TAP状态机的跳转),TCK(测试时钟)。

Cyclone II的器件都支持上述三种配置方式,本系统可以通过不同的下载接口可以选择采用AS方式还是JTAG方式。

电路原理图如图3-2所示。

图3-2 FPGA配置电路
3.2.3SDRAM电路实现
本系统FPGA部设计有NIOS II 软核,SDRAM主要用来存放软件MCU 中的软件程序,软核CPU中设计的复位基地址Reset Vevtor与中断向量基地址Exception Vector,都定义在SDRAM上,即通常说的存。

如下图3-3所示:
图3-3 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相连即可。

电路原理图如图3-4所示。

图3-4 SDRAM硬件电路图
3.2.4SRAM电路实现
在该系统中,SRAM主要用来做为图像数据的缓存,用以之后软核CPU 对图像的处理工作。

本系统采用一片IS61LV25616-10T SRAM芯片即可达到系统要求,FPGA与SRAM的连接如下图3-5所示,此模块最主要的是其控制器的设计,将在下一章软件设计时详细说明。

图3-5 SRAM硬件电路图
3.2.5其他硬件电路
上面将几个比较复杂的模块详细说明了一下,剩余的几个模块,如OV7670、TFT液晶、SD卡。

这几个与FPGA之间都只是简单的接线连接,在这里就不再详细叙述。

这几个模块最重要的是软件设计,将在下一章详细说明。

4 系统软件设计
4.1 软件设计概述
本系统软件设计主要分两部分,一部分是由硬件描述语言设计的系统各个外部的控制模块,如PLL、MCU主控模块、OV7670初始化模块、0V7670数据采集模块、SRAM控制、TFT液晶显示控制等。

另一部分是NIOS II软核中的程序设计,主要包括:SD卡控制、图像算法处理等。

系统框图如下图4-1所示:
图4-1 FPGA部功能模块连接图
系统启动后,MCU先完成对TFT液晶的初始化设置,然后OV7670初始化模块完成对OV7670部各寄存器的配置;完成后产生一个信号,通知MCU 单元0V7670已初始化完毕,然后MCU启动OV7670采集模块和TFT控制模块,实现图像的实时显示。

另一方面,OV7670采集到的数据,也送入SRAM 控制模块,一帧图像数据全部存入SRAM后,FPGA部的NIOS II软核读取SRAM图像数据并解析,处理后以图片格式存入SD卡中。

另外,PLL(Phase Locked Loop,锁相环)模块提供三路不同的频率信号,为驱动其他模块
提供。

4.2 VHDL简介与特点
VHDL(Very-High-SpeedIntegrated Circuit HardwareDescription Language,超高速集成电路硬件描述语言)诞生于1982年。

1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。

VHDL主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以与语法是十分类似于一般的计算机高级语言。

与其他硬件描述语言相比,VHDL具有以下特点:
①功能强大、设计灵活
VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。

它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。

VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。

VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。

②支持广泛、易于修改
由于VHDL已经成为IEEE标准所规的硬件描述语言,目前大多数EDA 工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。

在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。

③强大的系统硬件描述能力
VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。

而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。

另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。

VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。

④独立于器件的设计、与工艺无关
设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。

当设计描述完成后,可以用多种不同的器件结构来实现其功能。

⑤很强的移植能力
VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。

⑥易于共享和复用
VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。

这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。

4.3 OV7670初始化模块
如前方所述,OV7670摄像头有很强大图像处理功能过程,包括伽玛曲线、白平衡、饱和度、色度等,而这些功能,都是通过SCCB接口对OV7670部的上百个寄存器进行配置而控制。

SCCB接口有两个管脚,SIO_C是SCCB 时钟输入信号,它的最大频率为400KZ,SIO_D是SCCB数据输入输出口,根据协议把参数写入寄存器和读取寄存器的数值。

SCCB传输时序图已在前方给出过,在这里为叙述方面再列一下。

如下图4-2所示。

图4-2 SCCB控制协议
在本系统中,按上图时序,设计配置方案,利用VHDL硬件描述语言设计的专用OV7670初始化模块。

该模块包含两个部分,底层部分专门用来实现SCCB控制传输,向OV7670传送上层模块传送过来的初始化数据。

传输的数据帧格式如下图4-3所示:
起始位寄存器地址数据停止
图4-3 OV7670初始化数据帧格式
按照图4-2所示,系统启动时,SIC_C为高电平,即为1时,把SIO_D 为设置为1,开始传输时,SIO_D拉低为0,然后再把SIC_C拉低,表明一帧数据开始传输,之后把依次把寄存器的地址和初始化数据送到SIO_D 总线上,在时钟SIC_C的驱动下,写入到OV7670。

每设置一个寄存器,就调用一次该底层模块,直接最终,完成对OV7670的初始化。

发出初始化完成cmos_finish信号。

其在quartus ii中生成的模块如下图4-4所示:。

相关文档
最新文档