基于双单片机的线阵CCD驱动及信号处理系统

2014-10-14 17:53田小超李忠科
现代电子技术 2014年20期

田小超+李忠科

摘 要: 针对线阵CCD器件的驱动和信号处理,使用了2片STC11F02单片机,一片产生CCD驱动时序信号,另一片负责测量控制及与上位机进行通信。采用硬件的方法对CCD输出信号进行处理,直接得到光斑中心位置,不需要进行A/D转换。试验结果说明测量精度可达0.007 mm。该电路成本低,体积小,速度快,可广泛应用于基于线阵CCD的非接触式几何量测量。

关键词: 线阵CCD; 单片机驱动; STC11F02; 几何量测量

中图分类号: TN911?34; TP212.1 文献标识码: A 文章编号: 1004?373X(2014)20?0059?03

Linear array CCD drive and signal processing system based on double?SCM

TIAN Xiao?chao, LI Zhong?ke

(The Second Artillery Engineering College, Xian 710025, China)

Abstract: Two STC11F02 chips are used for the driving and signal processing of linear array CCD device. One generates CCD drive time?sequence signal, and another is responsible for measurement control and communication with the host computer. The CCD output signal is processed with the hardware method to directly obtain the center position of the light spot without A/D conversion. Experimental results show that the measurement precision can reach 0.007 mm. The circuit has the characteristics of low cost, small size, high speed, and can be widely used for non?contact geometry measurement based on linear array CCD.

Keywords: linear array CCD; SCM drive; STC11F02; geometry measurement

CCD(Charge Coupled Device)是一种完成光电转换的图像传感器[1],广泛应用于几何量测量[2]、图像传感[3]、机器视觉等领域[4?5]。由于线阵CCD使用相对简单,通常一个方位的像元数目远多于面阵CCD,测量精度很高,故得到广泛应用。在应用CCD传感器时要解决的两个主要问题是CCD驱动时序的产生和CCD 输出信号的采集处理。目前常用的CCD驱动方法有数字电路直接驱动法[6]、单片机驱动法[7]、专用IC驱动方法等[8?9]。其中使用单片机驱动方法灵活方便,适用于各种场合,但通常驱动频率较低。本文提出了一种新型的利用单片机驱动线阵CCD并采集处理信号的方案,此方案基于2片STC11F02单片机,一片对CCD进行高速、稳定的驱动,另一片负责信号处理、测量控制与通信。

1 线阵CCD驱动设计

本设计选用的线阵CCD是日本东芝公司的TCDl501D图像传感器,它有5 000个光敏像元,驱动信号包括转移脉冲(SH)、时钟脉冲(Φ1,Φ2)、复位脉冲(RS)、采样保持脉冲(SP)和门限脉冲(CP)[10]。

单片机选用宏晶公司的STC11F02,它是IT的8051单片机[3]。东芝系列线阵CCD驱动信号基于TTL电平,与51单片机I/O电平兼容,可直接将单片机I/O口与CCD驱动接口相连[11],如图1所示。

图1 线阵CCD接口示意图

由于单片机P1.0、P1.2管脚对应CCD的Φ1,Φ2时钟输出,负载较重,故设为强推挽输出。在程序中,将T0设置为16位定时器模式,每计数20 480个脉冲,产生一次定时器中断。在中断处理程序中,输出一次SH脉冲波形。在每一次LOOP1循环中,输出图2所示的波形。在两次输出SH之间,执行LOOP1循环5 000次以上,这样就实现了TCD1501D所要求的各种驱动时钟信号。核心程序如下:

LOOP1: ;驱动信号循环程序段

MOV P1,#01BH

MOV P1,#099H

MOV P1,#0D3H

MOV P1,#0DBH

MOV P1,#02EH

MOV P1,#0ACH

MOV P1,#0E6H

MOV P1,#0EEH

SJMP LOOP1

T0INT: ;转移脉冲SH中断处理程序

CLR TR0

CLR TF0

