基于FPGA的线阵CCD智能图像处理系统研究.pdf

基于FPGA的线阵CCD智能图像处理系统研究.pdf

ID:50115975

大小:12.61 MB

页数:68页

时间:2020-03-05

上传者:U-24835
基于FPGA的线阵CCD智能图像处理系统研究.pdf_第1页
基于FPGA的线阵CCD智能图像处理系统研究.pdf_第2页
基于FPGA的线阵CCD智能图像处理系统研究.pdf_第3页
基于FPGA的线阵CCD智能图像处理系统研究.pdf_第4页
基于FPGA的线阵CCD智能图像处理系统研究.pdf_第5页
资源描述:

《基于FPGA的线阵CCD智能图像处理系统研究.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

'■:;U:单位代码分类号:1似巧TH878学号:2012110006公开:密级.■.'夺A化乂一乂A々iic.THefeiU打iversitof了ech打oloygy-I.硕:t学位论义I:M乂STERDEGREETHESIS-r.?‘—';■?。::,片?论文题目:基于FPGA的线阵CCD智能图像处理系统研究学位类别:学历硕±精離識喔(X程额域)作若姓名:朱跃'If贈铭:日綿S副脈貞4'完成时间:2015年4月^?,?W.背人/纖薄潑喔/'.r1''\':互呼—伽单备為知軒^ 合肥工业大学学巧硕±学位论文基于FPGA的线阵CCD图像处理系统研究作者姓名I失跃指导教师:觉学明副研究员学科专业:精密化器及机械研巧方向:精密测试技术及化器2015年5月 ADissertationSubmi行edfortheDegreeofMas1;erResearchofLinearArrayCCDImageProcessingSstemBasedonFPGAyByZhuueyHefeiUniversitofTechnoloygyHefeiR.,Anhui,民ChinaAril2015p, 合肥工业大学本论文经答辩委员会全体委员审查,确认符合合肥工业大学学历硕±学位论文质量要求。答辩委员会签名(工作单位、职称、姓名)主席:合肥工业大学教授13声委员;合肥合锻机床股份有限公司高级工程师^合肥工业大学教授L合肥工业大学教授^导师:合肥工业大学副研究员1^^^1| 学位论文独创性声明本人郑重声明:所呈交的学位论文是本人在导师指导下进行独立硏究工作所取得的成果。据我所知,除了文中特别加W标注和致谢的内容外,论文中不包含其他人己经发表或撰写过的研究成果,也不包含为获得合肥工业大学或其他教育机构的学位或证书而使用过的材料。对本文成果做出贡献的个人和集体,本人已在论文中作了明确的说明,并表示谢意。学位论文中表达的观点纯属作者本人观点,与合肥工业大学无关。■学位论文作者签名:签名日期:年个月气日学位论文版权使用授权书本学位论文作者完全了解合肥工业大学有关保留、使用学位论文的规定,良P:除保密期内的涉密学位论文外,学校有权保存并向国家有关部n或机构送交论文的复印件和电子光盘,允许论文被查阅或借阐。本人授权合肥工业大学可W将本学位论文的全部或部分内容编入有关数据库,允许采用影印、缩印或扫描等复働手段保存、汇编学位论文。(保密的学位论文在解密后适用本授权书);学位论文作者签名指导教师签名:豕:k签名曰期;啤月签名曰期;月己t叩午户论文作者毕业去向工作单位;-;Email联系电话:通讯地址;邮政编码; 致谢本论文是在导师的指导下独立完成的,党学明老师作为我的研究生导师,他严谨的治学态度、循循善诱的师长风范令我终生受益。在研巧生学习期间,党老师在科研和生活上给予我很大的帮助,在此向老师表达衷必的感谢。在论文的完成过程中,、同学的帮助得到了许多师长,你们无私的关怀为我一课题的完成提供了诸多帮助,这种乐于奉献的精神也深深地影响了我,在此并向你们表示感谢。一、最后感谢我的家人和朋友,你们直都在默默地关屯我、支持我。作者;朱跃2015年3月15日I 摘要在航天、军事、工业检测等领域,图像的髙速采集与实时处理具有重要的价值,工业检测对图像传感器提出了较高的要求。线阵CCDW其分辨率高、成本低。D等优点,适合用于工业现场环境因此,基于线阵CC图像处理系统在工业现场环境下具有广阔的应用前景。图像处理系统在实际应用中对图像的采集、处理及传输速度提出了新的要求,要求系统的实时性好。现场可编程口阵列(FPGA)作为目前应用最为广泛的一可编程器件之,它具有丰富的遥辑和存储资源,能够实现并行操作和流水线处理等。相比于ARM、DSP,昨GA具有处理速度快、可移植性强W及动态配置灵活等优点,这些特点使得昨GA非常适合图像处理领域。一FPGA的线阵CC本文设汁并实现了款基于D智能图像处理系统。该系统采用东芝公司的线阵CCD芯片TCD1209D作为图像传感器,采用ADI公司的专用图像处理芯片AD994日完成CCD输出信号的放大和模/数转换。系统yJlALTERA公司Cc、yloneIV系列FPGA为核屯,产生模拟前端的驱动信号W及对外围器件进行控。Verilo制利用硬件描述语言g册L设计了图像数据的采集、图像数据的缓存、FIFO、USB2.0和RS485通信、图像滤波和边缘检测等模块,并通过Altera提供?的QuartusII13.0开发平台和Mentor提供ModelsimSE10.0对整个系统做前端的仿真验证。测试结果表明,基于FPGA的线阵CCD智能图像处理系统可实现图像信号的、、高速采集传输及处理,具有集成度高实时性好、便于移植等优点。图像经过阳GA预处理么后,不仅有效地抑制了噪声,还增强了图像的边缘信息,更加有助于工业检测。关键词:线阵CCD;FPGA;图像预处理;SDRAMII ABSTRACT--HihSeedimaeacquisitionandrealtimerocessinhaveasinificantvalueingpgpggaerospacem"itary,industrialinspectionandotherfields.Industrialinsectionhas,praisedahighrequirementforimagesensor.LineararrayCCDissuitableforindustrialfielde打vironmentwithhihresolutio打,lowcostadvantaes.ggImageprocessingsystemhasnewrequirementsforthespeedofimageacquisition,processi打gandtransmissioni打theracticalalicationreuiresahireuirementppp,qghq*fo-Ptriealtimeerformance.FieldrorammableGaeArraFPGAiscurrentlthepgy()ymostwidelyusedoneofprogrammablelogicdevices.AlargenumberoflogicandstorageresourcesexistinFPGAaralleloeratio打a打dielinecanbeimlemented,pppppindesign.ComparedtoARMandDSP,FPGAhasmanyadvantages,suchas-eerocssabUtunversahisdpeiniiltranslantatio打andca打bednamicallghpgy,pyyw-configuredithflexibUitywhichareversuitableforimaerealtimerocessin.,ygpgAlineararrayCCDintelligentimageprocessingsystembasedonFPGAwasdesig打edandimpleme打tedinthisthesisJ打thesystem,thelineararrayCCDchipTCD1209whichisproducedbyToshibaCorporationwasadoptasanimagesensor,ADFsspecialimageprocessingchipAD9945wasusedforamplifyingand'analog/diital/Dconversio打ofCCDsoututsinal.BtheFPGAchifromg(A)pgyp'AherasCcloneIVseriesinalsfthedrivinforanalofontendntroilinthe,sorcoyggg,gperipheraldevic巧androcessin化ecollectedimaesweireenerated.ModulesHkepggg,imaedataacuisitio打imaedatacacheFIFOUSB20and民S485communicaiong,.tq,g,,imagefilteringandedgedetectio打,hadbeendesignedwithhardwaredescriptionlaneVerandont-endmuaonofensttguagilogHDLfrsiltitiresemhadbeendonewih,ydevelomentlatformuartusII13.0rovidedbAUeraasllaimultilppQpy,wessaontooM*odelsimSE10.0rovidedbMentorCoioration.pypThe1;estresultsshowthatlineararrayCCDintelligentimageprocessingsystem-basedo打FPGAcanimpleme打th;ghspeeddataacquisitiontra打smissio打and,巧nawe-roceingofimaesiliththadvantaesofhighinterationexcellentrealtimepgggg,erforma打ceanduniversaltranslantatio打.The打oisewassure巧edandtheedesofppppgtheimagewereenhanced.1116化化化,thesystemismoreconducivetoindustrialinspection.KRYWORDS:LineararrayCCD;FPGA;Imagepreprocessing;SDRAMIII 目录1.1课题研究背景11.2国内外研巧现状11.3课题研究意义及应用前景21.4本文主要研究内容2第二章系统总体方案及相关技术424.1系统总体设计方案2.2CCD介绍与选型52.2.1CCD结构及工作原理52.2.2CCD主要性能参数62.2.3线阵CCD选型62.3阳GA器件及选择72.3.1FPGA简介72FPGA的设8.3.2计流程29.4FPGA常用设计思想与技巧2.4.1兵马操作92.4.2流水线操作102.4.3FIFO绍11介么5硬件描述语言12么5lo.1VerigHDL简介122l3.山2化riogHDL设计方法12.6本章小结13第H章系统硬件电路设计143.1图像信号采集电路143.2图像信号调理电路15317.3数据传输电路3.3.1胎485通信模块173.3.2USB通信模块1813.4数据缓存电路93.5FPGA配置电路21义6电源电路223.7系统PCB设计233.8本章小结24IV 第四章FPGA内部還辑设计25425.1FPGA内部搜辑设计方案429945芯2日.线阵CCD和AD片的驱动模块425.2.1CCD驱动时序分析42CCD时序27.2.驱动设计42D994527..3A驱动时序分析429.2.4AD9945时序驱动设计4.3外部存储器接口模块304.3.1SDRAM的基本操作和指令304.32SDRAM31.的初始化和自刷新4.3.3SDRAM的读/写操作32434.3.4SDRAM接口模块设计434.4門抓缓存模块43.4.1异步FIFO的结构设计4436.4.2异步門F0的实现43.5USB控制接口模块74.瓦1CY7C68013A芯片Slave阿F0工作方式374.5.2同步SlaveFIFO的读写操作38404.6图像预处理模块4.6.1图像滤波方法介绍40414.6.2中值滤波算法分析4PGA41.6.3中值滤波算法的F实现4.6.4Sobel边缘检测介绍444.6.5Sobel边缘检测的FPGA实现45446.7本章小结47第五章系统测试与调试547.1系统测试549.2CCD噪声分析与处理第六章总结与展望516.1总结516.2展望51V 插图清单2图.1系统总体结构框图4图2.2C姐的基本单元5图27.3FPGA器件中比的结构2LAB8图.4阳GA器件中的结构29图.5兵兵操作示意图210图.6流水线设计的结构示意图图2.7流水线设计时序示意图10图2.8門FO结构示意图112图.9自动设计系统的典型结构12图3.1TCD1209D内部结构示意图15315图.2CCD信号采集电路图3.3AD9945功能框图16317图.4CCD信号调理电路图3.5盼485通信电路1738图.6FPGA与CY7C68013的信号连接图1图3.7U沈通信电路19320图.8SDRAM缓存电路321图.9FPGA配置电路322图.10电源转换框图-322国.115V12V升压电路图3.口FPGA的电源电路233PCB24图.13系统前端采集板的图4209D26.1TCD1的工作时序图图4CD209D26.2T1的时序要求427图.3CCD驱动时序仿真图428图.4寄存器配置示意图图4,5AD9945采样时序图29图4.6AD9945寄存器配置仿真图304A30图.7D9945的信号采集时序仿真图图4.8SDRAM模式寄存器的设置31432图.9細RAM的初始化时序图图4.10SDRAM读数据时序图33VI 图4.11SDRAM写数据时序图3341234图.SDRAM顶层模块链接图4.13异步FIFO结构框图35436图.14异步FIFO时序仿真图4.15SlaveFIFO传输示意图373841图.6端点配置模式图4.17同步SlaveFIFO写状态转移图38439图.18同步SlaveFIFO读状态转移图439图.巧Slave巧F0写控制模块时序仿真波形图4.20Slave巧F0读控制模块时序仿真波形39图4.21快速中值算法实现过程41442图.223X3模板的生成结构图图4.23模板生成模块仿真波形42434图.24中值滤波算法流程图图4.25中值滤波模块仿真波形4344426图.中值滤波处理效果对比图图4.27Sobel边缘检测算法框图45445图.28Sobel边缘检测算法流程图446图.29进缘提取效果对比图图5.1CCD信号采集板实物图478图t2被测试条纹图案45.3CCD输出信号波形图4849图5.4系统整体测试图VII 表格清单表2.1几种线阵CCD参数此较7314表.1TCD1209D引脚说明203表.2涨RAM芯片引脚描述表4.1TCD1209D的驱动脉冲及其作用2545表4.2AD99内部寄存器说明28表4.3时序脉冲的相位关系29表4.4涨RAM控制命令31VIII 第一章绪论第一章绪论1.1课题研究背景一70(XD(电荷親人类在上世纪年代初发明了种新型的半导体光电器件,即合器件),它具有光电转换、信息存贬等功能,在科学研巧、工程技术等领域得W到了广泛的应用。CCD器件按形状可分为线阵CCD器件和面阵CCD器件。近年来,CCD器件取得了很大的进步,应用范围也是越来越广。美国DALSA公司为军方生产的CCD芯片己经达到11100万有效像素,而柯达公司的商业级C邸芯片也达到了5000万像素。在工业领域,自扫描器件取代了传统的真空成像器件,C畑在光电检视!、无损探测等非接触式测量方面也得到广泛的应化而线阵CCD尤其获得人们的青睐,它被应用在医疗电子仪器、光谱检测、在线光电M一レ检测ッ及维尺寸和位移的非接触测量等诸多方面。在日常生活中,各种管、线、带材或缝隙的实时非接触测量,,精密类产品表面质量的检测对目标运动的精密监控等也都会应用到线阵CCD。1.2国内外硏究现状目前,国内外对基于C邸和昨GA的图像技术己经展开广泛的研究,有些己经研发出了产品,投入了实际应用。日本H洋电机公司在其新一代VCC-WD390宽动态范围监控摄像头中采用了化linx公司的FPGA器件。该器件集成了专用DSP,模块支持专有高性能算法,W性能较传统的ASIC有力很大的提高。另外,器件在逻辑资源使用效率方面也有了很大的提高,而且无需额外的协处理器芯片,同时节约了产品的成本。摄像头部分采用的图像传感器能提供高质量的图像,支持宽动态范围,在光线昏暗及明亮的环境中,,都能获得清晰的图像而不影响分辨率。2008X一年ilinx公司的提出种适用于比264高清视频的数字录像机系统A方案,该方案主要由昨GA加外部DSP实现。其中FPG主要提供色彩空间转换、视频量化及运动检测等功能,另外,硬盘接口FPGA、储存器接口的控制也是有一部分需要时分复用整合一来实现,在系统实际的数据流、另部分需时分复用分1"流,同时为DSP处理器提供视频加速。国内许多科研机构在多年之前也开始CCD图像采集处理的研究,产品逐渐从军事、科研领域向工程应用和日常生活领域不断延伸。2008年西安光机所和吉林大学FPGA为控制核也,结合C饥图像传感器,实现了在640x480分辨率下250侦每秒的图像采集,并实现了图像的降噪处理。2010年武汉理工大学针对汽车工业的安全问题,研究设计了汽车自动防撞系统的前端图像采集,并提出了在1 合肥工业大学硕±学位论文实际应用中图像的预处理方法。,国外开始送方面的研究比较早,许多技术都已成熟并开发了实际产品目前倾向于评GA与DSP的协同处理和软核的开发,并己经着手高清图像的采集及处理的研巧,。国内在这方面的研究起步比较晚研究的内容大多是图像采集系统的,比如图像滤波设计及图像预处理算法的硬件实现、图像增强算法等,也有部分科研机构开始了更高水平的研究和开发。1.3课题硏究意义及应巧前景CCD相机,市面上的相机大部分是通用可,但并不能!^进行图像的采集获取、应用在特殊的场合。在工业检测领域,对设备的小型化获取图像的质量都有较某些情况下就需要输出的图像带有明显的边缘信号,有时需要相机高的要求,在一输出的图像是经过预处理后的图像,,再将其送入工控机进斤下步的处理等等K3这就需要对图像采集系统进斤重新设计开发。另外,线阵C畑总像元数比面阵一CCD相,,机少,但维像元数较多像元尺寸灵活侦幅数由设计者决定并可W达一到很高,这些特点使得它可用于维动态目标的测量,并能获得较佳的效果。线D的分,?阵CC辨率高,能满足大多数测量视场的要求只有配^机械扫描运动,才一1二维图像可^1获取,此外,如果要确定每像素点在被测件上的对应位置,还必一W须配W光栅等器件W记录线阵CCD每扫描行的坐标。一,巧实际应用中,有些场合对图像采集和处理系统的实时性要求较高而般图像的数据量和运算量都大,这就对系统的性能提出了较高的要求。FPGA能够实现并行处理,处理速度快,在设计上可实现流水线技术,而且动态配置灵活性高,适合于。这样在系统就可实现上通用性高、处理速度快及可移植性强等化势视频图像的实时采集。1.4本文主要研究内容本课题研究的主要内容如下:U底板硬件电路的设计,包括图像采集、处理电路,RS485和USB通信电、PCB路,电源模块电路B,与核屯板板的无缝接口设计及设计。其中PC的设计。尤为重要,包括信号完整性和电源的分配2)驱动电路的设计,包括线阵CCD和图像处理芯片的驱动设计,利用硬件描述语言,并保持,实现C畑图像传感器和图像信号处理器的工作两者同步。一、、封研巧系列图像处理算法,包括图像的增强图像边缘检测和提取图像的变换、图像的压缩等图像处理算法,并在MATLAB、化enCV软件开发平台对一些图像处理算法进行验证和改进。4)重点研:图像滤波和边缘检测充两种图像处理方法。叱较中值滤波算法2 第一章绪论的实现,对滤波窗口进行改进并将改进后的算法在昨GA硬件上予实现;比较一几种边缘检测算法,并在效果和实现复杂度之间作出个巧中选择,将其在FPGA硬件上予W实现。5)PC机上应用程序的设计,该应用程序主要实现两方面的功能:对图像采包括频率和光积分时间等集系统的参数配置,;接受图像采集系统所采集到的图像数据并将图像输出至显示器。3 合肥工业大学硕±学位论文第二章系统总体方案及相关技术2.1系统总体设计方案本设计可分为硬件部分设计和软件部分设计。在硬件方面,主要是完成前端图像采集板的设计和制作;在软件方面,主要是完成数字图像处理算法的硬件实)现(本质上还是属于硬件设计,这里为了区分暂且称作软件设计和线阵CCD(包括专用高速数模转换器)的驱动设计。系统总体结构如图2.1所示。 ̄电源、复位电路I,光学镜头、光源I ̄ ̄图像滤波和 ̄ ̄XXI边毎郑块」作旣通模块PC叫信FPGA动n机模模FIFO三I高速数模转换器5接口模块缓存模块ISDRAMSDRAMII图2.1系统总体结构框图Fi2.1S杠ucturediaramofSs化mggy、,图像采集板由核也板和底板构成,其中核屯板即为阳GA工作的最小系统底板包括图像采集、处理模块,通信模块レ义及电源模块等。底板通过线阵CCD获一取模巧图像信号,经过级放大W后送入专用图像处理器进巧滤波,放大,相关双采样义L及数模转换等处理,得到12位的数字图像信号。底板将这些数字信号一送入核也板、,核屯板通过存储器可实现对这些信号的缓存,就可得到幅或者一多幅图像信号,FPGA对该些信号进行系列的运算和变换即可实现人们所需要的处理效果,核必板再将这些处理过的信号送到底板,底板它们传输到PC机,485供现场人员观察分析。底板中的通讯模块包括RS485通信和USB2.0通信,RSUSB完成PC机对前端采集板的参数配置,包括频率、光积分时间等,而通信用一于前端采集板向PC机的图像信号的传输,由于是单传输方向,本设计将采用SlaveFIFO传输方式,从而满足系统的传输速度要求。最后,整块电路板中芯4 第二章系统总体方案及相关技术,,片所需要的电压较多,而且还有模拟与数字么分所W对电源模块需要单独设计保证各芯片所需要的电压质量能符合要求,从而保证系统能正常工作运行。2.2CCD介绍与选型。CCDCCD是英文ChareCouledDevice的缩写,意为电荷賴合器件由许gp一一,对,通常多感光单元组成,通常所说的像素就是指感光单元它们是的关系m^心百万像素为单位。当光线照射CCD的表面,感光单元将产生电荷信号用来反一,映接受的光照信息,若把所有感光单元产生的电荷依次读出即可构成幅图像。2.1CCD.2结构及工作原理CCD主要包含并行信号寄存器、感光二极管、信号放大器等基本结构。CCD工作时入射到每个感光像素上的光子通过一个光电转换装置转化为相应数量的,?电荷。上述过程分别;随后皮些电荷可W被存储起叔最后电荷移出感光区域为信号电荷的产生。、存胆和转移1)电荷的产生一一CCD种能够存储电荷的电容器,般称为M0S电容器的基本单元是,结构,如图2.2所示。当金属电极被施加正向电压时其产生的电场可透过绝缘层排,斥或吸引少数载流子,这里的少数载流子是带负电荷的电子带正电的空穴即多数载流子被排斥,使其远离电极,耗尽层是由少数载流子在氧化物绝缘层处形成。由于电场的作用,电子只能进入耗尽层而不能复出,这样就形成了带负电荷的耗W尽层。,故又称为电子势阱V一滚細!bx—巧巧屯ftr;i没级I鉛銷tis乂;47厂I,\,/1巧i\I巧轉Mil?^為熙(鞭闕J图2.2CCD的基本单元Fi2.2BasicunitofCCDg1)电荷的存胆光照射到CCD器件的表面时,器件内部的半导体由于吸收了光子的能量而产-生电子空穴对,其中电子被电子势阱吸入并存胆在里面。电子势阱中的电子随,送样就实现了光照的强弱与电荷着光照的增强而増多,即电荷的数量随之增加,即电荷处数量的转换,电子势阱中收集的电子并不会因为停止光照而发生损失"W于存胆状态。5 合肥工业大学硕±学位论文3)电荷的转移电子势眺随着臘S电容器上电足的变化而变化,电压越高,电子势阱越深;一一当电压定时,,,势阴中电荷量越多势阱越线,并呈线性关系。根据这特性势巧的深度可W通过电容器上的电皮来调节,如果MOS电容器的排列足够紧密,W则相邻电容两电极么间的间隙足够小,这样信号电荷可W在库仑力的作用下由浅处流向深处,送里的库仑力由信号电荷自感生电场产生,由此就可实现信号电荷的转移。么么2CCD主要性能参数CCD主要性能参数有;1)。分辨率:持指器件对明暗细节的分辩能力当感光面积不变,器件的分辨率随着感光单元数目的増多而増高。2)灵敏度:定义为器件在单位曝光量的作用下输出信号电压。器件灵敏度还常用饱和曝光量表示,饱和曝光量越小,器件的灵敏度越高。3)响应度:是指单位曝光量所得到的有效信号电压。它可W反映电荷与电压转换能为及像元的灵敏度。4一)光谱响应范围:是指响应度等于峰值响应半时所对应的波长范围。COT器件对不同单色光的相对响应能力相异,其中响应度最大的波长称为峰值响应波山]长。己)动态范围:定义为信噪比与饱和曝光量相等时的曝光量么比。降低暗信号电压是提高动态范围的常用方法,动态范围越离的器件品质越高。2.2.3线阵CCD选型了解了CCD的结构、工作原理和基本参数后,就需要根据系统的实际要求来选择合适的CCD巧片型号。C畑有线阵和面阵么分,线睐CCD和面阵CCD的基本结构都是像元,而像元是有间隔的WC如最后显示的都是离散图像一。CD,所般面阵C在横向和纵向上一一的间隔相等,其图像的离散度是致的,而线阵CCD的传感器只有行感光元素,必需配W机械扫描,而扫描的速度会对最终的图像产生影响,但这也使得高扫描11"频率和髙分辨率成为可能。本课题的应用背景是色选机领域,物料的下落是自然过程,,无需机械扫描运动故选用线阵CCD。根据CCD的像元数、像元尺寸及驱动频率等具体参数要求,下面对东芝公司的TCD1208AP、TCD1501D及TCD1209D型号线阵CCD相关参数作对比,如表2.1一TCD。TCD1208AP1501D所示重合像素数不足总像素数的半,像素数高意味着后续系统处理数据的负担较大。6 第二章系统总体方案及相关技术表2.1几种线阵CCD参数比较Tab2.1ComparisonofLineararrayCCDParam幻ersCCD型号像元数动态范围最高频率灵敏度TCD1209D20482000:1M31TCD1208AP2160750:11110-TCP1501D日日0日300日:1613I2.3FPGA器件及选择2.3.1评GA简介FPGA是现场可编程口阵列的简称,它是目前最为流行的大规模可编程器件一之。基于大规模可编程逻靖器件的设计具有开发周期短、成本低和灵活性较强M等优点,所W它在现代数字系统设计中的作用越来越重要。随着技术的发展,FPGA内部集成的资源越来越多,目前已经产生了百万级的FPGA,主要包含了四种可编程资源,即可编程逻辑单元、可编程布线资源、可编一P程的I/OLX及片内嵌入式存储器。另外,些特殊用途FGA还增加了锁相环和嵌入式乘法器等资源。下面就FPGA内部资源做简要介绍:巧渴程I/O□□□曰□nnnni■_U可爲織鐵元UUJ目目E□□曰[&慣麵□□□□□□图2.3FPGA器件中LE的结构F’i.3StrudLUeofLEinFPGAdevicesg2n可编程還辑单元典型的可编程逻辑单元主要包括查找表、输出寄存器及进位逻辑,其结构图一一2(AMnL;如图.4所示。查找表LUT)本质上是个R,个输入的查找表可:[看W3一nRAME作是个有位地址线的。相比于宏单元,LUT能灵活地建立L链和函数,这样可节约资源、提高性能。7 合肥工业大学硕±学位论文2)可编程布线FPGA器件内部的布线通道提供了诸多功能和互连,使得内部资源能够与其他,器所有资源进行互连,。随着器件内部资源的增加布线通道数量也呈线性增长FPGA件内的所有资源都可&互相连接。布线通道主要有本地互连和行列互连两类。其中,本地互连直接连接可编程逻辑单元中的自适应逻辑模块,而行列互连W一LAB会跨过定数量的還辑阵列模块()或整个器件。如翻"iiiIII^j…———l]Jl!ELr:lI^-二…二j……i1;;;||j|一………-'圓!i圓L」IiJS图2.4FPGA器件中LAB的结构F*2.4StrucuieLA区nFPGAdevicesigtofi3)可编程I/OFPGA中的I/O模块也称为I/O单元,它功能十分丰富,适合于所有类型的设,计,包括基本的输入、输出和双向信号低电压商速等多种I/O标准。可编程的I,从而保证板级信号的完整性/O具有可变电流驱动能力和摆率控制功能。4)嵌入式存储器FPGA一存储器模块是内部专用模块之,它可配置成单端口RAM、双端口FPGA一RROM及FFO,存AM、可编程WI等不同类型的存储器。同内其他结构样储器模诀也是可编程的。2.3.2昨GA的设升流捏一FPGA设计方法可,Altera的QuartusII软件[^总结为个简单的设计流程一。是全集成开发工具,完全支持送设计流程具体步骤如下。1)进行源文件的编辑和编译。设计者首先使用硬件描述语言将设计思路表一达出来,再利用EDA工具进行编译、语法查错等,使下步的逻濟综合能顺利通过。一2合和优化。在这过程中,閒A综合工具将源文件分解成逻辑)进行逻辑综电路及相对应的关系,设计被利用口级电路或开关级电路描述,最终生成与器件8 第二章系统总体方案及相关技术W基本结构对应的网表文件。3)对目标器件进行布线、适配。在选好目标器件的型号后,布线适配过程将建立起与网表文件对应的基本逻靖电路关系。4)目标器件的编程下载,没有发现异常问题,。如果上述过程都顺利通过即表明满足设计的要求,则可将布线适配过程中产生的目标文件通过下载电缆载入目标芯片中。5)硬件仿真与测试。将载入程序程序的器件进行板级测试,验证设计的正确,能在实际电路中工作。2.4FPGA常用设计思想与技巧2.4.1兵兵操作""一兵与操作是个常常应用于数据流控制的处理技巧,典型的兵巧操作方法如图2.日所示。—\据缓冲\|数输入模块1输出/…-y数据____数据一;''旧I粥咎处理S块單)与S单諸凡与1、数据缓冲—、、模块2MUXMUX1/2选12选1图2.5兵写操作示意图F-i2.5DiagramofPingPongoerationgp兵马操作的处理过程大致为:输入数据选择单元在相等的时间间隔内将输入数据流分到数据缓存模块,在两个缓冲周期内,通过输入数据选择单元依次将数据缓存到数据存储模块1和数据存储模块2。从存储模块1流出的数据通过输出2数据选择单元送入到数据处理运算模块,对数据的处理运算过程是与缓存模块同时进行的。当存储模块2流出的数据进行运算处理时,输入的数据流继续对存1,储模块进行缓存,此类推直到数据完全被处理。一兵马操作本质上用存储资源换取处理时间的方法,如果把它当作个模块,,,数只有输入和输出,从这个模块的两端看据的输入和输出都是连续的中间没有任何间断。9 合肥工业大学硕±学位论文2.4.2流水线操作在一FPGA系统设计中,提島运行速度种常用的方法就是流水线操作。提高系统的工作频率是加快数据传输的常用方法,但是如果系统的关键路径比较长,一再地提离系统的工作频率就会发生时序的奈乱那么,在这种情况之下,可W使用流水线技术,,方法是分割复杂逻辑功能块使其操作分布完成,送样就可减M少每个部分的延时时间,使系统能够在更高频率下运行。流水线设计本质上就是把层次较多、关键路径长的组合逻辑拆分成几个部一分,在每部分后插入寄存器用来替存数据。K级流水线就是在组合逻辑里面插一一入K个寄存器,将上级寄存器的输出作为下级寄存器的输入,而且中间没有反馈电路。流水线设计的结构示意图如图2.6所示。Ste1NSte2NNsteKI^ppp'—/—/???/1/11\]|图2.6流水线设计的结构示意图F2.6uceareneigStrturdigamofPiplidesign一个基本要求就是数据流在时间上的连续性流水线操作的,假设把每个操作D一简化为通过触发器,那么流水线操作就可看作个移位寄存器,数据依次流2过触发器,完成每个操作步骤。流水线设计时序示意图如图.7所示。Ta21i23i4—_^步步骤骤步驟i步骤II!b2l_?a312i3i4—?步驟步驟步骤I步驟|??—1234^步骤步骤步骤步骤;idld2_Jc3_Jb4_JI—?步骤1步骤2步骤3步骤4?ele2d3b5II|[TZ!|1?—!=2步驟3步骤1步骤^步驟4_^^1i111、,▼▼I图2.7流水线设计时序示意图Fi2.7Seuence出aramsofPielinedesingqgpg10 第二章系统总体方案及相关技术合理安排整个设计时序是流水线设计的关键所在,这就要求设计者合理划分每个步骤。最为简单的情况是前级与后级操作时间恰好相等,送时可将前级的输W出直接作为后级的输入。如果前级操作时间小于后级操作时间,需要复制组爸,逻辑将数据进行分流,也可W在前级存储数据,送样都可W避免后级数据的溢出。如果前级操作时间大于后级的操作时间,则需适当缓存前级的输出数据,之后才能输入后级,否则会造成时序上的冲突。2.4.3巧F0介绍的缩写意为先进先出一門F0是英文FirstInFirstOut,是,种特殊的存储器。与普通存储器不同,FIFO既没有读地址线,也无写地址线。它的镇数据和写数据操作都是顺序发生的,,分别由读写指针控制而普通的存储器都是由地B"一址线来决定地址。門F0通常可分为同步FI脚和异步門脚。同步FIFO只有个时钟,其读写操作同时发生;而异步FIFO有读时钟和写时钟,读写操作在各自的时钟跳变沿发生并且互相独立,門F0结构如图2.8所示。datai打二—0123,,,waddrraddr__?4roCM^3210out-图2.8FIFO结构示意图F蚁.8StructurediagramofFIFO11 合肥工业大学硕:t学位论文門F0有读写时钟、空满标志、存储器的深度化及数据位数等参数,門F0设"""满"计的关键在于空/状态标志和读写指针的产生。当FIFO执行复位操作一O或門F0读出最后个字后与写指针相等,表明FIF为空。阿F0在FPGA设计中的应用相当广泛,本系统就在多个模块么间插入了FIFO,W实现数据模块之间缓冲。异步門F0的具体实现将在第四章中说明。2.5硬件描述语言2.5.1化rilogHDL简介^硬件描述语言是将数字电路用形式话的方法来描述>设计数字攫辑系统,可1^的一种人工语言。设计者可利用迭种语言来表达自己的设计意图和设计思想,利用邸A工具进行功能仿真,在综合成口级电路SIC,最后在FPGA获A上实现它的功能。自动设计系统的典型结构如图2.9所示。一一些并行编程语言,与样,硬件描述语言的表达方式在本质上也是并行的但是硬件描述语言可在不同的时间上表示硬件系统的时序行为,送正是它与多数编程语言不同之处,硬件电路或者硬件系统最重要的性质就是时序性。硬件描述语言可(^在不同的层次描述逻辑电路,硬件描述语言可レッ在不同的层次实现,也可W混合使用不同层次的硬件描述语言。 ̄ ̄'高层次系统描述L(算法行为级HDL描述)1iIIIrI] ̄HDL编译器I户Oji;——I设I,?中间数据格式?im;1j!技r;库:[[逻辑综合;11i、1y[ ̄[--JRTL网表MI|1H—'逻辑图生成了.逻辑图图2.9自动设计系统的典型结构巧2iid餐.9TypcStructureofAutomatcesignsystemVeroHDL是硬件描述一ilg语言的种,可W用来设计数字电路或者数字电子系统。12 第二章系统总体方案及相关技术设计者可W用它实现各种逻辑设计,也可W用它综合、验证数字逻辑系统W及时序分析。它在抓A领域的应用越来越广泛。^hlog邮L语言具有W下特点:1)Verilog册L在语法上与C语言有颇为相似。2)Verilog册L既可W设计电路或系统,也可W对电路或系统进行综合、仿真及分析。3)Verilog册L可W在行为级、寄存器传输级、口级、开关级等不同层次设一。汁电路,巧同设计也可使用不同层次''4)VerilogHDL内置]、多种基本度辑I,如与I]或口和与非口等。另外,多种开关级元件也被内置其中,进行开关级的建模。5)用户定义原语(UDP)创建的灵活性。用户定义的原语既可是组合還辑,一Veh也可W是时序逻辑,通过编程语言接口机制可进步扩展log册L语言的描W述能力。2.5.2化rilog曲L设计方法Ved肥-Down在使用logL设计时既可W采用自顶向下(Top)的方法,也可W采用自底向上(BottonrtJp)的方法,或者结合这两种方法进行混合设计。1)自顶向下设计方法自上向下的设计在设计初始阶段就做好了系统分析,其设计的仿真和调试过,这样可W在早期发现设计结构的错误程在高层完成,避免了重复设计和设计工作的浪费。2)自底向上设计方法一自下向上的设计是从基本单元出发,般而言对设计系统进行逐层划分。,设计者对送种设计方法比较熟悉,对各个子模块设计的时间较短。然而,由于送种方法是先对多个子模块进斤设计,导致设计者对系统的整体功能把握不足,实fw现整个系统的功能所需时间较长。3)混合设计方法复杂的遥辑电路和数字系统的设计过程通常是上述两种设计方法的结合。在上层系统采用自上向下的方法实现,而使用自下向上的方法调用己有的设计模块,从而达到多个目掠的平衡。2.6本章小结本章主要介绍了线阵CCD的结构、工作原理及其主要参数,介绍了阳GA的结构组成与FPGA芯片选型的原则,对阳GA设计过程中经常用到的诸如兵兵操作、流水线设计等设计技巧作了说明,最后对系统所基于的硬件描述语言进斤了阐述。13 合服工业大学硕±学位论文第;章系统梗件电路设计3.1图像信号采集电路本系统采用的图像传感器是日本东芝公司生产的TCD120抓型线阵CCD,一TCD120卵器件是种低噪声、高灵敏度和宽动态范围的线阵CCD器件,器件之,是因为它所采用的是单沟道结构所レッ有较高的动态范围和像元均匀度。TCD120卵共有22个引脚,采用DIP封装,其引脚功能如表3.1所示。器件光敏阵列有2048个有效光敏单元,27个无效光敏单元,共有2075个光电二极^4411><4叫11管。每个光敏单元的尺寸为1^1,其内部结构如图3.1所示,由光电转换、移位寄存器和输出缓存由H部分组成。表3.1TCD1209D引脚说明Tab3.1DescritionofTCD1209Dinspp符号名称扣移位时钟()l移位时钟j(>2B输出脉冲tCP巧位口控RS复位口控SH转移口控0D电源SS地TCD1209D器件所需的驱动脉冲信号电压值5V,供电电源电压值为12V。主要的驱动脉冲有叫,,()2B,CP,RS和細。()1和批为像素时钟信号()12,配合料|||中把C畑信号电荷从左向右移动;RS为复位信号,用于清除残留在输出二极管中的电荷;()沈为输出时钟信号,其周期、相位与批完全相同,在它的作用下CCD|依次输出图像信号CP,过滤;甜为;为错位口控信号掉输出信号的尖脉冲信号转移脉冲信号,用于控制光积分时间。V由于本系统使用的线阵C畑驱动脉冲的最低电压值要求为4.5FPGA的,而I/O曰输出电压值为3.3V,不能满足线阵CCD的电压要求,所WFPGA的输出信号无法直接直接驱动线阵CCD。因此需要另外设计电路来增强FPGA的驱动能力,W提高驱动脉冲的电压值,设计选用TI公司的SN7化VC4245A型反相器来实现。14 第H章系统硬件电路设计〇〇?.?化电二极管""..@-I一n|圓一^S呈II转移栅—SH(^^"—信号输出单完CCOSDg移位寄巧器I0IPp——0-@????CPRSCR2BCR1CR2GNDDD圍3.1TC1209内部结构示意图mi*Fi3.1DiaraofTCD1209Dsin化malstrucUuegg一SN74LVC4245A是款双向电压转换器,内部集成了八个反相器,最多可转FPGAC畑,换8路信号电平。因为输出的驱动信号是经过反相器之后送给的所W在FPGA内部生成驱动信号的时候应该预先将信号反转。,.三CCD输出信号比较微弱并且带有噪声,不能直接进行模数转换由极管对一个放大电路,0S进信号放大后再通过电容进行滤波。在电路的前端是对信号行放大,因,需要注意对放大增益进行合适控制为放大器在对信号放大的同时也会对噪声放大。主狀*巧J口j;’^。。——L扣,r,?巧;1 ̄ ̄—>-rr?Si?吉巧?fi巧巧 ̄ ̄i^-*pI广P4.?Tr3!:isHrsT- ̄ ̄ ̄ ̄3c誦r學路ti台H己Xf:丰斗(―' ̄-i主^c巧-乂"口.iCPKTffcl=。.3:冲於TT!::一二:5^丄送男耳!— ̄-—i:_KCKC—CKDGM5微。绝化-.斜化\:公义々々图3.2CCD信号采集电路FinalacuicrcuofCCDig3.2Sgqisitoniit3.2图像信号调理电路、由于线阵C畑输出的模拟电压信号比较微弱并且带有噪声,需要经过放大滤波W及双相关采样等处理过程,会增加电。如果用分立元件实现上述处理过程路的复杂程度,为此可^文选用ADI公司AD9945芯,系统的可靠性也会因此降低15 合肥工业大学硕±学位论文片,它适合应用于CCD完整模拟信号处理,处理速度快、集成度非常高、引入噪声很小,经常被用于图像信号的处理。其内部结构由双相关采样、可变增益放大"21器、暗电平巧位、和数模转换等部分组成。AD9945器件具有如下特点:140MSPSC蛇))相关双采样器(212位40脈PSADC)3)6地至40地、10位可变增益放大器(VGA)4)预消隐功能巧H线式串行数字接日C甜的输出信号进入AD994日的输入端后,经过直流恢复、双相关采样、增益调整、暗电平错位及A/D转换等模块的处理后,最终W口位数字信号的形式输出,AD9945功能框图如图3.3所示。陆巧姑巧阳LK0 ̄00I ̄AD的巧mmoBANDGAPQREFERENCEIDRVSS06dBT〇40dBT了—。。肌D(IN^S>说(/)就目IITl?-—L<^PIA10^VDOO/丫TIQCLPOBAVSSOCONTROLREGISTERS0〇^〇〇DINTERNALIGITALFACE口"1INTER腿&DVSS— ̄——I-J—00A0o化SCKSDATASHPSH。DATA化K图3.3AD9945功能框图巧g3.4FunctionaldiagramofAD9945?SCK、SDATA和SL脚是用于配置AD9945内部寄存器的兰线数字串行接日,DOD11是2位数,PBLK是预消隐时钟,CLP0B为暗电平错位时钟,細D1字信号输出和細P信号主要用于巧相关采样,分别为CCD的数据CDS采样时钟和CCD参考电平CDS采样时钟,其输入输出电压值均为3.3V,可直接连接FPGA的1/0脚。CCD信号调理电路如图3.4所示。16 第兰章系统硬件电路巧计己夏^戶朽—。k?。。巧N.|,r*71f<n1;、N1|.仿斜王—巧乙、_."是吉^lM3含_£jL._^^"側OS巡^广?^^S品.j—’-3。厂--—KS-A5^造志T!咨空^的巧D—i-!^。化,-i中口I—靡-…兰四'T。。gI巧:Q<1*PVjj〇.〇二2:S:2一^—一iiIE ̄ ̄子5氏<。死I^KC丰丰:;图3.4CCD信号调理电路FiiiioCCDi3.4Snalconditonngcircutfgg3.3数据传输电路3.3.1貼4化通信模块RS485通信模块的作用是将系统的配置参数传送到前端,从而完成PC机对u"RS485系统的控制作用。考虑到工业现场环境传输距离和抗干扰等方面的要求,总线适合用在本系统中。系统采用SP34化忘片作为收发器,该芯片支持3.3V供电,并且有输出短路保护。RS485硬件电路连接如图3.5所示,图中A、B总线接曰,用于连接485总线。R0、DI分别对应数据的接收端和数据发送端,RE和抓分别为接收信号使一能、发送信号使能,RE低电平有效,而DE高电平有效。祀、DE脚接在起,表示数据的单向传输。因此RS485共需要3个FPGA的I/O曰。另外,总线接口之一间要接上匹配电阻,电阻值为传输电缆的特征阻抗,般为120Q。-■^^C353.3V ̄2S2^ ̄ ̄T芦 ̄I=--*>—/REBTU51onfpI ̄ ̄t。;mTg_^口!fG]N名DI听厂1dI^Heaer2S巧巧5K7图3.5RS485通信电路F3.5CommuncationcircuitofRS485igi17 合肥工业大学硕±学位论文3.3.2USB通信模诀服B通信模块主要是完成图像数据到PC机的传输。由于需要传输的图像数据量较大,并且系统对实时性要求较高,所数据的传输要能达到较快的传输速度。系统选用CT7C68013巧片作为USB接口巧片。CY7说8013是Cypress公司的-ii82EZUSBFX2LP系列巧片>.0,FX2系列巧片最主要的特点是可^通过服的通用B53可编程接口为特定的应用接口编程。在本系统中孩片工作于SlaveFIFO模式,F—在该模式下在控制器对端点数据缓冲区的读写与对普通IFO样。系统采用FPGA作主控制器,FPGA通过控制CY7C68013内部門F0与上位机进行数据传输。在SlaveFIFO方式下,印GA与CY7C68013A的连接信号图如图3.6所示。IFCLKI4?FLAGA?FLAGB>FLAGC>FLAGD巧LCS冉CY7C68013A<?FPGASLOE4SLRD4SL民W民4PKTENDF叩5:0]<>FIFOADR1:0[]<图3.6FPGA与CY7C68013的信号连接图巧g3.6SignalconnectiondiaramofFPGAandCY7C68013g巧片CY7C68013A各个引脚引脚功能为:IFCLK;输出时钟,可做为通讯的同步时钟;?門F化AGA化AGD:0状态信息输出,如满,空等;化0E:输出使能,数据线只在SLOE有效时才能输出有效数据;SLWR;門F0写信号,外部還辑控制;SLCS:片选信号,只有当SLCS有效(低电平)时才可W进行数据传输;化RD:門F0读信号,外部逻揖控制;PKTEND:数据包结束信号,用于外部遥辑控制,当固件设定的包大小与写入一FIFO端点的字节数相等时,数据将自动被打成包进行传输;邱[巧:0]:数据线;FIFOADR[1:0]門F0,:端点地址线外部逻辑控制。18 第H章系统硬件电路设计-FPGA与胎B硬件连接电路如图3.7所示,电源部分由5V3.3V降压电源模块为整个电路供电,USB接口提供的电压为5V,而FX2的工作电压为3.3V,所W要进行电源转换。在主忘片电路中,选用2化C64作为E午ROM,S化和SDA引脚需要外接2.沈n上拉电阻,因为它们都是漏极开路输出和迟滞输出。FPGA经过16位数据总线FD连接到Slave門F0,数据总线是双向的,通过SOLE引脚控制数据总线的方向SLWRRD分别为FIFO的写选通、读选通控制引脚,門F0。和化端点缓冲区的选择通过門F0ADR[1:0]引脚控制。泻鬻妨'巧!!償。罢^I^晋思;I^G征賊風^>I[^了 ̄■iv|;yrc?巧二—sRiiiT"" ̄化、,y’一T競异巡=,IPTiv化説。i^I1IXT-似口迅。,做丄户;—争=競爲旱古甲^S繁-V.. ̄ ̄-*-竿La曲二張15Iy送哉豁iLij?U仍!a-—.?S.^^I'K;場T担-I丄WD一—w-.二還口—北送字羣pri:=-岩-…1纖叫l==t豈還是s和=#量一^in邑豈岩晋;二CV^.SKUA图3.7USB通信电路F.Communcaoncrcuifig38itiitoUSB3.4数据缓存电路一般在图像的采集和处理系统过程中对系统的实时性要求都比较高,而系统中图像的数据量又较大,再加上系统前后端处理速度的差异,所1^^需要高速大容量的存储器作为图像数据的缓存。SDRAM具有体积小、、成本低等优点,因此可W作为图像处、容量大速度快7V561620理系统常用的数据存储器。本设计数据缓存芯片选用肌NIX公司H化型芯片。该芯片的存储总容量是256Mbit,内部有四个存储区巧ANK),每个存储区4MX16BitBANK,可^的存储容量是。每个共用存储器行地址和列地址式通过对"330BAM(地址的选择实现BANK间的切换。巧片HY57V56162引脚信号名称及其功能描述如表3.2所示。SDRAM的控制类、地址类和数据类引脚分别与FPGA的I/O口相连,FPGA内部的S抓AM控制模块为SDRAM芯片提供片选、读写使能W及时钟等控制信号,并通过数据引脚来实现对数据的读写,从而实现对图像数据的缓存。FPGA与SDRAM芯片之间的硬件连接电路如图3.8所示。19 合肥工业大学硕王学位论文表3.2SDRAM芯片引脚描述Tab3.2DescriptionofSD民AMchippins引脚名称描述CLK时钟芯片时钟输入/CS片选对相关信号的禁止或使能CKE时钟使能控制时钟信号BA0BA1组地址选择选择片内存储空间,???A12A0地址总线行地化A12A0,列地化A8A0,自动预充电标志:A10/RAS行地址总线/CAS列地址总线写使能和行、列地址锁存引脚/WE写使能D?Q15DQ0数据总线输入输出数据LDQM,UDQM数据屏蔽屏蔽输入数据VDD/VSS电源/地内部电路及输入缓冲电源/地VSSQ/VDDQ电源/地输出缓冲电源/地SDRAM器件的引脚分为控制信号、数据信号和地址信号。控制信号包括时钟及其使能信号,地址引脚为可、片选信号、读写信号、地址选择及数据屏蔽信号。复用引脚,行地址或列地址得选择受地址选择引脚控制:S口如/—v4suZZHZHZZZHJV:JSjy/^口3,^/直技—^V;?篇:-S\:;S3厂/SA5'哉\t/zi5zidSo.;^..―己祖…、sA。.:n忠as薦y,、啤/.y ̄巧JV茲 ̄\ris..SDSS/K.-TH"、。南/ZZ3C若苗;I、iSiSA;!I"奶;货恐/祉。.片……-&:;抵;Hfrin^^S。。。KA!;.^O叢[叫、一苗号.?_fti?^〇够防。SM—JDQ5I.歷雨品ISfas.1.Ai8Su、化占證如S1》j送、。。lpif、了瓜DJVJ\T>D<3}I ̄^vanq睾凑赛冥g裘I二巧次;門II中I图3.8SDRAM缓存电路*DRAMFig3.7StoagecircuitofS20 第H單系统硬件电路设计3.5FPGA配置电路系统选用的FPGA芯片是Altera公司提供的CycloneIV系列的EP4C15F17C8型号芯片。CycloneIV系列的FPGA還辑资源丰富、功耗低和成本低,采用经过优化的60nm低功耗工艺。CycloneTV系列的FPGA只需要两路电源供电,降低了电路板成本,减小了电fw路板面积,缩短了设计时间。EP4C15F17C8器件具有^文下特点:1)具有15408个逻辑单元2)具有504Kbits的嵌入式存储器3)具有56个嵌入式18X18乘法器4)具有20个全局时钟网络5)具有4个通用化L模块—6)共有8个用户I/O块,多达343个用户I/O7)支持串巧数宁接口W及多种协议CycloneIV系列的FPGA现场可编程逻辑基于SRAM结构,并通过SRAM来定义器件中逻辑单元的逻辑关系,数据在掉电后就会失去,具有易失性因此系统在上电后首先要对FPGA进行重新配置,主动配置和被动配置是FPGA常见的配置方式。其中,被动配置是外部配置芯片或其他控制器控制配置过程,而主动配置则是由FPGA引导配置过程。本设计选用JTAG配置和AS配置,它们的电路连接如图3.9所示。AS"千YOCLK1*—1yitiM?IINNCQFDOEMiwma'3_'—iCQFi*旅它rH?Mmm ̄—s-"6DATA07圓manCS<^—mA^bO导mmmmiq**—IJAS的"。*.c。…’.IIi"|II扛1巧I迫巡2;-^―S2-SS_£ATASW_(:厉DATA ̄^GNOHC ̄ ̄Xf-i* ̄ ̄srWCX-他 ̄^-黨昔Jj技坚M2SP64JTAGJ2故畔.逆-.'^\^\/^?-猫.写5..:=巧哈ID2V5?..目IJTAG-10I图3.9FPGA配置电路Fig3.9ConfigurationcircuitofFPGA21 合肥工业大学硕±学位论文3.6电源电路电源电路的设计是系统硬件电路设计中至关重要的环节,高质量的电源是系统正常工作的必要条件。本系统的外部输入为巧V的直流电压,系统需要的多个电压值,通过电源电路模块转换成系统各芯片需要的电压。例如线阵CCD需要+12V电压;AD9945需要3.3V电压;FPGA芯片需要3.3V、2.5V和1.2V电压。系统电源转换框图如图3.10所示。ASM1117AD9M5,U犯和1供电?VCC3V3?一,如14巧巧片等ASHQ117I供电?VDD3V3?A的9化模拟 ̄ ̄滤波。型滤波FPGA最小系统供电rZTZII、5VOu?5Vs?VDD5V一tSy—II2.5V1.2V,等础滤波I供电、,??VDD5VSN74LVC4245A ̄MC34063电巧>;石品!图3.10电源转换框图Fi3.10Diaramofowerconversionggp输入系统的巧V电压经过巧片,将巧V数字电压提升至+12V数字电压,+12V一2V数字电压在经过个滤波器后得到W模拟电压,为线阵〔畑供电,如图3.11所示。甲。1哗R1630OI73.3)一ttIaR1"—,..,1swcCZ3W去DRCt=ZI、。,54丄齡:白證i。。4"Me34063^IOK甲下3ri^下,严^AVW早 ̄ ̄ ̄■—<4+坤速A ̄说2u]6Sa2 ̄^ ̄ ̄斗j^llOZamH-團3.115V12V升压电路-mFi3.11Steucircuitfro5V化12Vgpp22 第H章系统硬件电路设计-输入系统的5V电压经过电容滤波后,通过ASM11173V3稳压巧片将5V数字一电压转换成3.3V数字电压,再通过个滤波器将数字电压转换成模拟电压,为AD9945模拟接口供电。另外,USB接口芯片和RS485接口忘片所需的巧.3V电压转换电路与此相同。Altera公司生产的CyclonelV系列FPGA芯片主要包含有VCCA、VCCD、VCCINT和VCCI0四种电源引脚。其中VCCA引脚是系统的辅助电压输入,需要巧.5V输入供电;VCCD是锁相环工作所需的电压;VCCINT作为FPGA的内核电压,需要直流+1.2V输入供电;VCCI0是FPGA的I/O接口的电压输入引脚,FPGA总共有4个输入输出接口BAM每个MNK可根据工作方式不同,,需要的电压供应也不..12同,本设计中所有输入输出部分都使用了巧3V电压供电。如图3所示。0紙3 ̄r—USffJm包巧玄Jm化 ̄刪咖[71oI743r叫ia8s餐AW|If|I| ̄ ̄ ̄口^芭Hvcc^下T04j>-1G巧^ ̄N^I!-zzrm-Iz-—I满献S议撕if+=:=:01041M14木IIlooufifiey!丄_一_J_-'*-r ̄3sjssrS3Sr^31图.2FPGA的电源电路Fi3.12PowercircuitofFPGAg3.7系统P犯设计系统的P佛设计需要严格按照PCB的布局布线规则完成。PCB的布局布线规则如下所述:1.、布局:在PCB设计过程中,应该遵循整齐紧凑、分布均匀等基本原则。在P地布局时优先考虑高速芯片的摆放,当遇到模拟数字混合电路时,应对模拟部分和数字部分进行划分。高速芯片及其外围器件的摆放应该遵循信号完整性的。原则,注意髙速信号线应该布置得尽量短2.布线:在进行PCB的布线时,应先确定的参数是走线的线宽和线间距。走线的线宽很大程度上决定了阻抗,而线间距的决定因素则更为复杂,这就要求设计人员巧走线密度、串扰、功率么间进行权衡。本设计中最小线宽选择lOmil,最小线间距选择8mil。输入输出导线之间最好加地线隔离,如果无法避免平行,可W通过走弯线避免反馈稱合。3.电源:系统包含了多个电压值,在P畑设计应注意电源在传输过程中的干扰,在器件的附近应该选取合适的旁路电容,另外系统对模拟电压和数字电压进23 合化工业大学硕±学位论文行了区分,注意两者之间的差异。4.地:当系统同时包含模拟部分和数字部分时,尤其涉及到高速A/D电路的情况下,为了降低噪声干扰,模拟地和数据地的划分就变得尤为重要。系统图像采集前端的PCB如图3.13所示。图3.13系统前端采集板的PCB-F.13PC艮rig3offronte打dacquisitionboad3.8本章小结本章主要对图像处理系统的硬件组成1^1PCB、原理图设计>及系统的设计进行了阐述,主要包括图像信号采集和调理模块、通信模块、FPGA、数据缓存模块、PCBltiuraer核屯模块y?及电源模块。硬件电路的原理图和设计基于ADesi即软件平台,经过制版、焊接和调试,图像采集系统可W正常工作。24 第四章FPGA内部搜辑设计第四章巧GA内部适辑设什4.1FPGA内部還辑设计方案FPGA作为整个系统的控制粉已,其内部模块的设计W及模块之间的接口控制是系统设计的重中之重。它需要为线阵C畑和AD994日巧片产生驱动信号,控制F一外部SDRAM巧片和内部IFO的读写,此外大量的图像必须上传至PC机,这过2,程通过U涨.0接口实现,而对系统的参数设置是通过485串行总线实现的最后需要对图像进行预处理FPGA:。下面简要介绍内部各个模块U产生线阵CCD和AD9945芯片正常工作所需要的时序驱动,对外部控制信号和配置参数,W产生相应的时序脉冲。PGA一2)FPGA在对数据进行缓存过程中,,SDRAM需要获得F发送的系列命令如预充电、读写操作等,并满足操作时序的要求。考虑到与其他模块的、自刷新同歩要求。,模块需实时接受、产生同步信号3)控制胎B2.0和4化接口芯片进行数据的传输。FPGA对USB接曰芯片发送控制信号和图像数据,实现图像数据从前端采集板到PC机的传输;485接口模块对PC发送来的数据做出实时相应,实现系统的参数配置。4一)图像预处理模块般包括图像的滤波、増强及边缘提取等,本设汁采用了中值滤波和Sobel边缘操作。在设计中采用流水线操作和FIFO缓存对结构做了优化设计。4.2线阵CCD和AD9945芯片的驱动模块4.2.1CCD驱动时序分析TO)120抓采用I2V单电源电压供电,并由5V驱动脉冲驱动。其正常工作需要六路驱动脉冲,驱动脉冲的组成及其作用见表4.1。表4.1TCD120弧的驱动脉冲及其作用Tab4.1Drivinulse扣nctionofTCD1209Dgp符号名称作用中1移位脉冲配合12把CCD信号电荷向输出方向移动)2移位脉冲与相同(1器最后一()2B输出时钟移位寄存个电极|RS复位控制信号清除残留在输出二极管中的电荷細转移口控信号控制光积分时间CP错位口控信号滤除尖脉冲噪声25 合肥工业大学硕±学位论文TCD1209D的正常工作的时序图如图4.I所示,驱动的设计必须严格遵守时序1要求,必须为高电平,使細的。转移口控信号細高电平期间像素时钟信号巾下降沿落在()l的高电平上,这样可保证电荷信号向模拟移位寄存器和电极转j移,SH,。电荷信号转移结束后驱动信号由高电平跳变为低电平同时器件中模一拟寄存器与光敏区相隔离。在像素时钟信号巾1和()2的作用下,方面光敏区在|积累电荷信号,,而模拟寄存器同时将电极中的信号电荷向输出转移经过光强调U"制后的脉冲信号在输出端输出。巧巧巧<权分財间ZZ,/jSH—rA%Lj一窝?,二ss二s泻;吳g奇養養養養養ii羣icR;ijmjTfHjiJiiijmJVi ̄n_rLnjinjHrLrLniirLrLrLrLrLrLrLrLfiryl;Innnnnn^nnnnnnnnnnnnnnnnni、nnnnnn皆r三岂ii:y阳snniKnnn员巧n,巧巧巧flnn円nnnngn日nnn巧円n,,!njjfl:/魁CPJ_LJ_£J^vJLJLJLJULJyLJLJLJLJLJLJLJLJLJLJLJLJLJLJLaJLJLJLJLJl_fl44^v^^|1呈是1是iii呈s?圓S圍!iiiiiiiiil!Ui成巧布16个巧记3个命九2048个橡输3个单油4个咏/l:■jt!三己。}<32峡免8个曲元A出辛玄灼巧(2088个带化)图4.1TCD1209D的工作时序图Fi4」TimindiaramofTCD1209Dggg細处在低电平的时间应该大于2088个像素时钟信号^的周期,只有这样才能在下一行信号到来之前第一行信号能全部转移出器件。当細出现下降沿时,输出端便开始输出信号:32048。输出信号的顺序依次为个哑元信号与2个有效一像敏单元信号和8个哑元信号,共为2088个信号,在像素时钟信号的作用下依次输出。TCD120抓的基本时序要求如图4.2所示。SH於CPTmn,,iigRSCPTmi从,.OSi巧 ̄"可F?T19巧巧".—〇?I,r,tH?一"冬sI"^A_i,6VI^",<?\r\j ̄^"?1^1图4.2TCD1209D的时序要求F14.2TiminreuirementsofTCD1209Dggq26 第四章FPGA内部逻辑设计4.2.2CCD时序驱动设计CCD一驱动脉冲只有严格满足时序要求,该才能保持正常工作,送点非常重要。线阵C畑驱动的实现方法有多种,可yA采用分立元件及74系列芯片来搭建;2可W将配置数据直接存储在EpR0M中,等到上电时读出驱动信号;也可W利用大规模可编程逻辑器件FPGA来实现。上述实现方法中FPGA驱动方法由于简单、可靠并且易于修改,所W本系统采用FPGA来产生驱动信号。基于上述CCD工作原理及驱动时序的分析,用Verilog语言和Altera的QuartusII平台对驱动电路进行了设计。考虑到系统中多个模块的同步要求,设计了同步信号。设计主要用了两个计数变量:主时钟计数变量counterl和设计RS、CP驱动时的计数变量counters。counterl按照2100个像元计数,没有按照2088个像,留有12个像元余量。細和()1由counterl的计数值控制元计数,根据时序驱|一?动要求来设定计数值。在峽内,当counterl计数值在2999时,拉高复位控?制信号SH,而初始时刻^保持高电平的时间比細长,设定counterl在0129时保持和高电平,之后即对主时钟分频。方法是每当counterl[4]发生变化时,2翻转()1;对<)1反相即可得到料和<>2B的驱动信号()为高电平时,对counters。当1||tL一开始计数,扣是由主时钟32分频得到,所JA在个周期内,批保持高电平的时??间为16个时钟周期counters08RS9巧时。计数值在时设定为高电平;在设定RS为高电平。利用Modelsim对驱动进行了功能仿真,仿真波形如图4.3所示。■—'—'IJU);U:}__J—1^—,.bil———占‘pll:畫:嘴碱V?L图4.3CCD驱动时序仿真图F.i43SimulationfdrivetiminggoCCD从仿真波形可W看到,T畑1209D的工作时序正确,满足巧片的时序驱动要求,对时序信号放大后并无组合逻辑毛刺。4.2.3AD9945驱动时序分析AD9945内部有4个寄存器,分别为工作寄存器、控制寄存器、暗电平巧位寄存器、VGA增益寄存器。要使AD9945能正常工作,实现需要对其内部寄存器进27 合肥工业大学硕±学位论文行配置,409945内部寄存器及其功能见表4.2。表4.2AD9945内部寄存器说明Tab4.2DescriptionsofinternalregistersinAD9945名称数据位地址位功能DO软件复位(1恢复寄存器为默认值,0正常工作)D2D1掉电模式(00正常,01备用,10全部关闭).D3孤巧位使能(1关,0开)OperationD5,D40000测试模式(应设为00)D6PMJ(消隐电平D8.D7低増益模式(通常设为00)?D11D9测试模式000)(应设为DOS肥/S曲输入极性(1高有效,0低有效)D1DATACLK输入极性,0低有效)(1高有效D2CLP0B输入极性(1高有效,0低有效)D3PBLK输入极性(1高有效,0低有效)Control0001D4兰态数据输出(1输出高阻态,0输出有效)D5数据输出锁存(1不锁存,0由DATACLK锁存)D6数据输出编码(1格雷码,0二进制)?D11D7测试模式(应设为00000)?巧ClampLevelD7DO0010OBClamp值(0:OLSB,5:255LSB)?VGAGain帕DO0011VGA增益(0:6地,1023:40地)通过3线(SCK、SDATA、SL)串行数字接口对AD9945内部寄存器进行配置,可改变放大器的增益和输入时钟的极性。寄存器化址线有A3A2A1A0四位,数据12位,不足12位的由零填充^1对单个位不超过。每次对寄存器进行配置时,可!^?寄存器配置,也可对所有寄存器进行连凄配置,本设计采用单次配置方式,示意图如图4.4所示。————WK1nnnnrmrmnrmnnnnrr"SLI图4.4寄存器配置示意图"F44Draig.iagramofregisterconfigution28 第四章FPGA内部攫辑设汁双相关采样需要H路脉冲信号洲P、S册和DATACLK。細P和細D分别在上升沿对参考电平和数据电平进行采样,DATACLK时钟脉冲的上升沿介于細D脉冲的一上升沿与下个甜P脉冲的下降沿之间。通常細P、S册脉冲会因为内部传递延迟而出现延时,因此,信号采样位置的选取是至关重要的。双相关采样的时序如图4.5所示。/%?,1c叫f? ̄ ̄ ̄ ̄ ̄㈱__II_f1_ILJI_IIi ̄IfIII11IIIr:IrK乂之乂乂■^,\H\I图4.5AD9945采样时序图Fi4.5DiaramofsamiAggplingseuencenD9945q4.2.4AD9945时序驱动设计AD9945的最高工作频率为40MHz,因为本系统中前端CCD信号的输出频率为4MHz,为了实现数据的同步传递,把AD9945的工作频率设定为4MHz。当CCD的信号频率为40MHz时,各个驱动脉冲的相位关系如表4.3所示。需要法意的是,如果CCD的信号频率发生变化,相应的驱动脉冲信号的频率也该发生变化。表4.3时序脉冲的相位关系Tab4.3Phaserelationshioftiminulsespgp参数最小最大DATACLK、S册、S册时钟周期/ns25DATACLK高/低电平脉冲宽度/ns1012.5S抓脉冲宽度/ns6.巧SHP脉冲宽度/ns6.巧化P0B脉冲宽度/ns220S册上升沿到SHD下降沿/ns6.巧SHP上S皿ns11.升沿到上升沿/.251125内部时钟延迟/ns3输出延迟/ns9.5S沈的最高频率/MHz10由于前端CCD信号的输出频率为4醒Z,所W送里把AD9945的工作频率设为29 合肥工业大学硕±学位论文4HM一ZPDATACLK。由洲、S阳和么间的相位关系可知,驱动模块需要个八倍于32MHzFPGA一一40MHz工作频率的基准时钟,即,的时钟信号之由块的有源晶振产生,想要得到32HMZ的信号,可^^J>利用FPGA内部的锁相环PLL完成4/5的小数倍频。在AD9945正常工作么前需要对其内部寄存器进行配置,使其在需要的状态下工作,这里的配置是通过3线串行数字接口完成32丽Z基。首先在准时钟下定一counter义个八进制计数器l,当counterl计到3时对时钟SCK进行翻转,其次是产生内部寄存器载入脉冲化,在时钟SCK下进行52次计数,计数期间化置为0,结束后置为1,并在低电平期间的SCK上升沿对SDATA进行52次串行写入。利用Modelsim仿真结果如图4.6所示。HBmHmHmmHHmBmnmm?曲画画曲^W规刷i段削i關圍誦画顯拙的誦醒助rt^曲姑删l明I————4AD9945图.目寄存器配置仿真图Fig4.6Simulationofregisterconfigur巧ioninAD9945完成对AD9945内部寄存器的配置,规定了其工作方式后,即可设计AD99巧的采样时钟細P、S册和DATACLK。DATACLK是图像信号同步时钟,应该与CCD输出信号严格匹配,其占空比为0.5,产生的方法是对基准时钟进行二倍频。SHP和S1阳的占空比均为0.75,不同的是SHP的相位超前于S册半个周期。用modelsim仿真结果如图4.7所示。如如綱k權胁")帕賴細^1'?‘TT;/島[]rrnTjTiiij巧川ft:]i也强utht雨n」ijfiri,去巧w;/心常聲’通田——a雖讓舅窗图4.7AD9945的信号采集时序仿真图巧4.7SimulationofsinalacuisitioninAD9945这gq4.3外部存储器接口模块4.3.1SDRAM的基本操作和指令SDRAM可(^实现多种操作,包括:初始化(Initialization)、空闲等待(Idle)、30 第四章FPGA内部攫辑设计预充电(Precharge)、寄存器设置(MRS,ModeRegisterSet)、刷新化efresh)、-激活(Activate)、自刷新(Selfrefresh)、镇/写操作(Read/Write)和节电Bw(Powerdown)等。送些操作是通过信号线抓AS、狀AS、#WE共同控制来实现的,""""其信号组合表见表4.4。表中L表示低电平,H表示島电平。表4.4SDRM控制命令Tab4.4ControlcommandsofSDRAM命令缩写#MS#CAS#WE空操作NOPHHH页操作ACTLHH读操作畑HLH写操作WRHLL突然终止操作BTHHL预充电PCHLHL刷新操作ARFLLH模式酷置寄存器LMRLLL在进行私片初始化操作时,最为关键的步骤就是模式寄存器的配置,送影响到后面读写数据的具体操作。模式寄存器配置包括配置突发长度、潜伏模式和突式寄存器的设置见图4.8。发类型,模化址总线BA1BAOAllA10A9ASA7A6A5A4A3A2A1A0IIIIIIIIIIIII模式奇存器iiiiiiiiiiiiii操作模式CAsm伏^bt突发长度I||操作式严—BA1,八,IlBAOA。A"A9ASA7横式乂3|方式0000000突发祷巧^爱写顺序0000―^00I突发镑/巧III交措图4.8SDRM模式寄存器的设置巧4ttinSDRAMreitrsg.8Segofmodeseg4.义2SDRAM的巧始化和自刷新一沈RAM和其他硬件样,每次在正式使用么前都需要经过初始化。SDRAM的:首先发送预充电指令并满足取消锁定的时间要求(至少20ns)初始化过程为;63ns一发送自刷新指令并满足自动刷新的时间要求(至少);重复执行上操作;31 合肥工业大学硕±学位论文最后发送模式寄存器装载指令和相关配置信息并满足配置卻RAM所需要的时间(至少63ns)。这样就完成了SDRAM的初始化操作,其物理时序图如图4.9所示。巧*,?Ttfn17b!rp?JT2T呈pp外u。A似<丰叩1I(■-""■*"—'——'''广文"…WW寧两朽/WFWIT[—Ii主sdI'IIj1AH&"I'品^W赏巧嗦嗦wb//研乃巧Mfy/,输沒皆.U/f/f藻《fm///l旬宵研IMTIKM/.^^兰iL'IMltmaU,。iif巳,。iI( ̄M。妨燃巧弯燃嫩双奶啄燃说方众激ST臟巧卿甲在。辆甲产^W1巧/乂/岭/汾必妨:城说槪份魏//////M//)r^rw/.嗦于夺j岭伞DOT,,OCAt……—.钱4.I^1J*IAifPw?e-ru£1|t\。\*、、^V>、、f^r^mMoc&tBiejK3Std!????巧AUTO站巧:??AUTO巧f始SHgK^C"ba地泌,駭DOfrr〔AfeE驟U嫩巧WEO图4.9SDRAM的初始化时序图*巧4.9TiindiaiamDRAMizaon爸mggofSintialitiSDRAM资源逻辑的本质就是电容,电荷随着时间的流逝,数据内容会丢失,一因此SDRAM必须每隔段时间刷新这些电容,使得电容的内容可W得到恢复。自刷新的过程为:首先向SDRAM发送预充电命令并满足消耗时间的要求,释放所有资源库;向SDRAM发送自刷新命令并满足消耗时间的要求;刷新内部逻辑的内容;一操作DRAM重复上,这样就完成了S的自刷新操作。4.3.3SDRAM的读/写操作列地址可X一L:和读写指令起发出,但是列读写指令与行有效指令之间应该有时间延迟,这里的延迟也称作间隔。它是有存储器内部的存储阵列所对应的电子一一元件的响应时间决定的,存储阵列内部的元件从个状态翻转到另个状态就称为响应。当行地址和列地址都被选择后,储存器内部的储存单元就选定了某个具体的位置,这时需要将待发送的数据从输入输出通道送往数据总线。由于存储器芯片一一里集成了许多数量的晶体管,晶体营般在开关状态切换或者反应都需要定的时间一一,这就造成了数据输出发生的延迟。般在发送数据之前,应专口设定个一,只有这样才能保证发送信号的强度。因此缓冲时间,通常为个时钟周期,在数据总线上进行数据传输之前,待发送的数据应在时钟上升沿到来之前就被触发,32 第四章FPGA内部逻揖设计一410经过段时间后把数据到数据总线上去。数据读出时的时序关系见图.。T巧巧TOT1T2T3T4巧S—?"—.-——〔化■马I]f]IJIp^主][喘KkStCKH… ̄' ̄ ̄ ̄'c"巧\ngwwwwmuwwMS叩餐ICommandKms…科’、I'。。""")///W//""讯丽淚\VMk抓TKiMh///////激/W//汾/巧伞坤/义//令///%bSV^HIII/\1'!广IifASHrvblcor?haAEAlutcr?jpg|’'w■/fhf//////////f///w/)//f"//"hiMiiihimK2miL(iii^^i^^tAC如tfiC.■■■ttV^C〇H〇Hk>H々H…^咕=(:巳CL2I如^L—ItftSA^I,,Don,CawUndefkred图4.10S抓M读数据时序图巧斗.10TiiramfreadininSDRAM装imngdaowordgg—一tRCD,L。和读数据样,写数据也是在段时间进行的不同的是写操作没有C—另外需要注意的是在列寻址时,WE直处于有效状态。数据写入时的时序关系见图4.11。TOTl12TT4T7T8巧3巧巧— ̄ ̄ ̄_■—■— ̄— ̄— ̄—C比=1IiII!_Jb=Fl=rFLJII__iFk:KSHj皆II ̄ ̄ ̄ ̄WW ̄WWWWWWW说王抑汽Icommand后k邮tCMHI曙妨飘疆勝星星历妨奶妨妨w蕭/////////妨巧巧申申寺化导一Add,",户……recharEwble8"。peI吟g|w。賞早immmrmifimw/}戸脯mmmwfiT/讯j严巧tAShHBA。Bw’乂/…///")f/""………t〇S电H惦&H电S杞H&HtRCDtWR抑T,,to^ItRC■图Do。、Care图4.11SDRAM写数据时序图巧4.11TimingdiagramofwritingwordinSDRAM这33 合肥工业大学硕上?学位论文4.3.4SDRAM接口模块设计SDRAM顶层模块链接如图4.12所示,因为SDRAM只有在上电时调用初始化模一块次,所L:ISDRAN巧始化功能拥有独立的模块。初始化模块有用来发送命令的,信号,块同时需要接受初始化完成的反馈、列和行地址信号W及模块启动信号信号。SDRAM功能模块有S个基本功能,分别是自动刷新、读操作和写操作,其中读写操作和自动刷新操作应该有独立的反馈信号来表示完成相应的操作。该模块有数据的I/O信号、地址信号及读写请求信号,地址输出信号的作用同初始化一模块致。最后由SDRAM控制模块来控制洲RAN初始化模块和SDRAM功能模块,有使能各个操作的信号和相应操作的反馈信号。'心化.-40S的船U!;|'"*—**^*?1>4j_O。關〇CUK ̄鄉瑪眠?-:[二^H^:烹蒸樹II。励二晋晴。舰併S杞赚目张.〇:脚_rr^jtrrT1,—御,C。巧。船托;匹>編占—_历I!;I叩:'巧!*乙3巧[0(!巧0e-^_卿哄;巧:巧_柿_3川。1細-叫式550脚化鸿^騎_約_;吉[I:加,蠢,内I"?--—_,.…吃.却i*。,r二二?艰巧為^.—」巧Tu43?*8|1BSkS_4為.g^]I--、ii…。|。‘—一LI'"9職崎际巧技;‘阳臣aI、'?广"过I狂。L■0側巧祐L始15D!IL一■3)[PWUDQMg^>_^!化々J■。挪说队刈区^口选N£巧區^_图4.12SDRAM顶层模块锭接Fi4.12In化rlinkaeofSDRAVmoduleggIUop4.4FIFO缓存模块一FIFO作为种特殊的存储器,通常应用在产生数据接口的部分,对数据进行存储、缓冲。在异步电路中,它可用于异步时钟域数据的缓冲,因为时钟之间的一L、频率和相位独立,乂巧止数据在传输过程中发生丢失。因此设计个高可靠性高速的异步FIFO电路是很有必要的,FIFO设计的关键是产生可靠的FIFO读写W"指针和空满状态标志。4.4.1异步FIR)的结构设计F一异步IFO地址指针般采用格雷码计数器,因为二进制计数器计数时所有位都有可能发生变化,不利于跨时钟域的同步。比如3位二进制数从3(011)变到4(100)时,所有位均发生了变化。因此,門F0的读写地址指针都采用格雷码计数器。34 第四章FPGA内部逻辑设计""""在异步門F0的设计中,最关键的是产生門F0空/满状态标志,主要""""有两个问風异步时钟域问题和FIFO读/写指针相等时准确区分读空和写满。可W采用格雷码计数器解决异步时钟域问题,;对于读空和写满状态的区分可W一对FIFO地址空间进行划分,般将其划分为四个部分。通过比较读指针和写指>。日针的相对位置,通过对最高两位译码1^1确定円是接近空转态还是满状态,从W而生成正确的空满状态标志。异步FIFO的结构框图如图4.13所示。为了便于分析和移植,依据功能和时钟域对其结构进行了划分:(asncfifo)所有FIFOU顶层模块巧_,对模块进行封装;2)双口RAM模块(dp_ram),实现对FIFO的读/写操作;3)异步比较器模块(asysnc_cmp),比较FIFO的读地址和写地址指针;'4)写满控制模块(wptrull),产生打F0写地化指针和写满标志j;5)(rptrerat),产生打F0读地址指针和。读空控制模块_py读空标志写数据读数据1?wdatardata^ ̄ ̄^RAM、思供指针写指针wdken与读空与写满逻辑攫辑waddrraddrrptrwptr写针\读允许"eq写允奔wwq^wmpty写满wfuM读空??aempty_nafu读时钟lln和?\—1I1I'"?〉?异步^!Q比较器K9写时钟I接近满接近空写复位I读复位_I|图4.13异步FTF0结掏框图41rramoF巧g.3Structuediagfasynch阳nousIFOmoduleasncfifordataremtwdatawflill,,y_(,py,wrewclkwrstnrrerclkrrestn,,—,,);qq,_W=parameterDATAIDTH8;_35 合肥工业大学硕±学位论文=arameterADDRWIDTH4p;_tADDR-1ouuWIDTH:0rdata;巧[_]outputwfull;oututremptyp;tADD民-10wda化inuWIDTH:p[—];inutwrewdkwrst打,,;pq_i打山rrerclkrrst打口q,,—;endmodule4.4.2异步FIFO的实现、FFO为例Verilog根据W上分析,深度为16数据宽度为8位的异步I,用册L语言编写了各个模块,并采用Modelsim仿真工具仿真验证。图4.14中A图是读时钟频率大于写时钟频率的情况,而B图的情况刚好相反。隨gBMMWBBMMmiiiilwi■曲8‘Hjiq鷄某■WBB——減BammsSS^^mSSmues^mB閱瞧關圓圓圈班曲圓苗(A)AJttgjWB—B——W———H—H—W—————a————g^^ggSBgg—aBggBBBB■T■!!■■■■■■■■■—^—miniomi奶巧IB()图4.14异步FIFO时序仿真FTiminsim山aianchronouFig斗.14gtonofsysFIO36 第四章FPGA内部還辑设计4.5U犯控制接口模块对系统的通信部分的设计包括两个方面;USB2.0通信和盼485通信。其中对USB2.0通信设计包括FPGA与CY7C68013A芯片接口控制的Vedlog册L程序及USB固件程序和驱动程序。本节主要研究FPGA对CY7C68013A芯片的控制部分,U犯固件设备驱动则可从官方开发套件包中获取,只需对配置参数稍做改动。同样,本节对RS485通信部分的设计也只包括FPGA对SP3485芯片的控制,不涉及应用程序。4.5.1CY7C68013A抵片別aveFIFO工作方式CY7C68013A有两种接口方式:胖IF方式和Slave門F0方式,SlaveFIFO方式是从机方式,主控制器对数据缓冲区的操作与普通FIFO类似。GPIF方式是W软件编程读写控制波形的主机方式,可对任何类型接口的控制器进行数据的主动读写,GPIF方式时序的描述比较复杂,对时序要求化较严格,需要使用专用"23开发工具来实现时序的控制。相比徘IP方式,SlaveFIFO方式更为容易实现SlaveF0SlaveFIFO拴制,所W本系统选择使用門方式。传输方式又包括同步和异步两种模式,同步模式的传输速度理论上可达到60MB/S,而异步模式只有20MB/S。因此本系统选择同步SlaveFIFO方式进行数据传输。SlaveFIFO传输的示意图如图4.15所示。F)(2巧片FI的端点SlaveFIFO門的外l量传输琴收发器_Save口?+..一^璋I巧_ ̄从控制器n缓f冲反机逻**I辑8051固件I图4.15Slave門F0传输示意图Fig4.15DiagramofSlaveFIFOtransmission当CY7C68013A巧片工作在Slave門FO工作方式下时,芯片并不参与数据传一USB2口和输的控制操作.0,只是作为个接数据缓存器而实现与主机的高速通巧,由FPGA提供满足SlaveFIFO要求的传输时序。SlaveFIFO相关寄存器的一配置和工作模式的控制由忘片内嵌的8051固件实现,这过程在上电之后即完一ve円F0工成。旦Sla作模式确定并完成相关的寄存器的配置,8051固件不再参与任何操作,主控制器FPGA根据SlaveFIFO的传输时序与主机进行通讯。CY7C68013A端点配畳方式很灵活,,大容量高带宽的数据传输点有EP2,4637 合肥工业大学硕-上学位论文一8.巧,和,可设置为IN或OUT端点。端点配置模式如图4所示每个門?0有个地址,由FPGA通过FIF0ADR进行选取。'1IIIEPQN&QUTRn'RD1四1lr^[^|应^回JCMH应J应□应IT四□ ̄ ̄^1II巨PI14Iri应□II1iN四□dUD[6|区I]应^应n歷n应u巧ierin1ou了E1ir^1rwiririr^ir^H]doIODdEMiHiniiDSSS露遍i[[咨吗I詔Ii證1I1。241黑圍^圏I圖園&巧WNiilliiih’。^iHfi。2。1III1Iw遷—."月Rm量i服ilP園i.iirlf闇y"",对圍【,,柏化中3巧圍站日|^^,:巧妨30氏巧陆脚励tgTgrsT^識J。叫tsssasa^I!II□n闕祠円向円网口円回I,。24圍ad藝圓r議動;旧y=圓1圓欄匿间議BS8910116112,2347|,.!,I,.:I图4.16端点配置模式Fig4.16Configurationmodeofendpoints4.t2同步SlaveFIFO的读写操作当FPGA对CY7C68013A进行写数据时,其状态跳转如图4.17所示。系统初,。始化时,状态机处于空闲状态,当写事件发生时跳转到状态1在妖态1下,使門F0ADR[1:0]指向IN門F0并进入状态2。如果門F0满,在本状态等待,否则一进状态3。在状态3下,驱动数据到数据总线,使SLWR有效,持续个IFCLK周期并跳转至状态4。如果需要传输更多的数据则转至状态2,否则进空闲状态。状态4417图.同步Slave門F0写状态转移图F417niiirwriinig.State杠astondagamoftg当FPGA对CY7C68013A进行读数据时,其状态跳转如图4.18所示。系统初,1下,始化时,状态机处于空闲状态跳转到状态1当读事件发生时使。在状态FIF0A抓1:00UTFIF0并进入状态2。此时化0E有效,在FIFO为空时停[]指向,留在该状态,否则进状态3。在状态3下,读取数据线上的数据化RD有效,持38 第四章FPGA内部逻辑设计一续个IFCLK周期,門F0读指针递増并跳转至状态4。如果需要传输更多的数2据则转至状态,否则进空闲状态。、状态I状态4图4.18同步Slave門FO读状态转移图Fi4.18StatetransitiondiaramofreadingggRDLOE2FO在初始状态,信号化、S和SLWR均为高电平,当数据传输点排的門—为满,同时将信号化赃和化肥拉低。此后,FPGA直读取邸2中的門F0的数FLAGAFADDR2据,输出为低电平。此时,状态机将,,直到读空即调整到状态EP6A抑一等待的空标志信号化。旦FLAGD拉高,将信号SLWR拉低,将刚刚读取的数据写入EP6,直到写满。读写控制模块的仿真分别如图4.19和4.20所示。’V—:?.:'..’倒I的SmWSmrnWSimSMmmSmSSmmSm■-■巧/公巧直:1>;MSB圍一..hhiHHSIhB■■■■■■■■■I图4.19SlaveFIFO写控制模块时序仿真波形巧这4.19TimingsimulationwaveformofSlaveFIFOwritingJtJJJ!:,__.,—SBB^SSS—B^^^^^BSSSSSSSSS9SSRSSS!^S^SIS^^SS5EBhhhhhhhhi图4.20Slave門FO读控制模块时序仿真波形Fi4.20TiminsimulationwaveformofSlaveFIFOreadinggg39 合肥工业大学硕±学位论文4.6图像预处理模块系统在图像的采集过程中会引入各种噪声,,使得图像质量变差降低系统的。可靠性,因此必须对图像进行预处理,滤除噪声由于图像处理的数据量较大,如果采用软件实现会比较慢,不能满足系统实时性的要求,本系统利用FPGA硬一件来实现图像的滤波和边缘提取。中值滤波作为种常用的图像预处理方法,能。,够有效去除噪声,平滑图像与其他滤波方法相比中值滤波在去除噪声的同时UW不模糊图像的边缘,从而可W较好地保持图像的质量。4.6.1图像巧波方法介绍噪声在频域通常对应高频部分,,图像滤波能够减弱或消除图像中的高频部分实现对噪声的滤除。在空域噪声的消除通常有线性滤波和非线性滤波。常见的线性滤波器有高斯滤波器和均值滤波器,中值滤波器则是典型的非线性滤波器。实际的很多平滑滤波算法均是基于模板的卷积进行的,下面就对这H种常用滤波方法进行简单介绍。1.均值滤波均值滤波是将待求像素点及其邻域内像素点的灰度值取平均来去除突变的,从而实现对噪声的滤掉:像素点,其数学表达式为x=g(,y)/0,0\之^sz<Ntx,,yi)()其中,N(X,)代表f(X,y)中(X,y)处nxn的邻域,对应模板所覆盖y的范围,常用的3X3和5X5的模板为:'■11111111111111[-1丄111111192511111111」11111-2.高斯滤波一些良好的持性高斯函数具备,依据高斯分布设计出来的滤波器即为高斯滤二一x,、量化,并对其归化处理33波器其模板对维连续高斯分布经采样,常用的x和55的模板为:-1474112141626164「]—242丄2647:12671627312141626164J4741_40 第四章FPGA内部逻辑设计3.中值滤波一种基于排序的滤波方法中值滤波是非线性滤波中,它是依靠模板排序来实-现的,用于图像的2D中值滤波的输出如下式:二3乃曾恕皆片,巧式中,median表示所取的中值,即对模板内的所有像素点灰度值进行排序,处在中间位置像素点的值即为中值,。在邻域内像素点灰度值相差比较大的情况下将其值替换与周围像素值接近,消除单独孤的噪声像素,这样就起到了中值滤波的作用。4.6.2中值摊波算法分析传统的中值滤波算法需要对模板中的所有像素点的灰度值进行排序,W序列的中间值作为模板的中值。W3x3模板为例,对其进行完整的排序运算需要进行36一,512x512的灰度图像进行处理次叱较运算对幅,需要处理的像素点数为262144,总共需要9437184次比较运算,,可见运算量相当大所耗费的时间也是相当长的。0一,文献叫是出种新的选取中值的方法对此,这种方法不需要对窗内所有的像素点作完整的排序,同样能够选出中值,称之为快速中值滤波算法。快速中值滤波算法的实现过程如图4.21所示。与传统中值滤波算法相比,快速中值滤波算法去除了冗余运算,使得运算量大大减少,缩短了单个像素点的运算时间。快速中值滤波算法的具体步骤如下;首先分别对窗内H列值按从大到小的顺序进行’’’’列排序,NN,N得到;再对的H巧按从大到小的顺序进行行排序得到;取出’’N副对角线上的中间值即为整个窗的中值。762267137对角线中值— ̄——I\\V813列排序)138行排序^238>U7—^495459469图4.21快速中值算法实现过涯F42i.1ImlementationrocedureofFastmedianalorithmgppg4.6.3中值滤波算法的FPGA实现利用FPGA实现中值滤波可^^A分为两步:同时获取待处理点周围邻域的八个X3点及其本身在内的九个像素点的灰度值,形3待计算模板成;对上步获得的41 合肥工业大学硕±学位论文9点像素值进行排序,,选出上述九个灰度值的中间值并输出输出结果即为待滤波的像素点进行中值滤波处理后的结果。对选取窗内像素点的灰度值的中值,待处理的图像数据数据流的方式一一输出,即个时钟周期传输个或几个像素数据,经过几个时钟周期才能将待处一一理数据全部输出也可在。在;个时钟周期内同时输出待处理数据个时钟周期内,同时获取待处理像素点及其邻域8个像素点的值是关键问题3x3模板生。成过程如图4.23所示,由两个缓存器FIFO和H组寄存器组成,对图像数据流分别进行行延迟和列延迟即可完成。待读取的9个像素点分别在相邻的H行,缓存器FIF01和FIF02分别存储前两行的数据,等数据输入第H行数据时,再同时从F一IF01、FIF02及第H行读取数据,这过程就完成了数据的行延迟。然后,分别对S行数据进行H级寄存,列延迟之后即可将寄存器内的数据同时输出。data…-D触II;DtDM ̄"I>?1II发器发器发器I***Ir,I^ ̄ ̄ ̄ ̄^FIF01D触D触D触 ̄ ̄^^^发器发器发器FIF02I^D触D触D触* ̄^^发器发器发器I?*?图4.223X3模板的生成结拘图F422Darammlaeeneranig.igof化ptgtig在ModelsimSE软件中对上述模块进斤了仿真,其结果如图4.24所示。可レ看出,该方法可ッ准确获取待处理像素点及其周围邻域的八个像素点,并形成待计算模板。"■"■wiMro阳"■"师"■■■■曲■"脚"皿hlihirilwii■田■"抽|1;脚固巧励3H画圆,3.(邸3圆励证泌1圓圆圆励邸a励圆脚四晒励固四晒励晒脚劲!5?g剧励圆励圓励励晒圓画麻而圆固厕画墜腳晒酬丽?二苯小?-曲陋护取巧阻励纽励翻厕强励四励励圆励四觸^励励励励I励g—团晒剧圆迎巧团巧51圓':;F顺a圓证励圓圓圈a逊励麵画圓圆而抽四圓若,■l細ia‘寺娜ji騎圓励回I励圆圃圓圓睡励励剧圓邸哪砸咖强啞(MW固細塑漏3■抽誦麵疆疆捕疆通涵歷抽面疆喔涵抽窗麵誦疆捕爾R疆疆湿疆塑祖涵:拥巧__I————图4.23模板生成模块仿真波形巧爸2.23Simulationwavefbrm〇nemplategenerating42 第四章FPGA内部還辑设计快速中值滤波算法模块由7个三点比较器模块组成,该比较器对H个输入数一据排序后分别输出最大值、中值和最小值,它是整个算法实现的基础。第级的3个比较器A1、A2、A3完成对窗中H列像素值进行列排序,第二级的3个比较器B1、B2、B3完成对列排序后的像素值进行行排序,第S级的1个比较器C完成对副对角线上的3个值取其中值并输出。该模块可用纯组合還辑来实现,也可レッ在各级比较器之间加入寄存器。爱存中间数据。中值滤波算法流程图如图4.25所示。 ̄ ̄^llPII——?A1B1^ ̄ ̄^^^p32^?A3\B3■_..图4.24中值滤波算法流程图F4.24Fowchaofmedianfilerinalormiglttgisg在ModelsimSE软件中对上述模板生成进斤仿真,其结果如图4.26所示。^1^^可^,?看出,该方法可准确获取待处理像素点及其周围邻域的八个像素点并形成待计算模板。、’lito識誦麵画議誦麵瞧画曲曲III山瞧瞧画"I曲麵曲加遞画麵刪麵誦化I".>SBiiiiHinmmniHmMnmimnm团团aHiKaBamfamigsn片"——I—BSBKBgjjgMi■—■IB?一—;‘?riBESBBB—SriBukaali—iMI图4.巧中值滤波模块仿真波形巧咨4.25WavesimulationofMediamfilteringmod山e43 合肥工业大学硕击学位论文接着用Verilog册L语言实现了该算法并在Modelsim沈上进行了功能仿真,大致步骤为:一*1.用Matl油读取幅图片(144142的灰度图片),对图片加椒盐噪声一2.将加了噪声后图片数据转换为维数据,并将其输出为txt格式3.将上面得到txt数据拷贝到Modelsim的仿真目录下,作为仿真的源数据4.用Modelsim对数据进行仿真,并输出仿真后的数据,将其保存在仿真目录下5.用Matl油读取仿真后的数据,并将其显示出来仿真滤波效果如图4.26所示,通过比较发现,通过FPGA完成中值滤波取得了比较好的效果。(a)原图加噪声后化)硬件处理后(c)Matlab处理后图4.26中值滤波处理效果对比图Fig斗.26Comparisondiagramsofmiddlefiberprocessingefort4.6.4Sobel边缘检测介绍边缘是指图像局部强度变化最显著的部分,主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础。Sobel边缘算子为:■-1-2-11-10r「000-202-122101」[分别利用送两个核对所有的像素点做卷积操作,它们在水平和垂直方向的响应最大,取运算结果中较大值,这样就可W实现对整幅图像边缘的提取。在空域Sobel算子容易实现,可较好地提取图像的边缘,抗噪声干扰效果较好。如果一。想进步抑制噪声,可扩大邻域范围,但如此也会增加计算量44 第四章FPGA内部還辑设计4..65Sobel选缘检测的昨GA实现利用昨GA实现Sobel可分为H个步骤:首先构造3X3模板,该功能的实一二现在上小节已经介绍过,、垂直两个方向的梯;第步进行卷积计算得到水平,将其与口限值进行比较度值,即可确定改点的灰;最后计算两个数据的均方根度值Sobel边缘.27。检测算法框图如图4所示。水平梯度Ah,,胃像输,,_單像输电^_?梯度结合_?n限理-》!]!I^.——■t?垂直梯度_II口限TI图4.27S化el边缘检测算法框图Fi4.27FwfSobeiededetectio打lrihmgloogagotM从上文可レッ看出,卷积运算包含大量的加法和乘法运算。文献采用分立的D触发器和加法器W及乘法器来实现卷积运算,它的结构复杂,从硬件实现的角度来看,运算量较大。本设计将卷积运算用乘加器模块和可编程多路并行加法器模块来实现,让设计更加简化,其实现原理如图4.28所示。P9P8P7—Parallerdd?AerP6P5P4I—?—:王'gIParar?lleAdderP3P2PIrParaAlledder?图4.28Sobel边缘检测算法流程图4ldi巧这.28HowchatofSobeedgeetectonalgoiithm45 合肥工业大学硕±学位论文可编程乘加器的可W输入多组数据,各组数据相乘后相加或相减作为结果输出,还。乘加器可W定义乘法器个数、流水线控制时钟W及输入/输出数据格式可^式实现输入数据内部移位功能。多路并行加法器化rallerAdder可定义累加数据个数、输入数据位宽レ义及累加输入数据类型,模块最终自动生成适当位宽"51的数掘输出。边缘提取效果如图4.29所示,通过比较发现,通过FPGA完成边缘提取取得了比较好的效果。麵國國(a)待处理图(b)硬件处理后(c)Matlab处理后图4.29边缘提取效果对比图Fi4.29Comarisonifediffgpdagramsogeextractoneort4.7本章小结GA本章对件主要的几个接口进行了设计,充分利用Altea公司所提供IP核W及VeriloHDL语言,完成本系统遇辑控制模块的编写,包括其内部的时g钟模块、驱动模块、SDRAM读写控制模块、FIFOW及USB2.0数据传输模块的设计并给出仿真波形验证单个模块的正确性,最后分析了图像的滤波算法和边缘提取算法,并给出了中值滤波算法的硬件实现。46 第五章系统测试与调试第五章系统测试与调试系统各部分软硬件设计完成之后,首先需要对系统分别做硬件测试和软件测试,再对整个系统进行联合调试。系统测试和调试的主要目标是验证系统可W在规定的指标下完成图像的采集、存储、传输及预处理。51.系统测试在对硬件电路进行测试时,需要检查器件管脚的焊接,是否存在虚焊,、漏焊器件信号的输出是否正常,:检查各个模块电源电压,需要用到的工具包括数字刀用表、数字示波器、遥辑分析仪、PC机等。系统CCD信号采集板的实物图如图5.1所示,A、B分别为实物的正反面。图A中表示1:AD9945,标示2:CY7C68013A,标示3;插接件,图B中标示4:TCD120弧,标示5:USB和48日接口,用于与PC机的通信。由于系统前端信号采集部分同时存在数字地和模拟地,在硬件设计中应将两者隔离开,送样可减少地平面噪声的辆合,从而提高电路的抗干扰性能。麵刹图日.1CCD信号采集板实物图Fi5ilg.1Imageofsgnaacquisitionboard系统上电后,QuartusII软件通过JTAG口将CCD驱动信号程序下载到FPGA日.2器件中,用示波器观察各驱动脉冲信号,所示。。驱动程序下载成功后如图与CCD芯片数据手册中提供的时序驱动脉冲相比较,基本符合要求。在调试过程中,为防止CCD芯片的损坏,应先用数字万用表测出CCD芯片电源管脚的电压值,再测出各输入引脚的电压值,观察是否在正常范围内,确认无误后再关掉电源插上〔佛。另外,需要注意的是防静电。CCD容易因静电而损坏,所在调试过程中需戴静电手套。47 合肥工业大学硕±学位论文++3接通电源后,12V,.3V,用数字万用表测量各个模块的电压,结果表明巧V电源电压值正确,各地信号均连通。用数字示波器测试CCD驱动信号和关键引脚。信号,结果表明所测试的信号均符合要求在上测试都通巧之后,把整个程序通过JTAG方式下载到FPGA中,之后观察PC机能否正确接受图像数据。被测试5条纹图案如图.2所示。图5.2被测试条纹图案Fi5.2Paternofesresundertesg化tip化d…:崎她麵!f圍滞黃眼靜If’,'圍呈j琴.停备Iumm:图5.3CCD输出信号波形F5.3WaefCDoutunaigvormofCptsigl线阵CCD的图像信号的输出波形如图5.3所示。在系统的调试过程中,时钟信号的测试尤为关键。在本系统中,FPGA的外部时钟为40MHz,线阵C抑的时钟频率为4MHz,而SDRAM的工作频率为lOOMHz,这些不同频率的时钟,本设计通48 第五章系统测试与调试过昨GA内部自带锁相环PLL产生。利用嵌入式逻辑分析仪SignalTapII获取图一。像的数字信号,并做进步的分析、调试使用这种方法能克服传统硬件测试的,54,.所示缺点既增强了实时性又具有可观性。系统整体测试图如图。-口輸桐lnT词隊織;||图5.4系统整体测试图Fi5mg.4Testchartofwholesys化5.2CCDP異声分析与处理就CCD器件本身的特性而言,噪声主要是在信号电荷的转移和存胆过程中产"61生的一,同时信号在输入输出过程在定程度上也会引入噪声。下面就CCD几种典型的噪声进行分析,并对不同的噪声分别给出消除或减小的办法。1)散粒噪声CCD器件主要是对光进行转换,当光生电子产生时,由电子的离散性质引起光子散粒噪声,;当暗电流电子出现时同样由电子的离散性引起的暗流散粒噪声。散粒噪声与被CCD转换的光子数成泊松分布:■=〇yfSS表示入射进CCD的信号,a表示散粒噪声。两者在CCD中都电子数的形式"n表现。转移啜声受器件的质量和工作环境影响较大,可在光线较好的环境中使用来降低这类噪声,但不能完全消除。49 合肥工业大学硕±学位论文2)复位噪声复位噪声是因为开关介入电容带来的电压,,当开关切换后出现的噪声也是口采样电路必然发生的噪声。在信号电荷检测之前,必须复位电源电压等,复位后恢复基准的电源电压就会加上KTC噪声。"^复位噪声可1^通过双相关采样(CDS)加(^消除,在CCD的像元信号输出过程中,分别对复位脉冲和像元输出脉冲采样,将两次采样的信号做减法。3)转移噪声一一如果CCD器件中前电荷包的电荷未完全转移仍有残留部分电荷仍在势讲。、中,这些电荷包噪声干扰即为转移噪声转移损失体态俘歎和界面太俘获是引?起转移噪声的根本原因。另外,温度对转移噪声影响较为明显。降低运行温度可W使体俘获噪声明显呈指数减小,因此可W通过降低工作环境的温度来减小噪声。4)读出噪声在读出和放大信号过程中引入的噪声称作读出噪声,它主要来源于闪烁噪声fw和白噪声。白噪声是复位操作中输出放大器的沟道电阻所引起的热噪声,它是与频率有关的噪声,用电压的大小来衡量。闪烁噪声又称为1/f噪声,与频率成反比。频率越高或像素输出速度越高,W噪声越低。5.3结论本系统线阵CCD的采样频率为4MHz,CCD驱动信号稳定性良好,输出的图像信号符合要求。AD9945芯片的驱动和配置均正确,系统的前端采集达到系统预定要求。系统USB和48日通信功能正常,能完成图像数据的传输和配置参数的传输。经测试,图像信号能进行实时的存储和处理,各项功能基本满足设计要求。50 第六章总结与展望第六章总结与展望6.1总结本文对应用于工业现场的线阵CCD相机系统进行了设计与研究,详细阐述了系统硬件电路的设计方法与FPGA内部各个模块的硬件实现方法。通过上述的设计,系统最终实现了图像的采集、实时缓存和预处理W及实时传输的过程。本课题主要完成1:1^下工作内容1.底板硬件电路的设计,包括图像采集、处理电路,RS485和USB通信电路,电源模块电路,与核也板板的无缝接口设计W及P甜设计。其中PCB的设计尤为重要,包括信号完整性和电源的分配。2.使用VedlogHDL语言实现了对FPGA外围器件(如卻RAM、呢B和485接口孩片等)的控制,并对各个模块做了优化改进。另外,利用流水线技术、兵马操作等对在评GA内部各模块的接日进行了改进。3.驱动电路的设计,包括线阵CO)和图像处理芯片的驱动设计,利用硬件描述语言实现CO)图像传感器和图像信号处理器的工作,并保持两者同步。一4.研究系列图像处理算法,包括图像的増强、图像边缘检测和提取、图像的变换、图像的压缩等图像处理算法,并在MATLAB、化enCV软件开发平台对一些图像处理算法进行验证和改进。5.重点研巧两种图像处理方法:图像滤波和边缘检测。比较中值滤波算法的实现,对滤波窗口进行改进并将改进后的算法在FPGA硬件上予W实现比较;一个折中选择A几种边缘检测算法,并在效果和实现复杂度之间作出,将其在FPG硬件上予W实现。6.2展望线阵CCD相机系统广泛应用于工业现场环境,具有广阔的市场空间。本系统基本实现了线阵C姐相机系统的图像采集、存储、传输及预处理功能。随着研究一一与调试的深入,本设计还有些需要改进及进步研究的方面:1.未能充分使用线阵CCD和AD9945器件的功能,TCD1209D的最高工作频率可达20MHz,而本设计中CCD的采样频率为4MHz;AD9945的黑电平错位与VGA増益调整功能也未用到。2.系统PCB的设计有待完善,由于电路模拟器件较多,彼此间的布局较为紧凑,导致电路板局部发热,工作时间稍长可能会影响系统的稳定性。3.系统图像数据的传输速度的提高。USB2.0协议的最高传输速度达480MBits/,而本设计的数据传输速度仅为32MBit/s。根据相关文献,在大多51 合肥工业大学硕±学位论文数情况下,能达到80MBit/s的速度己经很佳了。可采用USB3.0芯片进行数据传输,突破USB2.0的速度限制。4.本系统只是实现了图像的滤波与增强功能,针对今后工业检测要求的提高,还需在系统中加入更加复杂的图像处理算法,如图像校正和图像压缩等。,由于自身水平及时间等方面的限制最后,系统设计中还有许多不足之处,也有可能存在错误。52 参考文献-.CCD團像传感器原理[J.中国新技术新产晶,200920:2829山周江平]()2苏波.基于线阵CCD的高精度测量系统研巧D:太原理工大学.山,2003]西[[]3王庆有.1:.第版.北京电子工业出版社,2003[]图像传感器应用技术[M]4.CC.,20061张林D交汇光铅中的关键技术研巧[D]安徽大学硕±论文[.问姚远.高速线阵CCD相机电子学系统设计[D]合服工业大学硕±论文,2009,冯启明.基CMOS图像传感器的视频采集系统设计机,栽汉理工大学学报间余国华,-200428.1:145147,()7-.浅谈光电藉合器CCD和CMOS的区别J.科技信息2009,143n王树刚,余新:[][]()?.:重庆大学出版社:54固体图象传感器及其应用.重庆,199623閒袁祥辉[M]9,,.CCD,:.[]蔡文贵李永远许振华技术及应巧[M]北京电子工业出版10高云山.高速线阵CCD光辆数据采集与处理系统网.南京理工大学硕±论文,2006[].:.,2004.阳]胡亮线阵CCD钢板表面缺陷在线检测系统的研巧阿天津天津大学2刘德瑞.基于CCD的高速色选机光机系统研究[D].天津,200口:天津大学7]13.,.:2012.[]朱柏树线阵CCD精密尺寸测量仪的研制[D]绵阳西华大学14.PGA的D马向前基于F实时图像采集和去噪系统的研巧与巧计.:[长春吉林大学学[]]位论文,2006[15]丛培超,高侦.高清CMOS工业摄像机设计与实现[D].大连理工大学硕七论文,2013—6.A口lteFPGA/C化D.,2005:6368]王诚ra设计人民邮电出版口7徐洋.基于VeriloHDL的FPGA设汁与工程应用.北京:人民邮点出版化2009;]g-1825[1巧张晓飞.FPGA技术入口与典型项目开发实例[M],北京:化学工业出版狂,2012:94-105FPGAM-19吴厚航.深入线出玩转,北京:北京航空航天大学出版社,2010:2322%[][]""[20]ManishKumarBirla,FPGAbasedReconfigurablePlatformforComplexProe巧sing,Eeenmanno-triltro/ifbrtioTechlo2006胆EEInenatonalConference20067:204209gy,,,()21209D.1999.[U东芝公司TCD数据手册[2引ADI公司AD9945数据手册.2001.-.0.用单片化驱动线阵CCD的探讨光学技术,2004:342347脚]张化朋()224王斌波.基于ARM的线阵CCD测径系统的研究与设计[D].重庆,.:重庆大学201[]25,.基于FPGA的多路高速数据采集系统的实[杨志方王泽成等现化武汉华工学院学]282-报,2006,3:5861.()26孙伟.基于USB和CPLD的标牌图像采集系统[D].济南:山东大学硕±论文,2005.[]53 合祀工业大学硕±学位论文27余国华.基于DSP的低码率视频圓像压缩与传输系统设计四.武汉:华中科技大学[],2004-19:12akam^.;Jaashree,H.V.Aninnovativedesinof化eDDR/DDR2SDRAMcompatible[別MygCNcontroller.anoscieiiceEnineerinandTechno2011rna打a[]loCONSETIrUetiol,gggy,y)Conferenceon201129M-周京华.CPLD/FPGA控制系.北;机械工业出版化2010.6:114[]统设计[]京30须文波,胡丹.DDR2SDRAMFPGAJ.控制器的,[]实现[]江南大学学报(自然科学版)2006212-:145148);([3U杨映辉.基于FPGA的SDRAM控制器设计及应用D.兰州大学硕±学位论文,2007[]32.,.2005[]宁媛李晓图像去噪的几种方法分析比较贵州工业大学学报.,(自然科学版)344说-66()朋-33徐杰.数字图像处理M,武汉:华中科技大学出版社20091.55[][],()34杨华.基于FPGA的实时图像采集与处理系统研巧D.长春理工大学学位论文,2009[】[]-3D..CC红外与激光工程,200484343346[引许秀贞噪声分析及处理技术的:,()3目姚运城.基于FPGA的嵌入式视频胜控跟踪系绕研巧化连海事大学学位论文11,20[].37张海青基于FPGA图像处理系统的关键算法研究及硬件实现D,重庆大学硕±学[][]位论文,2010-38.CCD和CMOS.影像技术2009韩振雷图像传感器的异同剖析[J],4:3942[],()39刘凤梅.高速CCD图像传感器关键电路设计D,西,2009[][安电子科技大学硕±论文]40-,.CCD200720:1721[]陈剑杨银堂图像传感器研究町电子科化,巧)54 攻读学位期间发表的学术论文.1,朱跃.基于FPGA的中值滤波算法设计[J]科技风,2015.,4(26巧55

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