网站地图985论文网
主要服务:硕士论文、论文发表、论文修改服务

电子与信息工程论文:基于FPGA的可视门铃设计

来源:985论文网 添加时间:2020-07-17 06:29
摘要
  
   可视门铃是一种通过在摄像头采集图像并呈现在液晶显示屏上的设施,已经应用在大多数小区的防盗门上。但在使用的过程中系统经常会出现故障,为了保证可视门铃的正常运行,我设计了一种基于FPGA的可视门铃系统,整个系统的关键在于FPGA的模块划分以及功能的实现。
本论文在明确了设计的总框架之后,将FPGA划分为了六个模块,对每个模块所用到的器件都进行了介绍,以及每个模块的硬件设计和工作原理都进行了相关的说明;采用VHDL语言编写了FPGA采集电路软件;将各个模块综合之后,进行了实验与调试。
本课题所设计的基于FPGA的可视门铃能够实现在按下开关之后图像在LCD屏上显示,通过本设计掌握摄像头视频采集和显示原理,了解Verilog HDL硬件描述语言编程,掌握FPGA的设计方法以及正确划分电路模块的方法。 
 
关键词:FPGA; 图像采集;图像处理;Verilog HDL
Abstract
 
The visual doorbell is a kind of facility that collects images from the camera and presents them on the LCD screen. It has been applied to the security door of most communities. In order to ensure the normal operation of the visual doorbell, I designed a visual doorbell system based on FPGA. The key of the whole system is the module division and function realization of FPGA.
After defining the general framework of the design, this paper divides FPGA into seven modules, introduces the devices used in each module, and explains the hardware design and working principle of each module; compiles the FPGA acquisition circuit software with VHDL language; Synthesizes each module, carries out the experiment and debugging.
The visual doorbell based on FPGA designed in this project can display the image on LCD screen after pressing the switch. Through this design, we can master the principle of camera video acquisition and display, understand the programming of Verilog HDL hardware description language, master the design method of FPGA and the method of correctly dividing circuit modules.
 
Keywords: FPGA; image acquisition; image processing; Verilog HDL
 
目  录
第一章 绪  论 11
1.1 课题背景及研究意义 11
1.2 国内外研究现状分析 11
1.3 本文内容和章节安排 12
第二章 基于FPGA的可视门铃设计方案及设计规划 13
2.1基于FPGA的可视门铃设计方案 13
2.1.1系统总体框架 13
2.1.2FPGA内部模块的划分 13
2.2设计规划 14
2.2.1主控制器介绍 14
2.2.2图像采集器介绍 15
2.2.3LCD显示屏 16
2.2.4 Quartus II软件介绍 16
2.2.5 Verilog HDL语言介绍 17
2.3本章小结 17
第三章  各模块的具体设计 18
3.1 PLL时钟模块 18
3.1.1设计原理 18
3.1.2硬件电路设计 18
3.2 CMOS图像采集模块 18
3.2.1端口介绍 18
3.2.2设计原理 18
3.2.3硬件电路设计 19
3.3 I2C控制模块 20
3.3.1接口配置 20
3.3.2设计原理 20
3.3.3硬件电路设计 22
3.4 SDRAM控制模块 23
3.4.1 SDRAM介绍 23
3.4.2 设计原理 23
3.4.3  异步FIFO设计 25
3.4.4乒乓操作 26
3.5 LCD显示模块 29
3.5.1设计原理 29
3.5.2硬件设计 30
3.6本章总结 31
第四章 结果与测试 32
4.1仿真结果 32
4.2设计测试 35
4.3本章总结 35
第五章 总结与期望 36
5.1总结 36
5.2期望 36
参考文献 37
 
第一章 绪  论
1.1 课题背景及研究意义
可视门铃其实就是简单的模拟远程视频监测系统在生活中的一项应用,早在二十世纪初期就已经有了这种监测系统,该监控系统通过将收集到的信号经过处理之后传输到显示模块上。在早期系统是通过键盘来控制摄像头、视频矩阵以及整个监控系统的各个模块。由于功能比较简单容易上手、技术比较成熟,该技术很快得到了人们的认可。
到了20世纪末期,随着计算机的发展,人们把计算机与视频监控系统相结合,有了数字化的监控系。由于数字化监控系统比之前的系统更加简单并且高效,所以使得数字化监控这种技术在工业领域有了很大的应用空间。
进入了20世纪国外的通信技术与图像处理技术首先得到了大的飞跃,这时早期的监控系统的缺点也逐渐暴露出来,在人们的改进下出现了远程监控系统,新系统通过通信网络,把图像采集器所收集的信息远程发送给终端,使人们可以进行远程监控,新的监控系统在规格和集成化方面比之前的系统又有了不小的提高。
如今时代在不停的进步,科技、通信领域的进展更是有质的飞跃。近年来新闻报道了多起在小区内因为安全设施不到位而发生的危险事件。于是模拟化视频监控就在门铃上得到了大的应用,研发人员为了追求安全、便捷研发了通过LCD屏幕能远程看到楼下人的信息的可视门铃,在近年来建造的小区内已经大量使用可视门铃来逐渐代替传统的语音式门铃,使人们的生活质量和安全得到了进一步提升。
本设计的最终结果就是当门铃按下后,CMOS摄像头所采集的视频图像在LCD屏上显示,这虽然只是视频监控系统在FPGA上的简单应用,但希望通过本课题设计可以让读者们了解到FPGA的主要模块划分方法,学习到图像采集和显示的原理以及Verilg HDL语言的简单应用,并且通过对可视门铃的不断研究能够提高人们的生活水平并且增强人们的安全方面的意识。
1.2 国内外研究现状分析
国外近年来由于对监测系统重视度较高并且率先进行了开发,并且随着研究不断深化,使得它能应用到的领域在不断的扩大,逐渐复杂的生产产品对技术水平的需求在不断升高。就是在这种背景的推动下集成电路工业开始兴起,生产技术由数字化技术逐渐转到了芯片化研发方面。随着FPGA/CPLD技术的发展,工程师们开始用FPGA来研发监控系统。
但由于早期国内对图像监控技术重视度不高,一开始我们一直以DSP为核心技术来研发监控系统,之后由于FPGA具有灵活度高并且能编译的范围比较广的特点,并且与传统的数字信号处理手段相比FPGA对图案采集和处理的速度有了很大的提升,所以近年来有越来越多的科研人员开始学习并应用FPGA,以FPGA为核心的监控系统也在不断优化与提高,已经成为了研发技术的主流手段,目前在我们生活中的很多领域都有着相应的延伸与应用。
1.3 本文内容和章节安排
本文设计是基于FPGA的可视门铃系统,通过图像采集器收集并处理图像信息之后传输到LCD屏幕上。本设计的主要内容有:搭建硬件系统、编写各模块的逻辑语言、下载并且实现功能。整个课题设计是构建以FPGA为核心的硬件系统,再通过CMOS图像采集摄像头对图像进行采集与处理,之后运用Verilog HDL语言编译各个模块的逻辑语言并把它们整合到一起,最终把程序下载到组装好的FPGA开发板上进行测试,对设计中不足的地方进行改进,实现功能并完成课题设计。
本论文设计了一种基于FPGA的可视门铃,主要内容如下:
(1)基于FPGA的可视门铃设计方案;
(2)FPGA模块的划分及硬件电路设计;
(3)电路时序设计;
(4)硬件测试与系统调试;
第一章 绪论。说明了课题的背景及其研究意义、国内外研究现状及论文的主要内容。
    第二章 具体设计方案及设计规划。介绍设计中需要的硬件设施及使用的软件平台,剖析Verilog HDL语言的使用特点。
