基于FPGA的图像数据传输控制系统的设计_本科毕业设计1.doc_第1页
基于FPGA的图像数据传输控制系统的设计_本科毕业设计1.doc_第2页
基于FPGA的图像数据传输控制系统的设计_本科毕业设计1.doc_第3页
基于FPGA的图像数据传输控制系统的设计_本科毕业设计1.doc_第4页
基于FPGA的图像数据传输控制系统的设计_本科毕业设计1.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学毕业设计(论文)基于fpga的图像数据传输控制系统设计学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包括任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士论文评选机构将本学位论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密囗,在 年解密后适用本授权书2、不保密囗 。(请在以上相应方框内打“”)作者签名: 年 月 日导师签名: 年 月 日本科生毕业设计(论文)任务书学生姓名:xx 专业班级:xx 指导教师:xx 工作单位:xx设计(论文)题目: 基于fpga的图像数据传输控制系统的设计设计(论文)主要内容:在掌握学习fpga的基本原理、结构和应用的基础上,完成基于fpga的图像数据传输控制系统的设计与实现。要求完成的主要任务:1、查阅不少于15篇的相关资料,其中英文文献不少于3篇,完成开题报告。2、fpga基本系统的设计。3、fpga外围系统的设计。4、完成不少于5000汉字的英文文献翻译。5、完成不少于12000字的论文。必读参考资料:1 王庆友光电技术北京:电子工业出版社,20052jinghong.duandevelopment of image processing system based on dsp and fpga.electronic measurement and instruments,aug.16, 2007-july 18 20073bob zeidman著, 赵宏图译基于fpga&cpld的数字ic设计方法北京:北京航空航天大学出版社指导教师签名: 系主任签名: 院长签名(章)武汉理工大学本科生毕业设计(论文)开题报告1、目的及意义(含国内外的研究现状分析)本次毕业设计的题目为基于fpga的图像数据传输控制系统的设计,是通过搭建硬件平台以及用硬件描述语言来控制图像处理和数据的采集及传输的。作为大学本科最重要的一次实践性课程,我选择这个课题主要是基于以下原因。图像数据的传输在当今信息化时代已成为最普遍最重要的技术,在通信、卫星、遥感、导航、监控等各项技术中,图像数据采集前端都是必须的。与我们生活联系较为紧密的就很多,如摄像机、照相机、视频系统等等。数据的传输和控制的精确度和准确性都会影响人或机器的下一步操作。因此,作为一种基本技术,在各领域内,对其研究都是十分深入的,已经有各种方法对其进行了实现。 目前国内外的图像数据采集手段多种多样,在主控制模块上有基于arm的,有基于dsp的,还有基于专用单片机的;在数据和控制信号传输上有基于usb2.0的,有基于rs-232串行通信的,或是epp并行方式的;图像传感器上既有采用ccd的,也有采用cmos的。但目前市场上和技术实现上是以fpga现场可编程门阵列为主控的最为普遍。南京林大的洪冠和南京铁职的赵茂成等人在“基于plc的肉碎骨图像采集控制系统中”采用可编程逻辑器件plc为控制核心,控制激光ccd和x射线相机实现碎骨图像采集,获得较高的图像分辨率。北京航空航天大学的任贵伟和张海在“基于arm紧凑型图像采集系统”中利用arm7(lpc2210)与cmos(ov7620)实现了一个紧凑型图像采集、处理系统;利用lpc2210数据总线的工作方式,有效地消除了ov7620对系统数据总线的干扰。sccb控制,图像数据的采集、处理以及传输都由一片lpc22lo完成,特别适合于对功耗、体积要求较严格的嵌入式应用。此次我的毕业设计要求以fpga为平台,设计一个系统来控制图像和数据的传输,国内已经有类似的研究设计并取得了相关成果,我此次则是期望通过个人的能力能设计出基于fpga的图像数据传输控制系统,使系统更简化、精确、有效,并能应用于某一领域。此外,就我个人来说,由于本次设计的重点是利用fpga,这是一门既成熟又非常具有实用性的学问,在本科期间只接触了皮毛,现欲利用这一机会,对该课程进行深入学习,使自己额外掌握一项技能,争取通过本次毕业设计掌握fpga的开发设计与实用基本知识,为今后的学习工作奠定基础,作为一名电子信息类专业的理科生,掌握了数模电、单片机、编程语言的同时,逻辑可编程器件相关的知识也很重要。本次研究希望设计出一种能够在某一专用场所使用的图像数据传输器控制系统。2、基本内容和技术方案数据传输控制系统其实是利用fpga芯片控制数据采集前端采集到的原始信号依次进行数模转换,数据处理等操作后储存到存储器里,可供cpu读取进行运算和处理后,再传输到外部终端,系统的各项动作和反应都由fpga控制。而本次设计的内容则为图像数据的传输控制,即是要利用fpga芯片控制图像传感器(本次利用的是cmos传感器)获取图像信号,再将其转换成数字信号,通过fpga控制,对此图像数据进行一系列的处理后,将图像数据存储到储存器(或是显示到监视设备)。技术方案上,本次设计将通过对系统进行原理方案的设计,然后选取合理fpga芯片及cmos传感器和其它外围的硬件器件,搭建成具可行性的电路,编写出相应的控制程序。这一系列工作都先将借助于quartus ii这个fpga设计仿真专用平台,进行系统设计的验证及仿真工作,在电路上还可能会用到其他相关的电子电路设计平台。此外,本次设计将采用仿真与实际相结合的研究方法。在计算机上的软件上建立一个仿真系统,对各原始数据的处理和运算设计一套流程和算法,在仿真获得成功的情况下,将会利用fpga开发板和外围电路做出实物。3、进度安排第13周:查阅相关文献资料,明确研究内容,确定方案,完成开题报告。第47周:了解研究所需要掌握的基本知识和能力,通过自学和向他人学习来掌握这些知识能力。第810周:学习开始动手进行设计和实验,进行调试使满足基本要求,开始进行论文的撰写。第1214周:完成并修改毕业论文。第15周:准备论文答辩。4、指导教师意见 指导教师签名: 年 月 日武汉理工大学毕业设计(论文)目 录摘 要iabstractii1 绪论11.1 论文的目的意义11.2 国内外研究背景11.3 论文的主要内容22 基于fpga的系统设计32.1 fpga简介32.2 cyclone ii系列芯片72.3 quartus ii简介82.4 hdl描述语言简介103 图像传输系统方案设计133.1 系统总体方案133.2 各模块器件的选择134 系统各模块的设计164.1图像数据采集模块164.2图像数据存储模块195结论21参考文献22附 录23致 谢26武汉理工大学毕业设计(论文)摘 要在当今信息科技日益发达的时代,随着数字多媒体技术的发展,图像数据的采集和传输作为视频图像类信息交换的第一项工作,已经越来越普及。在军事上、工业上以及人们的日常生活中,图像采集传输工作随处可见,目前人们接触较多的视频和图片等多媒体文件几乎全部源自图像数据采设备的获取。通过图像采集系统采集图像(视频或图片),然后经过数据处理后可以传输到其它设备予以存储或显示。图像采集是图像处理的前提。本论文主要研究的内容便是图像的获取和传输问题,设计一个图像传输控制系统,以fpga为主控模块,控制图象传感器(cmos图像传感器)将图像传输到存储设备中。论文重点研究的是系统的硬件原理设计和其中各个时刻各模块的逻辑时序的控制。关键词: fpga;quartus ii;cmos图像传感器;图像采集;数据传输abstractin this era when information technology highly developed, with the development of digital multimedia technology, image acquisition, as the first step of image information exchange , has been mor and more popular. in the military,industry, and peoples daily life,image acquisiton and transmission were seen everywhere.and in now days, most of the multimedia files we use, such as videos and photos, are from image acquisition device. images(video or photo) must be collected by an image acquisition fist, then it could be transferred to other devicws or displayed after being data processed.image acquisition is a prerequisite for image processing. the content of this thesis is about the problem of the image acquisition , and the design of an image transmission and controlling system that use fpga as the main control module to control the image sensor(cmos image sensor ) to transfer the data to the storage devices .a big part of the thasis will focus on the design of the hardware system and the logic control of each module . key words:fpga;quartus ii;cmos imag sensor;image acquisition;data transmissionii武汉理工大学毕业设计(论文)1 绪论本论文的题目为“基于fpga的图像数据传输控制系统的设计”,主要研究的是用现场可编程门阵列器件来控制图像数据的获取和传输问题。1.1 论文的目的意义图像与当今人们的生活已经密不可分了,它是人们现在获取和交换信息的重要途径。图像的采集与传输技术在当今信息化时代已成为最普遍最重要的技术,在通信、卫星、遥感、导航、监控等各项技术中,图像数据采集前端都是必须的。与我们生活比较联系较为紧密的就很多,如摄像机、照相机、视频系统等等。这些多媒体信息对社会的发展,对人们的工作甚至日常生活都影响甚大1-3。图像数据的获取与传输作为一种基本技术,在各领域内,对其研究都是十分深入的,已有各种方法对其进行实现。故对于我们来说,掌握这门技术并不断地试图去改进和创新,让技术在我们的探索中不断进步和成熟是具有重要的现实意义的。本论文就是基于这一目的,以个人的思维对图像采集系统的搭建进行尝试,力图使其具有独到之处,能够被用到某一专用场合。 此外,就我个人来说,由于本次设计的重点是利用fpga,这是一门既成熟又非常具有实用性的学问,在本科期间只接触了皮毛,现欲利用这一机会,对该课程进行深入研究,使自己额外掌握一项技能,争取通过本次毕业设计掌握fpga的开发设计与实用基本知识,为今后的学习工作奠定基础,作为一名电子信息类专业的理科生,掌握了数模电、单片机、编程语言的同时,逻辑可编程器件等相关的知识也很重要。本次研究希望设计出这样一种系统能够在某一专用场所为数据的传输器控制作用,例如作为在高速公路上的车型速度控制,也是对数据传输的控制,或如电子温度计中的数据传输控制等等。1.2 国内外研究背景目前国内外的图像数据采集手段很丰富。在主控制模块上有基于arm的,有基于dsp的,还有基于专用单片机的;在数据和控制信号传输上有基于usb2.0的,有基于rs-232串行通信的,或是epp并行方式的;图像传感器上既有采用ccd的,也有采用cmos的4-5。但目前市场上和技术实现上是以fpga现场可编程门阵列为主控的最为普遍。南京林大的洪冠和南京铁职的赵茂成等人在“基于plc的肉碎骨图像采集控制系统中”采用可编程逻辑器件plc为控制核心,控制激光ccd和x射线相机实现碎骨图像采集,获得较高的图像分辨率6。北京航空航天大学的任贵伟和张海在“基于arm紧凑型图像采集系统”中利用arm7(lpc2210)与cmos(ov7620)实现了一个紧凑型图像采集、处理系统;利用lpc2210数据总线的工作方式,有效地消除了ov7620对系统数据总线的干扰。sccb控制,图像数据的采集、处理以及传输都由一片lpc22lo完成,特别适合于对功耗、体积要求较严格的嵌入式应用7。图1 市场上设计的图像采集传输系统此次我的毕业设计要求以fpga为平台,设计一个系统来控制图像和数据的传输,国内已经有类似的研究设计并取得了相关成果,我此次则是期望通过个人的能力能设计出基于fpga的图像数据传输控制系统,使系统更简化、精确、有效,并能应用于某一领域8。1.3 论文的主要内容论文着重叙述了利用fpga技术来实现图像数据的采集和传输技术。论文将利用数章的篇幅来叙述fpga相关的知识以及fpga的开发平台quartus ii的应用。然后将会对本次设计的基于fpga和cmos图像传感器图像采集和传输系统进行详细的讲解,对系统进行原理方案的设计,然后选取合理fpga芯片及cmos传感器和其它外围的硬件器件,搭建成具可行性的电路,借助于quartus ii这个fpga设计仿真专用平台,编写出相应的控制程序,进行系统设计的验证及仿真工作。2 基于fpga的系统设计本次设计的基础是fpga,开发和仿真平台是在quartus ii上,还会利用到hdl语言,现分别对这几个概念做以介绍。2.1 fpga简介fpga(field-programmable gate array),指的是现场可编程门阵列,它是在pal、gal、cpld等可编程器件的基础上进一步发展起来的一种技术。fpga采用了逻辑单元阵列lca(logic cell array)这样一个概念,内部包括可配置逻辑模块clb(configurable logic block)、输出输入模块iob(input output block)和内部连线(interconnect)三个部分。目前主流的fpga仍是基于查找表技术的,但基本性能大幅度提高,并且整合了常用功能(如ram、时钟管理和dsp)的硬核(asic型)模块。fpga芯片主要由7部分组成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式ram、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块9-10,如图2所示。clbclbclbclbclbclbiobiobiobiobiobiobiobiobsram sramiobiobiobiobiobiobiobiobiobiobdcm图2 fpga芯片的内部结构 2.1.1 可编程输入输出单元可编程输入输出单元(iob)简称i/o单元,是芯片与外围电路的借口部分,可以完成不同电气特性下对输入输出信号的驱动与匹配要求。fpga芯片内的输入输出口按组分类,每组能独立支持不同的i/o标准。可以通过软件来配置各i/o口的特性,可以改变驱动电流的大小,可改变上、下拉电阻。如图3所示。图3 可编程输入输出单元2.1.2 可配置逻辑块可配置逻辑块(clb)是fpga内的基本逻辑单元,如图4所示。不同类型的fpga芯片内部的可配置逻辑块的特性和数量会各有不同,但每个可配置逻辑块内都有一个可配置开关矩阵,该矩阵由若干个输入、一些多路复用器和触发器组成的。可以对开关矩阵进行配置,配置后的开关矩阵就可方便地用于处理组合逻辑、移位寄存器或ram,故开关矩阵在性能上设计的是十分灵活的。每个clb模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式ram和分布式rom。coutshiftcincincoutswitchmatrixslicex1y1slicex1y0slicex1y0slicex1y1tbuf x0y1tbuf x0y0快速连接 到邻近区图4 可配置逻辑块2.1.3 其他部分模块数字时钟管理模块(dcm)。大多数fpga芯片均提供数字时钟管理。xilinx公司目前推出的最先进的fpga提供数字时钟管理和相位环路锁定。相相位环路锁定能够提供精确的时钟综合,还具有降低抖动和实现过滤功能。嵌入式块ram(bram)。大多数fpga都具有内嵌的块ram,这大大拓展了fpga的应用范围和灵活性。bram可被配置为单端口ram、双端口ram、内容地址存储器 (cam)以及fifo等常用存储结构。cam存储器在其内部的每个存储单元中都有一个比较逻辑,写入 cam中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址,因而在路由的地址交换器中有广泛的应用。除了块ram,还可以将 fpga中的lut灵活地配置成ram、rom和fifo等结构。丰富的布线资源。fpga芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片 bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。布线资源连通fpga内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。底层内嵌功能单元。内嵌功能模块主要指延迟锁定环(dll)、相位锁定换(pll)、数字信号处理器(dsp)和中央处理单元(cpu)等软处理核(softcore)。现在越来越丰富的内嵌功能单元,使得单片fpga成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向soc平台过渡。dll和pll具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。pll 和dll可以通过ip核生成的工具方便地进行管理和配置。内嵌专用硬核。内嵌专用硬核是相对底层嵌入的软核而言的,指fpga处理能力强大的硬核(hard core),等效于asic电路。为了提高fpga性能,芯片生产商在芯片内部集成了一些专用的硬核。例如:为了提高fpga的乘法速度,主流的fpga 中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的fpga内部都集成了串并收发器(serdes),可以达到数十gbps的收发速度。2.1.4 fpga的应用fpga器件自身的高度灵活性使得它的应用范围极其广泛。目前在电子信息领域,fpga的应用表现在以下几个方面11-13。fpga在逻辑控制电路中的应用。这应该是fpga最基本的应用,通过对fpga的逻辑编程,可以轻易生成任意组合逻辑电路的时序,对逻辑电路中的其他芯片起控制作用。fpga在数字信号处理技术中有重大应用。由于fpga具有强大的运算和数据处理能力,故当今基于fpga的数字信号处理能够很好地解决一些无法简单运用dsp处理的问题,数字信号处理中常须用到的一些模块如乘法器、除法器、滤波器、延时器、锁相器、比较器等等在fpga中都能很容易的实现。因此数字信号处理中常见的复杂计算如傅里叶变换、拉普拉斯变换等都可轻易解决。此外,在一些特定场合,fpga对dsp也有很好的辅助作用。fpga在微机系统中的应用。由于fpga丰富的i/o口资源和强大的模块化功能,使得其几乎可以取代微机系统中现有的全部微机接口芯片,实现微机系统中的总线控制、地址译码、中断和dma控制、dram管理和i/o接口电路功能。并且,利用fpga可把微机系统的功能集成在同一芯片中,实现“功能集成”。此外,fpga可用于产品设计上14。fpga因为具备接口,控制,功能ip,内嵌cpu等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计。因此,在产品设计领域,fpga前景广阔。2.1.5 fpga开发过程对于基于fpga的系统,其开发过程有分析设计,eda仿真设计等步骤,具体如下图所示。任务分析,确定系统逻辑功能权衡比较,选定功能实现算法逻辑划分,绘制系统结构框图选择器件,完成eda工程设计化整为零,逐个设计功能模块图5 fpga开发分析流程设计输入综 合fpga/cpld适配fpga/cpld编程下载在线测试时序仿真功能仿真图6 软件平台上的开发流程2.2 cyclone ii系列芯片此次系统设计的核心芯片就是cyclone ii系列的fpga芯片。cyclone ii采用全铜层、低k值、1.2伏sram工艺设计,裸片尺寸被尽可能最小的优化。采用300毫米晶圆,以tsmc成功的90nm工艺技术为基础,如图7所示。pllpll pll plllogicarraym4kblockslogicarraylogicarraym4kblockslogicarrayioesioesioesioes embedded multipliers图7 cycloneii系列fpga的内部结构示意图器件主要由以行列形式排列的逻辑阵列块(logic array block,lab)、嵌入式存储器块及嵌入式乘法器组成,锁相环(pll)为fpga提供时钟,输入输出单元(inputoutput element,ios)提供输入输出接口逻辑。逻辑阵列、嵌入式存储器块、嵌入式乘法器、输入输出单元及锁相环之间可实现各种速度的信号互联。逻辑单元是cyclone ii系列中可实现用户逻辑定制的最小单元,cyclone ii 器件提供了4608到68416个逻辑单元(le),并具有一整套最佳的功能,包括嵌入式18比特18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(pll)和高速差分i/o能力。每16个le组成一个逻辑阵列块(lab)。lab以行列形式在fpga器件中排列。cycloneii系列fpga有片内pll,并有多达16个全局时钟网络为逻辑阵列块、嵌入式存储器块、嵌入式乘法器和输入输出单元提供时钟。m4k嵌入式存储器块由带校验的4k位(4096位)真双口(ture dualport)ram组成,可配置成真双口模式、简单双口模式或单口模式的存储器,位宽最高可达36位,存取速度最高260mhz。m4k嵌入式存储器分布于逻辑阵列块之间。cyclone ii系列fpga的m4k嵌入式存储器的容量为119k1152k位不等。每个嵌入式乘法器可以配置成两个99或一个1818的乘法器,处理速度最高可达250mhz。cyclone ii的嵌入式乘法器在fpga上按列排列。输入输出单元排列在逻辑阵列块的行或列的末端,可以提供各种类型的单端或差分逻辑输入输出。2.3 quartus ii简介 quartus ii 是altera公司在max plus ii基础上研发出的新一代pld开发软件。它具有易学易用、运行速度快、可视化、集成化设计环境等优点,支持原理图、vhdl、verilog hdl及ahdl等多种设计输入形式,内嵌自有的综合器以及仿真器,可以实现从设计输入到硬件配置的完整pld设计流程。它提供了一种与结构无关的设计环境,使得设计人员无须精通器件的内部结构,只需运用自己熟悉的输入工具(原理图输入或高级行为描述语言)进行设计15。quartus ii系统把这些设计转换成最终结构所需的格式,供实际使用。2.3.1 quartus ii的设计输入方法quartus ii具有多种设计输入方法,如原理图输入、vhdl、verilog hdl及ahdl等多种设计输入形式。现在对应用比较多的两种输入形式做以介绍。原理图输入法。如图8所示,这是一种最为直接的输入方法,用quartus ii图库里提供的各种原理图库进行设计输入。采用这种方法的时候,可以从上到下将逻辑分块,即把大规模的电路划分成若干小块的方法,这样可以提高输入效率。图8 原理图输入界面硬件描述语言hdl输入法。这也是本次设计将用到的方法。quartus ii平台支持vhdl,verilog hdl及ahdl 等多种语言描述。这种输入方法的优点是输入效率高,结果易仿真,信号易观察。但语言输入必须依赖综合器,只有好的综合器才能把语言综合成优化的电路,因此对综合器的要求较高。这种方法适用于大量的规范的、易于用语言描述的、易于综合的电路设计,如图9所示。图9 hdl描述语言输入界面2.3.2 编译和仿真在设计输入完成之后,可继续在quartus ii上对设计进行编译和仿真。fpga的编译和仿真分两步进行。首先是功能的验证。电路设计输入完成后先需要检查输入是否正确,quartus ii提供了功能编译的选项。此时的仿真由于未作布局布线,故其中不含延时信息,而且可以预测所有信号,故对于初步功能的检测非常方便,只需加入激励信号,即自设的时钟信号,观察各个节点的信号,看与预测是否相同,并进行修正。功能检测完成后,需要进行后仿真。选择带有延时的完全编译。对每一个设计项目的acf配置文件里的参数进行修改,包括器件的类型、管脚的设置、速率及面积的比重、时间参数要求和布线等设置。编译完成后的仿真就是后仿真。2.4 hdl描述语言简介hdl(hardware description language)即硬件描述语言,这是一种硬件设计人员用来进行电子自动化设计(eda)的工具。其主要目的是用来编写设计文件,建立电子系统行为级的仿真模型。即在计算机系统和相应的软件上用verilog hdl或vhdl建模对复杂的数字逻辑进行仿真,然后自动生成相应的数字逻辑网表,根据网表和选定工艺的器件自动生成具体电路,接着生成该工艺条件下上述具体电路德延时模型。仿真验证无误后用于制造asic芯片或写入fpga器件中。在 eda 技术领域中把用hdl 语言建立的数字模型称为软核(soft core),把用hdl 建模和综合后生成的网表称为固核(hard core)对这些模块的重复利用缩短了开发时间,提高了产品开发率提高了设计效率。硬件描述语言有多种,如verilog hdl、vhdl、ahdl等,本次设计将是采用verilog hdl语言来实现。相比之下,verilog hdl语言具有语法简单、程序简洁、容易掌握等优点,因而,它是一种被广泛使用的标准硬件描述语言,用于从算法级到开关级得多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门级和整体的电子数字系统之间。verilog hdl语言有一套系统的语法规则,并且有许多语法规则跟c语言一致。因此在有c语言基础的情况下去学习verilog hdl语言比较容易16。具体说来这种行为描述语言具有以下八项功能: 可描述顺序执行或并行执行的程序结构。 用延迟表达式或事件表达式来明确地控制过程的启动时间。 通过命名的事件来触发其它过程里的激活行为或停止行为。 提供了条件、if-else、case、循环程序结构。 提供了可带参数且非零延续时间的任务(task)结构。 提供了可定义新的操作符的函数结构(function)。 提供了用于建立表达式的算术运算符、逻辑运算符、位运算符。 verilog hdl语言作为一种结构化的语言也非常适合于门级和开关级的模型设计。 verilog hdl的构造性语句可以精确地建立信号的模型。这是因为在verilog hdl中,提供了延迟和输出强度的原语来建立精确程度很高的信号模型。信号值可以有不同的的强度,可以通过设定宽范围的模糊值来降低不确定条件的影响。如下即为一段verilog hdl语言举例。module mux(en ,in0 ,in1 ,in2 ,in3 ,sel ,out );input en ;input 7:0 in0 ,in1 ,in2 ,in3 ;input 1:0 sel ;output 7:0 out ;reg 7:0 out ;always (sel or en or in0 or in1 or in2 or in3 )beginif (en = 0) out = 81b0;elsecase (sel )0 : out = in0 ;1 : out = in1 ;2 : out = in2 ;3 : out = in3 ;default : out = 81b0;endcaseendendmodule这段verilog hdl语言描述的是一个数据选择器。其中涉及到:模块声明:module endmodule端口定义:input output 信号类型:reg 赋值形式:=常用语法:always语句(时序逻辑、部分组合逻辑)由于verilog hdl语言使得复杂的芯片变得易于被人脑所理解,同时使得硬件设计变得简单顺利,故传统的原理图设计方法正在被硬件描述语言所取代。3 图像传输系统方案设计3.1 系统总体方案系统总体设计上包括两个模块,即图像采集模块和图像存储模块,又可以分为以下几个部分:图象传感器、a/d准换器、fpga主控模块、sram数据存储器和d/a转换器17。系统的原理框图如下图所示。显示图像传感器图像a/d转换fpga主控模块sram存储器sram存储器图像d/a转换图10 系统原理框图该系统中,图像传感器把捕捉外界图像转换成模拟信号,在主控模块fpga的控制下,该模拟信号经a/d转换后成为数字信号,并被传输到外部存储器sram中储存起来,当需要将图像显示出来时,在fpga的控制下,数字信号经过d/a的转换成模拟信号并传输到外部显示器上。3.2 各模块器件的选择对应系统原理框图,分别选择各部分合适的器件。fpga芯片。本系统采用altera公司的cycloneli系列fpga(ep2c20q240c8)作为系统的主控制器,该芯片具有18752个le,240kbit的内部ram容量,26个内嵌乘法器单元,4个模拟锁相环等,广泛应用于汽车电子、消费电子、音视频处理、通信以及测试测量等终端产品市场。图11 cyclone ii型fpga芯片(ep2c20q240c8)图像传感器。图像传感器选择cmos黑白摄像头,它输出模拟的黑白视频图像信号给后继的a/d转换器。a/d转换器。本次设计采用一款视频解码芯片saa7111作为a/d转换。该芯片的引脚如图12所示。saa7111是philips 公司生产的可编程视频处理器。该芯片集ad 与解码功能于一身,片内附有锁相、自动钳位、自动增益控制、时钟产生、多制式解码等电路,另外,saa7111还可对亮度、对比度和饱和度进行控制。它既能支持pal 电视制式,又可支持ntsc电视制式。saa7111a内部含有i2c 接口,故可通过i2c总线对saa7111a的工作方式进行设定,可以输出标准的16位vpo数字信号。saa7111a的场同步信号vref、行同步信号href、奇偶场信号rts0、象素时钟信号llc2都可由引脚直接引出,从而可省去时钟同步电路,且其可靠性和方便性也有了很大的提高。图12 芯片saa7111引脚图sram存储芯片。选用issi公司的sram(is61lv25616al)。is61lv25616al是issi公司的一款容量为256k16的且引脚功能完全兼容的4mb的异步sram,可为cyclone ii提供极大的外围存储空间,也能满足视频图像的存储大容量需求。该款芯片的特点:工作电压3.3伏;访问时间10ns、12ns;芯片容量256k16;封装形式44引脚tsopii封装,也有48引脚mbga和44引脚soj封装;采用0.18m技术制造。引脚功能a0a17是18位的地址输入线;io0io15是16位的三态数据输入输出线;we写控制线;ce片选信号;oe输出使能信号;lb、hb低字节、高字节使能信号。4 系统各模块的设计现在根据上一章中的总体原理框图逐步来设计各模块的硬件电路图。4.1图像数据采集模块该模块主要负责由fpga芯片控制图像视频芯片saa7111,使其处理由cmos摄像头采集到的模拟图像信号,本次设计使用的是cmos黑白摄像头,故只考虑图像的亮度信号。saa7111对模拟图像信号进行提取和转换,获得图像的8位数字信号,同时输出行、场参考信号、行、场同步信号、以及奇偶场标志信号,本次设计采集到的是灰度图像,无色度信号,所以数据线是8位,如图13所示。vpo7-0saa7111fpgahrefcrefvrefvshsrts0ramsclsdacmos图像传感器模拟信号图像采集同步模块图13 图像采集模块原理图这个模块的控制只须对saa7111进行初始化,就可进行图像的数据的采样与传输。初始化数据都存储在cyclone ii的内部存储器ram里,因为saa7111支持i2c总线,故fpga与saa7111通过i2c总线传输方式,将初始化数据传到saa7111的寄存器中,对其进行初始化操作后,saa7111便开始进行图像的转换处理。此时,fpga控制图像数据传输到随机存储器sram中储存。现利用i2c总线技术对saa7111进行初始化操作。4.1.1 saa7111的初始化设置对saa7111 的初始化主要对模拟输入控制与输出控制进行配置。本设计对saa7111 的内部寄存器的具体设置如下:(1)模拟输入控制1(02h)、2(03h)、3(04h)、4(05h)寄存器02h的低三位用于设置saa7111的模拟信号输入方式,共8种输入方式可供选择。第一种是输入一路视频信号,该信号经a/d采样后得到的数据同时再送入色度和亮度信号处理电路;本次系统较简单,对色度无要求,但也可采用这种模式,其它寄存器03h、04h、05h一起可用于控制输入信号的增益、振幅和噪声等,在此可直接采用其默认值,不对其进行设置。(2)输出格式/延时控制0(10h)该寄存器中的最高两位ofts1、ofts0为输出格式选择位,用于决定四种输出格式,此次只需选择8位灰度值输出,故可以选择第四种格式:yuv ccir-656 8bits,则须对该高两位均设置为1,所以10h内的字为c0h。(3)输出控制1(11h)将该寄存器的第三位置1 时,vpo 输出有效;将第二位置1 时,hs和vs 输出有效。则寄存器11h中的字为60h。除此以外,其它位的设置均可以采用默认设置。则寄存器的初始化值如下表所示:表1 saa7111初始化各寄存器值subaddress datasubaddressdatasubaddressdata00h01h 00h07h e0h 0dh 00h02h 00h 08h 88h 0eh 01h03h 33h 09h 01h 0fh 00h04h 00h0ah 80h10h c0h05h 00h 0bh 47h11h 60h 06hebh 0ch40h 12h1ch这样,系统的入口参数可定义为:saa7111的从地址为48h,子地址为00h,随后是saa7111各寄存器应该设置的19个数据,共21个字节的数据,相应地在代码中可以定义寄存器存储上述数值,然后通过i2c总线将数据输出到saa7111的内部寄存器中,供其初始化。4.1.2 verilog hdl实现i2c总线i2c总线是一种由sda(串行数据线)和scl(串行时钟线)组成的串行总线,它利用这两根总线在主控制单元与被控ic之间进行双向数据传送,各种被控电路均并联在这条总线上。当总线备用时,两根线都是高电平,只有当总线关闭时,scl才转变为低电平。在标准模式下,i2c总线的数据传输速度可达100 kbit/s,在高速模式下则可达400 kbit/s。由于在i2c总线上每传输一位数据都有1个时钟脉冲相对应,所以,i2c总线的时钟周期一般在2.5 s10 s之间。i2c总线为同步传输总线,其中与数据传输有关的信号有开始信号、停止信号、应答信号和位传输等4种类型。开始信号是在scl为高电平期间,sda出现由高电平向低电平的变化,由此启动i2c总线,如图14所示。停止信号是在scl为高电平期间,sda出现由低电平向高电平的变化,它意味着即将停止i2c总线的数据传输,如图15所示。应答信号是指接收数据的ic在接收到发送方发送的8 bit数据后,应向发送数据的ic发出特定的低电平脉冲,表示已经完成本次数据的接收。数据位传输是在i2c总线启动后或应答信号后的第18个时钟脉冲对应于1个字节的8个bit位的数据传输。scl在高电平期间,数据串行传输;scl在低电平期间,容许sda上的电平发生转换,为数据发送做准备。这些信号中,起始信号和数据传输是必需的,结束信号和应答信号,都可以不要。clksclsda图14 i2c总线开始信号clksclsda图15 i2c总线结束信号现需要fpga控制模块来实现对saa7111的i2c总线控制,用verilog hdl实现i2c总线程序见附录。在quartus ii平台上进行波形仿真如下。图16 i2c总线quartus ii 波形仿真264.2图像数据存储模块当fpga图像采集控制模块获取到图像数据后须将图像数据存储起来,因此给系统配置两片外部存储器sram,来存储这些数据。图像存储模块的原理图设计如图17所示。图像数据最终需要送到后端的计算机系统或监视系统中,但前后的数据传输速率不同要求其间必须有缓存配置。本系统在外围设置了一块静态随即存储器sram。数据的存储模式为,在fpga控制下,按照该sram的存储时序要求产生相应的时序脉冲,分别控制sram的片选信号、使能信号、读信号及写信号等,同时fpga还要生成相应的存储地址,控制数据流在sram中的存储点。 data15-0sramis61lv25616aladdr17-0sram_wesram_oesram_cefpgasram_rd图17 sram与fpga的接口电路控制逻辑由fpga来实现。主要包括读地址产生器、写地址产生器、读写时钟信号产生器及读写控制等几部分。写地址产生器:由于设计时采用256k16的sram,故有18位地址,写地址产生器用18位计数器实现。靠外部时钟驱动,每进行一次写操作后,读写控制单元产生计数脉冲,使其增1,直到18位计数器计满再循环写入地址为0的空间。读地址产生器同上,也采用18位计数器实现,根据系统要求,每隔一定的采样周期将读地址指针偏移一定偏移量,并从该位置读取数据。读写地址选择器由于读写地址复用管脚,因此在读写操作时,必须选通相应的地址。这就需要由fpga控制芯片上的等控制信号来对sram进行读写的操作。此外,由于读写之间的切换,数据线上的数据在切换瞬间如不加处理会出现混乱现象。因此,为避免读、写操作发生冲突,数据线呈三种状态,读数据、写数据及高阻态。在从写到读的过程中需给数据线上送高阻态。当需要对sram进行写操作时,由fpga控制产生写地址选通信号,该选通信号为一单脉冲形式,如图四中该脉冲下降沿触发sram,告知开始对ram进行写操作,使fpga输出写地址,同时给数据线上送数据。在写操作期间,片选信号始终保持低电平,而写地址选通信号上升沿到来时使写地址计数器增1。以此类推,通过写地址选通信号高低电平变化完成对数据依次写入。需要注意的是,地址线和数据线在为高时可同时赋新值,但只有在变低后赋予数据线上的新

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论