随着自动化制造系统在各个行业的广泛应用,测量技术向着高精度、高速度和智能化方向发展,传统的测量技术已经无法满足现代制造技术的要求[1]。激光投线仪是一种可以在平面上投射出铅垂和水平激光线的新型测绘仪器[2],在工业制造和建筑施工中均得到广泛应用。现今关于激光投线仪数字化检测技术的研究也有不少。杨博雄[3]等利用CPLD和单片机对线阵CCD数据进行高速采集,本文在此基础上进行硬件升级,并增加上位机软件设计;周建忠等[4]设计了基于模糊PID控制的激光投线仪光线调节系统,但该系统的数据采集方式仍利用CPLD进行,还不够先进。多名学者对该技术有过研究,但是大部分还停留在实验室测试阶段,距离检测系统产品化仍有一段距离;而国内一些厂家已生产的投线仪检测应用系统售价又过于昂贵。所以,目前国内许多检定机构对激光投线仪的检定方法大多仍停留在依靠人工判定并记录数据的阶段[5],普遍存在检测误差大、工作效率低以及人员工作强度大等问题。
CCD作为光电转换传感器,以其灵敏度高、动态范围大、光谱响应宽、体积小、功耗低、分辨率高等特点,在现代检测技术中得到广泛应用[6]。线阵CCD将入射到其光敏面上的光信号转换成电荷信号,并在一定的时序驱动下将这些电荷信号按照像元顺序依次输出[7]。产生驱动时序的方法有很多,例如直接利用单片机驱动(按时间顺序输出已存波形)、EPROM驱动(顺序输出状态数据)等[8-10]。但是这些方法均存在电路复杂的问题,若要改变CCD驱动频率或者积分时间,整个硬件电路都要随之改变,而且产生的驱动时序也会有较大误差,导致最终的CCD输出结果达不到预期要求。采用FPGA产生驱动时序的方法明显优于上述方法。FPGA的内部逻辑开发完备后,CCD的驱动频率和积分时间可以在FPGA程序上直接修改,减少了工作量。所以,选用FPGA作为线阵CCD驱动系统的主核极具优势。由此,本文提出一种基于FPGA和单片机的线阵CCD激光信号采集系统。
1 系统方案设计数据采集系统主要采用Altera公司的EP2C5T144C8N[11]芯片作为主控芯片。FPGA芯片为整个电路的主核,AD芯片将CCD模拟信号数字化并传输到FPGA中,FPGA同时控制CCD和AD芯片的时序,并与单片机进行并口通信。利用C#编写的上位机软件在光信号采集系统间通过USB2.0接口进行串口通信。系统主要构成如图 1所示。
线阵CCD的控制时序是由FPGA产生的。其中TCD1501D[12]需要两相5 V的驱动脉冲才能驱动,但FPGA的引脚电压为3.3 V左右,所以二者之间需要一个电平转换器SN74LVC4245A来进行电平转换。与之同理,AD转换芯片TLC5510A的驱动也需要5 V的电压,所以在FPGA与AD芯片之间也需要一个同样的电平转换器。在检测过程中FPGA产生驱动脉冲来驱动TCD1501D工作,TCD1501D接收到激光信号后将其转换成视频输出信号OS和补偿信号DOS两路模拟信号输出。其中OS和DOS两路信号经由放大器AD8041处理后转换成一路信号OS_OUT输入至AD芯片中,再将其转换成数字信号,最终缓存至FPGA的双口RAM中。单片机向FPGA发送指令读取FPGA所缓存的采集信号并与上位机软件进行串口通信。
1.2 基于FPGA的线阵CCD驱动设计TCD1501D是日本东芝公司生产的具有高灵敏度、低噪声、动态范围宽等特点的线阵CCD产品,拥有5 000个光敏像元数,像元尺寸7 μm×7 μm,中心距7μm,产品总长度53.6 mm。激光投线仪的激光光线投射到激光采集设备上时,由于人工操作会产生较大的晃动,需要线阵CCD的外形尺寸足够长才能满足需求,而TCD1501D是东芝公司同系列线阵CCD产品中满足灵敏度、有效测量范围、动态范围等检测需求的外形尺寸最长者。
1.2.1 TCD1501D工作原理及时序分析TCD1501D总输出5 076个像元,其中前64个和后12个像元是被遮掩的,也就是说其中只有5 000个信号是有效的,前后共76个信号是无效信号。TCD1501D在输出前63个无效信号后AD芯片TLC5510的使能端OE有效,使能TLC5510开始转换在时钟脉冲作用下线阵CCD输出的5 000个有效像元。TCD1501D的驱动时序如图 2所示。驱动脉冲包括SH转移脉冲、两路互补脉冲Φ1和Φ2、复位脉冲RS,这些脉冲很大程度上决定了整个驱动电路的设计,在AD芯片的选择上也需要考虑到这些脉冲的特点。
选用Altera公司的Cyclone系列芯片EP2C5T144C8N提供的TCD1501D驱动时序。EP2C5T144C8N是一种高性能的FPGA芯片,拥有4 608个逻辑块,输入/输出引脚多达89个,可以通过JTAG接口实现在线编程(ISP)功能。TCD1501D是典型的两相驱动脉冲工作方式,其驱动频率典型值为fΦ1=fΦ2=0.5 mHz,其相应的输出频率fRS=1 mHz。根据厂商资料,TCD1501D的时序同步关系如图 3所示,TCD1501D的6路脉冲之间的关系需满足:Φ1和Φ2必须反向且占空比为1:1;SH的高电平至少要保持min(t2+t3+t4)(即500 ns),其脉冲宽度要小于Φ1,延时至少100 ns;RS与CP的占空比为1:4。
TLC5510A[13]是美国TI公司生产的半闪速结构模数转换器,8位并行输出,其工作时序如图 4所示。TLC5510A的主要功能就是将CCD产生的高速模拟信号转换成与之相对应的8位数字信号。时钟信号CLK在每个下降沿采集线阵CCD的模拟信号,因为时钟信号的最大周期是50 ns,所以该模数转换器的最小采样速率能达到20 mSPS。
其中需要注意的是,FPGA是根据CCD输出的时序来及时读取AD芯片的,但AD芯片本身就有延时,需要经过一定的时序后才能在并口处转换出结果,即会产生一定的延时,第N次采集的数据在经过2.5 h的延时后经由8位数据总线输出。
1.3 FPGA程序设计使用QuartusⅡ13.0作为开发平台,用硬件描述语言Verilog进行编程。程序总体分为3个模块:线阵CCD脉冲驱动模块、AD驱动控制模块和双口RAM缓存模块。3个模块中CCD脉冲驱动模块和双口RAM的数据缓存模块尤为重要。FPGA按时序驱动线阵CCD和AD转换,CCD采集到的数据经由AD芯片模数转换后,每一帧的数据按顺序存到FPGA中的双口RAM中,其流程图如图 5所示。
在脉冲驱动模块中,输入脉冲信号CLK选用24 M的全局时钟,将该时钟进行4分频后得到6 M的主时钟,在对主时钟进行一定系数的分频后得到转移脉冲SH和驱动脉冲Φ2,只需将Φ2反向即可得到其反向互补脉冲Φ1。该模块可以在分频器处更改CCD的工作频率,也可以增加转移脉冲SH的准备时间(以增加曝光时间)来满足实际需求。
在双口RAM的缓存模块中,有一个控制线、一个地址线和一个数据线,可在IP核内设置。数据线与AD芯片相连,所以有8位;地址线需要采集5 000个像素点的数据,需要13位。双口RAM的两个端口均可控制,一个可以写入,另一个可以读取。
1.4 单片机与FPGA通信单片机的P0和P1写入双口RAM的地址位,然后在时钟的驱动下将双口RAM的地址存到单片机的P1并口输出。单片机与FPGA的地址位、数据位和控制位3个输出管脚相连,单片机先发指令到控制线,FPGA开始采集数据并把数据传送至单片机。此时,FPGA内部就不再缓存数据,每读完一帧数据后FPGA才继续缓存数据。单片机输出数据时通过USB接口芯片PL2303与上位机通信,将数据传送给上位机软件进行处理。
2 系统软件设计上位机软件在Visual Studio 2010开发平台上利用C#技术完成对控制界面的开发,对计算机的串口COM实现连接、读取、发送功能,可以完成对数据的单帧采集,每次可以采集到5 000个16进制的数据,代表 5 000个像素点的灰度值,并能将采集到的数据以波形图的形式进行实时显示,并依据灰度值的分布计算出激光点的位置。
2.1 软件界面设计软件界面的主页由功能区、日志信息区和监测区3个部分组成,功能区包括COM口选择、波特调节、数据位、奇偶校验位、停止位和通信协议选择,日志信息区主要负责显示系统的常规信息,监测区主要显示获取数据的实时图像。
上位机软件的图表采用第三方插件ZedGraph来完成。相较于.Net环境下的系统内置类库开发工作量大且不够灵活的缺点而言,ZedGraph的灵活性相当高,功能强大,可用于绘制各种图形且为免费开源,更便于简单高效地开发出本上位机软件所需的图表。
2.2 软件架构设计根据系统实际需求,采用多线程技术经由串口完成上位机和下位机的通信,并提供良好的用户界面。C#中多线程编程中的接口和类是由System.Threading命名空间提供的,其中类Thread封装了全部与线程相关的指令,是编写多线程的基础。如图 6所示,数据采集线程主要是利用Serial Port控件进行串口通信,采集到的数据以事件触发的形式输送给图像显示线程、数据处理线程和数据存储线程。
CCD图像的成像能量接近正态分布,采用质心法对CCD成像分布进行数据处理可提高数据精度,给出激光点位置。质心法的公式为:
$ x=\frac{\sum\limits_{i=1}^{n}{{{x}_{i}}}{{U}_{i}}}{\sum\limits_{i=1}^{n}{{{U}_{i}}}} $ |
式中,X为质心位置,Ui为像素点上接收到的光强,Xi为像素点位置。
3 系统测试结果为验证系统的可行性和精度,采用分度值为0.01 mm的微位移平台和测平精度为±0.05 mm/m的激光投线仪对该系统进行实验。
3.1 微位移平台示值误差校准使用新天影像测量仪JVB250对分度值为0.01 mm的微位移平台进行示值误差校准。根据影像测量仪的校准证书,其示值误差不大于2.0 μm。对微位移平台的重复性、微位移平台的分辨力和影像测量仪示值误差这些因素引入的不确定度分量进行评定,得到微位移平台的示值误差校准结果不确定度:
$ \mathit{U}{\rm{ = 3}}{\rm{.6 \mathsf{ μ} m}} $ |
激光投线仪的仪器测的测平精度为0.5 mm,所以使用该微位移平台对激光投线仪进行检测,是完全可以达到检测要求的。
3.2 实验结果在阴天室内无灯光照明的条件下,将微位移平台和激光采集设备固定在同一平台上,激光投线仪的激光投射在该采集设备CCD芯片的感光面上,感光面位置与微位移平台的底座保持不变,且成像水平面与微位移平台运动方向保持平行,采集设备随微位移平台移动,利用上位机软件实时计算显示激光点位置,每移动1 mm记录一组数据,共记录5组数据,如表 1所示。将采集到的5组原始数据txt文本导入Matlab中,得到5组数据的灰度值分布(图 7)。
在激光投线仪的检测中,所需的检测精度为0.1 mm。根据上述实验数据计算得出,该组数据的标准偏差为26 μm,相对标准偏差为2.59%,TCD1501D的像元间距为7 μm,再考虑到实验平台引入的误差和AD芯片量化误差,该系统的检测结果完全可以达到投线仪的检测要求。
4 结语本文设计了一种基于FPGA的线阵CCD激光检测系统,能够实现对采集到的激光位置进行实时检测,并且精度较高。该系统建立后,稍经改动,就可以用于多种相关激光仪器的检测,应用前景十分广泛。
[1] |
单桂军, 胡伟. 一种基于CCD的非接触尺寸测量系统[J]. 电视技术, 2013, 37(15): 41-43 (Shan Guijun, Hu Wei. Size of Non-Contact Measurement System Based on CCD[J]. Video Engineering, 2013, 37(15): 41-43 DOI:10.3969/j.issn.1002-8692.2013.15.012)
(0) |
[2] |
刘海波, 贾敏强, 杨博雄, 等. 激光投线仪进行校准的方法研究及不确定度分析[J]. 计量技术, 2007(10): 49-51 (Liu Haibo, Jia Minqiang, Yang Boxiong, et al. Method Research and Uncertainty Analysis of Laser Demarcation Instrument Calibration[J]. Measurement Technique, 2007(10): 49-51 DOI:10.3969/j.issn.1000-0771.2007.10.016)
(0) |
[3] |
杨博雄, 张晓华, 傅辉清, 等. 线阵CCD数据的高速采集与存储[J]. 大地测量与地球动力学, 2004, 24(2): 124-127 (Yang Boxiong, Zhang Xiaohua, Fu Huiqing, et al. High-Speed Data Acquisition and Storage of Linear CCD[J]. Journal of Geodesy and Geodynamics, 2004, 24(2): 124-127)
(0) |
[4] |
周建忠, 吴天成, 陈寒松, 等. 基于模糊PID控制的激光投线仪光线调节系统[J]. 排灌机械工程学报, 2015, 33(4): 362-368 (Zhou Jianzhong, Wu Tiancheng, Chen Hansong, et al. System for Adjusting Light in Laser Demarcation Device Based on fuzzy PID Control[J]. Journal of Drainage and Irrigation Machinery Engineering, 2015, 33(4): 362-368)
(0) |
[5] |
刘彤, 钟华, 张伟, 等. 浅谈激光投线仪的检测与校准[J]. 计量与测试技术, 2014, 41(2): 50-51 (Liu Tong, Zhong Hua, Zhang Wei, et al. Brief Probe in Cross Line Laser's Testing and Calibration[J]. Metrology and Measurement Technique, 2014, 41(2): 50-51 DOI:10.3969/j.issn.1004-6941.2014.02.026)
(0) |
[6] |
李海英.基于USB总线的微型光谱仪数据采集系统研究[D].哈尔滨: 哈尔滨工业大学, 2006 (Li Haiying. Research of Data Acquisition System For Micro-Spectrometer Based on USB[D]. Harbin: Harbin Institute of Technology, 2006) http://cdmd.cnki.com.cn/Article/CDMD-10213-2007033583.htm
(0) |
[7] |
赵友全, 江磊, 何峰, 等. 线阵CCD光电响应非线性特性测定与分析[J]. 光电工程, 2015, 42(7): 19-23 (Zhao Youquan, Jiang Lei, Hei Feng, et al. Measurement and Analysis of Linear CCD Nonlinear Optical Response Characteristics[J]. Opto-Electronic Engineering, 2015, 42(7): 19-23 DOI:10.3969/j.issn.1003-501X.2015.07.004)
(0) |
[8] |
李景林. CCD驱动方式的比较[J]. 微计算机信息, 2010, 26(5): 192-193 (Li Jinglin. Comparison of CCD Drive Methods[J]. Microcomputer Information, 2010, 26(5): 192-193 DOI:10.3969/j.issn.2095-6835.2010.05.078)
(0) |
[9] |
张智辉, 田地, 杨义先. 线阵CCD驱动电路设计的几种方法[J]. 仪表技术与传感器, 2004(6): 32-33 (Zhang Zhihui, Tian Di, Yang Yixian. Several Methods for Designing Linear Array CCD Drive Circuit[J]. Instrument Technique and Sensor, 2004(6): 32-33 DOI:10.3969/j.issn.1002-1841.2004.06.014)
(0) |
[10] |
王庆有. 图像传感器应用技术[M]. 北京: 电子工业出版社, 2013 (Wang Qingyou. Image Sensor Application Technology[M]. Beijing: Publishing House of Electronics Industry of China, 2013)
(0) |
[11] |
Altera. Cyclone Ⅱ Device Handbook[R].2007
(0) |
[12] |
Toshiba. CCD Linear Image Senser TCD1501D[R].1996
(0) |
[13] |
Texas Instruments.8-Bit High-Speed Analog-to-Digital Converters[R].2003
(0) |