第三章 各模块的具体设计。介绍了各个模块的硬件设计以及使用原理,分析时序的特点。
第四章 测试结果。对实物进行测试得到详细的测试结果数据,针对实验结果作相关分析。
第五章 总结与展望。对本文主要内容进行总结并对该课题未来的发展做出展望。
第二章 基于FPGA的可视门铃设计方案及设计规划
为了保障人们的生活,在不断完善人们身边的安全设施,因此应用远程监控系统设计一种简易版的可视门铃,提高居民的生活质量。由图像采集器、主控制器以及LCD液晶显示屏组成简易版的可视门铃。系统采用图像采集器进行收集图像信息,并通过主控制板进行信息处理,之后显示在LCD显示屏上,全实验为基于FPGA的可视门铃设计。
2.1基于FPGA的可视门铃设计方案
2.1.1系统总体框架
  整个设计系统由开关、CMOS摄像头、FPGA、LCD显示器、蜂鸣器五块组成,按下开关之后整个系统开始工作,然后CMOS摄像头会对图像进行采集,采集后的图像信息交给FPGA内部进行处理,处理之后图像会在LCD屏上显示,显示的过程中会伴随蜂鸣器所发出的声音。具体系统框架如下图2-1所示:
 
图2-1设计的系统框架
2.1.2FPGA内部模块的划分
FPGA内部划分为了五个模块,分别为:PLL时钟模块、I2C控制模块、图像采集模块、SDRAM控制模块以及LCD显示模块,具体的模块划分下图如图2-2所示。
由于OV7670在工作之前需要进行寄存器的配置,因为I2C协议与寄存器的SCCB协议在操作时是一致的,所以需要一个I2C驱动模块,I2C驱动模块会接收到OV7670摄像头内部寄存器相关的配置信息,之后OV7670的SCCB接口会与I2C总线进行信息交互,并将OV7670的分辨率进行初始化,输出格式也将变为RGB565的模式,之后用户可以通过对I2C时序接口的控制进行对OV7670的寄存器配置,OV7670配置完成后需要在CMOS图像采集模块写入数据,将输出的场同步信号(VSYNC)、行同步信号(HSYNC)转换成SDRAM读写控制模块的使能信号并发送给LCD模块,由PLL时钟模块对I2C驱动LCD显示模块和SDRAM模块进行时钟控制,LCD模块在读取信息之后,将图像信号传输在LCD显示屏上。
  
图2-2FPGA模块划分
2.2设计规划
2.2.1主控制器介绍
结合查阅的资料以及设计时间需求,本设计采用Xilinx公司生产的AX309型号的FPGA开发板。AX309型号的板子上主要有5个模块分别为:AN108、AN926、AN706、AN560模块以及AN430模块。其中AN560为图像CMOS视频采集模块,AN430为LCD显示屏获取模块,为本设计主要用到的两大模块。如图2-2为AX309开发板实物图:
 
图2-3AX309开发板
2.2.2图像采集器介绍
本设计采用OV公司的OV7670 CMOS图像采集器,该摄像头的主要特点是体积小、灵敏度高并且价格较低,它的感光像素为640X480,它的输出格式为RGB565,有着控制图像缩放和自动调节降噪的功能,分辨率为8位的图像信息它都能捕获到,有着30帧/秒的高速图像采集能力,并且通过SCCB总线可以对各寄存器进行配置,根据设计需求对图像进行采集。OV7670的图像采集器实物如图2-3:
 
 
图2-4OV7670图像采集器
如图图2-4所示为OV7670的功能模块图,它一共有6个模块,分别为SCCB总线接口模块、图像模拟数字转换模块、测试图案模块、图像时序模块、图像传感阵列模块以及DSP数据输出模块。这里主要对前五个模块进行简单的介绍,SCCB总线接口是用来配置图像采集器内部多个寄存器时所使用的模块;图像模拟数字转换模块顾名思义就是把模拟信号通过该模块转化为数字信号,从而实现对像素频率的同步使用;测试图案产生模块主要是通过它产生的彩色条数量的多少来对图案的大小和像素进行测试;图像时序模块主要是对模块内部时序的分发进行控制,并且用它来输出外部时序信号;该图像传感器的阵列为656x488,但其中有效的阵列为640x480。
 
图2-5OV7670功能图
2.2.3LCD显示屏
本设计选用的是天马公司生产的4.3寸型号为TM043NBH02的TFT-LCD液晶显示屏,它的像素为480x272,它通过和AX309开发板上AN430模块的扩展口与LCD显示屏上的24位并行RGB接口相连接,实现显示功能。如图2-5为TM043NBH02的实物图: 
 
                          图2-6 TM043NBH02显示屏