MOV P1,#0DBH

MOV P3,#10H

MOV P3,#20H

MOV R4,#100

DJNZ R4,$

MOV P3,#10H

MOV TH0,#0D7H

MOV TL0,#0FFH

SETB TR0

RETI

图2 CCD驱动脉冲波形图

2 线阵CCD信号处理

2.1 硬件电路与工作原理

本设计使用另一片单片机负责CCD信号的测量和与上位机的通信,电路图如图3所示。线阵CCD输出的图像信号OS和补偿信号DOS经过电压比较器变成二值化信号,进入CPU2的P3.3和P3.4,其中P3.3是单片机的外部中断输入INT1。采用单片机的内部T0定时器对CCD信号脉冲前沿进行测量计数,用T1定时器对CCD信号脉冲宽度进行测量计数。系统工作时,首先检测SH信号,当发现SH信号到达后,启动T0计数。当CCD信号脉冲到达时,经过电压比较器产生一个负脉冲,该负脉冲的下跳沿产生INT1中断请求,停止T0计数并启动T1计数,此时T0计数值即为脉冲前沿信息。通过软件查询P3.4上跳沿的方式判断脉冲结束时刻,当发现P3.4电平上跳时停止T1计数,此时T1计数值即为脉冲宽度信息。T0+[T12]即为测量结果。

图3 电路图

2.2 软件设计

根据系统工作原理,系统软件流程如图4所示。主程序运行之后,SH、OS、DOS、PEK波形的相互关系见图5。

图4 系统软件流程图

3 系统测试

3.1 实验设计

为验证系统的工作速度和测量精度,利用该系统进行了横向位移的测量实验。实验原理图如图6所示。

由LED发出的光受机械狭缝限制,形成一垂直于导轨运动方向的光刀,光刀厚度约0.1 mm,垂直照射在线阵CCD感光阵列上。当活动导轨与固定导轨相对运动时,光刀相对于CCD运动,照射在线阵CCD感光阵列不同的位置,得到不同的输出。再经过标定,即得到活动导轨的横向位移。

图5 输出波形关系

图6 实验原理图

3.2 实验结果分析

在设计CCD驱动时,一个LOOP1循环占用27个机器周期(每个MOV指令和SJMP指令均需3个机器周期[3]),而定时器为12T模式,故每个循环内定时器平均计2.25个数,输出2个像元值。把光刀依次置于若干点处,系统得到的测量值通过RS 232 串口上传至计算机[12],得到的数据如表1所示。对于一个固定位置,系统多次测量之后的标准差不大于0.9,多次测量取平均值可使偏差减小到一个计数单。

表1 实验测量结果

由于平均每计1.125个数,对应1个像元,而TCDl501D像元尺寸为7 μm×7 μm,中心距亦为7 μm,故理论上系统经标定后分辨率可达0.007 mm以内。单片机采用22.118 4 MHz的晶振。原则上,定时器每计数超过5 000即可产生一个SH脉冲,即SH脉冲周期最小可达2.76 ms。但在实际应用中,每次测量之后需给上位机通信预留时间,故在本设计中,定时器每计数20 480产生一个SH脉冲,即大概每5.56 ms产生一次SH脉冲波形,再加上中断处理时间,系统测量周期约为5.7 ms。

4 结 语

本文提供了一套完整的用单片机实现CCD驱动并处理CCD信号的方案。创新之处在于用硬件的方法获得CCD输出脉冲中心位置,具有结构简单、速度快的优点。经反复测定,系统测量分辨率可达0.007 mm,测量周期约为5.7 ms,能满足绝大多数应用场合的要求。目前,本设计已应用于国家“863”计划课题“牙齿模型三维扫描系统”的平移轴行程传感测量,取得良好效果。

参考文献

[1] 王庆有.CCD应用技术[M].天津:天津大学出版社,2000.

[2] 于之靖,刘月林,诸葛晶昌.高精度双线阵CCD非接触直径测量系统[J].传感器与微系统,2014(1):120?122.

