基于ARM的线阵CCD测径系统的设计

2016-06-16 22:16刘逸帆金穗晨凌林霍红林
电脑知识与技术 2016年10期

刘逸帆+金穗晨+凌林+霍红林

摘要:设计了基于ARM的线阵CCD的测径系统。介绍了线阵CCD测径系统的原理,详细介绍了系统的硬件组成原理。采用ARM处理器实现对线阵CCD时序脉冲的驱动。采用液晶显示屏显示待测工件的尺寸。系统配有上位机接口,可实现实时图像的显示。最后给出系统的软件设计流程。

关键词:线阵CCD;ARM;测径系统

中图分类号:TP271 文献标识码:A 文章编号:1009-3044(2016)10-0257-03

Abstract: The design is the diameter measurement system of linear array CCD based on ARM. The paper introduces the principle of linear CCD diameter measurement system and the hardware composition principle of the system in detail. The ARM processor is used to drive the linear array CCD time series pulse. The size of the workpiece to be measured is displayed by the liquid crystal display screen. The system is equipped with the host computer interface to achieve the real-time image display. At last, software flow of the system is designed .

Key words: linear CCD; ARM; diameter measuring system

1 概述

在传统的工业生中,人们往往需要测量工件的尺寸。测量方式主要是通过使用测量工具如游标卡尺、测微仪等进行测量。这种方式需要与产品接触,操作不规范,目测读数直接导致数据的误差。而且接触式的测量对精密工件容易造成磨损,面对这些问题,越来越需要非接触式测量仪器进行解决。通过线阵CCD对工件的多次测量后再求平均值的方法可以很好解决传统的测量方法的缺点,提高生产效率和工件质量。

2 线阵CCD的测径原理

线阵CCD的测径原理如图1所示,将待测工件固定好位置,选取线阵CCD与待测工件在同一水平方向。CCD的前端包括镜头,入射光平行照射到待测工件,将使其投影成像在CCD上。在驱动信号的作用下,CCD完成电荷的转移、存储等工作。由于工件的不透光性,工件的边缘信息将被很好的存储下来。调节并固定好焦距后,f1,f2的焦距为已知,测出投影在CCD上直径d,根据比例关系,可以得到工件直径D。

3 系统硬件组成

整个测径系统由控制器模块、线阵CCD采集模块、LCD显示模块、USB接口、上位机显示及电源模块组成。采用MK60DN512为控制器,选用128×64液晶屏显示待测工件的直径。测径系统结构框图如图2所示。

3.1 CCD数据采集模块

CCD数据采集模块是非接触式测量系统中重要的组成部分,线性CCD模块采集的数据的精确程度将影响最终工件测量精度。

在此系统中采用的CCD数据采集模块是TSL1401线性CCD。TSL1401线性CCD传感器是一个由128×1的光电二极管组成的阵列,此阵列具有128个像素,像素间隔为8微米,此传感器内部逻辑控制较为简单,只需要一个串行输入端信号和一个时钟信号。时钟信号将由ARM产生并提供给TSL1401线性CCD传感器。由CCD传感器的相应引脚依次输出128个像素点的模拟信号。

3.2 ARM控制器模块

ARM是该测量系统的核心,ARM处理器为线性CCD采集模块传递时钟信号,处理器再通过中断信号来接收来自线性CCD模块传送的数据,存储到存储模块中,ARM处理器通过算法算出线性CCD传感器上接收到信息,再利用透镜公式算出工件直径。最后通过ARM处理器与显示器系统相连接,将ARM处理器上生成的数据发送到显示器上,由显示器再将工件直径信息显示出来。K60系统板的功能模块是由串行同行UART、GPIO 、定时器、A/D、D/A、CMP、TSI、SPI、I2C、CAN、USB、SDHC以及存储模块组成的。K60系统板集中多种功能模块于一体,符合本系统中的多种功能,因此在本系统中采用的模块为K60系统板。

K60芯片的电源是由VDD和VDDA两种电源组成的,VDD是单片机的电源,VDDA是模拟电源。它的工作电压为3.3V。K60芯片是有两部分组成的时钟电路。一个是实时时钟RTC的时钟电路,另一个是主晶振。K60系统板的主晶振是50MHZ的有源晶振。本系统中使用的晶振为50MHZ。