2.2.4 Quartus II软件介绍
本设计使用Quartus II软件平台,它是由Altare公司所研发用来开发FPGA的软件。它有着运行速度快、操作简单易上手、功能居中等特点,可以在目前大多系统中完美运行。Quartus II 目前具备数字逻辑设计全部特点,它在完全集成化的条件下运行为设计者们提供一个与电路结构无关的开发环境,也是我们目前学习EDA时所使用的重要工具。目前QuartusII支持的描述语言有Verilog HDL,VHDL这两种语言,支持Cyclone及CycloneII等系列,支持的系列较为广泛,是一个综合性FPGA开发平台。图2-6为Quartus II设计的基本流程。
 
图2-6Quartus II设计的基本流程图
2.2.5 Verilog HDL语言介绍
Verilog HDL是一种IEEE标准用来描述电路结构和行为的语言,采用Verilog HDL语言可以轻松对不同厂家的不同型号的芯片进行设计的植入,并且面对规模不同的应用时也可以做到比较容易地更改并使用,Verilog HDL最大的优点就是它具有与工艺无关的特性,无论什么样的要求只要对不同芯片实行不同程度的限制它都可以轻松地设计出理想的实际电路,此外Verilog的语法还具有很强的可重复性,一样的代码只要经过不同元件库的综合,可以在不同的元器件上进行使用。Verilog HDL语言编写基本上都遵循自顶向下(Top-Down)的思路,把整个要设计的整体划分为不同的基本模块,然后将每个基本模块划分为下一个层次的基本单元,以此类推下去直到可以用元件库中的基本元件实现功能为止,这就是设计中的自顶向下(Top-Down)的思想,正是由于这些特点导致Verilog HDL语言目前被广泛的使用。
2.3本章小结
本章首先对设计的总框架进行了介绍之后又对设计所用到的硬件进行规划,对设计平台及Verilog HDL语言进行介绍,明确了设计的大致思路,为之后各模块的硬件及软件设计奠定基础。
第三章  各模块的具体设计
3.1 PLL时钟模块
3.1.1设计原理
对于FPGA来说,全局时钟就是从晶振上面得来的最原始的频率,因此时钟电路设计在数字电路设计中是极其重要的。为了驱动众多模块进行时序电路设计,专门设置了一条全局时钟网络总线,在FPGA芯片内部有驱动能力强的专用讨钟管脚,使用它作为全局时钟总线。使用专用时钟引脚可以避免时钟信号到达触发器时间不一致的问题。在FPGA内部编程逻辑时序设计时要尽力选择全局时钟。
3.1.2硬件电路设计
本文设计的时钟电路采用有源晶振其输入频率选择SOMhz,产生的时钟信号连接到FPGA的CLKI管脚。图3-1表示了FPGA的时钟配置电路图。
 
图3-1时钟配置电路
 
 
3.2 CMOS图像采集模块
3.2.1端口介绍
美国Omni Vision公司生产的彩色/黑白CMOS图像传感器,诸如OV7670图像传感器。这种彩色/黑白图像传感器,自带图像敏感阵列与A/D转换元件,能直接输出8位RGB/YUV等格式视频数字信号。
3.2.2设计原理
图像输出的最高速度为30顿/S,最大图像分辨率达到640x480,供电2.8V,它兼备自动增益、自动白平衡和边缘増强、伽玛校正控制等功能;能够利用SCCB谦容口C总线)总线完成设置,同时支持VGA,CIF和从CIF到40x30的规格尺寸OV7670图像传感器模块的引脚如图3-2所示。
 
图3-2图像传感器模块的引脚
OV7670模块管脚功能说明参见表3.1
表3.1 V7670功能说明
管脚 功能
VCC 图像传感器电源,接2.8V
GND 图像传感器地
SCL 遵循SCCB总线协议串行时钟线
SDA 遵循SCCB总线协议串行数据线
VSYNC 同步采集的图像数据,帧同步信号
HREF 同步采集到的图像数据,行同步信号
XCLK 图像传感器的驱动时钟
PCLK 像素采样时钟
D0-D7 八位图像数据输出
 
3.2.3硬件电路设计
图像传感器采集电路,用来连接OV7670图像传感器,通过FPGA内部软件模块对传感器的寄存器配置,实现图像视频采集功能。根据使用手册上SCCB总线要求SCLK,SDAT两条线接上拉电阻,图像传感器电压连接2.8V,图像采集电路如图3-3所示。
 
图3-3图像采集电路
 
3.3 I2C控制模块
3.3.1接口配置
I2C控制模块主要用于控制视频解码芯片 TVP5150 的正常工作,使 TVP5150完成视频数据解码功能。FPGA 通过I2C总线的串行时钟线和串行数据线发送数据,TVP5150 通过接收这些数据完成相关的寄存器的设置,从而完成芯片的初始化,达到解码视频数据的目的。
3.3.2设计原理
I2C总线由串行时钟线(SCL)和串行数据线(SDA)组成,器件与总线相连,并通过总线互相传递信息。连接到总线的每个器件都有自己唯一的地址识别码,根据各个器件的功能,可以选择该器件是作为发送器还是接收器。器件在执行数据信息时可看做是主机或从机,主机是初始化发送、产生时钟信号和终止发送的器件,从机是被主机寻址的器件,在I2C总线上可以连接多个主机。连接到I2C总线的器件输出级必须是漏极开路或集电极开路,只有这样的器件输出才能执行线与的功能。在标准模式下,I2C总线上的数据传输速率为 100Kbit/s;在快速模式下,数据传输速率可达 400Kbit/s;在高速模式下,数据传输速率可高达 3.4Mbit/s。连接到总线的接口数量只由总线电容决定,这一电容的典型值为 400pF[20]。
I2C总线上的数据传输时序图如图 1 所示。SDA 和 SCL 都是双向线路,通过一个电流源或上拉电阻连接到正的电源电压。总线空闲时,这两条线路为高电平。在数据传输时,由主机发送起始条件和停止条件。当 SCL 线为高电平,SDA线从高电平向低电平切换表示起始条件;当 SCL 线为高电平,SDA 线从低电平向高电平切换表示停止条件。当主机发送起始条件后,总线处于忙的状态,主机可以往总线上发送相应的数据。首先发送的是需要寻址的从机的地址,地址为 7位,第 8 位为数据方向位,若为“1”表示请求数据即读,若为“0”表示发送数据即写。从机根据 7 位的地址决定是否被寻址,如果被寻址,从机发送一个应答信号。同时根据数据方向位决定是接收数据还是发送数据。主机接收到从机的应答后,就可以发送数据。发送到串行数据 SDA 线上的数据每个字节必须为 8 位,首先发送的是第 8 位,紧跟着发后 7 位,每次发送完数据后都要等待从机应答。SDA线上的数据在时钟线 SCL 的高电平期间保持稳定,数据线上的高低电平的切换只能在时钟线 SCL 为低电平时进行[20]。
 
