CCD(电荷耦合元件)是一种半导体器件,由许多排列整齐的电容组成,能感应光线,并将影像转变成数字信号。经由外部电路的控制,每个小电容能将其所带的电荷转给它相邻的电容,最终通过脉冲的控制,逐个测量每个电容的电荷量,得到光强值。不同厂家、不同型号的CCD的驱动时序是不同的,加之对不同性能、不同应用场合的体积、成本、灵活性要求不同,于是产生了众多的驱动时序的产生方法,主要有直接数字电路驱动、单片机口驱动、EPROM驱动、专用IC驱动等常用的驱动时序的产生方法。但是它们存在着逻辑设计较为复杂、调试困难、柔性较差、驱动时钟低等缺点。本文提供了一套完整的用单片机驱动采集CCD信号的方案,对软硬件都做了详细的介绍。其新颖之处是通过不占用内存的PCA配合D触发器和定时计数器完成驱动脉冲的产生。
0 引言
在如今的科研和工程上,CCD的应用越来越广泛,但是其驱动脉冲和信号的采集的要求较高,一般需要CPLD或者DSP等比较复杂的微控制器来承担主要控制任务。这些方案较单片机而言,操作难度大,起点高,而且成本相对较高,然而单片机因为种种限制,很少有合适的驱动和采集方案,一些己发表的论文中,虽然提出了概念,但是经测试,很难实施,所以本文提出了一种新型的利用单片机驱动CCD的方案,此方案基于C8051F020单片机,能够对CCD进行良好、高速的驱动,同时进行采集,并通过RS232接口与电脑通讯,在电脑上重组数据,完成对光信号的分析等功能。经实验,本方案效果良好,同时,本方案采用Labview进行人机交互界面的设计,灵活性高,能够根据需要,将CCD改变成位置传感器等其他用途。
1 CCD简介
1.1 CCD基本原理
CCD(电荷耦合元件)是一种半导体器件,由许多排列整齐的电容组成,能感应光线,并将影像转变成数字信号。经由外部电路的控制,每个小电容能将其所带的电荷转给它相邻的电容,最终通过脉冲的控制,逐个测量每个电容的电荷量,得到光强值。
1.2 TCD1206型线阵CCD引脚及主要参数
本设计采用的是TCD1200D型线阵CCD传感器。TCD1200D是一种高灵敏度、低暗电流、2160像元的线阵CCD图像传感器。该传感器可用于传真、图像扫描和OCR。该器件的内部信号预处理电路包含采样保持和输出预放大电路。它包含一列2160像元的光敏二极管,当扫描一张B4的图纸时,可达到8线/毫米(200DPI)的精度。其引脚及原理如图1所示。
TCD1200D线阵CCD传感器特性:
·像敏单元数目:2160像元
·像敏单元大小:14×14×14 μ m(相邻像元中心距为14 μ m)
·光敏区域:采用高灵敏度PN结作为光敏单元
·时钟:二相(5V)
·内部电路:包含采样保持电路,输出预放大电路
·封装形式:22脚DIP封装。
1.3 TCD1200型线阵CCD驱动采集脉冲要求
该型号的CCD驱动需要发送SH、φ1、φ2、RS等脉冲,而采集需要差分OS和DOS两路信号,具体脉冲要求如图2所示。
其中SH为积分脉冲,高电平的时候,CCD像元开始累积电荷,低电平的时候停止积累;φ1、φ2为两路反相的驱动脉冲,其主要作用是控制电荷的转移;RS为信号触发脉冲,每个下跳沿会触发一个像元释放电荷,从而将电信号输出;OS则是输出信号,在经过13个哑元输出和光屏蔽输出后,输出有用信号;DOS则是参考电平信号,与OS差分之后,得到最终的信号输出。这些脉冲的要求频率高(例如RS典型频率参考值是1 MHz),相互之间匹配要求高,因而一般单片机的操作难以完成。
2 硬件电路设计
如图2所示,CCD的驱动需要发送包括SH、φ1、φ2、RS等4个驱动脉冲,其中RS的频率范围是0.02MHz到2MHz,典型值是1MHz。这种高频率的脉冲,对单片机来说,难以独立完成,所以本系统选用了一定的数字电路进行辅助设计。同时由于C8051F020单片机的A/D转换最高值为500kHz,而CCD发送模拟信号的频率(即OS的频率)与RS相同,所以RS的频率亦选为500kHz。
具体方案是用单片机自带的PCA模块发送稳定的1MHz的方波脉冲,然后通过D触发器(74HC74芯片)进行2次分频,获得5V、0.5MHz和0.25M Hz的方波脉冲(两种频率都各有两路电平总是相反的脉冲),其中0.5MHz脉冲作为RS驱动脉冲,0.25MHz的两路脉冲分别作为φ1和φ2的脉冲。同时用定时器2检测RS,进行计数,确定SH的积分时间,发送符合要求的SH脉冲,同时SH的脉冲需要一个反相器,进行电平转换(3V~5V),和发送D触发器的控制脉冲。对于DOS的采集,本系统选用的是用OP27搭建的减法器和跟随器进行采集。
CCD的脉冲控制和信号A/D转换工作主要由C8051F020单片机完成。如前所述,TX0和RX0配置在P0.O和P0.1,进行RS232通讯;由P0.2口(PCA)发送1 MHz的稳定方波脉冲;P0.3(T2)进行RS (0.5 M Hz)的计数;A/D转换触发控制位(CNVSTR)连入引脚P0.4;P0.5通过定时器2控制,发送SH脉冲;P1.1为模拟输入口,接收模拟信号。
3 人机交互界面软件设计
本系统的软件设计包括C8051微控制器的应用程序和人机交互界面的Labview应用程序。
C8051微控制器的程序流程图如图3所示,配合硬件设置好PCA、ADC等功能的初始化后,直至接收计算机发送的信息,便开始读取CCD的数据,并存储到XDATA空间当中。结束一周期的数据的采集则关闭A/D转换,并判断计算机发送的信息里要求发送整个波形还是进行位置判断(本设计还包括一个判断极值的功能,为位置传感留下了接口),若是前者,则将所有的数据发送到串口的缓存中;若是后者,则判断山转换数据的最大值,再将最大值的位置信启、发送至串口,进行完一系列的过程后,则重新开始采集,依此循环。
Labview采用图形化的G语言进行编程,完成人机交互界面软件的功能。该软件可以实现整个波形图和位置信息的实时采集,历史数据的保存和读取,以及整个系统的开始、停止和复位等控制。图4是Labview的程序框图。
4 实验结果
4.1 电路板实物图
本方案已经完全实现,经测试,效果良好,可满足基本的科研检测或演示教学任务,以下是已经制板成功的电路板。
4.2 单缝衍射测试
当光经过细小的单缝,缝宽和光源的波长相当的时候,会产生明显的衍射现象,即光会改变直线传播,并按照一定的规律进行传播。理想状况下的单缝衍射,光屏会出现特定的光谱,中间条纹最亮,向两边逐渐减弱,同时会出现完全没有光的暗纹。图6即测试图样,上半部分是采集的电压值经定标后对应的光强波形图,与理论完全一致;下半部分是利用Labview的二维光强控件对真实情况的模拟,与肉眼观察的图样一致。
5 结束语
本文提供了一套完整的用单片机驱动采集CCD信号的方案,对软硬件都做了详细的介绍。其新颖之处是通过不占用内存的PCA配合D触发器和定时计数器完成驱动脉冲的产生。综上所述,C8051f020单片机能完成这项任务在于其支持一个16位的PCA模块,2个12位以上的定时计数器,2k以上的内部数据RAM,一个8位的多种触发方式的高速ADC以及UART串口。任何一个具有同样模拟外设的微控制器都能完成此方案,并且其中PCA模块可以用有源晶振代替,自带的RAM不足,完全可以用外部存储器补充,而8位ADC芯片在市场也很多,大多数单片机也都具备12位以上的定时计数器,所以这个方法完全可以推广应用,是一种普遍适用的应用方案。