一种用单片机控制的光谱数据采集系统
本系统中,CCD输出信号的重复频率为200kHz,因而,要求模数转换器的速率要高于200kHz。A/D转换器的工作控制不用系统CPU来完成,而是用专用逻辑控制电路完成,包括地址产生器、总线缓冲隔离器、读写控制逻辑电路和数据存储单元。在数据转换过程中,CPU只负责转换电路的启动和检测1帧数据转换是否结束,中间过程无须CPU干预,使对CCD1帧数据转换由逻辑控制电路自动完成。A/D一次采样的工作过程为:①接收光耦同步采集信号;javascript:window.open(this.src);" style="cursor:pointer;"/>②驱动A/D转换;③单片机查询是否转换完成;④读出数据,存入存储器。转换过程控制程序框图如图5所示。
用光电倍增管对小于10kHz调制频率的慢变化光谱信号的测量,50kHz的采样频率可以满足测量的要求,其采集电路可以适用于各种光电倍增管的输出信号采集。我们选用12MHz的时钟频率,对软件进行优化,其运行的时间为20μs,采样频率为50kHz,可以满足采样的要求。
3.光电倍增管的高压调整
在光电倍增管应用中,高压的稳定性直接影响测量的精度。一般,光电倍增管的倍增级为10级左右,图6所示为倍增管高压与电流增益之间的电流增益之间的倍增关系。从图6可看出电流增益约与阴极-阳极间所加电压的10 6~10 10成比例。所以PMT的输出对工作电压非常敏感,使用时,必须用高稳定性的高压电源。高压电源的漂移、纹波、温度变化、输出变化、负载变化等的综合稳定度必须优手所要求的光电倍增管稳定度1个数量级。我们选用的是由HAMAMATSU(滨松)公司生产的高压模块,其电压最大漂移量为±0.03%h。
为扩大动态范围,须对光电倍增管的高压进行动态调整。图7是控制电压和控制电阻上相应的输出电压的关系曲线。光电倍增管的专用高压模块通过改变高压模块调整端的电压或电阻,来改变输出端的高压。调整电阻用10kΩ电位器,电压调整范围为0~1.4V。javascript:window.open(this.src);" style="cursor:pointer;"/>图8所示为滨松公司高压模块的原理框图。
为满足不同的测量要求,需要设置三个量程。一般量程的调整为人工调整电位器,效率较低、精度不好控制。这里我们利用单片机控制可编程数字电位器X9C103来实现调整倍增管高压,图9是X9C103的接线原理图。根据测量输出信号的强弱,相应调整PMT的高压,并将调整的状态通过并口送入计算机。X9C103是一个包含100个电阻单元的电阻阵列。在每个单元之间和任一端都有可以被滑动单元访问的抽头点。滑动单元的位置由片选输入端CS、升/降输入端U/D、增加输入端INC控制。它类似于TTL升/降计数器,总阻值10kΩ、工作时钟250kHz、工作电压+5V,滑动端位置存储于非易失性存储器中,可在上电时重新调用,滑动端位置数据可保存100年。X9C103是固态非易失性电位器,它与机械电位器相比有调节更精确、不受意外影响(振动、污染)、节省空间、易于安装、滑动端位置易于由单片机或逻辑电路控制的优点,是理想的数控微调电位器。三线接口由单片机P0口控制1片74LS374来完成锁存,软件编程实现。
二、应用
为了满足光谱采集的需要,我们设计了相应的信号采集电路,应用单片机控制A/D芯片完成对于两种不同的探测器输出信号的采集。实际应用表明,采集系统的信噪比、采样频率等性能可以满足测量的要求。
1.用于CCD输出信号采集
采用CCD测量光谱大大缩短了测量时间,减少了外界环境对测量精度的影响。对于闪光灯、荧光和磷光等强度随时间变化的光源,采用CCD测量其光谱分析,能得到精确的测量结果。
javascript:window.open(this.src);" style="cursor:pointer;"/>
CCD将光信号转换成视频脉冲信号后,经差分放大和电平调整电路后,输出满足MAX120输入信号范围的信号(-5~+5V),送入A/D转换器的输入端。逻辑控制电路的输入信号是CCD视频脉冲同步信号、微处理器控制是否进行A/D转换信号、A/D转换器状态信号和数据存储器地址信号,经一定的逻辑运算后输出A/D转换的起始信号、地址产生器的计数信号以及送入AT89C52单片机计数端口用来控制转换次数的计数信号。数据隔离器的作用是将A/D转换部分的数据线与主机部分的数据线隔离,使两部分可同时独立工作,不会产生干扰,且在需要时可将A/D转换器的转换结果(在存储器中)读入主机进行处理。地址产生器由二进制计数器构成,数据存储器的地址线与计数器的输出端相接,计数输入信号有清零信号和计数信号。其中,清零信号受主机控制,每次对1帧CCD信号转换前,必须将地址产生器清零,使2048个像元信号的转换结果从零地址开始依次存放;同样,在读存储单元时,也要先地址产生器清零。计数信号由逻辑控制单元提供,在A/D转换和读存储器期间,每对存储器操作1次就使地址加1,连续操作就可以顺序读写存储器。地址分配器是主机用来给每个读写端口分配地址的。由于本系统的独持设计,每个数据存储器只占用1个地址。只要反复对某一地址操作,就可将存储器中的数据读出。
javascript:window.open(this.src);" style="cursor:pointer;"/>