《基于ccd的图像采集系统设计的研究实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
西安电子科技大学学位论文独创性(或创新性)声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切的法律责任。本人签名:日期西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。本人签名:日期导师签名:日期 摘要摘要随着社会安全制度的不断完善,安防领域类产品的市场需求也越来越大,视频监控设备作为安防领域最重要的产品之一,其发展速度也是异常惊人。因此,设计一款通用性强,图像品质高,稳定性强的图像采集前端必将成为市场热点。本文紧贴市场需求,设计并实现了一款基于CCD的图像采集系统。该系统采用SONY公司的200万像素的面阵CCD芯片ICX274AQF作为图像传感器,采用ADI公司的AD9923A完成CCD的时序驱动及视频数据的模拟/数字(A/D)转换,另外选用了XILINX公司的XC3S50AN型号的FPGA来完成AD9923A的寄存器配2置及IC从设备通信接口协议的模拟设计。整个系统采用FFC连接器作为扩展接口与后端数字图像处理系统相连,较完善的实现了一套通用的图像采集系统。测试结果表明,本图像采集系统分辨率高,性能良好,结构紧凑,通用性强,具有良好的市场前景。2关键词:图像采集面阵CCDAD9923AFPGAIC ABSTRACTABSTRACTWiththeconstantimprovementofthesocialsecuritysystem,theproductsinthefieldofsecurityhaveagrowingmarketdemand.Videosurveillanceequipmentasoneofthemostimportantproductsinthefieldalsopresentsanamazinggrowthtrend.Therefore,designingafront-endimageacquisitionsystemofgeneral-purpose,highqualityandstrongstabilitymustbeahotissue.Accordingtothemarketdemand,thisthesisdesignedandimplementedaCCD-basedimageacquisitionsystem.Inthesystem,theSONY’sareaarrayCCDchipICX274AQFwith2.0megapixelswasusedasanimagesensor,andADI'sAD9923AwasselectedforcompletingCCDtiming-drivenandanalog/digital(A/D)conversion.Additionally,aFPGAchipfromXILINX’sXC3S50ANserieswasselectedto2implementtheconfigurationoftheAD9923A’sregistersandthesimulationofICslavedevicecommunicationinterfaceprotocol.ThesystemusedaFFCconnectorasanexpansioninterfacetoconnectwiththeback-enddigitalimageprocessingunit,whichaccomplishedanimprovedgeneralimageacquisitionsystem.Thetestresultsshowthattheimageacquisitionsystemhascharacteristicsofhighresolution,goodperformance,compatiblestructure,versatilityandbrightmarketprospects.2Keywords:ImageAcquisitionAreaArrayCCDAD9923AFPGAIC 目录1目录第一章绪论.............................................................................................................11.1背景及来源....................................................................................................11.2国内外发展现状和发展趋势........................................................................21.3研究目的及意义............................................................................................21.4研究内容与论文结构安排............................................................................3第二章系统需求分析与总体方案设计.................................................................52.1系统需求分析................................................................................................52.1.1功能需求分析........................................................................................52.1.2性能需求分析........................................................................................62.2系统总体方案设计........................................................................................72.2.1CCD与CMOS采集方案优缺点对比..................................................72.2.2硬件方案设计........................................................................................92.2.3软件方案设计......................................................................................102.3本章小结........................................................................................................12第三章系统硬件设计与实现................................................................................133.1CCD驱动及A/D转换电路设计................................................................133.2电源管理的设计............................................................................................153.2.115V输出电路设计..............................................................................153.2.2-7.5V输出电路设计............................................................................163.2.33.3V输出电路设计.............................................................................163.2.4上电顺序的设计..................................................................................173.3对外扩展接口................................................................................................183.4PCB设计及注意事项....................................................................................183.4.1层叠设计..............................................................................................183.4.2布局设计..............................................................................................203.4.3布线设计..............................................................................................223.4.4阻抗匹配..............................................................................................243.4.5PCB可靠性设计..................................................................................263.5本章小结........................................................................................................26第四章CCD采集驱动软件设计与实现...............................................................274.1开发环境........................................................................................................27 2基于CCD的图像采集系统设计与实现4.1.1VHDL语言概述..................................................................................274.1.2ISE软件开发流程...............................................................................2824.2IC从设备接口协议的软件设计与实现......................................................3024.2.1IC总线协议........................................................................................3024.2.2IC从设备接口协议的软件设计........................................................334.3CCD采集参数配置的软件设计与实现.......................................................394.3.1AD9923A三线控制接口及关键寄存器配置....................................394.3.2CCD采集参数的静态配置.................................................................494.3.3CCD采集参数的动态配置.................................................................544.4本章小结.......................................................................................................57第五章系统测试及CCD噪声分析与处理..........................................................595.1系统测试.......................................................................................................595.1.1测试方法与环境....................................................................................595.1.2测试用例与结果分析............................................................................595.2CCD噪声分析与处理...................................................................................695.2.1CCD器件本身特性带来的噪声.........................................................695.2.2电路设计不合理引入的噪声..............................................................705.2.3因信号接触不良引入的噪声..............................................................705.3本章小结.......................................................................................................70第六章总结与展望................................................................................................716.1本文总结.......................................................................................................716.2后续工作安排...............................................................................................71致谢..........................................................................................................................73参考文献..................................................................................................................75 第一章绪论1第一章绪论1.1背景及来源近年来,随着社会安全制度的不断完善,“平安城市”项目、奥运安防项目以及各地、各行业安防项目需求空前高涨。视频监控作为安防领域的一个重要组成系统,其发展速度也十足令人惊叹。2010年,国内视频监控市场的总体规模已达384亿元,未来还将持续而稳定地快速发展。伴随着市场的快速发展,浮现出相应的问题与挑战,然而在这一过程中,也创造了相应的机遇。视频监控市场经历了模拟监控、数字监控及网络监控三个主要阶段。根据IDC的市场调研,在过去的三年中,作为第一代视频监控技术的模拟监控,由于在图像质量、监控范围上具有较大的局限性,市场份额有较大程度的萎缩。然而,由于其易于部署、易于应用以及突出的价格优势等诸多特点,它仍然广泛部署于特定的行业应用以及地区之中。总的来说,由于整体视频监控市场庞大的需求以及不均衡的发展进程,如果没有产生在成本上可以完全替代模拟监控的新技术,模拟监控市场仍将长期存在。数字监控作为继模拟监控之后的第二代监控技术,无论在图像质量、保存时间以及可靠性上均有大幅度的提升,为用户提供了高性价比的监控解决方案。当前,数字监控已牢牢地成为主导整体视频监控市场的视频监控解决方案,并成熟部署于金融、商业等行业之中。国内知名的视频监控解决方案提供商,如海康威视、蓝色星际等,由于在自身行业领域中丰富的项目实施经验,赢得了更多的市场机会。在IDC的最终用户调研中,相当一部分用户出于保护既有投资的目的,往往在已建视频监控系统基础的升级项目上,采用模拟-数字视频监控混合的解决方案。作为模拟和数字监控之间的过渡,模拟-数字混合视频监控是视频监控市场特有的阶段。随着近年来“平安城市”、“平安校园”等安防项目在全国范围的开展和深入,机场、地铁以及景区等用户对于视频监控覆盖范围、监控点数以及网络传输I/O等要求的不断提升,网络监控正成为视频监控市场重要的拉动因素。网络监控设备厂商的视频监控整体解决方案,正得到越来越多用户的了解和认可。在国内大型的视频监控项目中,更是出现了视频监控系统中,除后端显示设备之外,全部设备IP化的发展趋势。从全球范围的发展趋势来看,整体视频监控市场中网络摄像机(IPCamera)以及网络视频存储(NVR)等IP存储的出货量开始超过传统摄像机和硬盘录像机,成为市场增长的主推力。虽然国内市场的成熟度相对于全球市场略 2基于CCD的图像采集系统设计与实现有欠缺,然而,国内市场在整体需求、增长速度上具有更多的发展机会。此外,由于国内视频监控市场的部署基础相对较小,因此在技术切换的速度上,将更具优势。本课题来源于某公司《一种IP智能相机》项目,该项目紧跟市场前沿,主要设计并实现了一款高清IP智能相机,该智能相机支持高清图像采集,智能视频分析处理,视频编解码,网络传输及嵌入式BOA接口功能。本课题负责完成该智能相机的图像采集前端模块。1.2国内外发展现状和发展趋势安防行业公认2010年是国内视频监控的“高清元年”,主流安防厂家纷纷推出了高清系列产品,高清产品已成为全国各地安防行业展会的“新宠”。2011年随着高清技术的持续发展,从前端130万、200万、500万等全系列高清网络摄像机到高清存储、高清管理平台、高清编解码全面推出,高清监控从真正意义上进入了应用实施阶段。纵观2011上半年全国安防展会,高清监控毫无疑已成为了安防市场的“主角”。国内比较著名的安防厂家在推广高清全系列产品的同时,也积极宣传已经投入的应用高清监控的案例,这标志着高清监控的应用已经开始在万众瞩目中兴起。随着2011年下半年的到来,高清监控市场将进一步快速发展,在不远的将来,可以预见高清监控将成为市场的主流。图像采集模块作为视频监控设备的前端模块,其性能直接关系到整套视频监控系统的表现。目前,国内外的图像采集类产品在军用方面主要还是以基于CCD[1]传感器为主,而在民用方面则CCD与CMOS传感器并驾齐驱。然而,不管是军用或是民用,现行的图像采集系统大多前端为一独立CCD或CMOS摄像头,结构较复杂,像素较低,无法实现高清图像采集;且与后端的通信接口不通用,不支持CCD或CMOS采集参数的动态调整,即无法通过WEB服务器实现对采集参数的远程调控,从而在使用环境发生变化时,不便于用户根据需求对整套系统进行特定的操作;另外在功耗及噪声控制方面也都有很大的提升空间。随着现代科技的不断发展及市场需求的不断变化,图像采集类产品正朝着除了社会公共安防和工业安全等方面的应用外,还将会被应用到企业及家居智能化等更多的领域。因此未来的图像采集类产品将会朝着通用性强、高集成度、高灵敏度、高分辨率及低功耗、低噪声、支持采集参数动态调整等更加高性能的方向发展。1.3研究目的及意义本课题旨在解决现存图像采集前端系统的不足,设计一款基于CCD的图像采 第一章绪论3集系统,使之可以实现200万像素采集,结合后端图像处理板可以实现一套完整的视频监控系统,并可以由后端图像处理板的BOA接口来远程动态设置CCD采集参数,具体包括设计方案、具体实现方式及测试结论,并给出各个模块的相关理论介绍。通过完成本课题的相关工作,为图像处理领域相关算法的实现提供了可靠的前端采集硬件平台;同时也为验证CCD在视频监控领域的性能表现提供了参考;最后基于本系统,可以帮助读者快速设计出更加高性能的图像采集类相关产品。1.4研究内容与论文结构安排本课题主要提供了一款基于CCD图像传感器的图像采集系统的方案及实现。具体包括方案设计,器件选型,原理图设计,PCB设计,采集驱动软件设计,系统测试及噪声分析,最后针对本设计的不足提供了改进方案。下面给出论文的具体结构安排。第一章绪论,主要介绍了课题的研究背景、图像采集系统的发展现状和发展趋势、研究的目的及意义及课题所作的研究工作。第二章系统需求分析与总体方案设计,主要从功能和性能两方面对系统需求进行了分析,然后结合需求给出了系统最终的设计方案。第三章系统硬件设计与实现,主要介绍了CCD采集驱动电路、电源管理、对外扩展接口电路的详细设计及PCB设计与实现的相关注意事项。2第四章CCD采集驱动软件设计与实现,主要介绍了软件开发环境,IC从设备接口协议的软件设计与实现,CCD参数静态配置及动态配置的软件设计与实现。第五章系统测试及CCD噪声分析与处理,主要介绍并分析了系统各关键信号的测试结果,并结合测试结果给出了影响CCD噪声的相关因素。第六章总结与展望,主要对全文进行了总结,并针对本设计的不足给出了新版本的改进方案。 4基于CCD的图像采集系统设计与实现 第二章系统需求分析与总体方案设计5第二章系统需求分析与总体方案设计论文开头对图像采集系统的背景、发展现状及趋势进行了简要介绍,从中看出,此课题有较大的研究价值。本章将从需求分析与方案设计方面,详细介绍系统功能、性能及设计实现方案。2.1系统需求分析需求是用户根据项目需要对项目开发者提出的一系列要求,包括功能要求、性能要求及其他与项目相关的各种要求。需求分析的目标就是在充分理解用户要求的情况下,确定系统必须要做什么的问题;然后将系统需求按照某种标准的方式准确无误地描述出来。在此过程中只需考虑系统将要完成什么内容,而尽可能少的考虑系统将怎样具体实现的问题。需求分析过程是一个由粗到细、渐进明晰、持续完善的过程。在系统设计、实现阶段都应当不断完善修改需求,以一种可控的方式将需求融入到项目之中。因此,充分合理的需求分析能够能够有效促进项目进展,并有助于减少开发后期和整个维护阶段重做的工作量。本系统的需求分析部分主要针对系统所要实现的功能以及系统的相关性能指标要求予以分析,根据需求分析的结果有助于我们快速设计出合理的系统方案。2.1.1功能需求分析功能需求分析即对本系统所要实现的功能的合理性及可实现性予以分析,根据功能分析的结果,有助于我们分解系统任务,确定设计方案。本系统要求实现的主要功能主要包括:完成200万像素的视频图像采集,支2持IC对外通信接口,结合后端图像处理板可实现对CCD参数的动态配置。下面将详细分析这些功能的合理性及可实现性:(1)完成200万像素的视频图像采集随着现代科技的不断发展,各类违章犯罪事件时有发生,为了确保人们的正常生活,有时我们需要多长几只“眼”。视频监控设备的出现弥补了人类先天的不足,它可以帮助我们在同一个地方看到外面各个地方的实时图像。然而为了追求更高的图像质量及性价比,传统的标清监控相机已经不能满足我们的需求。高清技术的出现,将人们的生活又引入了一个更高的层面。所谓高清,指摄像机所输出的现场画面分辨率至少为1280×720。当今主流的130万像素、200万像素,甚至更高的500万像素均属于百万像素级网络摄像机,输出的图像分辨率 6基于CCD的图像采集系统设计与实现一般至少为720P(1280×720)或1080P(1920×1080)。从当前行业的公认标准来看,视频画面分辨率达到720P为高清是最基本的要求,甚至有些场合将其称之为准高清,因为从严格意义上讲,1280×720的分辨率尚未达到百万像素。而通常被公认的真正高清图像,其视频画面分辨率需要达到1920x1080,即通常所说的1080P,而与其对应的像素值为200万。在行业实际应用中,客户往往有着非常明确的监控需求,以及所要实现的目标要求。如银行柜员监控,需要能够清晰地看到每一个前来办理业务的人员的面部;交通道路监控,需要能够清晰地看到每一个车道上通过的车辆的车牌号。为了满足这些特殊的需求,采用传统的非高清监控方式,往往需要针对每一个柜员,每一个车道单独安装一台摄像机,以期缩小监控视野,保证监控目标的清晰度。在应用百万像素高清摄像机之后,可以使用一台百万像素高清摄像机代替多台非高清摄像机,并能达到需要同时使用多台传统摄像机才能达到的监控效果。然而,百万像素高清固然带来画面质量的提升,但同时也应该看到其带来的网络带宽占用的增加,以及存储空间需求的提升,比如1080P的高清画面,在清晰度方面五倍于标清D1画面,D1分辨率传输下,仅需要1M的带宽即可进行传输和存储,而1080P的高清传输则需要高达6M的码率进行传输和存储。因此,在使用百万像素高清摄像机进行高清监控方案建设的时候,需要综合考虑传输和存储的投入,选择最合适的高清摄像机,而并非一味的选择五百万像素,甚至于千万像素产品。因此,从需求的合理性及可实现性等多方面考虑,在视频监控领域选用200万或130万像素的摄像机才是最适合的选择。2(2)支持IC对外通信接口。2IC作为当今电子产品最通用的通信接口之一,其应用领域可以说无处不在,时下各种图像处理器基本也都将其作为与外围器件的通信接口。本系统要求实现2支持IC的功能也主要是因为后端图像处理系统要通过此接口对CCD的采集参数进行动态配置。(3)结合后端图像处理板可实现对CCD参数的远程动态配置。纵观当代科技类产品,其发展方向都是越来越人性化。对CCD参数的远程动态配置指通过后端图像处理器的BOA嵌入式WEB网页操作界面,本系统最终是要结合后端图像处理板用于视频监控领域,然而监控相机通常都是安装在室外或是人不容易触及的地方,因此,设计一套支持人们在外界环境改变或者需要对相机进行采集参数动态调整的功能显得非常必要。2.1.2性能需求分析性能需求分析指对本系统要满足的一些技术指标进行可行性分析,根据性能 第二章系统需求分析与总体方案设计7分析结果,有助于我们选用合适的器件方案及采用合理的设计方案。下面将列出本系统要求的性能指标并分别对其简要分析:(1)采集帧率:15fps为达到视频监控的画面流畅性,要求采集帧率必须为每秒15帧以上。(2)A/D转换精度:12bit模拟视频信号的A/D转换精度直接影响了数字信号的真实度,采用12bit高精度的A/D转换电路,可以达到更高的图像指标。(4)板子尺寸:40(L)×40(W)×1.6(T)mm,误差±0.2mm板子的尺寸主要是配合相机镜头与机壳的尺寸,选用如上尺寸为当前业内通用尺寸,方便生产。(5)工作温度:-10~85℃工作温度主要取决于设备的工作环境,本系统作为视频监控相机的一个子模块,其工作环境应该满足整个相机的工作环境。2.2系统总体方案设计前面分析完系统需求,本节将根据需求给出一个可行的解决方案,首先对目前流行的CCD与CMOS两种图像采集方案进行了对比,之后引出本系统所选方案。2.2.1CCD与CMOS采集方案优缺点对比CCD与CMOS传感器是当前被普遍采用的两种图像传感器,两者都是利用感[2]光二极管进行光电转换,将图像转换为数字数据,而其主要差异是数字数据传送的方式不同。在CCD传感器中每一行中每一个象素的电荷数据都会依次传送到下一个象素中,在最底端经由传感器边缘的放大器进行放大输出;而在CMOS传感器中,每个象素都会邻接一个放大器及A/D转换电路,用类似内存电路的方式将数据输出。造成这种差异的原因在于:CCD的特殊工艺可保证数据在传送时不会失真,因此各个象素的数据可汇聚至边缘再进行放大处理;而CMOS工艺的数据在传送距离较长时会产生噪声,因此,必须先放大,再整合各个象素的数据。由于数据传送方式不同,因此CCD与CMOS传感器在效能与应用上也有诸多差异,这些差异包括:(1)灵敏度差异:灵敏度代表传感器的光敏单元收集光子产生电荷信号的能力。CCD图像传感器灵敏度较CMOS图像传感器高30%~50%。这主要因为CCD像元耗尽区深度可达10mm,具有可见光及近红外光谱段的完全收集能力。CMOS图像 8基于CCD的图像采集系统设计与实现传感器由于采用0.18~0.5mm标准CMOS工艺,由于采用低电阻率硅片须保持低工作电压,像元耗尽区深度只有1~2mm,其吸收截止波长小于650nm,导致像元对红光及近红外光吸收困难。另外由于CMOS传感器的每个象素由四个晶体管与一个感光二极管构成(含放大器与A/D转换电路),使得每个象素的感光区域远小于象素本身的表面积,因此在象素尺寸相同的情况下,CMOS传感器的灵敏度要低于CCD传感器。(2)成本差异:由于CMOS传感器采用一般半导体电路最常用的CMOS工艺,可以轻易地将周边电路(如AGC、CDS、Timinggenerator、或DSP等)集成到传感器芯片中,因此可以节省外围芯片的成本;除此之外,由于CCD采用电荷传递的方式传送数据,只要其中有一个象素不能运行,就会导致一整排的数据不能传送,因此控制CCD传感器的成品率比CMOS传感器困难许多,即使有经验的厂商也很难在产品问世的半年内突破50%的水平,因此,CCD传感器的成本会高于CMOS传感器。(3)分辨率差异:如上所述,CMOS传感器的每个象素都比CCD传感器复杂,其象素尺寸很难达到CCD传感器的水平,因此,当我们比较相同尺寸的CCD与CMOS传感器时,CCD传感器的分辨率通常会优于CMOS传感器的水平。例如,目前市面上CMOS传感器分辨率为210万象素的OmniVision的OV2610,其尺寸为1/2英寸,象素尺寸为4.25μm,但Sony推出的ICX452,其尺寸与OV2610相差不多(1/1.8英寸),但分辨率却能高达513万象素,象素尺寸也只有2.78μm的水平。(4)噪声差异:由于CMOS传感器的每个感光二极管都需搭配一个放大器,而放大器属于模拟电路,很难让每个放大器所得到的结果保持一致,因此与只有一个放大器放在芯片边缘的CCD传感器相比,CMOS传感器的噪声就会增加很多,影响图像品质。(5)功耗差异:CMOS传感器的图像采集方式为主动式,感光二极管所产生的电荷会直接由晶体管放大输出,但CCD传感器为被动式采集,需外加电压让每个象素中的电荷移动,而此外加电压通常需要达到12V~18V;因此,CCD传感器除了在电源管理电路设计上的难度更高之外(需外加powerIC),高驱动电压更使其功耗远高于CMOS传感器的水平。举例来说,OmniVision近期推出的OV7640(1/4英寸、VGA),在30fps的速度下运行,功耗仅为40mW;而致力于低功耗CCD传感器的Sanyo公司推出的1/7英寸、CIF等级的产品,其功耗却仍保持在90mW以上。综上所述,CCD传感器在灵敏度、分辨率、噪声控制等方面都优于CMOS传感器,而CMOS传感器则具有低成本、低功耗、以及高整合度的特点。不过,随着CCD与CMOS传感器技术的进步,两者的差异有逐渐缩小的态势,例如,CCD 第二章系统需求分析与总体方案设计9传感器一直在功耗上作改进,以应用于移动通信市场;CMOS传感器则在改善分辨率与灵敏度方面的不足,以应用于更高端的图像产品,就目前而言,CMOS器件在数码相机低级产品的应用上已基本满足了要求,在中高档产品上的应用则有待提高,存在的问题主要是:抗干扰性比CCD器件差一些,数字影像的质量与效果(解析度、色彩还原等)也不远如CCD器件。所以,在复杂的应用环境下,CCD就成了首选。2.2.2硬件方案设计由于本课题是要设计一个适用于安防领域视频监控类产品的前端图像采集系统,所以要求系统能够适应恶劣复杂的外界环境,同时要求在抗干扰、灵敏度及噪声等方面有良好表现。鉴于此,结合前文对CMOS和CCD进行的对比结果及系统需求分析结果,本课题给出了一套基于CCD的图像采集系统的解决方案。下面将分别对总体设计框图、芯片选型依据及硬件开发工具的选择进行说明。(1)总体设计框图按照系统功能需求,下面给出了CCD图像采集系统总体设计的框图:晶振FFC驱动电路连CCD&FPGA接A/D转换电路器电源管理JTAG图2.1系统总体设计框图图2.1中,CCD模块负责接收光源;驱动电路模块负责为CCD提供采集驱动时序;A/D转换电路模块负责将CCD输出的模拟视频信号进行数字化转换;FPGA负责完成对外通信接口的逻辑模拟及系统其他逻辑方面的设计,晶振及JTAG分别为FPGA的工作时钟及调试接口;FFC连接器负责与后端视频处理扩展板的通信;电源管理负责提供系统各部分的工作电源。(2)芯片选型为满足系统的性能指标要求,本设计对所用器件进行了仔细的选型分析,下面给出选型结果。[3]1)CCD的选型:SONY公司设计生产的ICX274AQF是针对高清高速摄像机的一款面阵CCD,其关键参数如下:图像分辨率为200万有效像素;每秒可采集逐行图像15帧;水平驱动频率最高36MHz;感光区尺寸1/1.8英寸;有效像素1628(H) 10基于CCD的图像采集系统设计与实现×1236(V)。不难看出,这些指标完全能满足设计要求,因此本设计将选用此款芯片作为前端感光器件。[4]2)驱动电路及A/D转换电路的选型:AD9923A是美国ADI公司设计的针对CCD数码相机和数字摄像机的前端解决方案,带有时序控制器、模数转换器,其主要性能如下:12位36MHZ模数转换器;集成时序控制器;内含6dB到42dB可变增益放大器;内含相关双采样控制电路;三线(SDI,SCK,SL)配置方式。基于以上考虑,本文选择AD9923A作为CCD的驱动芯片。3)FPGA的选型:系统采用一款XILINX公司的SPARTANⅢ系列[5]XC3S50AN的FPGA芯片用来对AD9923A进行寄存器配置,同时用来完成系统2对外通信接口(IC)的逻辑设计。4)电源管理芯片的选型:系统中总共有四种电源:15V和-7.5V供给AD9923A,1.2V供给FPGA,3.3V同时提供给AD9923A和FPGA。使用DC-DC转换器[6]NCP1403输出15V,该芯片转换频率高达300KHZ,转换效率可以达到82%,输[7]出电压稳定且波纹很小。使用MAXIM公司的MAX765输出-7.5V,该芯片具有很高的转换频率,另外具有灵活可调节的外部输出电压模式,只需很少的外部组件就可以完成很大范围输出的电压转换。使用TI公司的TPS54317输出1.2V,这是一款同步降压DC-DC转换器,具有可调节的转换频率,高速的瞬态响应,输出[8]精度很高。同样使用TI的另一款降压DC-DC电压转换器TPS54231输出3.3V,它具有很大的输入电压范围,固定570KHZ的转换频率,高达2A的输出电流,外部电路较为简单,输出电压比较稳定。(3)硬件开发工具的选择目前针对电路设计和PCB设计的硬件开发工具可谓琳琅满目,然而最流行的莫过Protel公司的产品系列及Cadence公司的产品系列,相对来讲,后者应用更广泛,功能也更完善,因此本系统将选用Cadence公司的CaptureCIS作为原理图开发工具,选用AllegroPCBEditor作为PCB开发工具。2.2.3软件方案设计2本系统的软件功能主要是实现由后端图像处理板通过IC接口来完成CCD采2集参数的动态调整,设计内容主要包括IC从设备接口协议的软件设计,CCD采集参数静态配置的软件设计及CCD采集参数动态配置的软件设计。下面对这几个模块的功能(图2.2为本系统软件模块图)、涉及的关键寄存器及软件开发工具的选择作简要介绍。(1)系统软件功能模块设计2IC从设备接口协议的VHDL模拟主要是针对本系统与后端图像处理板之间 第二章系统需求分析与总体方案设计112的通信来设计的,因后端图像处理板通常均为IC主设备,因此本系统需要设计一个从设备接口与之配合。图像采集前端系统驱动软件2IC从设备接口协议的CCD采集参数静态配置CCD采集参数动态配置VHDL模拟图2.2系统软件模块图CCD采集参数的静态配置是指在动态配置之前,对CCD采集参数的一次上电默认配置,从而可以使系统在上电后,按照默认配置进行图像采集,静态配置的具体做法是利用FPGA通过三线通信接口完成对采集驱动芯片AD9923A的配置。CCD采集参数的动态配置是指完成在系统上电按默认配置正常运行后,用户由后端图像处理板上运行的BOA嵌入式WEB网页对特定采集参数(如曝光,增益等)更新操作。下面给出本图像采集板结合后端图像处理板搭建图像采集信号流向示意图(图2.3),以方便读者更好的理解本图像采集板的工作方式。网线光线I2C通信BOACCD采集板图像处理板交换机电脑图2.3图像采集信号流向示意图(2)关键寄存器的介绍CCD参数的配置,具体来讲就是对CCD驱动芯片AD9923A的寄存器的配置,下面给出涉及配置的一些关键寄存器的简要介绍,以使读者有初步了解。为了使AD9923A正常工作,需要对其下列寄存器进行配置。第一类为固定型寄存器,此类寄存器的位宽固定,且有默认值,即不设置也有某些功能存在,此类寄存器的地址范围为0x00至0x91,包含设置AFE、混项功能、VD/HD参数、时序内核、CLPOB屏蔽、SGpatterns、快门功能和存储器配置的寄存器。第二类为配置型寄存器,此类寄存器数量可变,均需要进行配置,地址从0x400至0x7FF,包含设置V-pattern组、垂直序列和场的寄存器,对于此类寄存器,用户可决定特定设计中使用多少V-pattern组、垂直序列和场信号。因此,这些寄存器的地址会 12基于CCD的图像采集系统设计与实现因所选V-pattern和垂直序列的数量不同而改变。对图像采集常需更新的寄存器,如增益、曝光时间、复位等寄存器都属于上述第一类寄存器范畴。详细配置方法可参见4.3节。(3)软件开发工具的选择由于本系统软件设计主要是对FPGA的编程,而现行FPGA开发工具主要有Altera公司的Quartus和Xilinx公司的ISE工具,因本系统所选FPGA为Xilinx公司的,所以为了保证兼容性,本设计将选用ISE作为软件开发工具。2.3本章小结本章首先对系统的需求从功能和性能两方面进行了分析,然后通过比较基于CMOS和CCD的图像采集系统,突出展示了CCD系统用于复杂环境下进行高清晰摄像的优点,进而引出了本文所给出的系统构建方案。通过对系统主要部件的描述和CCD采集系统指标的讨论,从宏观上比较清晰地阐述了该系统,为下文的软硬件详细设计做好了铺垫。 第三章系统硬件电路设计13第三章系统硬件设计与实现上一章给出了系统总体方案,本章将开始对系统硬件设计进行详细介绍,主要包括CCD驱动及A/D转换电路设计,电源管理的设计,对外扩展接口的设计与PCB的设计及其注意事项。3.1CCD驱动及A/D转换电路设计本设计中采用美国ADI公司的模数混合器件AD9923A来完成CCD采集驱动时序的生成及CCD输出模拟信号的模拟-数字(A/D)转换等工作。下面将详细介绍此芯片的相关功能,并给出在本设计中如何使用此芯片搭建CCD驱动及A/D转换电路。AD9923A是针对CCD数码相机和数字摄像机的一套完整的前端解决方案,内置模拟前端(AFE)、完全可编程的时序发生器(TG)和15通道垂直驱动器,并带有12bits的模数转换器。在36MHz下工作时,PrecisionTiming内核允许以大约600ps的分辨率调整高速时钟。片内垂直驱动器最多支持15个通道,可以与5场、10相CCD一起使用。模拟前端包括黑色电平箝位、CDS、VGA和一个12位ADC。时序发生器和垂直驱动器提供所有必须的CCD时钟:RG、水平时钟、垂直时钟、传感器门限脉冲、基底时钟和基底偏置控制。内部寄存器通过三线式串行接口进行编程。AD9923A采用8mm*8mmCSP_BGA封装,额定工作温度范围为-25°C至+85°C。其主要性能指标如下(内部功能模块见图3.1):(1)集成15通道垂直驱动器;(2)内置12位、36MHz模数转化器(ADC);(3)支持5场、10相垂直时钟;(4)完整的片内时序发生器;(5)采用PrecisionTiming内核,分辨率<600ps;(6)内置相关双采样器(CDS);(7)内置6dB到42dB、10位可变增益放大器(VGA);(8)具有可变电平控制功能的黑色电平箝位;(9)片内3V水平和RG驱动器;(10)具有2相和4相水平时钟模式;(11)支持电子和机械快门; 14基于CCD的图像采集系统设计与实现图3.1AD9923A内部功能模块图CCD驱动及A/D转换电路设计原理图如图3.2:36MHz水平驱动信号电平转换水平驱动信号(74ACT125)同步信号CCD驱动芯片FPGA垂直驱动信号(ICX274AQF)(AD9923A)时钟信号(XC3S50AN)模拟视频信号三线通信15V/-7.5V15V/-7.5V/3.3V图3.2CCD驱动及A/D转换电路设计原理图如图3.2所描述,整个采集及驱动电路主要包括三个模块,CCD(ICX274AQF)、驱动芯片(AD9923A)和FPGA(XC3S50AN)。下面对各模块及总线的含义做简要介绍:如图,水平驱动信号和垂直驱动信号都由AD9923A产生。其中,水平驱动信号包括H1、H2、H3、H4;垂直驱动信号包括V1、V2、V3、V4、V5A、V5B、V6、V7A、V7B、V8。因为ICX274AQF的水平驱动信号为5V,而AD9923A端的为3.3V,所以需要通过74ACT125进行电平转换,然后控制ICX274AQF的水平寄存器转移时钟。ICX274AQF在输入的垂直时序、水平时序控制下,依次输出各个像素的电荷并将各个像素的电荷量转换为模拟电压值CCD_SIGNAL送给 第三章系统硬件电路设计15AD9923A进行模数转换,生成数字信号CCD视频信号,协同视频同步信号送给FPGA进行后续处理。FPGA通过SCK、SDI、SL三线通信方式对AD9923A进行寄存器配置。通过设置AD9923A的相关寄存器,可以输出符合ICX274AQF时序要求的垂直时序和水平时序,驱动ICX274AQF输出模拟视频信号;控制CCD模拟信号的相关双采样时刻可以去除复位噪声;通过减去光路黑像素噪声,可以部分消除其他噪声因素的影响;通过AD9923A的模数转换电路模块可以得到CCD的数字视频信号。3.2电源管理的设计本设计共用到三种电源,具体分配情况为:15V和-7.5V供给AD9923A和ICX274AQF,3.3V同时提供给AD9923A和FPGA。下面分别给出各电源电路的详细设计并讨论了关于上电顺序的问题。3.2.115V输出电路设计使用NCP1403产生15V。使用DC-DC转换器NCP1403输出15V,该芯片转换频率高达300KHZ,转换效率可以达到82%,输出电流50mA,输出电压稳定且波纹很小(大约50mv)。参考电压为0.8V,输出可通过分压电阻来调节。针对本电路的计算公式为:0.8V15V=式(3-1)R3R2+R3根据式3-1,结合芯片资料给出分压电阻数量级为10K级以上,本设计可选取R2=430K,R3=24K的1%精度电阻来实现。15V输出电路的具体电路图如图3.3所示。图3.315V输出电路设计 16基于CCD的图像采集系统设计与实现3.2.2-7.5V输出电路设计使用MAXIM公司的MAX765产生-7.5V(图3.4),输出电流250mA,该芯片转换频率(300KHZ),参考电压1.5V,输出可通过分压电阻来调节。针对本电路的计算公式为:1.5V−7.5V=式(3-2)R6R4+R6根据式3-2,结合芯片资料给出分压电阻数量级为100K级以上,本设计可选取R4=820K,R6=160K的1%精度电阻来实现。-7.5V输出电路的具体电路图如图3.4所示。图3.47.5V输出电路设计3.2.33.3V输出电路设计使用TI公司TPS54231产生3.3V,它具有很大的输入电压范围,固定570KHZ的转换频率,高达2A的输出电流,参考电压为0.8V,输出可通过分压电阻来调节。针对本电路的计算公式为:0.8V3.3V=式(3-3)R12R12+R9根据式3-3,结合芯片资料给出分压电阻数量级为10K级以上,本设计可选取R9=200K,R12=100K的1%精度电阻来实现。3.3V输出电路的具体电路图如图3.5所示。 第三章系统硬件电路设计17图3.53.3V输出电路设计CCD采集系统中涉及到ADC和DAC器件,属于数模混合电路设计。这种电路设计比较复杂,必须要考虑到模拟电路和数字电路的相互干扰,尤其是数字电源和地对模拟电源和地的干扰。3.3V横跨两种器件,其中AD9923A属于数模混合IC,FPGA属于纯数字IC。所以,对于TPS54231产生的3.3V在用于AD9923A之前,必须进行滤波处理。为了提高输入电源的质量,AD9923A的数字电源管脚和模拟电源管脚也要进行隔离,具体实现则采用一款TDK公司的磁珠进行隔离,其在100MHZ下的等效电阻为100欧姆,见图3.6。图3.6模数电源隔离设计3.2.4上电顺序的设计本系统涉及上电顺序问题的芯片主要是AD9923A,此芯片共用到三种电压,分别是15V、-7.5V和3.3V。其中要求3.3V要求先上电,而15V和-7.5V则没有严格的上电顺序要求。NCP1403启动时间为6us,MAX765为16us,而TPS54213D可通过调节SS管脚对GND电容来设置其启动时间,具体公式为Tss(ms)=Css(nF)*Vref/Iss(uA),其中Vref=0.8V,Iss=2uA,因此为使Tss<6us,算出Css最大值为15pF,于是可选 18基于CCD的图像采集系统设计与实现取10pF来满足上述要求。3.3对外扩展接口本系统不能单独使用,只有与后端数字图像处理系统搭配使用,才能发挥其作用,因此本系统对外预留了一个通用的与数字图像处理系统相连接的扩展接口。此接口采用FFC插座实现,配合FFC软排线使用,在其上包括的主要信号有:CCD2数字视频信号,时钟,行、场同步,IC通信接口及电源、地等信号。原理图如图3.7。图3.7对外扩展接口原理图3.4PCB设计及注意事项PCB设计主要包括层叠设计,布局设计,布线设计,阻抗匹配及可靠性设计,下面将对这些部分进行详细介绍,并给出设计过程中应注意的事项。3.4.1层叠设计[10]随着高速电路的不断涌现,PCB板的复杂度也越来越高,为了避免电气因素的干扰,尤其是在高速数字电路设计和数模混合集成电路设计中,信号层和电源层必须分离,也就是说电源供电层和参考接地层必须单独成为一个平面进行铺铜,而且尽量保持完整,与信号走线层保持平衡,所以就牵涉到多层PCB的设计。在多层板的设计中,对于叠层的安排显得尤为重要。一个好的叠层设计方案将会大大减小EMI及串扰的影响。在高速数字电路系统中,使用电源和地层来代替以前的电源和地总线的优点 第三章系统硬件电路设计19主要在于:(1)为数字信号的变换提供一个稳定的参考电压。(2)均匀地将电源同时加在每个逻辑器件上。(3)有效地抑制信号之间的串扰。原因在于,使用大面积铺铜作为电源和地层大大减小了电源和地的电阻,使得电源层上的电压很均匀平稳,而且可以保证每根信号线都有很近的地平面相对应,这同时减小了信号线的特征阻抗,对有效地减少串扰也非常有利。所以,对于某些高端的高速电路设计,已经明确规定一定要使用6层(或以上)的叠层方案,如Intel对PC133内存模块PCB板的要求。这主要就是考虑到多层板在电气特性,以及对电磁辐射的抑制,甚至在抵抗物理机械损伤的能力上都明显优于低层数的PCB板。如果从成本的因素考虑,也并不是层数越多价格越贵,因为PCB板的成本除了和层数有关外,还和单位面积走线的密度有关,在降低了层数后,走线的空间必然减小,从而增大了走线的密度,甚至不得不通过减小线宽,缩短间距来达到设计要求,往往这些造成的成本增加反而有可能会超过减少叠层而降低的成本,再加上电气性能的变差,这种做法经常会适得其反。根据高速数字理论和高频电路特性,同时结合工艺和成本考虑,给出下面个层叠设计方案的参考原则:(1)铺铜层最好要对称设置,如六层板的2,5或者3,4层要一起铺铜,这是考虑到工艺上平衡结构的要求,因不平衡的铺铜层可能会导致PCB板的翘曲变形。(2)信号层和铺铜层要间隔放置,最好每个信号层都能和至少一个铺铜层紧邻。(3)缩短电源和地层的距离,有利于电源的稳定和减少EMI。(4)在很高速的情况下,可以加入多余的地层来隔离信号层,但建议不要多加电源层来隔离,这样可能造成不必要的噪声干扰。参考上面的叠层原则,结合本系统的板卡尺寸要求、电源种类、高速信号的数量、总的走线数量和成本因素,决定采用8层PCB设计方案,各层安排如图3.8。TOP层地层GND1信号层S2电源层PWR1.6mm地层GND2信号层S3地层GND3BOTTOM层图3.8本系统的PCB层叠设置 20基于CCD的图像采集系统设计与实现如图3.8所示的层叠设置,TOP层和BOTTOM层为表层元件层,其相邻层都有完整的地层,因此有利于元件的散热及信号质量,另外S2和S3两个信号层相邻层也都为平面层,因此信号质量也会较好,尤其是S3层,最后电源层PWR和地层GND2相邻,有利于电源与地之间的耦合,如此可降低电源层和地层之间的阻抗同时增大电源层和地层结构的谐振频率。3.4.2布局设计PCB设计中布局是十分关键的一步,良好的布局不仅有利于信号走线的分布,降低布线的难度,同时可以大大减小器件之间的干扰和走线之间的串扰。同时,布局又是十分复杂的一步,要综合各种因素加以考虑。CCD采集系统规模虽然不大,但是PCB设计难度却很高,原因在于这是一个数模混合电路,同时又牵涉到高速数字信号设计。首先,从数模混合电路的角度考虑,CCD采集系统的PCB布局设计要按照以下原则进行:PCB整体布局要分为数字电路部分和模拟电路部分,这两部分要严格在空间上分开来。原因在于,数字电路噪声比较多,而模拟电路很容易受到干扰,所以要把这两者分开,且在可能的情况下,要保持一定的距离。如图3.9所示:数字器件区模拟器件区图3.9模数混合器件布局示例图其次,从整体布局来讲,一般要遵循以下原则:(1)按照电路的流程安排各个功能电路单元的位置,使布局便于信号流通,并使信号尽可能保持一致的方向(2)以每个功能电路的核心元件为中心,围绕它来进行布局。元器件应均匀、整齐、紧凑地排列在PCB上。尽量减少和缩短各元器件之间的引线和连接。(3)在高频下工作的电路,要考虑元器件之间的分布参数。一般电路应尽可能使元器件平行排列。(4)位于电路板边缘的元器件,离电路板边缘一般不小于2mm。电路板的最佳形状为矩形。长宽比为3:2或4:3。电路板面尺寸大于200×150mm时,应考虑 第三章系统硬件电路设计21电路板所受的机械强度。(5)金属壳体元器件和金属件(屏蔽盒等)不能与其它元器件相碰,不能紧贴印制线、焊盘,其间距应大于2mm。定位孔、紧固件安装孔、椭圆孔及板中其它方孔外侧距板边的尺寸大于3mm。(6)电源插座要尽量布置在印制板的四周,电源插座与其相连的汇流条接线端应布置在同侧。特别应注意不要把电源插座及其它焊接连接器布置在连接器之间,以利于这些插座、连接器的焊接及电源线缆设计和扎线。电源插座及焊接连接器的布置间距应考虑方便电源插头的插拔。(7)定位孔、标准孔等非安装孔周围1.27mm内不得贴装元、器件,螺钉等安装孔周围3.5mm(对于M2.5)、4mm(对于M3)内不得贴装元器件;卧装电阻、电感(插件)、电解电容等元件的下方避免布过孔,以免波峰焊后过孔与元件壳体短路。最后,对于细微部件的布局,特别是电源模块(高噪声,大电流)和晶振模块(高速),要遵循以下几个基本原则:(1)在模拟和数字PCB设计中,旁路或去耦电容应尽量靠近器件放置。供电电源去耦电容应放置在电路板的电源线入口处。所有情况下,这些电容的引脚都应较短且加粗。例如在本系统中,C12、C15为旁路电容,应靠近U3电源芯片,连线并应加粗,如图3.10所示。图3.10旁路电容放置示例图(2)尽可能缩短高频元器件之间的连线,设法减少它们的分布参数和相互间的电磁干扰。易受干扰的元器件不能相互挨得太近,输入和输出元件应尽量远离。例如在本系统中,晶振到其所驱动的芯片AD9923A的距离应尽量短,但同时又要尽可能远离AD9923A的模拟管脚。(3)某些元器件或导线之间可能有较高的电位差,应加大它们之间的距离,以免在焊接或放电过程中意外短路。例如,在本系统中,15V和-7.5V的退耦电容应尽可能保持距离。按照以上所述,在CCD采集系统中,PCB的最终布局如图3.11所示: 22基于CCD的图像采集系统设计与实现其中四个角的为固定孔,最左侧U5为AD9923A,中间U7为ICX274AQF,右侧部分为电源模块。较好的实现了器件之间的隔离,减少了干扰。图3.11PCB布局效果图3.4.3布线设计良好的布线,对于成功的PCB设计是至关重要的。下面对本系统PCB设计中的关键组件的布线予以讨论,给出具体的解决方案。重点关注以下几个部分:电源和地线布线、模拟信号布线、时钟信号布线及关键信号布线。(1)电源线和地线在PCB的布线工作中,电源和地线的布置对于整个PCB设计的成功起着至关重要的作用。鉴于其重要性,电源和地线的布线工作一般安排在其他线路布线之前完成,当然,如果在布线过程中有预见性的预留电源和地线的空间,将电源和 第三章系统硬件电路设计23地线的布线工作留待最后进行也是一个不错的选择。由于本系统是采用8层板工艺,因此电源和地均采用铺铜层来完成。需要注意的是芯片和退耦电容的电源和地管脚需打过孔至电源层或地层,并且连接管脚至过孔的短线也要加粗、在安全间距内尽量短。(2)模拟信号线因模拟信号极易受外界干扰,因此要求此信号线尽量短、粗、远离干扰信号。本系统中的模拟信号为CCD输出的模拟视频信号CCD_out,其布线直接关系到输出图像的质量,按上面讲的规则,此信号布线具体见图3.13所示。图3.13CCD输出模拟视频信号走线示意图(3)时钟信号线因时钟信号为高频振荡信号,故通常均作为干扰源存在于电路,因此为了最大限度地减小此类信号对周边其他敏感信号的干扰,应对此类信号进行包地处理,且应避免在其外围或邻层进行敏感信号的布线。图3.14时钟线走线示意图 24基于CCD的图像采集系统设计与实现在本系统中,时钟信号的布线见图3.14所示,可以看到在本系统中对时钟进行了包地处理。(4)关键信号关键信号布线是指芯片规定的某些特殊信号的布线,通常芯片会对此类信号的布线进行特别强调,并给出布线规则要求,因此为了使芯片能稳定的工作,应严格按手册说明对这些关键信号进行布线。针对本系统,按芯片资料所讲,时序驱动信号RG线宽应大于10mil,H1/H2,H3/H4虽不是差分信号,但应按差分信号的规则进行布线,即等长,等间距。图3.15为时序驱动信号RG,H1/H2,H3/H4的走线示意图。图3.15时序驱动信号RG,H1/H2,H3/H4的走线示意3.4.4阻抗匹配在高速的设计中,阻抗的匹配与否关系到信号的质量优劣。阻抗匹配的技术可以说是丰富多样,但是在具体的系统中怎样才能比较合理的应用,需要衡量多个方面的因素。常见的阻抗匹配方式有串联匹配和并联匹配,下面将对这两种匹配方式的特点进行简单介绍,然后结合相关理论,给出阻抗匹配在本设计中的应用。串联匹配的理论出发点是在信号源端阻抗低于传输线特征阻抗的条件下,在信号的源端和传输线之间串接一个电阻R,使源端的输出阻抗与传输线的特征阻抗相匹配,抑制从负载端反射回来的信号发生再次反射。串联终端匹配的特点有:(1)由于串联匹配电阻的作用,驱动信号传播时以其幅度的50%向负载端传播;(2)信号在负载端的反射系数接近+1,因此反射信号的幅度接近原始信号幅度的50%。(3)反射信号与源端传播的信号叠加,使负载端接受到的信号与原始信号的幅度近似相同;(4)负载端反射信号向源端传播,到达源端后被匹配电阻吸收;(5)反射信号到达源端后,源端驱动电流降为0,直到下一次信号传输。并联匹配的理论出发点是在信号源端阻抗很小的情况下,通过增加并联电阻使负载端输入阻抗与传输线的特征阻抗相匹配,达到消除负载端反射的目的。实 第三章系统硬件电路设计25现形式分为单电阻和双电阻两种形式。并联终端匹配后的信号特点有:(1)驱动信号近似以满幅度沿传输线传播;(2)所有的反射都被匹配电阻吸收;(3)负载端接受到的信号幅度与源端发送的信号幅度近似相同。一般定义边沿时间(包含上升和下降沿)小于1/2倍信号传输延迟时间的信号或者信号一个周期的波长可以和传输距离相近时,就是高速信号。典型PCB板上每单位英寸的延时为0.167ns,PCB的板材为FR-4,外层的走线的延迟一般在140-180Ps之间,内层的走线一般延迟在180ps。但是,如果过孔多,器件管脚多,线上设置的约束多,延时将增大。本CCD视频采集系统中AD9923A的工作频率是36MHZ,FPGA的工作频率是50MHZ,根据两种器件手册中给出的典型信号上升时间,结合高速信号的定义,可以确定,本系统中CCD数字视频信号线和视频信号控制线需要按照传输线理论进行布线。解决传输线效应的方法是选择正确的布线路径和终端拓扑结构。走线的拓扑结构是指一根网线的布线顺序及布线结构。当使用高速逻辑器件时,除非走线分支长度保持很短,否则边沿快速变化的信号将被信号主干走线上的分支走线所扭曲。通常情形下,PCB走线采用两种基本拓扑结构,即菊花链布线和星形分布。对于菊花链布线,布线从驱动端开始,依次到达各接收端。如果使用串联终端匹配电阻来改变信号特性,串联电阻的位置应该紧靠驱动端,也称为源端匹配。在控制走线的高次谐波干扰方面,菊花链走线效果最好。但这种走线方式布通率最低,不容易100%布通。实际设计中是使菊花链布线中分支长度尽可能短。星形拓扑结构可以有效的避免时钟信号的不同步问题,但在密度很高的PCB板上手工完成布线十分困难。采用自动布线器是完成星型布线的最好的方法。每条分支上都需要终端电阻。终端电阻的阻值应和连线的特征阻抗相匹配。这可通过手工计算,也可通过EDA工具计算出特征阻抗值和终端匹配电阻值。串联终端电阻匹配不会产生额外的功率消耗,但会减慢信号的传输。这种方式用于时间延迟影响不大的总线驱动电路。串联电阻匹配终端的优势还在于可以减少板上器件的使用数量和连线密度。图3.16数字视频线源端串联匹配在该CCD视频采集系统中,主要使用了串联匹配,以防止反射、过冲和下冲。 26基于CCD的图像采集系统设计与实现如图3.16所示,AD9923A模数变换后输出的数字信号进行了串联源端电阻匹配,电阻值为33欧姆。如图3.17所示,FPGA通过三条线SCK、SDI、SL对AD9923A进行寄存器配置,这三条线分别进行了终端串联电阻匹配。图3.17三线总线末端串联匹配3.4.5PCB可靠性设计该CCD采集系统在设计过程中主要考虑了以下几个可靠性设计问题:(1)简化方案设计在确保满足技术性能指标的前提下,尽量简化设计,简化电路和结构设计,模块化设计方法是提高设备可靠性的有效措施。块功能相对单一,系统由模块组成,减少可设计的复杂性,将设计标准化、规范化。(2)采用模块和标准部件标准模块和元件是经过大量试验和广泛使用后证明为高可靠性的产品,因而能充分消除设计的缺陷和隐患,也为出现问题之后的更换和修理带来了方便。(3)冗余设计冗余设计是指元器件在低于其额定应力的条件下工作,是降低元器件失效率的有效方法,因此,设汁时在确保技术性能指标的前提下,对元器件的工作电压范围、温度特性、电特性参数等都采取冗余设计方法,从而降低元器件在各种应力条件下的失效率。在本CCD视频采集系统PCB制作过程中,元器件选型时对核心参数取其典型值的80%加以考虑,看其是否满足系统要求。(4)结构可靠、工艺成熟先进电路、结构设计中,应尽量减少接插件、金属化孔的数量,电路元件尽量采用直接在印制板上焊接的方法,选用表面贴装器件,采用表面贴装技术,以避免接触不良,确保设备的可靠性。3.5本章小结本章详细介绍了CCD视频采集系统的硬件设计与实现,着重讨论了CCD采集驱动电路设计、电源模块设计、扩展接口设计及上电时序问题。驱动电路设计中,介绍了关键信号的传递和工作过程。电源管理设计中,介绍了三种电源的设计方案和注意事项。最后一节中,讨论了CCD视频采集系统PCB设计的一些核心问题,包括布局、布线、信号线质量的提高还有PCB制作时的质量控制等内容。 第四章CCD采集驱动软件设计与实现27第四章CCD采集驱动软件设计与实现上一章介绍完系统硬件详细设计,本章将主要介绍CCD采集驱动的软件详细2设计,包括开发环境,利用VHDL语言完成IC从设备接口协议设计,CCD采集参数的静态配置及动态配置。4.1开发环境4.1.1VHDL语言概述VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。一套完整的VHDL程序主要包含实体(entity)、结构体(architecture)、配置(configuration)、包集合(package)、库(library)总共五个部分。下面分别介绍这几部分的含义:实体:实体说明是VHDL语言的硬件抽象。它表示具有明确的输入、输出的硬件设计的一部分端口。实体定义必须和其所对应的结构体定义存放在同一个库中,一个实体代表整个电路设计的一个完整层级,可以是整个电路,也可以是任何层级的一个模块。结构体:结构体描述器件的行为或结构,说明该器件的功能以及如何完成这些功能。它指定设计实体、输入和输出之间的关系,并且可以采用行为描述风格(behaviordescription)、数据流描述风格(dataflowdescription)和结构化描述风格(structuredescription)。结构体一定跟在实体之后。配置:配置语句描述层与层之间的连接关系以及实体与结构体之间的连接关系。根据不同的使用情况,大体分为四种类型:默认配置、元件配置、块配置和结构体配置。包集合:包集合是用VHDL语言编写的一段程序,可以供其他设计单元调用和共享,相当于公用的“工具箱”,各种数据类型、子程序等一旦放入了程序包,就成为共享的“工具”,类似于C语言的头文件,使用它可以减少代码的输入量,使程序结构清晰。因此,程序包的作用是可以使一组数据类型、常量和子程序能 28基于CCD的图像采集系统设计与实现够被多个设计单元使用。库:库是专门用于存放预先编译好的程序包的地方,对应一个文件目录,程序包的文件就放在此目录中,其功能相当于共享资源的仓库,所有已完成的设计资源只有存入某个“库”内才可以被其他实体共享。常用的库有IEEE库、STD库和WORK库。之所以选用VHDL语言,是因为它有着其他硬件描述语言所不具备的优点,归纳起来,其优点主要包括以下几个方面:(1)VHDL语言功能强大,设计方式多样。只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。(2)VHDL语言具有强大的硬件描述能力,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。(3)VHDL语言具有很强的移植能力。对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。(4)VHDL语言的设计描述与器件无关。当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。(5)VHDL语言程序易于共享和复用。VHDL语言采用基于库的设计方法,在设计过程中,设计人员可以建立各种可再次利用的模块并存在库中,从而方便设计的共享和复用。4.1.2ISE软件开发流程ISE是由美国著名的可编程器件开发公司Xilinx提供的集成化开发平台,是进行Xilinx的FPGA开发逻辑设计的利器。ISE界面友好、操作比较接近Window里面操作习惯的特点,另外Xilinx的FPGA芯片占有很大的市场份额,因此,ISE开发套件就成为了非常通用的FPGA开发工具软件。本系统选用的软件版本为ISE10.1(图4.1为ISE10.1软件开发界面示意图),ISE10.1为Xlinx公司FPGA最新开发平台,以迎合近年来FPGA芯片的不断升级,并进一步促进FPGA器件迅速地从预案性设计平台直接跨入产品生产领域,涵盖逻辑设计、DSP处理以及嵌入式应用3大方面,使得FPGA成为通信、汽车、计 第四章CCD采集驱动软件设计与实现29算机、医疗、消费电子等要求苛刻且价格敏感领域的首选方案。图4.1ISE10.1软件开发界面利用ISE进行FPGA软件开发的一般流程主要包括以下几个步骤:(1)设计的输入ISE软件提供的设计输入工具包括用于HDL代码直接输入和查看报告的ISE文本编辑器(TextEditor),用于进行原理图编辑的工具ECS(EngineeringCaptureSystem),用于IP核生成的核生成器CoreGenerator,用于状态机设计的StateCAD,以及用于约束文件编辑的ConstraintEditor等。(2)功能仿真功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。(3)设计综合设计综合就是将HDL语言、原理图等设计输入翻译成由与、或、非门和RAM、 30基于CCD的图像采集系统设计与实现触发器等基本逻辑单元的逻辑连接(网表),并根据目标和要求(约束条件)优化所生成的逻辑连接,生成EDF文件。(4)设计实现设计实现指将综合输出的逻辑网表翻译成所选器件的底层模块与硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的。(5)时序仿真时序仿真,也称为后仿真,是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。(6)芯片编程设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件(位数据流文件,BitstreamGeneration),然后将编程数据下载到FPGA芯片中。其中,芯片编程需要满足一定的条件,如编程电压、编程时序和编程算法等方面。逻辑分析仪(LogicAnalyzer,LA)是FPGA设计的主要调试工具,但需要引出大量的测试管脚,且LA价格昂贵。目前,主流的FPGA芯片生产商都提供了内嵌的在线逻辑分析仪(如XilinxISE中的ChipScope、AlteraQuartusII中的SignalTapII以及SignalProb)来解决上述矛盾,它们只需要占用芯片少量的逻辑资源,具有很高的实用价值。24.2IC从设备接口协议的软件设计与实现2由于本CCD采集系统与后端数字图像处理板采用IC通信接口,而后端数字2图像处理板通常均为IC主设备,因此需要在本采集板上的FPGA芯片上,设计一22个IC从设备协议接口,以便实现与后端主设备的IC通信。24.2.1IC总线协议(1)基本概念2IC(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行通信2总线,主要用于连接微控制器及其外围设备。IC总线的最主要的优点是其简单性2和有效性。由于接口直接在组件之上,因此IC总线占用的空间非常小,减少了电2路板的空间和芯片管脚的数量,降低了互联成本。另外,IC总线支持线与逻辑,即支持多个从设备同时挂在同一总线上,主设备根据不同的从设备地址可实现对不同从设备的访问。2下面给出IC总线的应用电路示意图,如图4.3所示。 第四章CCD采集驱动软件设计与实现31..VDDRpRpSCL...SDA...SDASDASCLSCLDEVICE1DEVICE22图4.3IC应用电路示意图(2)信号定义2IC总线共有两根信号线,数据线SDA及时钟线SCL,两根信号线都是双向线路,其中SDA线上的数据方向可为主设备到从设备,也可为从从设备到主设备,SCL通常由主设备产生,但从设备在忙状态时可将SCL拉低,从而使主机保持等2待状态,等从设备忙完时再释放SCL。由于IC设备的接口电路通常都是集电极开路或漏极开路(OC/OD)门电路,所以一般都通过一个电流源或上拉电阻连接到正的电源电压上。(3)传输速率2IC总线上的数据传输速率在标准模式下可达100Kbit/s,在快速模式下可达400Kbit/s,在告诉模式下可达3.4Mbit/s。连接到总线的接口数量只受总线电容最大400pF的限制。(4)数据有效性2由于连接到IC总线上的器件有不同种类的工艺(CMOS、NMOS、双极性),逻辑’0’(低)和’1’(高)的电平不是固定的,它由VDD的相关电平决定。每传输一个数据位就产生一个时钟脉冲。SDA线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL线上的时钟信号为低电平时才能改变(见图4.4)。2图4.4IC总线的位传输数据有效性示意图 32基于CCD的图像采集系统设计与实现(5)起始/停止条件起始条件:在时钟线SCL为高电平的情况下,数据线SDA由高到低跳变标志一次传输的开始。停止条件:在时钟线SCL为高电平的情况下,数据线SDA由低到高跳变标志一次传输的结束。如图4.5所示。2图4.5IC总线的起始/停止条件(6)读/写控制第一个字节高7位为从设备地址,最后一位(LSB)代表读写标志,为1时代表读操作,为0时代表写操作(见图4.6)。2图4.6IC读/写操作(7)数据传输首先当总线检测到起始条件时,主设备开始发送从设备地址,从设备将此地址与自身地址对照,如果相同,从设备将发出应答ACK信号(将SDA拉低)。同时从设备检查读/写标志位,若为写,则在下一个时钟到来时主设备开始写数据,每写完一个字节,从设备都应该给主设备一个应答信号,直至出现停止条件;若为读,则在下一个时钟开始,从设备将数据送出至数据总线SDA上,送完一个字节,主设备应该发送应答信号给从设备,依次类推,直至出现停止条件。整个数据传输时序如图4.7所示。 第四章CCD采集驱动软件设计与实现332图4.7IC数据传输时序示意图24.2.2IC从设备接口协议的软件设计2由于IC总线逻辑时序关系较为复杂,单采用组合逻辑较难实现,因此本设计2采用状态机来完成IC从设备控制接口的VHDL建模,下面首先给出状态机的概念,然后结合概念给出本设计的状态机模型,最后通过编码完成状态机的逻辑实现,并给出仿真结果图。(1)状态机的概念计算机及具有内存或按照所存储信息执行一系列操作的其他数字系统统称为“时序状态机”,其电路可以通过时序逻辑进行建模。时序状态机的性能与组合逻辑不同,因为时序逻辑的输出不仅取决于当前的输入值,而且取决于历史的输入。根据状态数目是否有限可将时序状态机分为有限状态机(FiniteStateMachine,FSM)和无限状态机。由于绝大多数系统都属于有限状态,所以此处仅讨论有限状态机。有限状态机又分为Mealy型和Moore型,前者的输出与模块的当前状态和当前的输入信号都有关系,即使一直处于某一固定的状态,模块的输出也有可能随着输入的变化而变化;后者的输出仅与模块的当前状态有关,而与模块的当前输入无关。下面分别给出这两种有限状态机的设计框架,分别见图4.8和图4.9。InputsOutputs当前状态下一状态的控制逻辑输出状态的控制逻辑寄存器Clock图4.8Mealy型状态机的设计框架 34基于CCD的图像采集系统设计与实现由图4.8可以看出,Mealy型有限状态机的输出不仅与当前状态寄存器的值有关,而且与系统的输入实时相关。InputsOutputs当前状态下一状态的控制逻辑输出状态的控制逻辑寄存器Clock图4.9Moore型状态机的设计框架由图4.9不难看到,Moore型有限状态机的输出仅仅与当前状态寄存器的值有关,而与系统的输入无关。2(2)IC从设备控制接口的状态机建模2因为一个完整的IC从设备控制接口需要多个进程来共同完成,包括时序的同步、状态的跳转、状态的输出及总线开始、终止等条件的判断。因此上面提到的Mealy型和Moore型两种有限状态机模型,将都被用于本设计。Rst=0Rst=1StartFlag=1IDLE初始化STOPSTARTRising_edge(SCL)StopFlag=1Cnt=8Dev_ID≠Rcv_AddrSDA_dir<=0SDA<=0Cnt<8ACK_RcvRCV_AddrSDA_dir<=1DataAddr_in<=SDARCV_DataWr=1StopFlag=1Cnt=8SDA_dir<=1Cnt<8Cnt=8Data_in<=SDADev_ID=Rcv_AddrCnt<8ACK_SendACK_AddrDataSDA_dir<=0SDA<=0SEND_DataSDA_dir<=1Rd=1Cnt=8SDA_dir<=0SDA<=Data_in2图4.10IC从设备接口协议的状态转移图22状态机的定义与IC从设备协议的描述,图4.10给出了IC从设备接口协议的 第四章CCD采集驱动软件设计与实现35状态转移图,在图4.10中,总共定义了9个状态,各状态含义描述见表4.1:2表4.1IC从设备接口协议的状态描述IDLE:空闲状态START:开始状态RCV_Addr:接收地址及读写标志状态ACK_Addr:从设备地址应答状态RCV_Data:接收数据状态SEND_Data:发送数据状态ACK_RcvData:从设备应答接收数据状态ACK_SendData:主设备应答发送数据状态STOP:停止状态2下面根据IC从设备接口协议的数据传输流程,详细介绍此状态机的工作机制:首先在系统复位有效时,进入IDLE状态,对各信号及寄存器进行初始化;在复位无效且检测到起始条件(StartFlag=1)时,进入START状态,从设备准备接收第一个字节;在下一个SCL的上升沿,将SDA方向设置为输入,开始接收字节,当接收完第一个字节时,检测高七位是否与从设备器件地址相等,如果相等,则下个状态进入ACK_Addr状态,否则进入IDLE状态;在ACK_Addr状态时,SDA方向设置为输出,给主设备反馈应答信号(SDA<=0),同时判断第一个字节的最低位(读写标志位)是读还是写标志,如果是读,则下个状态进入SEND_Data状态,如果是写,则下个状态进入RCV_Data状态;在SEND_Data状态,将SDA方向设置为输出,此时主机开始从从机读取数据,并在读完一个字节后,进入ACK_SendData状态;在RCV_Data状态,将SDA方向设置为输入,此时从机开始接收主机写进来的数据,并在写完一个字节后进入ACK_RcvData状态;在ACV_SendData状态,将SDA方向设置为输入,等待主机发送读应答信号;在ACK_RcvData状态,将SDA方向设置为输出,从机将会向主机发送一个写应答信号;在ACV_SendData和ACK_RcvData状态时,如果检测到总线停止条件(StopFlag=1),则进入STOP状态,否则返回SEND_Data和RCV_Data状态继续进行读或写操作。STOP状态可直接调至IDLE状态,此状态是为了与START状态形成对应关系,而设定的一个冗余状态,实际编译后会将其优化掉。(3)实现本状态机的VHDL编码要点1)总线起始条件的VHDL实现起始条件定义为在SCL为高时,SDA由高到低变化时,代表总线开始工作。 36基于CCD的图像采集系统设计与实现具体代码实现如表4.2所示:表4.2总线起始条件的VHDL实现Check_StartFlag:process(CLK1M)beginifrising_edge(CLK1M)thenif(SDA_DLY1='0')and(SDA_DLY2='1')and(SCL_DLY1='1')thenStartFlag<='1';--起始标志置1elseStartFlag<='0';--起始标志清0endif;endif;endprocessCheck_StartFlag;其中SDA_DLY1和SDA_DLY2分别是由SDA延迟一个时钟和两个时钟后产生的,如此,可防止SDA的抖动。2)总线停止条件的VHDL实现停止条件定义为在SCL为高时,SDA由低到高变化时,总开停止传输。具体代码实现如表4.3所示:表4.3总线停止条件的VHDL实现Check_StopFlag:process(CLK1M)beginifrising_edge(CLK1M)thenif(SDA_DLY1='1')and(SDA_DLY2='0')and(SCL_DLY1='1')thenStopFlag<='1';--停止标志置1elseStopFlag<='0';--停止标志清0endif;endif;endprocessCheck_StopFlag;3)双向数据信号SDA的处理由于SDA是双向管脚,因此在不同的时刻需要为其设定不同的方向,比如在从机接收数据时,应该将其方向设置为输入,在从机给主机发送应答信号时,应该将其方向设置为输出。此处采用例化IOBUF来实现,具体代码见表4.4,并给 第四章CCD采集驱动软件设计与实现37出综合后的电路拓扑图(图4.11)。表4.4通过例化IOBUF来实现SDA双向信号处理SDA_BUFF:IOBUFportmap(I=>SDA_out,---SDA_dir=0O=>SDA_in,---SDA_dir=1T=>SDA_dir,IO=>SDA);图4.11SDA管脚综合后的电路拓扑图4)SDA方向的控制在ACK_Addr、ACK_RcvData及SEND_Data状态时,应该改变SDA_dir的方向,具体代码如表4.5所示:表4.5SDA方向的控制process(current_state)beginif((current_state=ACK_Addr)or(current_state=ACK_RcvData)or(current_state=SEND_Data))thenSDA_dir<='0';--将SDA设置为输出elseSDA_dir<='1';--将SDA设置为输入endif;endprocess;5)从设备接收数据的状态机描述在从设备接收数据时,须将SDA方向设置成针对从设备为输入,同时将SDA_out置高阻态,然后在SCL的上升沿将SDA总线上的数据SDA_in存放至data_in寄存器中,具体代码如表4.6所示: 38基于CCD的图像采集系统设计与实现表4.6从设备接收数据的状态机描述whenRCV_Data=>SDA_dir<='1';--将SDA设置为输入SDA_out<='Z';--将SDA_out设置为高阻if(SCL_DLY1='1')and(SCL_DLY2='0')thendata_in(7downto0)<=data_in(6downto0)&SDA_in;--将SDA_in存放在data_in寄存器中ifcnt_data="1000"thencnt_data<="0000";elsecnt_data<=cnt_data+'1';endif;endif;6)接收数据应答的状态机描述从设备接收完一个字节后返回给主设备应答信号一个应答信号,及输出一个低电平至SDA总线,即代表有应答信号,具体代码如表4.7所示:表4.7接收数据应答的状态机描述whenACK_RcvData=>SDA_dir<='0';--将SDA设置为输出SDA_out<='0';--送出应答信号(4)功能仿真结果2为了验证上述VHDL是否能实现IC从设备的时序逻辑,特对本部分代码进行了功能仿真,从仿真结果图(图4.12)可以看出上述设计在功能上已经实现了设计要求,事实上最终在板子上运行的结果也验证了这一点。2图4.12IC从设备的状态机功能仿真结果图 第四章CCD采集驱动软件设计与实现394.3CCD采集参数配置的软件设计与实现2CCD采集参数的配置主要是由后端图像处理板通过运行其上的BOA的IC软件接口访问本系统的FPGA模块,然后再由此FPGA模块通过AD9923A的三线控制接口完成对驱动芯片AD9923A的特定寄存器配置,从而实现CCD采集参数的远程更新配置。4.3.1AD9923A三线控制接口及关键寄存器配置(1)AD9923A三线控制接口所谓AD9923A的三线控制接口即专用于此芯片的串行通信接口,此接口总共包括三根信号线,分别是数据线SDI,时钟线SCK和片选线SL。AD9923A的所有内部寄存器均通过这个三线式串行接口进行访问。每个寄存器由12位地址和28位数据字组成。地址和数据字的写入均以LSB开始。要写入各寄存器,需要40位操作,如图4.13所示。虽然许多数据字并没有28位宽,但每个寄存器都要求写入所有28位。例如,如果数据字只有20位宽,则高8位是无关位,在串行写入操作期间必须用0填充。如果写入的数据少于28位,则寄存器不会用新数据进行更新。12-BITADDRESS28-BITDATASDIA0A1A2A3...A10A11D0D1D2...D25D26D27......SCKSL......图4.13串行写入操作注意:①SDI比特在SCK上升沿被锁存。在写入操作期间,SCK的空闲状态或高或低;②所有的40比特必须写全:12位地址和28位数据;③如果数据长度小于28比特,那么必须使用0来补全这28位长度;④新的数据值将在不同时段的特定寄存器来更新,根据一些特殊的寄存器来决定。图4.14显示了一种更有效的寄存器写入方法,它使用AD9923A的地址自动递增功能。采用这种方法时,首先写入所需的最低地址,然后写入多个28位数据字。每个数据字自动写入次高寄存器的地址。由于不需要写入各地址,因此寄存器加载速度更快。连续写操作可以从任何寄存器位置开始。 40基于CCD的图像采集系统设计与实现REGISTERADDRESS“A”DATAFORADDRESS“A”DATAFORNEXTADDRESSSDIA0A1A2A3...A10A11D0D1D2...D27D0D1............SCKSL.........图4.14连续串行写入操作注意:①多个序列寄存器可以连续载入;②写入的第一个寄存器地址(最低地址)紧随着多个28比特的数据;③地址会自动增加28数据长度;④SL保持低电平直至最后一个寄存器被载入。三线控制接口中,结合图4.14的时序图可知,SL作为片选信号,当其拉低时,使能或者说保持数据传输的有效性。在本设计中,以40bit数据(寄存器地址12bit,寄存器取值28bit)为单位,一旦40bit的数据读取完毕,可将SL信号拉高,延时若干ns后继续读取下一个40bit的数据。相比较图4.14连续写入操作而言,虽然读取效率稍低,但是为40bit数据的完整性提供了保证,不需要额外的数据同步操作。SCK表示时钟信号,图4.13和图4.14中都可以发现,数据串行读取或写入时,时钟的每一个周期用于处理相对应的数据比特位,且只在时钟上升沿(有时使用下降沿)可进行有效操作。SDI即表示串行数据传输位,数据传送的具体格式是可以自行定义的,只需要保证地址位不超过12比特,而数据位不超过28比特,不足的位以’0’代入即可。特别需要说明的是,三线传送模式中不允许存在虚位,即未赋值位,这样会引发不可预测的赋值操作,导致数据错乱或可靠性降低。(2)AD9923A关键寄存器配置AD9923A的工作很大程度上取决于其内部寄存器的配置,下面将给出AD9923A的内部寄存器布局及关键寄存器的配置。首先介绍说明一下寄存器布局特点:AD9923A地址空间分为两个寄存器区域,如图4.15所示,寄存器0x90(VPAT_NUM)和寄存器0x91(VSEQ_NUM)指定所用V-pattern组和垂直序列的总数;V-pattern组的起始地址为0x400;垂直序列的起始地址基于所用V-pattern组的数量,每个V-pattern组占用40个寄存器地址;场寄存器的起始地址取决于V-pattern组的数量和垂直序列的数量;每个垂直序列占用20个寄存器地址,而每个场占用12个寄存器地址。垂直序列的起始地址=0x400+(V-pattern组数量)*40。场的起始地址=垂 第四章CCD采集驱动软件设计与实现41直序列的起始地址+垂直序列数量*20。VPAT、VSEQ和场寄存器必须占用连续的地址块。AD9923A的寄存布局示意图如图4.15所示。FIXEDREGISTERSCONFIGURABLEREGISTERDATAADDR0x00ADDR0x400AFEREGISTERSADDR0x10MISCELLANEOUSREGISTERSV-PATTERNGROUPSADDR0x20(EACHGROUPUSES40REGISTERS)VD/HDREGISTERSADDR0x30VSEQSTARTTIMINGCOREREGISTERSADDR0x40CLPOBMASKREGISTERSV-SEQUENCESADDR0x50(EACHVSEQUSES20REGISTERS)SGPATTERNREGISTERSADDR0x60SHUTTERCONTROLREGISTERSFIELDSTARTADDR0x90CONFIGUREMEMORYUSINGFIELDSVPAT_NUMANDVSEQ_NUM(EACHFIELDUSES12REGISTERS)ADDR0x92INVALIDDONOTACCESSMAX0x7FFADDR0xFF图4.15AD9923A寄存器的布局下面给出一个具有3个垂直图样组、4个垂直序列和2个场的示例(图4.16)。ADDR0x4003V-PATTERNGROUPS(40x3=120REGISTERS)ADDR0x4784V-SEQUENCES(20x3=60REGISTERS)ADDR0x4B42FIELDS(12x2=24REGISTERS)ADDR0x4CCUNUSEDMEMORYMAX0x7FF图4.16寄存器的地址空间占用实例如图4.16所示,垂直图样组的起始地址为0x400。由于VPAT_NUM=3,因此垂直图样组占用120个地址位置。垂直序列寄存器的起始地址为0x400+120=0x478。由于VSEQ_NUM=3,因此垂直序列占用60个地址位置,场寄存器的起始地址为0x448+60=0x4B4。AD9923A地址空间包含许多未使用的地址。不得向地址0x00与0x399之间的未定义地址写入数据,否则AD9923A可能出现异常。连续的寄存器写操作应小心执行,避免写入未定义的寄存器。结合本设计的具体开发实例以及ADI给的配置顺序,寄存器地址的(16进制)400~427为VPAT0,428~44f为VPAT1,450~463为V-SEQUENCE0,464~477 42基于CCD的图像采集系统设计与实现为V-SEQUENCE1,478~483为FILED0。本文根据这一地址分布,将主要分别对VPAT、VSEQ、FIELD以及VSG寄存器的含义和值进行说明。①VPAT垂直图样组寄存器配置垂直图样(VPAT)组定义XV1至XV13输出信号各自的脉冲图样。表4.8总结了可用于产生各VPAT组的寄存器信息。第一至第五跳变位置(XVTOG1、XVTOG2、XVTOG3、XVTOG4、XVTOG5)是脉冲跃迁的像素位置。所有跳变位置均为13位值,可以将其放在水平行上的任何地方。垂直图样组的时序配置可参加下图4.17所示。表4.8垂直图样组寄存器寄存器长度(位)范围描述对于XV1至XV12各输出,XVTOG1130到8191像素位置它为行内的第一跳变位置XVTOG2130到8191像素位置第二跳变位置XVTOG3130到8191像素位置第三跳变位置XVTOG4130到8191像素位置第四跳变位置XVTOG5130到8191像素位置第五跳变位置HD4XV1123XV21.23..1XV1223图4.17可编程的垂直图样组注:”1”表示开始极性(在V-SEQUENCE寄存器中设置);”2”表示第一个跳变位置;”3”表示第二个跳变位置(在复杂的图样组中总共可以用到5个跳变位置);”4”表示所有垂直输出的图样总长度(在垂直序列寄存器中设置)。垂直序列寄存器中包括了更多用来指定输出脉冲的寄存器:XV1POL至XV13POL指定各信号的起始极性;VSTART指定VPAT组的起始位置;VLEN指定VPAT组的总长,如果使用重复,则该参数可确定两次图样重复之间的像素数量。为了实现最佳噪声性能,应确保VSTART与VLEN之和小于水平消隐区间的结束位置。设置为像素0或像素8191的跳变位置会被忽略。未使用XV通道的跳 第四章CCD采集驱动软件设计与实现43变位置必须被设置为像素0或像素8191,以防产生不可预测的结果,因为垂直图样组寄存器的默认值是未知的。其中VPAT0与VPAT1的寄存器配置分别如表4.9和表4.10所示(16进制),表格中没写的对应寄存器采用默认值即可:表4.9VPAT0的寄存器配置绝对地址相对地址设置值意义402020092013XV2TOG1:[12:0]=19;TOG2:[25:13]=73;4000000b6001XV1TOG1:[12:0]=1;TOG2:[25:13]=91;4060600fe025XV4TOG1:[12:0]=37;TOG2:[25:13]=127;4040400da037XV3TOG1:[12:0]=55;TOG2:[25:13]=109;40a0A00fe025XV6TOG1:[12:0]=37;TOG2:[25:13]=127;4080800da037XV5TOG1:[12:0]=55;TOG2:[25:13]=109;40e0D0092013XV8TOG1:[12:0]=19;TOG2:[25:13]=73;40c0F00b6001XV7TOG1:[12:0]=1;TOG2:[25:13]=91;4242400fe025XV13TOG1:[12:0]=37;TOG2:[25:13]=127;表4.10VPAT1的寄存器配置绝对地址相对地址设置值意义XV2TOG1:[12:0]=68;42a020000044TOG2:[25:13]=0;428000000008XV1TOG1:[12:0]=8;TOG2:[25:13]=0;XV8TOG1:[12:0]=68;4360E0000044TOG2:[25:13]=0;4340C0000008XV7TOG1:[12:0]=8;TOG2:[25:13]=0;②VSEQ垂直序列寄存器配置选择一个垂直图样组并添加重复、起始位置、水平箝位和消隐信息,即可创建一个垂直序列(VSEQ)。各VSEQ可以通过下面的表4.11和表4.12所示的寄存器进行编程。图4.18显示了如何利用各寄存器来产生垂直序列。VPATSELA和VPATSELB寄存器选择给定垂直序列所用的垂直图样组。如果有2个组可用,则各垂直输出可以映射到不同的垂直图样组。对于选定的垂直图样组,可以利用偶数行和奇数行的VREP寄存器添加高速行移位或行像素合并的重复。一般而言,写入这两个寄存器的重复次数相同。如果奇数行和偶数行需要不同的重复次数,各寄存器可以使用不同的值(参见“产生用于垂直序列和HBLK的行交替”部分)。VSTARTA和VSTARTB寄存器指定垂直图样组的起始像素位置。VMASK寄存器与FREEZE/RESUME寄存器一起用来使能XV输出的可选掩蔽。FREEZE1/RESUME1和FREEZE2/RESUME2寄存器可以分别或全部使能。 44基于CCD的图像采集系统设计与实现行长(以像素为单位)可利用HDLEN寄存器进行编程。各垂直序列可以具有不同的行长,以支持各种不同的图像读取技术。每行的最大像素数量为8192。请注意,场的最后一行可利用HDLAST寄存器(位于场寄存器中)单独进行编程。1HD2344V-PATGROUPVREP2VREP3XV1TOXV13CLPOBPBLK5HBLK6图4.18V-Sequence可编程性注意:”1”表示使用被选用的V-Pattern组的该行的起始位置;”2”表示HD行长度;”3”表示利用VPATSEL所选用的任一V-Pattern组;”4”表示所需要的V-Pattern组的重复数;”5”表示CLPOB和PBLK信号的开始极性和跳变位置;”6”表示HBLK的掩码极性和跳变位置。VSEQ0的寄存器配置如表4.11所示(16进制),表中未列出的为默认值。表4.11VSEQ0寄存器配置绝对地址相对地址设置值含义453033ffe000GroupB不使用452021000000XV1-XV13都选用GroupA;选择2行交替;XV13-XV1开始极性:10000011010014510120d3069XV13-XV1第二极性:1000001101001(GROUPA,GroupB的起始极性)GroupA的起始位置为51个像素处;454040168033GroupA的长度为180;457070002001组A在第三行、第四行的重复次数为1CLPOB起始极性为高电平1;PBLK起始极性为高电平1;450000f00003无掩码;每行的像素数为1920;456060002001组A在第一行、第二行的重复次数为1PBLK在第52个像素处第一次跳变;45f0F0238034PBLK在第284个像素处第二次跳变; 第四章CCD采集驱动软件设计与实现45续表4.11VSEQ0寄存器配置CLPOB在第10个像素处第一次跳变;45e0E006400aCLPOB在第50个像素处第二次跳变;HBLK长度为8192;HBLK重复次数仅1次;45d0D0e03fffHBLK期间H1的掩码极性为高电平;HBLK期间H3的掩码极性为高电平;HBLK期间HL的掩码极性为高电平;HBLK的起始位置为第52个像素处;45c0C0200034HBLK的结束位置为第256个像素处;根据寄存器0x454可知,GroupA的起始像素为第51个clk,本文结合VPAT0,不妨取XV1做示例说明,由于XV1的跳变位置为第1个clk以及第91个clk,则可以认为在52个clk的时候XV1发生电平转换,后面的第91个clk也相应的变为第90clk。VSEQ1的寄存器配置如表4.12所示(16进制),表中未列出的为默认值。表4.12VSEQ1寄存器配置绝对地址相对地址设置值意义467033ffe000GroupB不使用XV1-XV13都选用GroupA;466021000000选择2行交替;XV13-XV1开始极性:1000001101001465010001069XV13-XV1第二极性:0000000000000奇数行的第三HBLK跳变位置在第20个像素46c08008c014处;第四HBLK跳变位置在第70个像素处46a060002001组A在第一行、第二行的重复次数为1CLPOB起始极性为高电平1;PBLK起始极性为高电平1;使能Freeze1/Resume1;464000f0010b第9位应置0,赋值与手册中矛盾(问过ADI,可以忽略这个问题);每行的像素数为192046b070002001组A在第三行、第四行的重复次数为1 46基于CCD的图像采集系统设计与实现续表4.12VSEQ1寄存器配置HBLK长度为8192;HBLK重复次数仅1次;4710d0e03fffHBLK期间H1的掩码极性为高电平;HBLK期间H3的掩码极性为高电平;HBLK期间HL的掩码极性为高电平;HBLK的起始位置为第52个像素处;4700c0200034HBLK的结束位置为第256个像素处③FIELD相关寄存器配置完成垂直系列的创建之后,将其加以合并以创建不同的读取场。一个场最多包括9个区间。在各区间内可以选择不同的垂直序列。图4.19显示了序列变化位置(SCP)寄存器如何指定各区间的行边界,以及VSEQSEL寄存器如何选择各区间的垂直序列。场寄存器中也包括用于控制VSG输出的寄存器。SCKUPDATEDSERIALWRITEVDUPDATEDSCPUPDATEDSCPUPDATEDSCPUPDATEDVDSGUPDATEDHDSGLINEVSGV1ATOV10USEVSEQ2USEVSEQ3USEVSEQ5USEVSEQ8REGION0REGION1REGION2REGION3SCP0SCP1SCP2SCP3SCP0图4.19寄存器更新位置信息VSEQSEL寄存器选择各区间中哪些垂直序列有效。SWEEP寄存器可以使能任何区间的扫描模式(表4.13总结了用于创建不同场的寄存器信息)。MULTI寄存器用来使能任意区间的乘法器模式。SCP寄存器创建各区间的行边界。VDLEN寄存器指定场中的总行数。每行的像素总数(HDLEN)在垂直序列寄存器中指定,HDLAST寄存器指定场的最后一行的像素数量。当器件处于从机模式时,HDLEN、VDLEN、HDLAST寄存器会被忽略。VPATSECOND寄存器用来在传感器门限(VSG)行中将第二垂直图样组添加到XV1至X12输出。SGMASK寄存器用来使能或禁用各VSG输出。对于各VSG输出,都有2位用于分别使能SGACTLINE1和SGACTLINE2中的掩蔽。 第四章CCD采集驱动软件设计与实现47表4.13FIELD0寄存器配置(16进制)绝对地址相对地址设置值意义47b030002000垂直序列在第1行发生变化,即SCP1=1479010000000其他区域均采用V-sequence0设置FIELD的第2个区域采用V-sequence1,478000000020其余的区域都采用V-sequence047f0709c8000SCP8不用;每场中的行数为125247c040000002垂直序列在第二行发生变化,即SCP2=2设置SGactiveline1:0(第一行HD,垂直信号有高电平的那一行)4830B1ffe000SGactiveline2:4095(最后一行,即没有设第二个VSG)为VSG行选择VPAT1;481090000881maskingforVSG2onSGline1;maskingforVSG4onSGLINE14800801781e0HD最后一行的长度为480;SG起始位置为188掩蔽位设置为高电平时将禁用或掩蔽输出,而设置为低电平时将使能输出。SGPATSEL寄存器将8个SG图样之一指定给各VSG输出。每个SG图样都是利用SG图样寄存器独立创建。SGACTLINE1寄存器指定场中的哪一行包含VSG输出。可选的SGACTLINE2寄存器允许同一VSG脉冲在不同的行上重复,但SGACTLINE1和SGACTLINE2可以使用各自的掩蔽。④VSG垂直传感器门限寄存器配置VSG垂直传感器门限(又名移位门限)在隔行扫描CCD中使用到,主要用于将像素电荷从光敏图像区域转移到光屏蔽垂直寄存器中,然后利用XV1至XV13垂直传输脉冲和高速水平时钟,从光屏蔽垂直寄存器中逐行读取图像。AD9923A具有8个VSG输出,即VSG1至VSG8.利用SGPATSEL寄存器可以将每个输出指定为8个编程图样中的一个。每个图样的产生方式与垂直图样组相似,都会使用可编程起始极性(SGPOL)、第一跳变位置(SGTOG1)和第二跳变位置(SGTOL2)。VSG1至VSG8脉冲所在的有效行可以通过SGACTLINE1和SGACTLINE2寄存器进行设置。此外,利用SGMASK寄存器可以分别禁用VSG1至VSG8的每一个脉冲。各自独立掩蔽使得所有SG图样都能进行预编程,而且各场的相应脉冲可以分别使能。为了提供最大的灵活性,SGPATSEL、SGMASK和SGACTLINE寄存器可以针对各场分别进行编程。SGMASK_BYP寄存器(地址0x59),它将覆盖场寄存器中的SG掩蔽设置。 48基于CCD的图像采集系统设计与实现SGMASK_BYP寄存器允许在不更改场寄存器值的情况下改变传感器门限掩蔽。SGMASK_BYP寄存器由SCK更新,因此新SG掩蔽值会立即更新。本设计中对VSG寄存器的配置如表4.14所示,表中未列出的为默认。表4.14VSG0寄存器配置绝对地址相对地址设置值意义0x500x5000000ffVSG0-VSG7,起始极性为H0x510x5109c444cVSG0在第1100clk以及1250clk发生电平变化VSG0中有效行的波形显示如图4.20所示。011001250图4.20设置VSGActiveLine中1100至1250有效行的波形最后,介绍下本设计中会用到的寄存器的更新类型。AD9923A内部寄存器在不同时间更新,具体时间依寄存器而定。表4.15总结了四种类型的寄存器更新信息。表4.15寄存器更新类型及意义更新类型描述SCK寄存器在写入第28位数据(D27)时立即更新VD寄存器在VD下降沿更新。使用UPDATE寄存器(地址0x18)可以进一步延迟VD更新寄存器的更新。场寄存器不受UPDATE寄存器的影响SG寄存器是在SG有效行末尾的HD下降沿更新SCP寄存器在使用该寄存器的下一个SCP更新SCK更新:一些寄存器在写入第28位数据(D27)时更新。这些寄存器用于上电和复位等不需要在下一VD边界才能选通的功能。VD更新:许多寄存器都在下一个VD下降沿更新。由于在下一个VD边沿更新这些值,因此当前场不会被破坏,新寄存器值将被应用于下一个场。使用UPDATE寄存器(地址0x18)可以将VD更新进一步延迟到VD下降沿之后。这样可以将VD更新寄存器的更新延迟到场中任何所需的HD行。请注意,场寄存器不受UPDATE寄存器的影响。SG更新:有几个快门寄存器是在SG有效行末尾的HD下降沿更新。这些寄存器控制SUBCK信号,因此SUBCK输出直到SG行完成时才更新。SCP更新:所有垂直图样和垂直序列寄存器都在使用它们的下一个SCP更新。例如,在前面图4.19中,该场选择区间1使用垂直序列3来进行垂直输出,因此,垂直序列3或垂直图样组寄存器的写入数据(由垂直序列3引用)在SCP1进行 第四章CCD采集驱动软件设计与实现49更新。如果对同一寄存器执行了多次写操作,则只会更新SCP1前写入的最后数据。同样,垂直序列5寄存器的写入数据在SCP2更新,而垂直序列8寄存器的写入数据则在SCP处更新。4.3.2CCD采集参数的静态配置CCD采集参数的静态配置主要是指利用FPGA完成AD9923A的寄存器初始化配置,从而实现CCD采集参数的默认配置。具体操作过程为将默认配置参数利用特定的格式存入FPGA的内部RAM中,然后通过AD9923A的三线通信接口将RAM中的配置参数写入AD9923A。如此,系统一上电,就会按默认配置参数进行图像采集。开始初始化将并行格式的配置数据进行串行转换将转换后的串行配置数据拷贝至.coe文件写RAM配置读使能条件N读使能满足条件Y读RAM在SCK的上升沿将读到的数据送SDI编译、下载结束图4.21FPGA配置AD9923A的流程图 50基于CCD的图像采集系统设计与实现本节主要介绍如何通过FPGA和AD9923A之间的三线控制接口来完成AD9923A的寄存器配置,并给出了配置流程图及VHDL编码要点。如AD9923A资料所讲,要使此芯片按照用户的需求正常工作以驱动前端CCD的工作,必须对此芯片的相关寄存器进行必要的配置,图4.21给出了FPGA配置AD9923A的流程图。图4.22写RAM模块示意图如图4.21所示,FPGA通过三线方式配置AD9923A寄存器时,首先需要对寄存器要设置的值进行初始化,因为要配置的寄存器数量很多,所以采用例化RAM的方式,将要配置的寄存器地址与内容以并行数据的格式先写在一个.txt文本中(图4.23);然后通过编写一个VC小程序将并行数据再转换为串行数据(图4.24)并拷贝在一个.coe格式的文件中(图4.25,RAM调用的数据格式),应注意RAM初始化是从.coe文件的第二行开始;写RAM只需将转换后的.coe文件地址输入在RAM要加载的.coe目录中即可(图4.22);在写完RAM后,配置读使能信号,若检测到读使能有效,则开始读取RAM中的值,每40bit读取读取一次,前12bit为寄存器地址,后28bit为寄存器内容,并在SCK的上升沿将读到的数据送SDI 第四章CCD采集驱动软件设计与实现51总线,当RAM中的值都被读取并被送至SDI总线后,即完成了AD9923A的寄存器配置,重启系统,即可看到图像按配置内容发生了变化。下面分别附上AD9923A将要配置的寄存器地址与内容的不同数据格式的表现形式。图4.23为并行格式的配置数据,分为左右两列,其中左列为寄存器地址,右列为该地址对应的寄存器内容。图4.23并行格式的配置数据图4.24为经并串转换后的串行格式的配置数据,由图可知,转换后的串行数据与并行数据对应位的值一致。图4.24串行格式的配置数据 52基于CCD的图像采集系统设计与实现图4.25为.coe文件中存储的配置数据格式,由图可以看出,第一行表达式memory_initialization_radix=16定义了RAM中存储的数据为16进制,第二行memory_initialization_vector表示RAM中将要写入的值。图4.25.coe文件中存储的配置数据并行数据转串行数据编码要点如表4.16所示:表4.16并行数据转串行数据编码要点#include
此文档下载收益归作者所有