一种高速线阵CCD采集系统的设计
扫描二维码
随时随地手机看文章
摘要:针对线阵CCD(Charge Coupled Device)及其外围器件时序复杂的特点,设计了一种高速线阵CCD采集系统。该系统采用MSP430单片机产生PWM信号实现各器件驱动时序,并将采集结果通过串口发送至上位机。介绍了系统组成及各器件时序同步的设计方法。实验结果表明,该线阵CCD采集系统能够很好的满足设计要求,可作为模块化电路集成到其它测量系统中。
CCD是新型光电转换器件,具有体积小、高灵敏度、低噪声、读出速度快、动态范围高和全谱响应等特点,已经广泛应用到图像传感和非接触式测量等领域。正确的CCD驱动需要严格的时序对应关系,传统的CCD驱动方式存在着调试困难、灵活性差等缺点,当驱动电路工作在高频时钟时会出现严重的干扰现象,各逻辑驱动信号不能满足其严格的相位关系,导致系统工作不稳定,已不能满足其应用的需要。因此,CCD采集系统设计的好坏直接影响CCD驱动时序和输出信号的质量,核心是CCD及外围器件时序产生及同步的设计。
本文结合TI公司16位低功耗单片机MSP430,使用PWM方式产生操作时序,不需外加CPLD等复杂逻辑器件。实验结果表明:该系统设计中电路和时序均能够很好的满足要求,生成波形良好,能很好的满足各相位关系。
1 系统组成
本系统采用索尼公司ILX511还原型线阵CCD,该CCD内置时钟发生器与保持电路、具有易于操作等特点。硬件电路主要由线阵CCD与跟随电路部分、数据处理与存储部分、电压转换部分和MSP430部分组成。软件由初始化部分、数据处理与存储部分、通讯部分构成。系统总体框图如图1所示。
2 硬件设计
2.1 线阵CCD与跟随电路部分
ILX511线阵CCD有效像素为2 048个,内部结构如图2所示。CCD通过模拟移位寄存器在VOUT引脚串行输出信号到后续电路。Vour以2.8 V为基准,输出表征光照强度的模拟电压值,该电压值满足后端模数转换器输入范围,故不需要放大电路。此外,本设计中将SHSW与GND直接相连,ILX511使用内部采样保持模式输出信号。
由于ILX511输出阻抗为250欧姆,在ILX511与ADC(模数转换芯片)之间需增加电压跟随器实现阻抗变换。考虑CCD的工作频率和单电源特性,选择运放AD8041作为电压跟随器芯片。线阵CCD与跟随器电路图如图3所示。
2.2 数据处理与存储部分
ADC的位数对本设计的精度有重要影响,ADC位数的选择可依据公式
其中A为输入信号的动态范围,M为分辨率要求。
ILX511输出动态范围为267,根据公式(1)可得本设计所需ADC位数≥8.06,即需选用有效位数ENOB(Effective Numbers Of Bits)10位以上模数转换器。本设计采用AD9220,其在1 MHz工作频率下信噪比最小为69 dB,由公式(2)可得其最小有效位数为11.7,满足系统设计要求。
其中SNR为ADC信噪比。
AD转换的输出数据要通过RS232送入上位机,由于AD产生的数据流速率(12 Mb/s)与RS232通信速率(最高230.4 Kb/s)不配,故AD输出的数据首先存入数据缓冲器FIFO中。由于ILX511每次转换产生2048个数据,因此选用IDT公司的IDT7203芯片通过字宽扩展方式使用。AD9220
和IDT7203连接方式如图4所示。
2.3 电压转换部分
由于MSP430为3.3 V供电,而CCD和FIFO及运放部分均为5 V供电,为保证逻辑电平匹配,本设计采用TI公司的8位三态总线电平转换芯片SN74LVC4245,该芯片传输延迟最大不超过10ns,能够非常好的满足本设计的时序要求。
2.4 MSP430部分
文中选用MSP430F149单片机作为主控芯片对电路产生驱动信号,通过定时器产生PWM信号。因此,定时器输出引脚和需要同步操作的时序信号相连。此外,FIFO输出结果通过电压转换后并行连接到单片机IO口。
3 软件设计
MSP430程序主要由初始化模块、数据采集与存储模块和通讯模块组成。程序流程图如图5所示。
3.1 初始化模块
初始化模块包含以下3个部分:MSP430初始化部分、FIFO初始化部分和CCD初始化部分。
MSP430初始化部分包括时钟初始化、串口初始化和IO初始化。时钟初始化设定单片机时钟来源及频率,此频率将决定单片机PWM和串口通信速率的计算以及PWM输出时定时器的设置。串口初始化只需配置相关寄存器、设定好波特率和开启中断即可。IO初始化将没有用到的IO进行配置。
FIFO在上电和每次写操作之前需进行复位,FIFO复位后EF标志位为低电平,当MSP430单片机检测到EF为低电平时即可开始产生后续所需工作时序。
CCD初始化工作分为两部分:在其正式操作前需添加至少22 500个CLK脉冲来稳定输出;每次工作前由ROG信号和CLK信号完成初始化。
3.2 数据采集与存储模块
数据采集和存储模块完成对系统中各器件间时序的产生和同步操作,将采集到的光谱数据暂存到FIFO中。
由图6可知,ILX511在完成初始化工作后,在每一个CLK时钟下降沿时输出信号。ILX511一个采样周期由2087个CLK周期组成,在前33个周期和最后6个周期输出无用信号(Dummy Signal),中间的2048个信号输出有用信号。因此,AD9220需要在CLK开始后第34个周期启动转换。AD 9220某次转换的结果在其输入后3周期输出,故FIFO需在AD9220第一次转换结果输出时启动写信号,即在CCD第37个CLK时启动。又由于CCD在CLK低电平时输出信号,AD9220在CLK高电平时采样和输出,FIFO写信号低电平时有效,故AD9220的时钟和CLK反相,FIFO写信号和CLK同相。
结合MSP430定时器灵活的PWM输出模式,CCD的CLK信号、AD9220的时钟和FIFO的写信号通过定时器B的引脚输出PWM信号实现,各个时钟周期之间的延时通过精准的延时函数实现。程序如下。
通过逻辑分析仪实测MSP430各引脚输出,结果如图7所示,各驱动信号时序正确,相位匹配良好,完全满足CCD及外围电路驱动时序要求。
3.3 通讯模块
通讯模块主要通过MSP430的中断完成发送数据到上位机的功能。通讯模块程序流程图如图8所示。
在ADC将CCD输出的数据全部转换完成并将FIFO存满后,IDT7203的FF标志位变低触发MSP430的外部中断服务程序。若需重新发送某次结果,需在进行下一次采集之前,由上位机发送“A”至下位机;若要继续采集,则由上位机发送“C”至下位机。MSP430产生串口接收中断后,判断是否进行重新发送、继续采集。
4 结束语
文中在分析线阵CCD器件驱动时序和外围电路特点的基础上,以MSP430作为主控芯片输出PWM的方式,创造性地提出了一种线阵CCD驱动电路和时序的设计方法。实验验证了所设计的系统能够很好地满足时序要求和实现整体功能。由于采用模块化设计,本系统可以和引脚兼容的同类CCD共用,同时可以结合MSP430低功耗特点作为模块组合应用在不同背景和需求中。