[3] 秦刚,李韩.基于嵌入式技术的线阵 CCD 图像采集系统[J].仪表技术与传感器,2014(1):67?68,71.

[4] 陈平,李毅红.基于线阵CCD的小物体掉落自动检测系统[J].制造业自动化,2013(4):45?49.

[5] 刘恩超,邹鹏,李新,等.基于线阵CCD的光斑定位电路系统设计[J].传感器与微系统,2013(1):85?87.

[6] 周建勇,陈红兵,袁世顺,等.一种CCD驱动时序参量化设计方法[J].半导体光电,2013(6):1055?1059.

[7] 唐亚军,郭喜庆,杨敬娴,等.基于51单片机的线阵CCD驱动设计[J].微型机与应用,2013,32(12):73?76.

[8] SAN Hong?li, FEI Jia. Design of linear CCD driving circuit based on SCM [J]. Procedia Engineering, 2012, 29: 165?169.

[9] 刘月林,诸葛晶昌.一种光积分时间可调的线阵CCD驱动设计[J].工业控制计算机,2013(12):100?101.

[10] TOSHIBA公司.TCDl501D数据手册[M].东京:TOSHIBA公司,2001.

[11] 宏晶公司.STC11/10xx系列单片机器件手册[M].深圳:宏晶公司,2008.

[12] 范逸之,陈立元.Visual Basic与RS?232串行通信控制[M].北京:清华大学出版社,2002.

SETB TR0

RETI

图2 CCD驱动脉冲波形图

2 线阵CCD信号处理

2.1 硬件电路与工作原理

本设计使用另一片单片机负责CCD信号的测量和与上位机的通信,电路图如图3所示。线阵CCD输出的图像信号OS和补偿信号DOS经过电压比较器变成二值化信号,进入CPU2的P3.3和P3.4,其中P3.3是单片机的外部中断输入INT1。采用单片机的内部T0定时器对CCD信号脉冲前沿进行测量计数,用T1定时器对CCD信号脉冲宽度进行测量计数。系统工作时,首先检测SH信号,当发现SH信号到达后,启动T0计数。当CCD信号脉冲到达时,经过电压比较器产生一个负脉冲,该负脉冲的下跳沿产生INT1中断请求,停止T0计数并启动T1计数,此时T0计数值即为脉冲前沿信息。通过软件查询P3.4上跳沿的方式判断脉冲结束时刻,当发现P3.4电平上跳时停止T1计数,此时T1计数值即为脉冲宽度信息。T0+[T12]即为测量结果。

图3 电路图

2.2 软件设计

根据系统工作原理,系统软件流程如图4所示。主程序运行之后,SH、OS、DOS、PEK波形的相互关系见图5。

图4 系统软件流程图

3 系统测试

3.1 实验设计

为验证系统的工作速度和测量精度,利用该系统进行了横向位移的测量实验。实验原理图如图6所示。

由LED发出的光受机械狭缝限制,形成一垂直于导轨运动方向的光刀,光刀厚度约0.1 mm,垂直照射在线阵CCD感光阵列上。当活动导轨与固定导轨相对运动时,光刀相对于CCD运动,照射在线阵CCD感光阵列不同的位置,得到不同的输出。再经过标定,即得到活动导轨的横向位移。

图5 输出波形关系

图6 实验原理图

3.2 实验结果分析

在设计CCD驱动时,一个LOOP1循环占用27个机器周期(每个MOV指令和SJMP指令均需3个机器周期[3]),而定时器为12T模式,故每个循环内定时器平均计2.25个数,输出2个像元值。把光刀依次置于若干点处,系统得到的测量值通过RS 232 串口上传至计算机[12],得到的数据如表1所示。对于一个固定位置,系统多次测量之后的标准差不大于0.9,多次测量取平均值可使偏差减小到一个计数单。

表1 实验测量结果

