




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的实时图像边缘检测系统的研究I单芯片系统。系统的整个设计过程是在QuartusⅡ以及DE1等软硬件环境下完成的,内容主要包括系统结构的分析以及各模块的设计述了乒乓操作在本系统中的实现方式,通过VHDL实现了摄像头驱动、视频数据流的格式打下了坚实的理论与实践基础。为了满足系统对实时性的要求,在系统体系结构中采用了读写双口RAM的处理方式以及处理器中的多级流水线结构可以作为后续设计实时图像处Withtherapiddevelopmentofintegratedcircuittechnology,single-chipimageprocessingmodule,inwhichadetailedanalysisoftheping-pongoperationofthesysteminways,implementbrightness,edgedataprocessingandsoon.processor,thedesignisbasedonthehardwaretoachieve,includingthecalculatioreal-timeimagedataprocessing,includingreadanoperationmodeaswellasthemulti-pipelineprocessorcanbeagKeywords:FPGA;real-timeimageprocessing;multi-pipeline;ping-pongoperationn论文独创性声明文中不包含任何未加明确注明的其他个人或集体已经公开发表的成论文知识产权权属声明图像边缘是图像最基本的特征,其中包含着有价值的目标边界信息,这些信息可以用在对实时图像处理的过程中,需要各种有效的检测算法获取需要的图像信息,但是传专用集成电路(ASIC)就是按用户的具体要求(如功能、性能或技术等),为用户的特定一步发展的产物²。由于拥有ASIC的稳定性、大容量、高集成度等优点,而且采用硬件描述语言所设计的电路可以直接综合成RTL级电路并对目标器件进行配置实现,极大的提高过程3。2FPGA是英文FieldProgrammableGateArray的缩写,是作为专用集成电路(ASIC)FPGA是由存放在片内RAM中的程序来配置其工作状态的,因此工作的时候需要通过1.2.2FPGA的优点FPGA可以被称为可定制的特殊ASIC,它除了具有ASIC的特点之外,还具有以下几个2.FPGA芯片在出厂之前都做过百分之百的测试,不需要设计人员承担投片风险和费3.用户可以反复的编程、擦除、使用或者在不改动外围电路的情况下下载不同的数据3根据FPGA基本结构的不同,可以将其划分为乘税项技术的FPGA和基于查找表技术基于乘积项的FPGA主要由3个模块组成——逻辑单元阵列(LogicCellArray)、可编基于查找表技术的FPGA是目前主流的产品。查找表简称LUT,其本质就是一个RAM。完成FPGA开发以后,软件会生成一个最终的配置文件,不同类型的FPGA使用不同打印口上,另一端接在FPGA开发板的10芯插座上,FPGA有4个管脚与此插头相连a基于查找表技术的FPGA常使用SRAM保存程序。由于SRAM工艺特点,掉电后配置4图像是人类认识客观世界和相互交流的重要媒体,科学研究表明,人类获得信息的80%来自于视觉系统。可见,视觉信息的客观作用是其他信息所不能够替代的。计算机视觉处理可以看作是为了实现某一任务而从包含有大量不相关的随机量中提取不变量,即信息的简化。这就意味着要过滤掉一些不必要的信息而获得图像中的不变信息。而边缘信息就是一种非常重要的不变信息,比如在不同的光暗条件下物体某区域的外观可能会发生改变,但是物体的边缘不会改变,更重要的是,人的视觉系统对图像的边缘是非常敏感的,对图像的理解绝大部分来自图像的边缘信息。为了使计算机也能够像人类一样理解图像信息,边缘检测便成为此工作基础和前提。边缘检测的主要任务是对图像亮度变化的度量、检测和定位,在图像处理中有以下几(1)图像分割利用计算机进行图像处理主要有两方面的目的,其一是产生更适合人类理解的图像,其二是让计算机能够自动识别和处理图像。无论为达到哪一种目的,其中很关键的一部是把原有的图像分解成更小的基元,这些基元相对于整幅图更容易被处理或识别。图像分割的方法和种类有很多,有些分割运算可直接应用于任何图像,而另一些只能适用于特殊类别的图像。有些算法需要先对图像进行粗分割,对分割的结果再进行细致的处理。例如,可以对图像的亮度级设置门限的方法分割。许多不同种类的图像或景物都可作为待分割的图像数据,而且不同类型的图像,或是不同的应用领域,分割方法都不尽相同,某些分割方法只是适合于某些特殊类型的图像分割。其分割结果的好坏需要根据具体的场合及要求来衡量。图像分割是从图像处理到图像分析的关键步骤,可以说,图像分割结果的好坏直接影响对计算机对图像的理解5。(2)图像识别图像识别可在分割的基础上选择需要提取的特征,并对某些参数进行测量,再提取这些特征,最后根据测量结果进行分类。为了更好地识别图像,还要对整个图像作结构上的分析,对图像进行描述,以便对图像的主要信息得到一个解释和理解,并通过许多对象相互间的结构关系对图像加深理解,以便更好地帮助识别。所以图像识别是在分割后的每个部分中,找出它的边缘,形状及纹理等特征,即特征抽取(有时也包括图像分割),以便对图像进5对图像亮度(浓淡)空间分布模式的提取和分析。纹理分析在遥感图像、X射线照片、当今的FPGA工艺线宽己经达到40nm,数十万个逻辑宏单元,内嵌数十兆的存储位。工程师可以通过传统的原理图输入法或是硬件描述语言自由的设计一个片上系统,并通过EDA工具仿真。以Altera公司提供的FPGA的视频和图像处理方案为例,它包括经过优化和全定制的ASIC相比,更可贵的是FPGA的现场可重构性。在图像处理过程中,如果61.4.1论文的主要研究内容(1)对摄像头时序进行研究,并设计相应的驱动模块;(3)分析片上RAM在不同频率下的延迟,获得相应的读写时序规则;(7)验证系统功能,讨论其特点及不足。1.4.2论文的章节安排7长安大学硕学位论i第二章边缘检测算法及硬件平台简介2.1基于梯度的边缘检图像边缘检测是图像的基本特征之一,它蕴含了图像中丰富的信息,广泛应用于图像2.1.1问题的描述通常图像边缘可以划分为阶跃状边缘和屋顶状边缘,其中阶跃状边缘两边的亮度值有况。图2.3描述的是两种边缘的二阶导数变化8测算法及00图2.1阶跃状和屋顶状边缘亮度曲线图2*2阶跃状和屋顶状边缘亮度的一阶导数图23阶跃状和屋顶状边缘亮度的二阶导数可见,通过对图像函数梯度值的推导即可得到图像的边缘信息。这种检测方法是最为常用也是最为简单的检测方法,主要分为两种类型:一种是以一阶导数为基础的边缘检测算子通过求二阶导数中的过零点来检测边缘,检测处的边缘宽度较细,有利于边缘的精确定9长安大学硕土学位论文2.1.2基于一阶导数的检测算子边缘是图像中亮度变化较为剧烈的区域,可以通过检测亮度图像中各区域的梯度幅值大小来判定边缘信息。设图像的亮度为/Oc,:y),则在x方向,y方向以及0方向的一阶方向导数为:fy)-;”(2.1)它在位置Oc,>O的梯度定义为/^=\px^\fxy\fy(>yf(2.4)应欧式距离)其方向为:为了硬件实现的方便,可采用“城市距离”(以1为模)方式计算梯度幅值:或采用“棋盘距离”(以OO为模)方式计算幅值:边缘检测算子检查每一个像素的邻域并对其亮度变化率进行量化,通常也包括方向的确定。以上各式中的偏导数需对每个像素位置进行计算,在实际应用中通常采用小区域模板的卷积来实现。对各用一个模板,两个模板组合起来构成一个梯度算子。根据模板的大小以及模板中元素值的不同,人们提出了许多不同的梯度算子,最常用的有以下几个:Roberts算子等。这些梯度算子都是基于一阶导数的算子,当图像中亮度过渡比较尖锐且图像中噪声比较小的时候,此算子的工作效果比较好。Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子。对数字图像/(工,y),它的Roberts梯度由下式给出:其中和口,可用图2.4所示的模板计算。模板的计算结果为:如果G,Oc,>O大于某一阈值,则认为该点为边缘点。此算子的最大优点是计算量小,速度快,对实时图像处理非常有利。但该方法由于是采用偶数模板,所求的Oc,>O处的梯度幅度值4像素交叉点处的值,从而导致在图像Oc,>O处所求的梯度幅度值偏移了半个像素。Sobel边缘检测算子在以像素为中心的3X3邻域内做亮度加权运算,根据该点是否处于极值状态进行边缘检测,其梯度表达式如下:))fx-l,y-1)-4(x,y-)~f(x+l,y-1)Sobel梯度算子的卷积模板如图2.5所示:长安人学硕七学位论文可见,Sobel边缘检测算子是综合图像每一个像素点的上下左右亮度加权和,接近模板中心的权值较大。由于采用了比Roberts更大的模板,对噪声有了一定的平滑作用,而且没有梯度幅值在像素上的偏移。但此模板会检测出一些伪边缘,导致检测的边缘比较粗,降低111111111111111111111111111111111111111111111111110001220001221010001020110201012100000012133333033303333330333303333 图2.8Kirsch方向算子的卷积模板这三种边缘检测算子不把重点放在相邻的像素上,对噪声有一定的平滑作用,但检测的边缘也比较粗,定位精度比较低,容易损失例如角点这样的边缘信息。由于这三种边缘检测算子是通过8个方向模板向量对图像进行卷积,显然其运算量是相当大的,对于硬件的处理速度要求非常高。2.13基于二阶导数的检测算子为了克服一阶导数边缘检测算子的缺点,人们相继提出了与边缘方向无关的二阶导数边缘检测算子,如Laplacian算子和LOG算子。利用二阶导数零交叉处为一个像素的特点,保证了边缘定位的精度。但是由于图像边缘的噪声也是频域中的高频分量,二阶导数算子更容易受到噪声的影响,因而需要在导数运算之间进行适当的滤波。Laplacian算子是一个标量而不是向量,具有各向同性的性质。如果只关心边缘点的位置而不需要了解其周围的实际灰度时,一般选择该算子提取图像边缘。Laplacian算子即是估算算子的输出,找出零交叉点的位置。对于一连续函数Bx²dy²在数字图像中,此算子可近似用差分表示为:其模板表示如图2.9所示:此算子特点是各向同性、线性和位移不变性,对细线和孤立点检测效果好。但是边缘的方向信息会丢失,常产生双像素的边缘,对噪声有双倍加强作用。由于算子是二阶导数运算,与只包含一阶导数的算子相比,对噪声更加敏感,增强了噪声对图像的影响,因此通常先要对图像进行滤波平滑处理。LOG算子是在Laplacian算子的基础上发展而来的,该算子得益于对人的视觉机理的研究,有一定的生物学与生理学意义。数学上已经证明,LOG算子是按照二阶导数零交叉点检测阶跃型边缘的最佳算子。LOG算子为了减少噪声的影响先对待检测的图像进行平滑处理,然后采用Laplacian算子检测图像边缘。平滑函数采用了具有正态分布的高斯函数即:平滑后的图像函数为:g{x,y)=V²[G(x,y,a)*f(x,y)]=²(Gx,y,a)]*fix,y)(2.18)可见,通过以下两种方法计算Laplacian值是等价的:1.先求图像与高斯滤波函数卷积,再求卷积的Laplacian值;2.先求高斯滤波函数的Laplacian值,再求与图像的卷积;常用的LOG算子模板如图2.10所示:染-章边缘染-章边缘0000000000000000高斯函数的平滑作用会导致图像中边缘和其他尖锐不连续部分变得模糊,丢失一些重要的边缘信息,而且cr越大,平滑作用也就越强,但丢失的边缘信息就越多。如果采用较又会将它们连接在一起,这样只能够检测出一个边缘。因此,在抗干扰和检测能力上存在比2.1.4本设计采用的检测算子通过以上的分析可知,虽然二阶检测算子的精度很好,但计算复杂度较高,不适合作而一阶检测算子中除了Roberts算子之外,每次检测操作都需要9个或是更多的数据,Roberts算子的硬件比较容易实现,并且可以获得较小的延迟。本系统的要求是数据处理输出的速度不应小于数据输入的速度,否则将会出现数据丢失。但是无论是那一种算法,每计算一个边缘像素都需要4~9个像素的亮度信息,如果在读取若干个像素之后再进行检测运算,势必会导致计算过程无法在有限的读取周期内完成,为此必须采用多流水线方式进行运算。流水线的数目应该和每次参与运算所需像素个数相同,即如果采用Roberts算子,要用到4条流水线,其他的算法将用到9条或是更多的流水线。考虑到课题研究的重点并不是检测算法的设计,所以本系统将采用Roberts算子作为实时图像处理的验证算法。2.2FPGA开发板本设计采用了由Altera公司提供的DE1开发板,如图2.11所示:此开发板核心芯片为Cyclone⑧Ⅱ系列的2C20FPGA,其周边硬件资源如下:*4个按键(按下输出低电平*10个拨动开关*10个红色贴片式LED发光管*8个绿色贴片式LED发光管*24位音频编解码芯片*VGADA转化芯片*RS-232接口芯片以及9针插座*PS/2接口*两个40针扩展插槽染--章边缘检测算ii及圆件平台问介2.3Cyclonell系列芯片简介Altera公司所生产的Cyclone系列芯片具有低成本、大容量、高性能资源以及嵌入式存列。由于设计所采用的为Cyclonell系列FPGA,以下将重点对此进行介绍。2.3.1基本特性Multipliers)、嵌入式存储块(M4KBlaocks)、输入输出单元(IOEs)以及数字锁相环(PLL)构成。其 图2.12器件CycloneIIEP2C20逻辑单元是Cyclonell架构中的最小单位,其中包括了18x18位的乘法器、专用外部存储器供高效的逻辑利用率。表2.1列出了Cyclonell器件的特性。LEs数M4KRAM块总RAM比特数嵌入式乘法器锁相环数22最大用户I/0引脚Cydonell器件提供多个18x18位的乘法器(见图2.13),法器都可以被配置为一个18x18位或两个9x9位的乘法器。 aB镇AAoxr图2.13CycloneII器件内部的嵌入式乘法器U类型也可以。所输入的数据DataA和DataB的数据类型通过signa和signb来控制,当其为Register可以把乘法器配置为寄存器输入输出或直接输入输出方式最大位宽为32位的双口存储模块。若干个M4K块在芯片中排成列形成M4KColumns,这些列分布在一第_.章边缘检测算法及哽件平台间介6每一个M4K块可以实现不同的存储器类型,包括truedual-port(实双口)模式RAM、simpledual-port(简单双口)类型RAM、single-port(单口)RAM、ROM以及FIFO缓表2.2不同器件型号中的M4KColumn的数量以及M4K块的数量:M4K块数量222335Cyclonell器件具备最多4个增强型锁相环(PLL),提供先进的时钟管理能力,其主长安人学硕t学位沦文(1)外部时钟输出和时钟反馈每个PLL支持一个差分或一个单端外部输出时钟。每个PLL带有一对外部时钟输出管脚。外部时钟输出管脚支持多种I/O标准,如表2.1所示。外部时钟输出可被用作系统时钟(2)可编程相移(3)锁定检测信号锁定输出指示当前己经有一个稳定的和参考时钟同步的时钟输出信号。锁定检测信号(4)可编程占空比可编程占空比允许PLL产生不同占空比的输出时钟。可编程占空比特性对于双倍数据速率(DDR)应用非常有效,在这里数据可以在时钟的正负边沿都进行数据传送。可编程占(5)可编程带宽住参考时钟,并抵制时钟中的任何变化。低带宽的PLL将花费较(6)时钟扩频扩频技术被用于降低系统的电磁干扰(EMI)。这种技术通过在宽频率范围内分配时钟在200kHz的调制频率上进行了2%中心扩展的输入时钟。2.4THDB-D5M摄像头2.4.1摄像头的接口描述图2.15是本设计采用的图像传感器外观及其接口,是由Terasic公司生产的500万像素COMS“THDB-D5M”型摄像头(简称D5M)。DMtNC此摄像头采用40帧引脚接口,和DEl开发板的扩展槽完全兼容。表2.3为外部引表2*3D5M摄像头引脚功能描述传输方向描述外部输入时钟像素同步时钟r²C总线时钟,频率小于400KHZ1C总线数据线帧同步信号线,高电平有效行同步信号线,高电平有效像素数据输出f位端,低电平有效拍照模式触发信号拍照模式闪光灯输出信号D5M以逐行扫描的方式把传感器中的视场像素值通过数据线D0-D11输出,并通过FVAL、LVAL以及PKCLK信号进行同步。为了让D5M以希望的方式进行工作,可以通过IC总线对其进行配置。配置后的D5M可以工作在连续摄像模式或拍照模式,本设计只用到连续摄像模式,所以表2.3最后两个接口不会用到。2.4.2摄像头的像素矩阵结构D5M的像素矩阵大小为2752列X2004行。不同的行列地址对应了视场中不同位置的bourdny4原点其中ActiveImage区域为D5M默认的输出像场,分辨率为2592行X1944列。外围的ActiveR、B)。如图2.17所示,在每一行的像素中,只有两种颜色的数据。这种像素分布格式对于显示效果非常有利但对于计算亮度就必须连续采样到两行之后才能进行。原点RBBRBBRB图2.17彩色像素的输出格式默认配置下,像素矩阵的原点位于传感器像场的右上角,并且被从右向左逐行读取输出。在行与行之间以及帧与帧之间还有若干空白数据,通过配置可以改变有效像场的分辨率2A3D5M的数据输出时序 lijUTi] 晏T图2.18D5M的数据输出时序2.S.1LTM液晶屏接口描述为文天其公重为文天其公重DGG21欺R道R表2.4为主要接口功能描述。表2.4LTM液晶屏弓脚功能描述传输方向描述主时钟复位端,低电平有效行同步信号线,低电平有效帧同步信号线,低电平有效像素数据有效使能,高电平有效三基色像素数据输入为正确使用此液晶显示器,对其工作时序的分析是相当重要的,图2.20以及图2.21为NCLKt图2.20行同步时序2.21帧同步时序G0-G7液晶屏的行、帧同步时序图.K的周期长度。后沿时间和前沿时间分别占用216和40个时钟脉宽。有效像素数据宽度。占用800个时钟脉宽,行周期共计1056个时钟脉宽。8位的像素值R、G、B将在DEN有效且NCLK上升沿处写入LCD并显示出来。帧同步时序中,VD为同步信号,VD的低电平对应一行的开始,电平宽度为1个行周期。后沿时间和前沿时间~^分别占用35和10个行周期。有效行数据宽度^为480个行周期,一行共计525个行周期。长安人朵硕丨学位论文3.1系统工作流程介绍存证图3.1系统工作流程行储据壤冲)3.2系统结构框图RESET信号转换处理器图3.2系统结构框图(6)行RGB存储器。从FIFO读入的是RGB格式数据,并且三种(7)亮度处理器。通过乒乓操作方式读取行RGB存储器中的数据并把计算的亮度值写入帧(8)帧亮度存储器。保存每一帧的亮度值。3.3重要模块介绍的时序要求。但是作为一种好的系统设计理念,专门构建一个RESET模块协调整个系统之端(RESET_OUT[0..7】),且都是低电uuTT3.3.2摄像头的IC接口配置D5M摄像头的工作模式有两种,连续工作模式与触发工作模式。触发工作模式适用于瞬时图像信息的获取,本系统中不采用,而默认的连续工作模式中,摄像头所传图像的分辨率以及帧速都不能够满足系统的要求,即使满足,也应该能够通过某种方式来改变为后续的调试提供方便。所以在系统正常工作之前,必须对摄像头进行配置,实现的方式是通过IC串行通信接口对它进行寄存器配置。如图3.4,其中SCLK为时钟线,SDAT为数据线。D5MD5M摄像头由于配置过程中需要从主机向从机(摄像头)发送信息,所以用单向箭头表示信号的传输方从摄像头DATA端口传出的数据中不但包含了RGB像素信息,还有一系列用于调节过FIFO缓冲。但直接把11位的像素数据写入缓冲队列不但会占用大量的存储位,而其会损BB像素值像素值像素值像索值地址地址BB像素值像素值像素值像索值地址地址地址地址RR像素值像素值像素值像索值地址地址地址地址地技地址地址律素值像景值像景值像素值地址地址地址地址图3*5地址作为同步信息直接写入队列每一帧的分辨率为256x512,所以每个像素的地址需要占用17个同步位,这对于采用EP2C20型的FPGA的片上RAM来实现的FIFO是不现实的。步位置“1”,其他所有同步位置“0”(如图3.6所示)。当把这样的数据流从FIFO读出重海帧的开始重海帧的开始(同步位)值0R律像值像君见像肃硫像素白像整值像素血像繁优像素值像紫像像觉信牌素值值承BBt0000000000图3.6帧开始写入同步信息此方法要求同少位必须精确的写第三草赣弁始,更重要的是同步位的周期必须严格等亮度处理器完成把从FIFO读入的RGB格式的像素信息转换成亮度格式信息并存储在亮度存储器中。除FIFO之外,亮度处理器将读取四块RAM,两个用于存储彩色行信^息,如图3.7所示,从摄像头输出的RGB三基色像素分布在两行数据中。为了计算一个亮度信息,必须连续采样完毕1行+2像素,以获得相邻4个RGB像素值。在图中所示的完整的像素单元中GI、R和B、G2之间刚好相差一行的像素。B1闲基于以上的分析,可以采用乒乓缓存、乒乓计算的方式来获得像素的亮度值。亮度处理器从FIFO中读取两行彩色像素值并存储到一个行缓冲存储器中,同时读取另一个行缓冲帧数据之后就转向写入存储器B,如图3.8所示,图中的虚线和实线区分了乒乓操作的不同3*3.5边缘检测处理器边缘检测处理器的任务就是通过乒乓操作读取这两个存储器中的亮度信息并计算边缘信息。所计算的结果同样要以乒乓操作方式写入到两个边缘存储器中。如图3.9所所计算的结果同样要以乒乓操作方式写入到两个边缘存储器中。如图3.9所来自亮度处理器(缓存1帧亮度信息)(缓存1帧亮度信息)图3.9乒乓操作方式计算边缘信息3.3.6边缘数据的分配输出最终的检测结果同样需要采用乒乓操作的方式读取出来。由于输入到LCD的显示数据边缘得到边缘信息之后,最终通过LCD显示屏输出显示。由于此时信息己经保存在边缘RAM中,需要把数据从此RAM读取到LCD。但是LCD液晶显示器本身也有严格的时序,此时序和RAM的读取时序并不一致。所以需要通过控制器把数据从RAM中读取出来并依照严格的时序驱动LCD显示。如图3.11所示。图3.11LCD接口控制3.4乒乓操作时序研究乒乓操作是本系统实时特性的关键,其难点是时序的同步机制的控制。本节将详细介绍各处理器之间的工作时序同步情况,为后续的硬件实现奠定基础。图3.12为整个乒乓操为了表述的方便,把相关的存储器以及处理器等模块表示如下:长&人学哽I:学位论文保存保存帧息12乒巽操作系统框保存1整5保存2行保存1賴亮度信息图保存|帧!制器彩色像素数据并完成一行的亮度计算工作。由于系统最后输出的边缘图像分辨率为256列的行列分辨率必须加倍。即从摄像头读取的采样分辨率应该是512列X256行。所以每一帧的亮度计算需要从摄像头读取256行数据,对应了128次行缓冲周期,64次行乒乓操作周期。图3.13为PROJL的乒乓操作周期示意图。从图中可以看到,PRO_L是具有两个流水线,流水线1负责从FIFO读取数据并存储到RAM_LINE_A和RAM_LINE_B中;流水线2负责从读取RAM_LINE_B和RAM_UNE_A经过128次行缓冲周期计算出了128行的亮度信稳分析完成一帧亮度计算(注:第1个行缓冲周期中计算的是前一帧的最后一行的亮度信息)。流水线第丨个第丨个帐级冲周期。第丨个行兵兵操作周期,向帧RAM写入H行摄像头前1帧的最后两行数据读摄像头第!帧的508、509行读摄像头菜1帧的最后两行(511、512行)11RAMLIGHTIB并i1算,结果写入RAMEDGEi-读RAMLIGHTA并计算,结果写入RAMEDGEB*-第1个行缓冲周期—------------X-------------第2个行缓冲周期.............*流水线2读RAMLIGHT_B并计算,结果写入RAMEDGE_B读RAMLIGHTA并计算,结果写入RAY'EDGEA第1桢的最后两行数据读FIFO云RAML1GHTA流水线2第1个行缓冲周期-----▶《—----第2个行缓冲周期-------------《—----第128个行乒乓操作周期,共写入了2帧---通过以上的分析,采用状态机实现处理过程时,如果每一个行缓冲周期对应sta_1个状态,则每一次帧乒乓操作一共需要的状态数为:2x64kc2xs学硬1256论ta_l每一个行缓冲周期和所需处理的数据量以及采用的流水线数目有关为了提高系统的实时性这个状态数越少越好。在处理器的设计实现中将采用多流水线结构以降低所需的状态数,提PROL和PRO_E交替的对帧亮度存储器RAMLIGHT_A和RAMLIGHT_B进行读写操作。图3.14描述的是一次边缘检测中对帧RAM中数据的读取过程。读取RAM_FRAMEA中的第一个像素数据pz-2pz-2图3.14PRO_E读取帧RAM322为了保证PRO_E能够实时的把数据从存储器中读出并在做完边缘检测之后立刻写入描述了通过4级流水线同步对读取的数据进行边缘检测过程。可见,通过4级流水线,每一个像素处理周期被延长到读取周期的4倍,这种方法有效的解决了系&实时性和边缘检测对2|34级流水线边缘检测运算第四章系统设与实现4.1复位模块设计由于本设计中有若干需要进行复位的模块,如摄像头、I2C控制器、液晶屏等,这些模块复位所需的脉宽不尽相同,如果简单的使用一根复位线,很可能会造成某个模块没有成功复位确被其他模块看作处于正常工作状态。为此设计系统复位电路,使各模块的复位过程分4.1.1波形设计设计的复位电路具有8个复位输出端,通过复位输入使能,可以使这8个复位输出端4.1.2硬件设计通过VHDL语言设计(源代码见附录1),所生成的电路模块外部接口如图4.2所示:GG保存1賴5当通过硬件对电路进行复位之后,此状态机取值为staO,RESETi复位信号使能之后,状态机状态将变为sta(i+1)。在状态机变化之前,有一个计数延迟过程,模块中的模256进制计数器把输入时钟进行了分频,产生计数寄存器tempO,之后每当tempO加1对应延迟一个单位。图4.2中的9个参数的单位就是这个延迟时间。通过时状态机处于的复位信号输出状态通过QuartusH软件的时序仿真,得出波形如图4.3所示:关败关败4.2D5M摄像头的配置模块设计在D5M中有256个16位控制寄存器对摄像头的工作方式进行配置,从而改变摄像头使用奇数来设定每一帧的像素高度,最终实现的高度等于设定值加1,如果使用了偶数来设定,则等效设定偶数加1。取值范围是1—2005。使用奇数来设定每一帧的像素宽度,最终实现的宽度等于设定值加1,如果使用了偶数来设定,则等效设定偶数加1。取值范围是1—2751。增大或减小此值可以改变帧内相邻两行有效数据之间的像素数,从而改变图像数据的值范围8—2047。在D5M上电之后可以通过IC串行接口协议对这些寄存器进行写入。图4.4是写入钟线的频率不能高于400KHZ。起始位应答位一数据低宇节—答读写控制宇—应答位数据离字节—应寄存器地址应答位位如图所示,一次完整串行配置数据中包括如下几部分信息:1.起始位:当主机的时钟线为高电平时,数据线出现了下降沿,则被从机认为是一次传送的开始。2.读写控制字:通过总线,主机可以读写摄像头的寄存器内容。在起始位之后有一个8位的读写控制字节,当此字节为“OXBA”时,实现写控制,为“OXBB”时,实现读控制。3.寄存器地址:摄像头内部一共有255个控制寄存器,用8位二进制数进行寻址。由于采用的是16位的寄存器,所以需要把16位二进制数分为高低字节分别传送。5.应答位:在每一次的8位串行数据传送之后,紧接着就是一个应答位,但本设计中对此应答位进行忽略以简化设计。6.停止位:当主机的时钟线为高电平时,数据线出现上升沿,则被从机认为是一次传送的结束。本设计最终的采样分辨率为256列X128行,所以图像采集的分辨率应为512列X256行。由于摄像头中靠近中心的CMOS传感器灵敏度较高,而且便于操作,所以将图像位置尽量放在中心位置。假设传感器最大像素宽度为W,最大像素高度为H,采样所需的像素宽度为w,高度为h,则像素原点坐标应为:即RowStart寄存器应写入“0x038A”;ColumnStart寄存器应写入“0x0480”;RowSize寄存器应写入“Ox0OFF”;ColumnSize寄存器应写入“OxOIFF”。其他的寄存器写入默认值,在最终_试需要时再适当调节。4.2.2D5M的I²C控制模块设计图4.5是VHDL语言所编写的控制模块,其源代码见附录;T²C*Controilef)ACKrXCLK是外部时钟输入端,考虑使用的频率数据线。ACKn是应答数据线,不过此设计中ACKn不使用。图4.6描述了此设计的所采用0K图4.6IC控制模块的时序状态图00经止取态经止取态由于时钟要求的最高频率为400KHZ,所以必须对外部频率进行分频,indk就是被分在STARTn之前有效。为了方便对数据信号线和时钟信号线进行同步控制,在模块内部放置一个状态机,在inclk上升沿,状态机从staO依次变化到sta42。当RESETn信号有效时,状态机被置为sta42,复位信号过后一旦STARTn输入有效状态机将从staO·变化到sta42,此过程中,32位的数据将分4组严格依照时序要求传送出去。每一组8位数据传送之后应该接受来摄像头的应答位,为简化设计,此处对应答位不做处理,直接从数据端输出高阻,在图中用仿真,得到图4.7的仿真波形和设计波形完全吻..omo心43T心434.3像素数据的格式转换4*3.1像素位宽的转换通过对2C20中存储位的计算,发现FIFO数据位最宽只能为3bit,其中Ibit为帧同步位,所以有效的像素位宽为2bit。从D5M中输出的数据位宽为12bit,取值范围0~2"-1。如辨能力·为此设计控制接口用以通过DE1开发上的拨动开关来改变转换所需要的阈值。通过VHDL语言实现后的转换模块如图4.8所示。其代码见附录3。AA米自图4.8像素位宽转换】这10个拨动开关的输出状态·并记录前3个输出高电平的开关序号,把这三个序号存储到三个数组数据取4种不同值的分界线。这种方式可以很形象的通过拨动开关对原像素范围进行分段,相邻两个拨动开关如果置为高电平意味着这两个分界线最小(为370),相距越远分界线也相补了由于像素精度偏小带来的缺陷。HFO数据的最高2位为转换后的像素值,最低位为每一帧的起始位标志。此模块将对D5M输出的行、帧同步信号进行分析,找出帧起始时刻,并向对应的像素值后追加帧起始位,形成3bit宽的数据流送入FIFO中。图4.9即为通过VHDL语言所实现模块图形符号,其源代码见附录3》其源代码见附录3》此模块的输入信号为来自D5M的帧同步信号fval、场同步信号Ival、像素同步时钟信通过图2.8可以看出,如果fval为高电平时1val从低电平跳变的高电平那一定对应了一行的开始。如果fval从低电平跳变到高电平后Ival第一次从低电平跳变那一定对应了一巾贞的开始。程序通过fval_sta和Ival_sta保存上一次时钟pix_clk下降沿时fval和Ival的电平状态,和本次下降沿的fval、Ival电平对比即可知道本次数据是否为帧起始像素或行起始像素,虽然本设计中并不适用行同步信息,但为了调试的方便,程序中也实现了行起始位的计算,但相关代码被注释掉了,以备调试需要。为了向FIFO准确写入有效的数据,过滤掉空白数据,如图4.10所示,可以将wrequest信号和fval、Ival的电平状态相关联,显然只有两d2图4.10帧开始部分波形图对设计进行时序仿真的结果如图4.10-4.13所示:011 仿真的输入时钟pix_clk采用50MHz方波,数据data_from_d5m采用自加计数方式模拟像素值,fval和Ival都设定为合适的波形,通过分析波形图,发现数据data_to_fifo有大约8.9ns的延迟,并且输出数据稳定在fifo_clk始变为有效,结束于最后一个帧像素数据之后,虽然数据出现延迟,但是从图中可以看出,数据都能够稳定在时钟的上升沿。分析wrequest的延迟发现相对于fifo_clk的上升沿,只有约6ns的建立时间,如图4.13所示,此时间长度可能将影响后续写入FIFO>.CSus6.09us613us61了u:5MegaWizard工具即可配置出所需的电路端口功能由表4.1描述:表4.1FIFO端口描述传输方向描述输入被格式化后的数据流写FIFO请求信号,高电平有效写FIFO时钟信号,上升沿有效读FIFO请求信号,高电平有效读FIFO时钟,上升沿有效FIFO读出数据4.4.2时序仿真分析由于系统工作频率较高,电路中的延迟可能会对所设计的电路逻辑产生严重的破坏,A时刻如图4.15所示,设定输入数据DATAJN为自加计数,计数频率和写入频率wrclk、读出频率rddk相同,都为50MHz,考虑到前面对数据流格式化的时序分析结果,写入时钟相移设定为17ns,这样就较好的模拟了写入端的时序情况,如图4.16所示:龟dr图4.16写入时钟相移的设定仿真结果显示,在A时刻和B时刻之间数据保持不变,ftdrI^-0*此处的FIFO为空,A、B两时刻附近的读出波形如图4.17及4.18所示。图4.18B时刻后FIFO数据非空写入数据在wrclk上升沿且wreq为高电平时有效,所以在此时间段附近写入的数据时刻的仿真结果,如图4.19所示及4.20所示。s21.34u写入错误位015箱021.34u写入错误位015箱0*的仿真波形可知,在C、D时刻附近所写入的数据为…0、1、0、1…,但读出的数据却为…0、1、1、1…,第三个数扼应该是0却被读出了研究之后发现是在写第二个“0”时所加的wrrcq有效电平到来的太晚,虽然在wrclk上升沿以前到来,但是由于建立沿处,问题得以解决,如图4.21所示。沿处,问题得以解决,如图4.21所示。江的诉画电平提前r向田“0”被读出T5i-长安大学硕1:学位论义如果rddk也设定为50MHz,则仿真结果如图4.22所示:MasterTimeBar21.2300860J《*Pop>te》21.03utIntervat-20009njru-LnrLTLnjij’8~图4*22有效读取时刻为rddk的上升沿rrrtg良k/ 图4*23读请求信号的时序测试需要把rdreq置为有效或无效,为了保证精确的读出每一个像素信息,从图4.23可以看出,换中,如果FIFO没有溢出即可连续读出FIFO中的数据》4.5片上RAM的配置与仿真冶W孕系统设计马*现终的读写时序和理想情况产生很大的是异,所以需要对配的RAM进行严格的时序仿真测试,获収真实可靠的时序关系。为后续处理器的设计提供重要依据。4.5.1双口RAM(DPRAM)的配置本系统要用到3组共6个片上DPRAM,各组分别用于缓冲四行彩色像素数据、两帧亮度图像数据和两帧边缘图像数据。其中行存储器大小为1024字,每个字为2位;帧亮度存储器大小为32768(=215)字,每个字为2位;帧边缘存储器大小为32768字,每个字为1位。图4.24为配置后所生成的图形符号。32768wprd(s)两图不同,读写时钟也相互独立起來。这主要考虑到数据最终的输出显示是通过LCD控制器来读取帧边缘存储器的,控制器读取的速度不可能和边缘检测处理器写入的速度相匹配。以上三个存储器只有写使能控制端,没有读使能控制端,这种配置方式可以减少处理器的控制4.5.2时序仿真分析首先对DPRAM进行功能仿真,获得理想的读写时序关系。图4.25为时钟为50MHz时的DPRAM的读写仿真波形图。1艺斯现在荒口处人地址130国r习7从图中可以看出,仿真过程中,写入使能一直有效,数据在时钟上升沿处写入存储器。在190ns处q端输出数据2,M然这是地址1处的数据,但此地址在前一个上升沿图4.26为写使能仿真波形。其中写使能信号在290ns处被设为无效,并且在时钟的上升沿以前变为低电平,而有在下一个上升沿之前变读出无效数据0vradd数据通过仿真结果可以看到。最终读取的数据中地址14的输出值为0,而地址15的数据输311r+19M5M+H0.0159174n*JX6XXIBXITX18X19X20L通过仿真结果可以看出,当读写地址都为15-21时,输出端口数据为零(无效)。在时刻140ns处,两地址又不同,读出数据有效。所以在使用DPRAM的时候要防止同时对一个ru~i_rxj~Ln_njurLrLTLX仿真结果表明,当时钟频率为50MHz的时候,从地址在上升沿送入存储器开始,数据在延迟1.5个时钟周期后出现在端口处,最佳的读取数据时刻在地址送入后的第二个上升沿图4.29为写使能测试的时序仿真结果,其中的写使能信号wren在时钟上升沿的590ns之前开始变为低电平,但结果表明这个低电平并没有起作用,地址49单元仍然被写入了数据1。研究其原因是因为wren的低电平出现的太晚,导致建立时间不够。通过若干次试验,发现只有当建立时间大于6ns时,此低电平才能够起到作用,仿真结果如图4.30所示。0铝然六数活图4.29写使能低电平无效45xX4TX^8X49X50x5图4.31是通过若干次测试得到的写使能控制的极限情况,从图中可以看到,在电路延迟的影响下,写使能信号需要在时钟上升沿前约6ns到达,并保持至少2ns时间。如果写使能高电平不能满足这个电平时序.数据将无法$$写使能信号习3.8节中介绍了亮度处理器?110_1^的乒乓操作过程,本人以此为基础,通过硬件描述4.6.1处理器的端口描述首先PRO_L是以并行方式来完成数据的读写和运算的。从图3.24的设计结果来分析,处理器的最小处理周期为一个行缓冲周期。在此周期中,处理器将从行RAM中读取RGB像素数据并把计算的像素亮度数据写入帧亮度_中,同时将从FIFO读取RGB像素数据并写入另一个行RAM中。所以处理器所设计的关键就是对这个操作过程的实现。图4.32为VHDL设计实现后生成亮度处理器模块,完整的源代码见附录4。其外部端口描述如表4.2所示。 图4J2亮度处理器模块表4.2亮度处理器的外部端口描述端口名称10方向功能描述时钟信号复位信号,低屯平有效HF0数据输入端口HF0读空信号输入端,高电平有效行RAM(A)数据输入端行RAM(B)数据输入端读FIFO请求信号,高屯平有效raml_ab_wraddr_out[9..写行RAM地址输出端ram.ab_rdaddr一out[9.读行RAM地址输出端raml_ab_data_out[1..写行RAM数据输出端写行RAM(A)使能输出端,高电平有效写行RAM(B)使能输出端,高电平有效ramf_ab_wraddr_out[9..A写帧亮度RAM地址输出端写帧亮度RAM(A)使能输出端,高电平有效写帧亮度RAM(B)使能输出端,高电平有效ramfapp一free—reset帧亮度RAM(A)空闲信号输出端,低电平有效帧亮度RAM(B)空闲信号输出端,低电平有效写帧亮度RAM数据输出端4.6.2处理器的状态描述处理机的状态机工作的核心,所有的操作过程都是在此状态的同步下有条不紊的进行的。处理器通过采用4组状态寄存器实现整个处理过程的状态计数:这四个状态寄存器从staIbuf到stafpp嵌套计数,以完成两帧亮度信息的计算存储过程。整个行缓冲周期的机器状态数是大于两行的像素数1024的,因为状态数目要同时满足读写FIFO和RAM而且要满足亮度计算存储过程。状态改变发生在elk的上升沿,并且其初始化时通过读取并判断FIFO中的帧开始标志位实现的。图4.33描述出一个行缓冲处理周期中PROL的工作状态。网辑出心尝据 A225.4结的分析结果指出,对FIFO读取的最佳时机在FIFO读时钟的上升沿,为此特别安排FIFO和PRO_L的时序同相位。当处理器上升沿到来的时刻,FIFO的输出数据已经稳定的出现在了端口处,如图5.32中所示,其中菱形框中表示的是像素在行中的偏移地址。为了在一个缓冲周期中连续的读取1024个像素数据,所以令读FIFO的使能信号线fifo_rdreq_out的有效时间为从末态转换完成之后开始到1023状态刚刚转换完毕结束。这种设定的方法也是基于5.4结的分析结果,可以保证连续读取两行的RGB数据。从FIFO读取数据之后要立刻写入行RAM中,为了不让写入过程占用额外的处理器状态,采用并行读写方式。即连续从FIFO读取的数据同时连续写入RAM。如图所示,处理器从FIFO端口读出数据之后就立刻建立写入输出地址,并和刚读取的数据送到端口处,这样一来在相邻的始终下降沿数据就会被写入行RAM中。(为了使数据在elk在写RGB数据到行RAM的同时,处理器还要从另一个行RAM中读取像素数据计算亮度信息并把计算结果存储到帧RAM中。如3.3.4所指出的亮度计算方法,计算每个亮度信息所需要读取的行RAM的地址和缓冲状态关系如表4.3所示。表4.3计算亮度时所读的行RAM地址与行缓冲状态的关系行缓冲地址023⑤把add_reg除以4(右移两位)并送到端口ramf_ab_data_out;前4个步骤是不间断被执行的,所以必须把后三步并为一步进行实现。考虑到前三步4.33所示的写帧RAM的地址和数据输出时序,菱形框中所写的是所写亮度信息在对应行的偏移地址,显然这个写入速度是前面所述的读取RAM速度的1/4,所以有着充裕的时间计算4.7边缘处理器的设计4.7.1处理器的端口描述边缘处理器的任务是基于经典Rob算法对帧亮度RAM中的图像数据进行边缘检测。最终处理的结果将存储到边缘RAM中以供LCD控制器读取。为了保证处理的实时性,同样采用乒乓操作方式完成数据读取、处理和数据写入过程。并在数据处理过程采用4级流水线式实现阈值的变化。通过VHDL语言生成的边缘处理器模块如图4.34 rame一bwren一out 表4.4边缘处理器的外部端口描述端口名称10方向功能描述。时钟信号帧亮度RAM(A)数据输入端帧亮度RAM(B)数据输入端帧亮度的乒乓操作控制输入aramf一b_pp—reseti叩ut帧亮度_的乒乓操作控制输入b边缘检测阈值增大控制ramf_ab_rdaddr_out[14.读帧亮度RAM的地址输出边缘检测结果数据输出rame_ab_wraddr_out[14..a写边缘RAM的地址输出边缘RAM(A)写使能输出边缘RAM(B)写使能输出边缘(A)读允许控制输出边缘(B)读允许控制输出边缘检测闽值LED显示输出4.7.2处理器的状态描述图4.35为边缘处理器PRO_E的状态时序图。在对PRO_E的状态控制中,采用了对整个帧进行运算作为一个状态周期。从亮度处理器传来的乒乓操作复位信号到来之后,PRO_E将读取没有被亮度处理器写入的亮度RAM。通过这种方式,边缘检测运算将被启动,并可以保证?11O_1^和PRO_E不会同时操作一个亮度RAM。《[亮度RAM时钟处理《状态Oil入线入写边缘跑第四竞系统设计与实现1B图43SPROE的状态时序gC数输水从图中可以看出,读帧RAM的地址和PRO_E状态同步递增。考虑到读RAM的时序要求,PRO_E和RAM的时钟频率相同且反相,以此可以保证输出的地址可以在帧RAM时钟上升沿处被可靠锁存。从4.5节对双口RAM的读取时序分析结果可知,帧RAM的输出数据将稳定输出在数输水对进行边缘检测所需的像素数据。如图4.36所示。运算寄存器图4J6边缘检测过程中所用的寄存器由于每一次运算的过程需要获取四个像素的亮度值,但如果每计算一个边缘像素都从RAM中读取数据势必会产生亮度值重复读取的现象,使处理器的吞吐量大大降低。为此,通过寄存器把后续需要用到的亮度数据缓存起来。图4.36中的寄存器regO~reg255为行寄存器,每-次读取的亮度值都会被存储在这个行寄存器中,以备下一行的边缘计LQ安大学硕士学位论文reyeg_cS之前以读取的亮度值。处理器中的4个流水线都有自己的运算寄存器,记为图437寄存器的读写在处理器的4级流水线中,每一级都有以下三个工作状态,如图4.35所示,每个工作状态A:第四章系统设计与实现状态B:状态C:计算边缘RAM的写入地址并把regj送出端口输出地址,也送出到输出触发器的数据输入端上,等处理器进入C状态之后(此从边缘RAM中读取,并且LCD所需要的同步信号必须完全自行设计,综合考虑这些需求,口,可以有效的从RAM中读取边缘信息。接口模块如下图4.38,其源代码见附录6。此模块依照LCD同步时序要求输出行(hd)、帧(vd)以及数据有效(den)同步信号而地址信号。在read_clk的下降沿处,边缘RAM的数据会被锁存到内部寄进程中采用变量count_h、count_v作为行、列扫描计数器,count_h在主时钟下降沿到来之后进行循环计数,计数范围为0一(Thbp+Thd+Thfi)—1),(:O11时_^在OO1111_11归零时刻进行循环计数,计数范围为0一(Tvbp+Tvd+Tvfi)—1)。在进程中,程序将考查这些计数器的值来改变hd、vd、den同步信号的电平。同步信号的波形仿真结果如图4.39所示: ECLf5CM从仿真结果发现,主时钟nclk_Ick和同步信号之间有大约3ns的延迟,为了检验延迟对显示效果的影响,把输入数据设定为高电平,下载后显示效果如图4.40所示。除此之外,为了产生读取RAM的地址信号,进程采用变量addr_h和addr_v输出图像的坐标映射值,addr_h为行坐标值,取值范围为(0一255),addr_v为纵坐标值,取值范围为(0一127)。由于边缘图像的分辨率为256X128.而显示器分辨率远大于此,所以程序设计的初(addr_h/Thd*col_input+col_input*addrv/Tvbp*row_input,1但是仿真之后发现,所输出的地址值为0,分析发现是因为此代码综合之后电路比较复杂,所产生的运算延迟时间远大于主时钟的周期,导致运算无法正常进行,为此将以上算法进行了简化.即不采用压缩变换方式,而是把边缘图像放大两倍的方式显示在屏幕中心,这样的运算过程只会涉及加减运算以及除2运算,使综合后的硬件延迟大为降低,仿真结果如图4.41结果显示地址的输出逻辑正常。由于从RAM中读取数据将比读取时钟延迟两个时钟周期,而且LCD的数据是在主时钟nclkjck的上升沿写入的,而且电路本身也有延迟,所以采if(count_h>=(Thbp-2+14由于从边缘RAM中读取到的数据将延迟一个读取时钟周期,所以代码中地址产生提前4.9系统设计与实现结果图4.42实时边缘检测系统电路图图4.43为系统硬件外观,图4.44为实时边缘检测结果。通过实时检测可以看到在只有50MHz的时钟频率系统下获得了和PC机相当的实时处理速度,图像没有丝毫断帧或停顿现象,检测效果理想。但缺点就是分辨率太小,摄像头的视角很小。这个缺陷完全是存储芯片的嵌入式RAM位太少导致的。为了能够正确使用摄像头和LCD显示器,必须详细的掌握其驱动方式。其中的时序波续模块的捕获和鉴别数据功能的设计提供依据,而且要LCD要考虑系统资源允许的分辨能力而且还要兼顾有较好的显示效果,以及主动读取RAM系统的工作时钟在50MHz,FPGA的延迟大约有半个时钟周期,会极大的影响各模块的工4.模块的VHDL代码实现。1.通过片外RAM或更大的嵌入式RAM提升图像质量系统最终有效分辨率只有256列X128行,只有4阶亮度,导致摄像头的视角很小,并设计结果已经完全验证了系统结构和处理器的可靠性。多级流水线设计的成功保证了今后可以通过硬件实现更好的边缘检测算法,使检测的效果得到质的提升。[1]蔡立晶蔡立娟杨立.基于指纹图像边缘检测算法的比较研究[J].中国新技术新产品,2009(01):34[2]刘昌孝.专用集成电路设计[M].北京:国防工业出版社,1995:12-14[13]马涛,赵宇,来清民.基于80C552单片机的多芯片同步复位电路[J].微计算机信息,2007,(11):[15J朱玉娥,吴晓红,何小海.基于GPU图像边缘检测的实时性[J].电子测量技术,[16]左颢睿,张启衡,徐勇,赵汝进.基于GPU的快速Sobel边缘检测算法【J].光电工程2009,(01):8-12[17]邱铁西方,迟宗止,ARM流水线关键技术分析与代码优化[J].单片机与嵌入式系统应用,2009,(03):[18】盖素丽,基于GPU的数字图像并行处理方法(J】.电子产品世界,2009,02):38*40,48[19]陈勇涛,段成华.一种适合ECC的三级流水模乘加单元设计[J].微电子学与计算机,2009,(02):Algorithmica,1994,12(2-3):72~109.2007,1(2):156~165.[27]戴立新,王泽勇,王黎.I2C总线接口的设计及验证[J].现代电子技术,2009,(02):132-134[36]王喆,刘金国,王亚军.高速数据采集系统的数据流无缝缓存技术[J】.微计算机信息,XCLK:INSTD_LOGIC;RESETO:OUTSTD_LOGIC—the2nddelayedresetoutput—the4thdelayedresetoutputARCHITECTURERESET_architectureOFRE,,rst7:std_logic:='r;signallocked:boolean:=false;process(HARD_RESET,XCLK)varst_sta:type_sta_ma:=:if(HARD_RESET='0'andlocif(temp1=DELAY0)thenrst0<='0';rst_sta:=stal;endif;if(templ=DELAYI)thenK安大学硕士学位论文rst_sta:=sta6;endif;rst_sta:=sta7;endif;elsif(templ=DELAY7+LOW_WIDTH)endif;endcase;endif摄像头配置模块源码X”BA0300FF”signalConfig_Data:std_logic_vector(signaltran_count:integerrange0toConfig^Data_Table'high:=Config_Data_Table'high;signalcik_gate:boolean:=false;if(freconter<dispart/0when8=>when21=>—ackn2<=12C一SDAT;25=> I2CJSDAT<=Configwhen31=>I2C_SDwhen32=>I2C_SDwhen33=>I2C_SDwhen34=>I2C_SDwhen35=>I2C—SDwhen37=>I2C_SDwhen39=>sclk<=0';I2C_SDAT<=0';clk_gate<=false;when附录3像素数据的格式转换源码architectureoneofMINI_DATAissignalgrey_levell:intege
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保产业园区的产业集聚与区域绿色产业融合协同发展报告
- 保育员实操考试题目及答案
- 安全专题试题及答案
- 影视行业高质量制作指南:2025年工业化流程与质量控制深度分析报告
- 农业温室智能化改造可行性研究报告
- 2025年废弃矿井资源再利用与矿山安全生产技术革新报告
- 安全生产试题及答案文本
- 安全工作竞聘试题及答案
- 2025年家庭教育指导行业市场细分领域竞争格局研究报告
- 农产品质量安全追溯体系在农产品生产环节中的应用与实践研究报告
- 半导体材料(总结)
- 沃尔玛收货规定
- 微生物实验实验一显微镜的使用及微生物形态观察
- 屠宰场安全隐患排查和治理制度
- 2022年丹东市元宝区社区工作者招聘笔试题库及答案解析
- 小学道德与法治人教五年级上册(统编)第三单元我们的国土我们的家园-爱国教案
- 艺术欣赏完整版课件全套ppt教程(最新)
- GB∕T 2518-2019 连续热镀锌和锌合金镀层钢板及钢带
- 土地项目测算表_模板
- 教育培训机构辅导老师月度绩效考核表(KPI)
- 立式水轮机组轴线调整及导轴承的间隙分配ppt课件
评论
0/150
提交评论