kaiyun官方注册
您所在的位置: 首页> 可编程逻辑> 设计应用> 基于FPGA与色敏传感器的颜色识别系统
基于FPGA与色敏传感器的颜色识别系统
摘要:随着新技术、新材料的不断涌现,在现代化工业生产中,颜色识别系统的应用越来越多,也越来越复杂。以色敏传感器为探测器,使用内嵌NiosII软核处理器的FPGA作为运算、控制核心的颜色识别系统,具有结构简单、可靠性高、使用方便、扩展性强等优点。利用FPGA快速强大的处理功能,能够快速、准确地实现颜色的识别。利用现代信息融合技术,采用新型、高灵敏、响应快的色敏传感器,一定能使颜色识别更加精确、更加可靠。
Abstract:
Key words :

1 概 述

在当今的社会生活中,颜色识别得到越来越广泛的应用。各个领域的广泛应用需求使颜色识别技术有了长足的发展,结合其他技术,可为工业控制、产品制造等多个行业更好地服务。目前,颜色识别技术主要是通过结构简单、使用方便的单片机来实现,而本设计选用FPGA来实现,该系统可应用于印染、油漆、汽车等行业,也可以装在自动生产线上对产品的颜色进行监测。这样选择的好处有以下几点:

①FPGA芯片是并行运算的,每个振荡周期都可以执行任务,而单片机(如8051系列)的每条指令都需要12个振荡周期。例如,单片机I/O端口的变化最快也需要24个振荡周期,而FPGA只需要2个振荡周期,所以同样的振荡周期下,FPGA速度更快。

②FPGA有丰富的I/O资源(一般有数百个I/O口),容易实现大规模系统,可以方便地连接外设(比如多路A/D、D/A等)。而单片机的I/O口有限,要进行仔细的资源分配、总线隔离。

③FPGA可以进行硬件重构,在功能扩展或性能改善方面也非常容易。

本设计选用了Altera公司的:NioslI软核,使用SOPC的软硬件综合解决方案。与传统的设计方法完全不同,从硬件和软件整体设计上进行了极大的改进,使硬件电路更加简单、有效、易于理解,软件设计更轻松、可移植性更强。

2 设计原理

如图1所示,颜色识别系统主要由模拟和数字两部分组成。模拟部分主要用来转换光电信号、放大信号和滤除噪声。数字部分主要用来对A/D采样进来的数字信号实现中值滤波、查对数表、求对数比,以及显示等操作。

3 模拟部分

3.1 颜色采集模块


本设计中采用的色敏传感器是CLS9032。该传感器有2个垂直连接的PN结,其厚度可以给色敏传感器起到一个光学滤波器的作用。波长较短的光在硅的表面就被吸收了,而波长较长的光到达深一些的位置才会被吸收。基于这种光谱的敏感性,根据光的波长来选择信号(颜色)。使用2个光电二极管之间的对数电流比作为信号处理的方法。不同颜色的光照射时,该色敏传感器红、绿、蓝区3个引脚都会输出电流信号,但是相应颜色的引脚输出的电流信号会比其他引脚输出的电流信号强。利用这种原理能够有效地避免外界环境造成的输出电流的起伏,因此这种器件具有较高的可靠性。

在距离色敏传感器1.5 cm处,分别用红、绿、蓝3种颜色的光源直接照射,检测经过模拟部分处理后的输出电压信号。实际测试数据如表1所列。

3.2 放大模块

图2是模拟部分制成PCB后的实物图。选取了有代表性的红、绿、蓝3种颜色,分别用相应颜色的发光二极管来代表。使颜色识别系统有充足的光线照射,便于探测。

色敏传感器负责把不同颜色的光信号转换成电流信号,但是电流信号只是几十到几百nA的数量级,需要放大电路来放大到所需要的程度。不同颜色产生的微弱电流信号传送到对应的线路通道上,通过以下3级放大,把nA级的电流信号转换成V级的电压信号。具体电路如图3所示。

①第1级是在电流放大的模式下工作,运放选用高精度、低噪声的高精密运放OP177。经过放大的信号大致能达到几十mV。这个幅度的电压还太小,不能输入到数字系统,因此还要对电压信号进行进一步的放大。

②第2级放大为同相的电压放大,选用高精度的集成运放OP07。放大后的电压幅度大致为几百mV,且放大的输出为负。

③第3级放大要采用反相的电压放大,运放同样选用OP07。输出的信号幅度为几伏,能够满足输入数字系统的要求。

3.3 滤波模块

经过放大后的直流信号,因为有噪声的干扰,还有一些毛刺。经过查阅参考文献和实际的实验测试,最终采用20 Hz二阶有源低通滤波器,可以为后面的级联使用提供干净的信号。

4 数字部分

本次设计的核心地方是数字部分,系统的搭建是基于Altera公司的NiosII处理器。

电压信号经过滤波处理,被传送到A/D转换器,经过A/D转换得到数字信号,为数字部分对信号的识别处理作准备。根据所选用的色敏传感器的工作原理,用 SOPC系统进行控制,对3路模拟电路信号进行同步的A/D转换以增强系统准确性。在保证可靠性和精度的前提下,为降低系统成本,满足对输入数字信号倍数的要求,A/D转换器选用8位串行输出的ADC0809转换器。采用NiosII软核搭建的FPGA系统处理数字信号,主要经过以下操作:

①中值滤波,进一步去除干扰信号;

②查对数表,查数据所对应的对数值;

③求对数比,对分别采集到的2个数据求对数比,为判断是哪种颜色提供依据;

④显示颜色识别结果,亮不同的灯来表明所识别出来的不同颜色。

此内容为AET网站原创,未经授权禁止转载。
Baidu
map