《线阵-CCD-驱动的FPGA时序设计.doc》由会员分享,可在线阅读,更多相关《线阵-CCD-驱动的FPGA时序设计.doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date线阵-CCD-驱动的FPGA时序设计线阵 CCD 驱动的FPGA时序设计中国海洋大学2007级电子信息科学与技术 线阵 CCD 驱动的FPGA时序设计实验组成员:袁航 周杰 赵宁 杨剑波 摘要:CCD,英文全称:Charge-coupled Device,中文全称:电荷耦合元件。可以称为CCD图像传感器。CCD是一种半导体器件,能够把光学影像转化为数字信号。 CCD上
2、植入的微小光敏物质称作像素(Pixel)。一块CCD上包含的像素数越多,其提供的画面分辨率也就越高。CCD的作用就像胶片一样,但它是把图像像素转换成数字信号。CCD上有许多排列整齐的电容,能感应光线,并将影像转变成数字信号。由于CCD的转换效率、信噪比等光电特性只有在合适的时序驱动下才能达到设计所规定的最佳值,输出稳定可靠的信号,因此,驱动电路的设计也就成为其应用中的关键问题之一。关键词:CCD;时序;驱动仿真一、实验设计要求 设计一线阵CCD驱动时钟,用一输入的clk,驱动CCD、AD、FIFO组成的整个CCD系统,并要求有一个复位端reset。二、实验目的 本实验主要是设计基于FPGA设计
3、线阵CCD器件复杂驱动电路和整个CCD的电子系统控制逻辑时序的方法,并给出时序仿真波形,通过对线阵CCD驱动电路的时序设计,了解一个系统设计的基本方法,加深了解时序电路的设计方法。三、实验设备ccd线阵:sonyILX511AD:Analog Devices - AD9224FIFO:Integrated Device Technology - IDT7204Cypress - CY7C460A四、背景介绍 AD电路里面的模拟信号转换为数字信号的电路简称AD电路。 FIFO 英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,
4、这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。CCDCCD是以电荷作为信号,而不同于其他大多数器件是以电流或者电压为信号,其基本功能是信号电荷的产生、存储、传输和检测。当光入射到CCD的光敏面时,CCD首先完成光电转换即产生与入射光辐射量成线性关系的光电荷。CCD的工作原理是被摄物体反射光线到CCD器件上。CCD根据光的强弱积聚相应的电荷,产生与光电荷量成正比的弱电压信号,经过滤波、放大处理,通过驱动电路输出一个能表示敏感物体光强弱的电信号或标准的视频信号。基于上述将一维光学
5、信息转变为电信息输出的原理,线阵CCD可以实现图像传感和尺寸测量的功能。其显著特点是:1.体积小重量轻;2.功耗小,工作电压低,抗冲击与震动,性能稳定,寿命长;3.灵敏度高,噪声低,动态范围大;4.响应速度快,有自扫描功能,图像畸变小,无残像;5.应用超大规模集成电路工艺技术生产,像素集成度高,尺寸精确,商品化生产成本低。因此,许多采用光学方法测量外径的仪器,把CCD器件作为光电接收器。五、设计思路: 在老师的指导下,我们对要设计的数字系统进行了分析,其设计的框图如下: 在上图中我们可以清楚地看到我们需要做的是用一个输入的clk,产生CCD、AD、FIFO所需要的clk,用以驱动它们。CCD需
6、要两个时钟:rog和clk,AD和FIFO分别需要一个clk。芯片的选择: IDT公司的CMOS ASYNCHRONOUS FIFO IDT7203,SONY公司的ILX511系列的CCD和AD9224系列的AD采样器,这三个片子所需要的clk分别为:根据sony公司的ILX511 系列线阵CCD的技术手册可以知道,该类型线阵CCD的最好工作时钟在2MHz条件下,ILX511CCD线阵共有2086个像元,其中只有2048个像源是有效的。前面32个和后面6个像元是哑元。转换时AD不对这部分像元进行采样输出。AD必须在这2048个像源开始采样,否则会存入FIFO中一些无用的信息。由上图和技术手册可
7、知ILX511系列线阵CCD,ROG选通脉冲信号和clk信号之间要求,t7要持续5000ns;t9要持续3000ns。另外由该CCD的转换时序图可以知道,在时钟信号的下降沿进行转换输出。 由AD9224的技术资料可以知道,该型ADC采用流水线结构转换频率高达20MHz的高速12位ADC。该型ADC是上升沿采样,而且每采样一个数值要延迟3个时钟周期。AD的输出比输入延迟三个周期,怎样用一个clk协调三个片子进行工作成了我们这次实验的关键。它的采样时序如下图示: 用一计数器count对输入的clk的上升沿进行计数,在CCD的2048个有效像源以前让AD和FIFO的clk一直保持在高电平,当到达有效
8、像源时让AD开始工作,在延时3个周期后,FIFO开始工作,当2048个像源采样完后,AD的clk再次定义为高电平,在延时3个周期后,FIFO停止工作,这样就完成了第一个周期,这时我们再让计数器count清0,继续下一周期工作。 IDT7204是高速静态RAM,其转换时序如下图所示。RAM的写信号在信号的上升沿数据写入RAM中。CCD信号转换前6个时钟周期所有时钟信号均输出高电平,接着ROG输出10个时钟周期的低电平后转换为高电平一直保持到转换结束。ROG跳变为高电平后经过6个时钟周期后CCD的clk启动为时钟信号。前面32个时钟周期AD不进行采样输出。CCD是下降沿输出,AD是上升沿进行采样,
9、可知此时CCD输出最稳定。AD启动后3个时钟周期RAM将AD的采样信号写入RAM中。采样完2048个像元后,AD停止采样,RAM再继续写入3个信号。一次转换结束后所有信号都输出6个时钟周期的高电平。六、设计代码 输入引脚功能:en=0时,芯片输出均为高电平,芯片不可工作; en=1 and clr=1 时,复位输出均为低电平,计数器清零;en=1 and clr=0 时,芯片工作,输出CCD数据采集系统的时序。 Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Entity ccddriver Is
10、Port (clk,clr :in std_logic; rog,ccd,ad,fifo:out std_logic); End ccddriver;Architecture Behavior Of ccddriver IsSignal count:integer range 0 to 2110; Signal rog0,ccd0,ad0,fifo0,rog1,ccd1,ad1,fifo1:std_logic; Begin Process(clk,clr)BeginIf en=0 then rog0=1;ccd0=1;ad0=1;fifo0=1; rog1=1;ccd1=1;ad1=1;fif
11、o1=1;Elsif clr=1 then count=0;rog1=0;ccd1=0;ad1=0;fifo1=0;Elsif clkevent and clk=1 Then count 启动前面6个时钟先不用rog0=1;ccd0=1;ad0=1;fifo0 10个时钟周期ORG输出低电平rog0 =0; ccd0 =1;ad0 =1; fifo0 ORG 跳变后,ccd驱动要保持6个时钟周期才能负跳变rog0 =1;ccd0 =1;ad0 =1;fifo0 前面32个哑元,AD不采样rog0=1;ccd0=0;ad0=1;fifo0 由于AD是流水线工作,延迟3个时钟周期才输出采样值,Bu
12、ffer的读入也要延迟3个时钟周期rog0=1; ccd0=0;ad0=0;fifo0rog0=1;ccd0=0;ad0=0;fifo0 AD停止采样Buffer继续读入三个值rog0=1;ccd0=0;ad0=1;fifo0rog0=0;ccd0=0;ad0=1;fifo0=2110 thencount=0;End if;End if;End process;rog=rog0 and rog1; ccd=(ccd0 or clk) and ccd1; ad =(ad0 or clk) and ad1; fifo=(fifo0 or clk) and fifo1; End Behavior;七、时序图启动时序:转换视图:八、总结 通过本次实验,我们了解了线阵CCD工作的方式和原理,并对VHDL语言有了更深入地掌握以及使用其在实践中灵活运用的能力。在实验过程中,由于对clk时钟脉冲的设置还有仿真结束时间的设置不了解,得不到clk脉冲,而且仿真时间很短,经过老师指导,修改设置后得到正确的波形输出。在实验起初一定要对实验所需要的芯片的要求进行详细了解,只有了解了芯片要求,才能通过编程来实现芯片驱动脉冲的实现形式。这样,在以后的系统设计实践中,就可以举一反三,用不变的VHDL语言,来实现多种不同芯片之间的驱动脉冲要求,使整体系统设计达到完美。-