由于平均每计1.125个数,对应1个像元,而TCDl501D像元尺寸为7 μm×7 μm,中心距亦为7 μm,故理论上系统经标定后分辨率可达0.007 mm以内。单片机采用22.118 4 MHz的晶振。原则上,定时器每计数超过5 000即可产生一个SH脉冲,即SH脉冲周期最小可达2.76 ms。但在实际应用中,每次测量之后需给上位机通信预留时间,故在本设计中,定时器每计数20 480产生一个SH脉冲,即大概每5.56 ms产生一次SH脉冲波形,再加上中断处理时间,系统测量周期约为5.7 ms。

4 结 语

本文提供了一套完整的用单片机实现CCD驱动并处理CCD信号的方案。创新之处在于用硬件的方法获得CCD输出脉冲中心位置,具有结构简单、速度快的优点。经反复测定,系统测量分辨率可达0.007 mm,测量周期约为5.7 ms,能满足绝大多数应用场合的要求。目前,本设计已应用于国家“863”计划课题“牙齿模型三维扫描系统”的平移轴行程传感测量,取得良好效果。

参考文献

[1] 王庆有.CCD应用技术[M].天津:天津大学出版社,2000.

[2] 于之靖,刘月林,诸葛晶昌.高精度双线阵CCD非接触直径测量系统[J].传感器与微系统,2014(1):120?122.

[3] 秦刚,李韩.基于嵌入式技术的线阵 CCD 图像采集系统[J].仪表技术与传感器,2014(1):67?68,71.

[4] 陈平,李毅红.基于线阵CCD的小物体掉落自动检测系统[J].制造业自动化,2013(4):45?49.

[5] 刘恩超,邹鹏,李新,等.基于线阵CCD的光斑定位电路系统设计[J].传感器与微系统,2013(1):85?87.

[6] 周建勇,陈红兵,袁世顺,等.一种CCD驱动时序参量化设计方法[J].半导体光电,2013(6):1055?1059.

[7] 唐亚军,郭喜庆,杨敬娴,等.基于51单片机的线阵CCD驱动设计[J].微型机与应用,2013,32(12):73?76.

[8] SAN Hong?li, FEI Jia. Design of linear CCD driving circuit based on SCM [J]. Procedia Engineering, 2012, 29: 165?169.

[9] 刘月林,诸葛晶昌.一种光积分时间可调的线阵CCD驱动设计[J].工业控制计算机,2013(12):100?101.

[10] TOSHIBA公司.TCDl501D数据手册[M].东京:TOSHIBA公司,2001.

[11] 宏晶公司.STC11/10xx系列单片机器件手册[M].深圳:宏晶公司,2008.

[12] 范逸之,陈立元.Visual Basic与RS?232串行通信控制[M].北京:清华大学出版社,2002.

SETB TR0

RETI

图2 CCD驱动脉冲波形图

2 线阵CCD信号处理

2.1 硬件电路与工作原理

本设计使用另一片单片机负责CCD信号的测量和与上位机的通信,电路图如图3所示。线阵CCD输出的图像信号OS和补偿信号DOS经过电压比较器变成二值化信号,进入CPU2的P3.3和P3.4,其中P3.3是单片机的外部中断输入INT1。采用单片机的内部T0定时器对CCD信号脉冲前沿进行测量计数,用T1定时器对CCD信号脉冲宽度进行测量计数。系统工作时,首先检测SH信号,当发现SH信号到达后,启动T0计数。当CCD信号脉冲到达时,经过电压比较器产生一个负脉冲,该负脉冲的下跳沿产生INT1中断请求,停止T0计数并启动T1计数,此时T0计数值即为脉冲前沿信息。通过软件查询P3.4上跳沿的方式判断脉冲结束时刻,当发现P3.4电平上跳时停止T1计数,此时T1计数值即为脉冲宽度信息。T0+[T12]即为测量结果。

图3 电路图

2.2 软件设计

根据系统工作原理,系统软件流程如图4所示。主程序运行之后,SH、OS、DOS、PEK波形的相互关系见图5。