3.3 电源模块

本系统中选用的K60芯片的工作电压为3.3V,而线性CCD模块和K60最小系统板的工作电压为5V,采用电源模块将使得整个系统结构紧凑,使用灵活、方便携带。

本系统中我们采用的电源模块为多路输出输入电源模块,该电源模块给同时生成3.3V,5V,6V,12V的电源,可以同时满足K60芯片、K60系统板和TSL1401线性CCD传感器的电压需求。简化了系统的整体结构。

3.4 其他模块

A/D转换模块可将CCD采集到的模拟视频信号转换成相应的数字信号。由于受环境光线的影响,CCD采集到的电信号有时候几乎接近0,无法辨认待测工件的边缘信息,因此要对采集到的电信号进行放大处理,可采用集成运放LM358实现对模拟信号的放大。并经过A/D转换芯片实现可以处理的数字量。

128×64LCD液晶显示模块是专门用于字母、数字、符号输出显示。体积小,可以实时显示待测工件的直径。该显示模块的工作电压为5V,与K60系统板的电压相同。

USB接口可完成K60系统版和计算机的信息传输,通过USB接口,计算机可以读取系统采集到的128个像素点,并根据像素值在计算机端实时动态显示待测工件的曲线图。通过曲线图,可了解工件的边缘信息,观察出工件的动态变化情况。

4 系统软件设计流程

系统的软件设计对于整个系统至关重要。通过软件设计,可对图像的128个像素点进行数据处理,分析得到待测工件的边沿信息,从而得出物件直径的尺寸。整个系统的主程序流程图如图3所示。

在此过程CCD驱动程序模块是整个系统中数据采集中最为关键的部分。TSL1401线性CCD的驱动程序只需要控制它的CLK和SI两个引脚就可以让A0端口依次输出128个像素的模拟信号。当SI端口变为高电平且CLK端口遇到上升沿时A0端口将开始输出信号。根据文献[6]中叙述的线阵CCD的驱动代码如下。

void ccd(void)

{

siu.pcr[27].r =0x0200;

siu.pcr[29].r=0x0200;

siu.pgpdp[0].r & = ~0x00000014;

siu.pgpdp[0].r |=0x00000010;

delay();

siu.pgpdp[0].r |=0x00000004;

delay();

siu.pgpdp[0].r & =~0x00000010;

delay();

siu.pgpdp[0].r & =~0x00000004;

delay();

for (i=0;i<128;i++)

{

delay();

siu.pgpdp[0].r |=0x00000004;

adc.mcr.b.nstart ==1;

while(adc.mcr.b.nstart ==1)

adcdata =adc.cdr[0].b.cdata;

delay();

siu.pgpdp[0].r |=0x00000004;

Result[1] = (uint8_t)(adcdata >> 2);

}

delayccd();

}

本系统代码采用的编译软件为IAR。在显示模块部分,为了便于K60系统板上的切换不同的显示器来验证各种显示器的输出质量,因此加了一个宏定义,便于在试验阶段对于显示器的跟换以此选择合适的显示模块。

5 总结

本文介绍了基于ARM的线阵CCD非接触直径测量系统的组成、原理及软件设计流程。通过读取待测工件128个像素点的数据,对边沿数据进行分析,利用算法计算出工件的直径尺寸等信息。本系统不仅可以工件的直径,还可以测量工件的长度、厚度等信息,可广泛应用于各种非接触式测量尺寸等场合。

参考文献:

[1] 胡胜,杨雷,宋跃,等.基于ARM&FPGA的CCD图像识别装置[J]. 仪表技术与传感器,2012(1):54-56.

[2] 张爱雪,孟樱.基于ARM和FPGA的线阵CCD测径系统设计[J].电子技术应用,2011,37(2):82-84.

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

[4] 梁冰,易茂祥,颜天信.高性能线性CCD开发平台的研制[J]. 合肥工业大学学报,2010,33(10):1579-1581.

[5] 任慧建,殷兴辉. 基于FPGA的高速线阵CCD图像采集系统[J]. 电子测量技术,2014,37(11):33-36.

[6] 芜湖蓝宙电子.蓝宙电子线阵CCDⅢ说明书[EB/OL].http://www.landzo.cn/forum-128-1.html.