图 3-4 I2C总线上的数据传输时序图
在I2C总线上每次发送完数据或地址后,必须带响应位。响应的时钟脉冲是由主机产生的,在响应的时钟脉冲期间,接收器必须将 SDA 线拉低,SDA 线在响应时钟脉冲的高电平期间必须保持稳定的低电平。
3.3.3硬件电路设计
TVP5150 的I2C总线的串行数据线 SDA 和串行时钟线 SCL 和 FPGA 的 I/O引脚相连,FPGA 可以通过在这两条线上发送数据以达到控制 TVP5150 的目的。要使 TVP5150 正常工作,就需要对其进行初始化。由于它内部寄存器中的默认值有一些是不满足硬件的设计要求的,因此需要对一些寄存器重新设置,从而使TVP5150 完成解码功能。在用 FPGA 控制 TVP5150 的过程中,FPGA 作为主机,TVP5150 只作为从机,由 FPGA 发送数据,TVP5150 只接收数据。FPGA 通过I2C总线设置 TVP5150的寄存器的流程图如图 2 所示。根据I2C总线上数据传输的时序原理,首先由FPGA 发送起始条件,然后发送 TVP5150 的芯片地址,根据硬件设计以及只对TVP5150 进行写操作可知此时 TVP5150 的地址为 B8H,地址发送完之后,等待TVP5150 应答,再发送需要设置的寄存器的地址,等待应答,应答完成之后,发送设置的数据,等待 TVP5150 的应答,这一应答完成之后,需要等待 7 个周期,最后由 FPGA 发送结束命令。
 
图 3-5  FPGA 通过2
I C 总线设置 TVP5150 寄存器的流程图在对 TVP5150 的寄存器 00H~8FH 进行写操作时,根据 TVP5150 的设置原理,在发送要设置的数据并等待 TVP5150 完成应答之后,需要插入延迟,这一延迟的最大值为 64μs。在设计中将I2C的数据传输速率设置为标准模式下的100Kbit/s,也就是说I2C总线上的时钟周期为 10μs,那么在此时的延迟就只需要7 个时钟周期。
 
 
3.4 SDRAM控制模块
3.4.1 SDRAM介绍
CCD 摄像头输出的 PAL 制式的 CVBS 信号经过 AD 转换后,生成 YCbCr 4:2:2 的视频数据流,其传输速率为 27MW/s,经过预处理模块后,送往 VGA 显示器进行显示。由于视频数据量大,传输连续,因此需要大容量的存储器来缓存一帧的数据。以 PAL 为例,一帧视频数据采样像素点个数为 864×576,有效的像素点个数 720×576,扫描一帧需要 40ms,每一个像素点编码后为 16 位,则需要的存储空间大小为:720x576x16 =6635520bits/40ms。
传统的静态随机存储器 SRAM 的存取速度很快,控制较为简单,但由于体积大,价格昂贵, 集成度较低,因此在要求不是特别高的地方,不选用 SRAM。同步动态随机存取存储器SDRAM 虽然控制复杂,但价格低廉、容量大、存取速度快,因此在视频采集与处理方面应用较广。因此本系统采用 SDRAM 作为帧缓存器。
3.4.2 设计原理
SDRAM 的内部存储结构为阵列结构,如图 4.9 所示,每一个存储单元相当于一个电容,总是倾向于放电,因此需要定时向每个存储单元进行充电,以防止数据丢失。由于采用阵列结构,因此对存储单元的读写访问需要由行地址线和列地址线共同选定。另外,行、列地址线采用分时复用,由行地址选通 RAS#和列地址 CAS#选通分时控制, 这样做的目的可以大大减少地址线的数量,节约资源。
 
(a)存储阵列 (b)存储单元等效图
图 3-6 SDRAM 存储阵列
 
为了进一步提高器件的性能和增加可寻址的空间,SDRAM 以 BANK 为组织,将SDRAM 分为很多独立的小块,然后由地址线 BA 控制 BANK 之间的选择;SDRAM 的所有 BANK 组织结构完全相同,内部的行列地址线统一连接到外部引脚,且内部数据位宽相同,在这样的组织架构下,大大加快了存储单元的访问速度。另外,BANK 选择线还可以使当前未工作的 BANK 区处于低功耗模式,对数据进行自刷新,这样可以大大降低功耗。每一个 BANK 也称作逻辑 BANK,简写 L-BANK,目前的 SDRAM 的L-BANK 个数通常为 4。除了具有 L-BANK 以外,SDRAM 还具有多种优点,包括完全流水线的内部结构,突发读写长度可编程,CAS 延迟可编程等优点[51]。
本文选取的 SDRAM 为 ISSI 公司生产的 IS42S16160B,其大小 4M×16×4Banks, 结构框图如图 3-7。
 