图4 系统软件流程图

3 系统测试

3.1 实验设计

为验证系统的工作速度和测量精度,利用该系统进行了横向位移的测量实验。实验原理图如图6所示。

由LED发出的光受机械狭缝限制,形成一垂直于导轨运动方向的光刀,光刀厚度约0.1 mm,垂直照射在线阵CCD感光阵列上。当活动导轨与固定导轨相对运动时,光刀相对于CCD运动,照射在线阵CCD感光阵列不同的位置,得到不同的输出。再经过标定,即得到活动导轨的横向位移。

图5 输出波形关系

图6 实验原理图

3.2 实验结果分析

在设计CCD驱动时,一个LOOP1循环占用27个机器周期(每个MOV指令和SJMP指令均需3个机器周期[3]),而定时器为12T模式,故每个循环内定时器平均计2.25个数,输出2个像元值。把光刀依次置于若干点处,系统得到的测量值通过RS 232 串口上传至计算机[12],得到的数据如表1所示。对于一个固定位置,系统多次测量之后的标准差不大于0.9,多次测量取平均值可使偏差减小到一个计数单。

表1 实验测量结果

由于平均每计1.125个数,对应1个像元,而TCDl501D像元尺寸为7 μm×7 μm,中心距亦为7 μm,故理论上系统经标定后分辨率可达0.007 mm以内。单片机采用22.118 4 MHz的晶振。原则上,定时器每计数超过5 000即可产生一个SH脉冲,即SH脉冲周期最小可达2.76 ms。但在实际应用中,每次测量之后需给上位机通信预留时间,故在本设计中,定时器每计数20 480产生一个SH脉冲,即大概每5.56 ms产生一次SH脉冲波形,再加上中断处理时间,系统测量周期约为5.7 ms。

4 结 语

本文提供了一套完整的用单片机实现CCD驱动并处理CCD信号的方案。创新之处在于用硬件的方法获得CCD输出脉冲中心位置,具有结构简单、速度快的优点。经反复测定,系统测量分辨率可达0.007 mm,测量周期约为5.7 ms,能满足绝大多数应用场合的要求。目前,本设计已应用于国家“863”计划课题“牙齿模型三维扫描系统”的平移轴行程传感测量,取得良好效果。

参考文献

[1] 王庆有.CCD应用技术[M].天津:天津大学出版社,2000.

[2] 于之靖,刘月林,诸葛晶昌.高精度双线阵CCD非接触直径测量系统[J].传感器与微系统,2014(1):120?122.

[3] 秦刚,李韩.基于嵌入式技术的线阵 CCD 图像采集系统[J].仪表技术与传感器,2014(1):67?68,71.

[4] 陈平,李毅红.基于线阵CCD的小物体掉落自动检测系统[J].制造业自动化,2013(4):45?49.

[5] 刘恩超,邹鹏,李新,等.基于线阵CCD的光斑定位电路系统设计[J].传感器与微系统,2013(1):85?87.

[6] 周建勇,陈红兵,袁世顺,等.一种CCD驱动时序参量化设计方法[J].半导体光电,2013(6):1055?1059.

[7] 唐亚军,郭喜庆,杨敬娴,等.基于51单片机的线阵CCD驱动设计[J].微型机与应用,2013,32(12):73?76.

[8] SAN Hong?li, FEI Jia. Design of linear CCD driving circuit based on SCM [J]. Procedia Engineering, 2012, 29: 165?169.

[9] 刘月林,诸葛晶昌.一种光积分时间可调的线阵CCD驱动设计[J].工业控制计算机,2013(12):100?101.

[10] TOSHIBA公司.TCDl501D数据手册[M].东京:TOSHIBA公司,2001.

[11] 宏晶公司.STC11/10xx系列单片机器件手册[M].深圳:宏晶公司,2008.

[12] 范逸之,陈立元.Visual Basic与RS?232串行通信控制[M].北京:清华大学出版社,2002.