基于FPGA的线阵CCD数据采集系统.doc
文本预览下载声明
摘 要:本文介绍了一种基于FPGA线阵CCD数据采集系统实现方法。该系统在AlteraCyclone EP1C6Q240C8上实现,使用SoPC Builder开发组件定制CPU软核处理器和系统所需IP模块,CPU软核处理器作为微控制器实现逻辑控制和数据采集功能,用硬件描述语言编程实现CCD驱动电路设计。关键词:CCD;数据采集;Nios II
引言CCD(Charge Coupled Devices,电荷耦合器件)具有光电转换、信息存储等功能,而且集成度高、动态范围大、线性好、信噪比高,在很多领域都得到了广泛应用。CCD有面阵和线阵之分,面阵CCD主要用于摄像、图像处理、数据存储和机器人视觉等领域;线阵CCD应用也很广泛,像光谱分析、测径,测量微小位移等。本文介绍了一种在FPGA片内利用SoPC技术实现线阵CCD数据采集系统,系统中CCD选用东芝公司TCD103D,这是2592像元二相线阵CCD;ADC选用TLC876,精度为10位,转换速率20MSPS。整个系统在一片FPGA(EP1C6Q240C8)上完成,在Quartus II软件中用硬件描述语言实现CCD驱动电路和A/D采样控制器设计。使用SoPC Builder定制了一个32位软核处理器作为微控制器,协调CCD驱动电路、A/D采样控制电路之间工作时序,完成数据采集、存储等功能。系统分3部分:硬件电路、驱动电路和数据采集部分。
PCbfans.cn提示请看下图:
系统硬件设计硬件平台结构见图1。系统中UART和SDRAM Controller是SoPC Builder内建IP核库中IP模块,通过Avalon Bus和Nios II CPU相连。SoPC Builder能自动产生每个模块HDL文件,同时自动产生一些必要仲裁逻辑来协调Avalon Bus上各功能模块工作。Nios II CPU是系统核心,协调CCD驱动电路、A/D采样控制电路之间工作时序,完成数据采集、存储和数据传输。SDRAM作为数据缓存器,软件程序和配置文件存储在外扩Flash中。系统通过RS-232接口和计算机相连,接收计算机控制命令。CCD工作时要求驱动脉冲幅值在11V以上(典型值为12V),因此,CCD模块包含一个电平转换电路,将FPGA输出电平转换成12V。
驱动电路设计FPGA具有集成度高、速度快、可靠性好及硬件电路易于编程等特点,非常适合驱动电路设计。CCD驱动电路和A/D采样控制电路在Quartus II软件中编程实现,产生CCD和ADC所需工作时序。CCD驱动电路设计TCD103D是一种高灵敏度、低暗电流、2592像元二相线阵CCD图像传感器。分辨率为11mm,它在4路驱动信号作用下输出OS和DOS信号。正常工作时先输出64个哑元信号,然后连续输出S1~S2592有效像素单元信号。S2592信号输出后,又输出28个哑元信号,以后便是空驱动。DOS是补偿输出信号。4路驱动信号分别是转移信号SH、两相时钟信号Φ1、Φ2 和复位信号RS。SH 周期就是器件光积分时间。
PCbfans.cn提示请看下图:复位脉冲RS产生RS 是使输出扩散二极管复位复位管控制脉冲,复位一次输出一个信号,脉冲占空比为1:3,典型频率为1MHz。RS 由U1单元产生。如图2所示,单元内两个D触发器构成一个环形计数器,CLK 为4MHz 时钟脉冲,经分频输出两个1MHz、相差90°方波脉冲和,将这两路脉冲经或非门输出,即可形成RS脉冲。除RS脉冲外,U1单元还产生fai_base脉冲和AD_CLK脉冲。前者频率为0.5MHz,占空比为1:1,用于产生时钟脉冲信号。AD_CLK是ADC采样时钟信号,频率为1MHz。
PCbfans.cn提示请看下图:时钟脉冲Φ1和Φ2产生时钟脉冲Φ1、Φ2典型频率为0.5MHz,相位相差180°,为避免MOS电容中信号电荷包向上/下2列模拟移位寄存器电极转移不完全情况发生,要求Φ1、Φ2在并行转移时有一个大于SH=1持续时间宽脉冲。在图3所示电路中(图中Φ1、Φ2分别用fai1、fai2表示),cnt12b是一个异步清零加法计数器,当计数值至少大于1341(计数值由光积分时间决定),p1输出高电平,开启dec4b。dec4b是一个异步清零减法计数器,输出为1100时,立即产生异步清零信号,将两个计数器全部清零,同时生成Φ1、Φ2所需宽脉冲。
转移脉冲SH产生SH是使MOS 电容中信号电荷转移到移位寄存器中转移栅控制脉冲。如图3所示,dec4bq3产生宽脉冲经过一个下降沿触发DFF,波形滞后q3半个CLK周期,两个信号作与运算,即产生SH脉冲。EN是驱动电路使能信号,EN为高电平时,电路工作。
PCbfans.cn提示请看下图:A/D
显示全部