图3-7 SDRAM 结构框图
SDRAM 的基本信号可以分为三大类:控制信号、地址选择信号和数据选择信号。控制信号包括片选信号 CS#、时钟使能信号 CKE、同步时钟信号 CLK 以及读写选择信号 WE#和数据有效信号 DQM 等;地址选择信号包括行地址选通 RAS#、列地址选通CAS#、行/列地址线 A0-A12 以及 BANK 地址选择线 BA0-BA1;数据选择信号线为数据线 DQ0-DQ15。SDRAM 内部是一个复杂的状态机,要对 SDRAM 进行正确的操作,必须根据相应的器件执行相应的命令码,常用的命令码包括模式寄存器设置、预充电、突发读、突发写、单一写、突发停止以及空操作等。常用命令码的实现通过控制信号线CS#、RAS#、CAS#、WE#、DQM 等信号的组合来实现,如表 3-2 所示。FPGA 设定的模式命令码要正常工作,必须在 SDRAM 上电后,就进行初始化,将设定的模式寄存器的值传给 SDRAM,否则即使其他命令输入,也处于无效状态。
表 3-2 SDRAM 命令真值表
命令码(功能) CS# RAS# CAS# WE# DQM 地址线 DQ
命令禁止(DSEL) H × × × × × ×
无操作(NOP) L H H H H × ×
突发传输终止(BST) L H H L × × 活动
自动刷新(REFA,CLKE=1) L L L H × × ×
自刷新(SELFA,CLKE=0) L L L H × × ×
模式寄存器加载(MRS) L L L L × 操作码 ×
写允许/输出允许 - - - - L - 有效
写禁止/输出屏蔽 - - - - H - 屏蔽
读取(从指定L-BANK 中的指定
列开始读取数据)
L
H
H
H
L/H
BANK 列
×
写入(从指定L-BANK 中的指定
列开始写入数据)
L
H
H
L
L/H
BANK 列
有效
有效/活动(ACK,使指定L-BANK
中的指定行有效)
L
L
H
H
×
BANK 行
×
预充电(关闭指定或全部
L-BANK 中的工作行)
L
L
H
L
×
相应编码
×
 
 
3.4.3  异步FIFO设计
本文所选用的 CCD 摄像头输出的是 PAL 制式的 CVBS 模拟信号,经过视频解码芯片后输出 4:2:2 数据。经过预处理模块后,原来的 8 位数据组装成 16 位,送入 SDRAM 进行存储。PAL 制式的图像一帧有效数据为 720×576,由于 VGA 显示模式选用 640× 480@60,因此每一行截掉 80 个像素点后,剩余的有效像素为 640×576,本系统一个像素点编码为 16 位,因此一幅图像的大小为 720KB,而本文选取的 SDRAM 的大小为 4M×16×4BANK,一个 BANK 大小为 8MB>720KB,因此 SDRAM 只用一个 BANK 即可。同时由于 BANK 只用一个,不需要跨 BANK 存储数据,因此写 FIFO 个数为 1。
CCD 输出的 PAL 制式的图像采用隔行扫描的方式,将一帧图像分为奇数场和偶数场两场扫描。奇数场扫描一帧的奇数行,共 312 行,偶数场扫描一帧的偶数行,共 313 行。在传输过程中,奇数场数据先传输,偶数场数据后传输,因此 SDRAM 控制器需要将两场数据存在不同的位置,本系统将奇数场数据存在地址空间 0~640×287 中,偶数场数据存在地址空间 640×288~640×575 中。由于 VGA 显示器的输出模式为逐行扫描, 因此 VGA 在向 SDRAM 读出数据时,需要读不同的存储区,由于 SDRAM 的读操作始终为突发读,因此,本系统设计了两个读 FIFO,一个奇数场读 FIFO,一个偶数场读 FIFO,用于存储不同的视频数据。SDRAM 整个控制器的框图如下:
 
图 3-8 SDRAM 控制器框图
 
3.4.4乒乓操作
SDRAM 控制器主要包含四个部分:主控制模块 Sdram_Control_4Port、命令初始化模块 Control_interface、命令解析模块 Command 和数据链路模块 Sdr_data_path。各部分模块的具体含义如下:
①主控制模块 Sdram_Control_4Port:该模块完成突发传输的设定和外围四个 DC FIFO(两个读 FIFO,两个写 FIFO)的控制。前文已述及,本系统只需要三个 FIFO(两个读 FIFO,一个写 FIFO)即可,这里多出一个写 FIFO,主要作用是预留为以后 BANK 的乒乓操作使用,这种情况适用于当一帧的图像数据大于一个 BANK 的容量或大于一个 SDRAM 的容量时,作为缓冲存储区。以 BANK0 和 BANK1 为例,BANK 的乒乓操作具体步骤为:当 BANK0 在写入数据时,BANK1 读取数据;当 BANK0 写满数据后, BANK1 开始写入数据,并切换到 BANK0 进行读数据,这样便可以实现 BANK 间数据的连续传输。如图 4.18 所示。
 
图 4.18 SDRAM 控制器BANK 乒乓操作
四个 DC FIFO 中,两个写 FIFO 通过 27MHz 时钟完成预处理数据的存储,SDRAM 控制器则通过 100MHz 时钟执行突发写操作,一次将 128 个突发数据写入外部 SDRAM 芯片;同理,两个读 FIFO 通过 25MHz 的 VGA 系统时钟将视频数据读出,SDRAM 控制器则执行突发读操作,一次将 128 个突发数据从外部 SDRAM 芯片读出,并存储到两个读 FIFO 中。
②命令初始化模块 Control_interface:该模块产生具体的命令请求,如常用的突发读、突发写、初始化命令、预充电命令、模式寄存器配置、自动刷新等。当 SDRAM 首次上电后,将执行初始化操作,包括 200us 的延时,一次预充电操作,8 次自动刷新操作, 然后才开始模式寄存器的配置操作。模式寄存器携带 SDRAM 的工作模式相关信息,本系统的控制模式相关参数为:操作模式为突发读/突发写,CAS 潜伏期为 3,顺序突发传输方式,突发长度为全页突发。初始化命令只需要执行一次,当把初始化命令请求发给命令解析模块 Command 后,命令解析模块会启动相应的时序,初始化时序完成后, SDRAM 控制器即可进入正常使用模式。由于 SDRAM 的存储单元相当于一个电容,总是倾向于放电,因此需要定时刷新,防止数据丢失。本系统设计了一个定时器 Timer, 定时器的设定值为 10.24us, 因此每过 10.24us, 初始化模块就会向命令解析模块Command 发出一次自动刷新请求,命令解析模块收到请求后,将启动一次 SDRAM 刷新时序,将存储单元的数据进行回写。预充电命令用于对已激活的行进行预充电,其后就结束该行的活动。同时该命令可以直接终止突发读写,本系统选用的突发模式为全页突发模式,突发长度默认为 512(9 列),而实际使用的突发读写长度为 128,因此,每完成 128 个数据的读写后,就要发出一个预充电命令,以结束本次突发传输。突发读和突发写请求根据主控制模块 Sdram_Control_4Port 发出的控制命令,进行相应的判断, 然后发出突发读命令或突发写命令到命令解析模块 Command。命令解析模块再启动相应的时序,完成相应的突发操作。
③命令解析模块 Command:该模块根据命令初始化模块 Control_interface 发来的命令请求,启动相应的具体时序。其中接收到的命令请求包括初始化命令,预充电命令、自动刷新命令、模式寄存器加载命令、突发读命令、突发写命令。虽然 SDRAM 状态机的命令较多,但是由于本系统采用预充电命令终止突发读写的方法,因此未使用突发终止命令,同时带预充电命令的突发读写和低功耗模式下的自刷新命令也未使用。命令解析模块 Command 接收到初始化命令请求后,执行空操作 NOP,将{CS#,CAS#,RAS#, WE#}设置为对应的状态,持续时间为 200us,接着执行预充电命令,让 SDRAM 进入空闲态,紧接着执行 8 个自动刷新命令,随后进入模式寄存器配置模式。在执行配置模式时,对应的地址线上的 0/1 状态表征了此次传输的参数。模式寄存器加载完毕,就进入正常的工作模式。上述接收到的六个命令中,初始化命令和模式寄存器加载命令只在SDRAM 上电的时候执行一次,其后不再执行。当命令解析模块 Command 接收到突发读写请求后,会执行相应的时序,启动相应的状态机,突发读写完毕后,执行相应的预充电命令,终止此次的突发传输。自动刷新命令按照命令初始化模块 Control_interface 的自动刷新请求,每隔一定时间(本系统为 10.24us),就执行一次自动刷新操作,完成存储单元的回写,保证数据不丢失。
④数据链路模块 sdr_data_path:该模块控制数据总线上的数据是否有效,同时将写FIFO 中的数据读出后按照一定的时序进行输出。
SDRAM 控制器通过上述四个模块,将相应数据通过突发读的方式从 SDRAM 中读出数据并存入读 FIFO,通过突发写的方式将写 FIFO 中的预处理数据存入外部 SDRAM 芯片。突发传输时序启动后,控制器首先根据模式寄存器的配置,延时相应的时钟周期数,然后传输指定个数的数据直到结束,随后执行预充电命令,以终止当前的突发传输。同时,为防止数据在读写的过程中丢失,控制器还采用刷新定时器将内存单元定时刷新。通过这些操作,视频预处理数据可以快速地存入 SDRAM 的存储区,VGA 控制器则可以快速地读取 SDRAM 的内部数据。PAL 制式的图像一帧有效数据为 720×576,每行去掉 80 个像素后,为 640×576,存入 SDRAM BANK0 的 0~640×575 地址空间。由于PAL 制式的图像分奇数场扫描和偶数场扫描,且 SDRAM 先存储奇数场数据,后存储偶数场数据,因此设定奇数场数据存入的空间范围 0~640×287,偶数场存入的空间范围640×288~640×575。而 VGA 显示器的显示模式为 640×480@60,为让一帧图像的中间部分得到良好的显示,本系统选用中间部分进行显示。其存储空间范围为 640×24~640×263 和 640×312~640×551。
 
3.5 LCD显示模块
3.5.1设计原理
TM043NBH02 的输入数据是 30 位像素数据 R0-R9,G0-G9 和 B0-B9,它们在每一个时钟周期的上升沿锁存到芯片中,输入的数据分别在 3 个 10 位的 DACs 中转换为模拟信号输出。SYNC和BLANK 信号在时钟的上升沿锁存,以保持像素数据流的同步性。
TM043NBH02 的输入时钟是系统典型的像素时钟率,也就是点率,这一时钟率的表达式如式 3-1 所示:
点率=(Horiz Res)×(Vert Res)×刷新率/折回因子 (3-1)
其中,Horiz Res=像素数/线,Vert Res=线数/帧。刷新率为水平扫描速率,这一速率是由屏幕刷新的速率决定的,一般地,不交织系统的刷新率为 60Hz,交织系统的刷新率为 30Hz。折回因子为总的空白时间因子,这一因子是考虑到在每一帧总的持续时间中某个微量元素的显示是空白的这一因素而出现的,一般采用典型值 0.8。如果图像系统为 1024×1024,刷新率为 60Hz,折回因子为 0.8,则点率=1024×1024×60/0.8,即 78.6MHz,也就是说需要的时钟频率为 78.6MHz。
TM043NBH02 有复合同步信号输入控制,许多图像处理系统和 CRT 控制器都能得到水平同步(HSYNC),垂直同步(VSYNC)和复合同步(SYNC)。在图像系统中,一般不能直接生成复合同步信号,这就需要增加一些额外的逻辑电路辅助得到复合同步信号。在芯片内部,同步电流直接连接到 IOG 输出,因此可将视频同步信息译码到绿视频信号通道上,如果不需要将同步信息译码到译码到TM043NBH02 上,则将 SYNC 输入接低电平。
TM043NBH02 中包含 3 个匹配的 10 位的数模转换器,每一个输入的数字信号转化为相应的位电流输送到模拟输出(若这一位为“1”)或地(若这一位为“0”)。3个模拟输出分别为红、绿、蓝视频信号,IOR、IOG、IOB 分别为红、绿、蓝通道的电流正向输出端,每一个电流输出都能直接驱动 37.5  的电阻。TM043NBH02可应用于灰度或复合视频(只有一个通道输出视频信号)应用中。红、绿、蓝三通道的任意一个都能用于输入视频数据,另外两个没有数据输入的通道都接逻辑“0”。没有使用的模拟输出通道需要和使用的模拟输出通道接相同的负载,也就是说,如果使用红通道,IOR 接两个并联的 75  的电阻,则 IOB 和 IOG 也要接大小为 37.5  的负载。
在 TM043NBH02 的一些应用中,传送线的电缆长度很长,传送线上的负载相应的也就越大,这就需要器件有一定的驱动能力。而且当电缆长度大于 10 米时会减弱高频率的模拟输出,要解决这些问题,就需要器件拥有缓冲器。TM043NBH02包含的输出缓冲器能够解决这些问题,补偿电缆上的衰减。
3.5.2硬件设计
TM043NBH02 的应用电路图如图 10 所示。图中,COMP 为芯片内部参考运放的补偿引脚,需要通过一个 0.1μF 的陶瓷电容连接到模拟电源上。REFV 为 1.235V参考电压的输出,一般通过一个 0.1μF 的电容连接到电源端,也可以根据需要直接连接到外部的 1.235V 参考电压。
SETR 引脚与地之间需连接一个电阻,用来控制全扫描视频信号输出的大小,一般这一电阻的阻值取 530 。SETR 和 IOG 上的全扫描输出电流的关系如式 3-2 所示:
 (3.2)
 
Rset 和全扫描输出电流 IOR,IOG,IOB 的关系式如式 3-3he 3-4 所示:
  (3-3)
  (3-4)
这一公式只在需要同步信号时使用,若不需要将同步信号译码到绿通道,则等式3-3 和 3-4 相同。
TM043NBH02 最优化设计要求具有最低的噪声性能,一般可以通过屏蔽数字输入和减弱振荡来达到降低噪声的要求。TM043NBH02 以及相关的模拟电路都需要有独立的参考模拟地,这些地线通过磁珠和 PCB 板的地相连。在进行设计时要有过磁珠和 PCB 板的电源连接。模拟电源上的噪声可通过去耦电容来降低,每一个V AA都要和地之间接去耦电容,且电容要尽可能的放在和芯片接近的位置,使自感系数达到最小值。模拟信号的输出端都要接一个 75  的电阻,且这些电阻需要和 TM043NBH02 尽可能的接近,以减小反射。TM043NBH02 的 G0-G1,R0-R1,B0-B1与地相连,其它八位都和 FPGA 的 I/O 引脚连接。SYNC,BLANK ,PSAVE和CLOCK 都要和 FPGA 的 I/O 引脚连接。芯片的工作时钟由 FPGA 提供,同时 FPGA还提供行场同步信号并直接连接到 15 针的 VGA 显示连接器中。
 
图 3.10 TM043NBH02 的应用电路
 
 
3.6本章总结
本章对划分的各模块进行了不同程度的论述,其中对设计的核心模块进行了详细的阐述,大部分设计都通过对工作时序的理解与分析,然后运用Verilog HDL语言来完成编写的代码,完成对各模块的设计,最后将各模块的设计综合起来下载到开发板上,进行测试结果。
第四章 结果与测试
4.1仿真结果
1.I2C控制模块
TVP5150 需要设置的寄存器地址及其设置值如表1 所示:
表 4-1 TVP5150 需要设置的寄存器地址及其设置值
 
在软件开发平台 ISE10.1 中仿真得到的时序图如图4-1所示。
 
图 4-1 在 ISE10.1 中仿真得到的时序图
 
2.SDRAM控制模块
ITU-R BT.656 格式中的有效数据的排列顺序为 U-Y-V-Y,在进行合成时,将U 和 V 分量放在合成后数据的高 8 位,Y 分量放在低 8 位。在 ISE10.1 中得到的仿真图如图 4-2 所示。
 
图 4-2 图像数据合成的仿真图
 
在 ISE10.1 中,可以直接调用 DCM 模块来完成时钟的设计。调用 DCM 模块将 100MHz 二倍频的仿真图如图4-3 所示。将 33MHz 四倍频并得到 133MHz 移相0°和90° 的仿真图分别如图4-4所示。
 
图 4-3 调用 DCM 模块将 100MHz 二倍频的仿真图
 
 
图 4-4 调用 DCM 模块将 33MHz 四倍频并得到移相0° 和90° 的仿真图
3.FIFO模块
结合 TVP5150 解码视频数据后输出的 FID、VBLK、AVID 的信号就可以提取出有效的图像数据,且可以实现奇偶场数据的分离输出。在 ISE10.1 中得到的有效数据提取模块的仿真图如图 4-5 所示
 
图 4-5 有效数据提取模块的仿真图
4.LCD模块
显示模块需要的时钟频率为 25MHz,采用计数的方式来得到行场同步信号。在点时钟的上升沿计数,计数值的范围为 0~799,当计数值在 8 到 104 期间输出一个低电平为行同步的负脉冲,其它值都输出高电平。以行同步为另一个计数器的时钟,计数值的范围为 0~524,当计数值为 3 和 4 时输出一个低电平,其它计数值输出高电平,以此输出为场同步信号。TM043NBH02在将图像数据转换为模拟信号时,需要在输入图像数据的同时输入同步信号和场空白信号,在编程时,将同步信号和场空白信号设置为行同步信号和场同步信号相与的结果。在 ISE10.1 中仿真得到的显示模块的仿真图如图 4-6所示。
 
图 4-6显示模块的仿真图
 
4.2设计测试
将设计好的模块综合在一起,将开发板的USB Cable下载器与电脑连接之后,安装好下载驱动之后,把JTAG与FPGA开发板相连接,将程序下载到开发板上。
程序下载完成之后,按下板子上设定的开关,蜂鸣器发声,LCD液晶显示屏上出现OV7670所采集的图像,5秒钟之后蜂鸣器停止发声,LCD屏幕熄灭,如图4-7所示:
 
图4-7实物测试
4.3本章总结
本章节对各模块进行了波形的仿真,并对设计实物进行了测试。
 
第五章 总结与期望
5.1总结
  本设计是基于FPGA的可视门铃设计,是简单的视频监控系统在生活中的应用,通过学习FPGA和Verilog HDL相关的基础知识,并将两者相结合,完成对图像的采集与处理,实现设计的最终目的。
  本文做到的工作主要有:
1. 首先是对本设计题目的国内外背景及设计的意义和设计的主要内容详细的说明。
2. 之后对本设计的总体框架进行了说明,以及对FPGA的详细的介绍与比较、Verilog HDL语言的介绍、QuartusII的介绍以及对设计中所用到的器件进行了简要的说明。
3. 紧接的就是对设计的硬件和软件设计的论述,设计总共分为六大模块,其中对I2C控制模块、CMOS图像采集模块和SDRAM控制模块为主要模块,通过对设计原理及时序的研究完成硬件的设计,并阐述了设计的功能及图像采集的基本原理。对次要的PLL时钟模块、蜂鸣器模块、LCD模块进行了简单的说明与介绍。
4. 对设计的代码不断的调试,进行仿真测试并改正,完成课题设计。
5.2期望
  本设计采用的CMOS图像传感器,虽然OV7670有着廉价、功耗低等特点,但是其分辨率较低,之后可以采用CDD图像传感器进行改进,CDD比CMOS传感器分辨率高并且降噪的功能也更好,收集的图像信息会更加清晰,本设计只能对一些简单的图像进行收集与处理,但对于一些要求精密度高、复杂的图像可以采用FPGA与DSP相结合的技术,它们能对复杂的图像有着更加精密的算法与处理方式。
总体虽然设计达到了要求,但是还有许多不足,提升和拓展的方面还有很多不足,本人能力有限,希望得到同学和老师们的批评与指正。
 
参考文献
[1] 杨铃净.无线智能可视门铃设计报告[J].现代信息科技,2020,4(02):77-79.
[2] 雷文静,王连明.一种基于FPGA的多路视频网络监控系统设计[J].现代电子技术,2019,42(22):48-52+58.
[3] Xiaoliang Wang,Wenhua Song,Bowei Zhang,Brandon Mausler,Frank Jiang,13. An Early Warning System for Curved Road Based on OV7670 Image Acquisition and STM32[J]. Computers, Materials & Continua,2019,59(1).
[4] 廖延初.基于FPGA的便携式视频显示系统的设计[J].福建师大福清分校学报,2018(02):24-30.
[5] 张雨沐. 基于FPGA的视频图像处理系统的设计与实现[D].华南理工大学,2017.
[6] 叶倩.基于FPGA的视频监控系统设计与实现[J].中小企业管理与科技(中旬刊),2016(06):156-157.
[7] 赵汉青. 基于FPGA的远程视频监测系统设计[D].西安工业大学,2016.
[8] 张拢. 基于FPGA的视频监控系统的研究与设计[D].重庆大学,2016.
[9] 刘文龙. 基于FPGA的视频采集系统设计[D].青岛科技大学,2014.
[10] 杨光耀. 基于FPGA的图像采集及处理系统设计[D].内蒙古大学,2014.
[11] 李建华. 基于FPGA的视频采集系统设计[D].长安大学,2014.
[12] 占文庆. 基于FPGA的视频监控系统的设计[D].武汉理工大学,2014.
[13] 杨丽杰. 基于FPGA的快速图像处理系统[D].哈尔滨工业大学,2012.
[14] Teixidó Mercè,Font Davinia,Pallejà Tomàs,Tresanchez Marcel,Nogués Miquel,Palacín Jordi. An embedded real-time red peach detection system based on an OV7670 camera, ARM cortex-M4 processor and 3D look-up tables.[J]. Pubmed,2012,12(10).
[15] 陈勇,侯崇升.可视门铃电话电路设计与分析[J].家用电器科技,1998(03):13-15.
[16] 张占远,赵国婷,李定翰,徐磊.基于FPGA的CMOS采集控制模块设计[J].信息技术,2015(03):133-136.
[17] 应小军,李瑜煜.基于FPGA的CMOS图像传感器驱动电路设计[J].广东工业大学学报,2015,32(01):71-74+97.
[18] 朱伟, 韩服善. 基于AT89C51单片机的可视对讲门铃设计[J]. 电脑知识与技术:学术交流, 2009.
[19] 陈婧瑶. 智能式可视门铃的设计研究[J]. 中国科技信息, 2011(10):149-150.
[20] 吴志彬, 尧瑶琴, 赵华峰. 基于安凯AK3760C的IP可视门铃设计[J]. 机电工程技术, 2016, 45(s1):92-95.
[21] 夏方林. 基于单片机AT89C2051的楼宇直按可视对讲门铃系统的设计[J]. 微计算机信息, 2006, 000(01Z):P.114-116,111.
[22] 姚远. 基于SIP的智能远程可视门铃系统的设计与实现[D].  2015.
[23] 张建明. "电子猫眼"设计制作[J]. 家庭电子, 1998(10):15-15.
[24] 汤明. 网络化的楼宇可视门铃系统的设计与实现[D].
[25] 李坤遥, 苏成悦, 庄伟林,等. 基于可编程片上系统的智能楼宇可视门铃:.
[26] 严朝发, 周泰毅, 庄伟林,等. 基于可编程片上系统的智能楼宇可视门铃:, 2011.
[27] 石贵民, 林陈楠, 巫升权. 基于WAP2.0的手机可视门铃系统的设计与实现[J]. 武夷学院学报, 2013, 032(002):89-93.
[28] 高显生, 彭英杰. 嵌入式无线可视门铃系统的设计[J]. 林区教学, 2009(1):119-120.
[29] 不公告设计人. 可视对讲门铃(ZDL-3700+28T):.
[30] 不公告设计人. 可视对讲门铃(ZDL-3700+28T):.
[31] 高丽丽, 崔丽珍, 胡海东. 基于云服务的智能门铃系统设计[J]. 现代电子技术, 2018, v.41;No.517(14):114-117.
[32] 杨晓龙. 可视化电子门铃系统设计[J]. 信息记录材料, 2018, 019(002):93-95.
[33] 任玉. 可视门铃的艺术化设计[J]. 卷宗, 2014, 000(012):368-369.
 
重要提示:转载本站信息须注明来源:985论文网,具体权责及声明请参阅网站声明。
阅读提示:请自行判断信息的真实性及观点的正误,本站概不负责。
jQuery右侧可隐藏在线QQ客服
在线客服