引 言
本文介绍美国TAOS公司最新推出的颜色传感器TCS230。它不仅能够实现颜色的识别与检测,与以前的颜色传感器相比,还具有许多优良的新特性。
1 TCS230芯片的结构框图与特点
TCS230是TAOS(Texas Advanced Optoelectronic Solutions)公司推出的可编程彩色光到频率的转换器。它把可配置的硅光电二极管与电流频率转换器集成在一个单一的CMOS电路上,同时在单一芯片上还集成了红绿蓝(RGB)三种滤光器,是业界第一个有数字兼容接口的RGB彩色传感器。TCS230的输出信号是数字量,可以驱动标准的TTL或CMOS逻辑输入,因此可直接与微处理器或其它逻辑电路相连接。由于输出的是数字量,并且能够实现每个彩色信道10位以上的转换精度,因而不再需要A/D转换电路,使电路变得更简单。图1是TCS230的引脚封装和功能框图。
图1中,TCS230采用8引脚的SOIC表面贴装式封装,在单一芯片上集成有64个光电二极管。这些二极管共分为四种类型。其中16个光电二极管带有红色滤波器,16个光电二极管带有绿色滤波器,16个光电二极管带有蓝色滤波器,其余16个不带有任何滤波器,可以透过全部的光信息。这些光电二极管在芯片内是交叉排列的,能够最大限度地减少入射光幅射的不均匀性,从而增加颜色识别的精确度;另一方面,相同颜色的16个光电二极管是并联连接的,均匀分布在二极管阵列中,可以消除颜色的位置误差。工作时,通过两个可编程的引脚来动态选择所需要的滤波器。该传感器的典型输出频率范围从2Hz~500kHz,用户还可以通过两个可编程引脚来选择100%、20%或2%的输出比例因子,或电源关断模式。输出比例因子使传感器的输出能够适应不同的测量范围,提高了它的适应能力。例如,当使用低速的频率计数器时,就可以选择小的定标值,使TCS230的输出频率和计数器相匹配。
从功能框图可知:当入射光投射到TCS230上时,通过光电二极管控制引脚S2、S3的不同组合,可以选择不同的滤波器;经过电流到频率转换器后输出不同频率的方波(占空比是50%),不同的颜色和光强对应不同频率的方波;还可以通过输出定标控制引脚S0、S1选择不同的输出比例因子,对输出频率范围进行调整,以适应不同的需求。2 TCS230识别颜色的原理
由上面的介绍可知,这种可编程的彩色光到频率转换器适合于色度计测量应用领域,如彩色打印、医疗诊断、计算机彩色监视器校准以及油漆、纺织品、化妆品和印刷材料的过程控制和色彩配合。本文以TCS230在液体颜色识别中的应用为例,介绍它的具体使用。在开始介绍TCS230的颜色识别前,先来了解一些光与颜色的知识。
2.1 三原色的感应原理
通常所看到的物体的颜色,实际上是物体表面吸收了照射到它上面的白光(日光)中的一部分有色成分,而反射出的另一部分有色光在人眼中的反应。白色是由各种频率的可见光混合在一起构成的,也就是说白光中包含着各种颜色的色光(如红R、黄Y、绿G、青V、蓝B、紫P)。根据德国物理学家赫姆霍兹(Helinholtz)的三原色理论可知,各种颜色是由不同比例的三原色(红、绿、蓝)混合而成的。
2.2 TCS230识别颜色的原理
由上面的三原色感应原理可知,如果知道构成各种颜色的三原色的值,就能够知道所测试物体的颜色。对于TCS230来说,当选定一个颜色滤波器时,它只允许某种特定的原色通过,阻止其它原色的通过。例如:当选择红色滤波器时,入射光中只有红色可以通过,蓝色和绿色都被阻止,这样就可以得到红色光的光强;同理,选择其它的滤波器,就可以得到蓝色光和绿色光的光强。通过这三个值,就可以分析投射到TCS230传感器上的光的颜色。
2.3 白平衡和颜色识别原理
白平衡就是告诉系统什么是白色。从理论上讲,白色是由等量的红色、绿色和蓝色混合而成的;但实际上,白色中的三原色并不完全相等,并且对于TCS230的光传感器来说,它对这三种基本色的敏感性是不相同的,导致TCS230的RGB输出并不相等,因此在测试前必须进行白平衡调整,使得TCS230对所检测的“白色”中的三原色是相等的。进行白平衡调整是为后续的颜色识别作准备。在本装置中,白平衡调整的具体步骤和方法如下:将空的试管放置在传感器的上方,试管的上方放置一个白色的光源,使入射光能够穿过试管照射到TCS230上;根据前面所介绍的方法,依次选通红色、绿色和蓝色滤波器,分别测得红色、绿色和蓝色的值,然后就可计算出需要的三个调整参数。
当用TCS230识别颜色时,就用这三个参数对所测颜色的R、G和B进行调整。这里有两种方法来计算调整参数:①依次选通三种颜色的滤波器,然后对TCS230的输出脉冲依次进行计数。当计数到255时停止计数,分别计算每个通道所用的时间。这些时间对应于实际测试时TCS230每种滤波器所采用的时间基准,在这段时间内所测得的脉冲数就是所对应的R、G和B的值。②设置定时器为一固定时间(例如10ms),然后选通三种颜色的滤波器,计算这段时间内TCS230的输出脉冲数,计算出一个比例因子,通过这个比例因子可以把这些脉冲数变为255。在实际测试时,使用同样的时间进行计数,把测得的脉冲数再乘以求得的比例因子,然后就可以得到所对应的R、G和B的值。
3 TCS230的应用
3.1 颜色识别电路
基于上述分析,采用89C51和TCS230设计了一个医用液体颜色识别装置。该装置具有结构简单、识别精度和效率高的特点,并且能够和上位机通信,以将识别的结果实时传送给上位机。由于是说明TCS230的使用情况,下面仅给出其中的TCS230识别电路,如图3所示。图3中用89C51的P1口的几个引脚来控制TCS230的各个控制引脚,而TCS230的输出引脚被连接到89C51的定时器/计数器1的输入端(P3.5)。设置89C51定时器/计数器为相应的工作方式,初始化89C51定时器为一个定值,再选择TCS230的输出比例因子,并使能输出引脚。实际使用中通过读取89C51计数器的值,就可以分别计算出TCS230的三种输出频率,进而确定R、G、B值及颜色。
下面简要介绍TCS230芯片各个引脚的功能及它的一些组合选项。
S0、S1用于选择输出比例因子或电源关断模式;S2、S3用于选择滤波器的类型;OE是频率输出使能引脚,可以控制输出的状态,当有多个芯片引脚共用微处理器的输入引脚时,也可以作为片选信号;OUT是频率输出引脚,GND是芯片的接地引脚,VCC为芯片提供工作电压。图2是S0、S1及S2、S3的可用组合。
现结合上述分析给出相应的软件流程,如图4所示。
在程序流程中:系统初始化负责设置89C51的定时器/计数器的工作方式,选择TCS230的输出比例因子,使能输出引脚以及通信参数的设置。初始化完成后,检测是否需要进行白平衡调整。如有,调用白平衡子程序;否则,转到下一步,检测是否需要进行颜色识别。如没有,返回;如需要颜色识别,调用颜色识别子程序,直到颜色识别完毕。
4 应用中需要注意的问题
① 颜色识别时要避免外界光线的干扰,否则会影响颜色识别的结果,最好把传感器、光源等放置在一个密闭、无反射的箱子中进行测试;
② 对光源没有特殊的要求,但是光源发出的光要尽量集中,否则会造成传感器之间的相互干扰;
③ 当第一次使用TCS230时,或TCS230识别模块重启、更换光源等情况时,都需要进行白平衡调整。
结 语
文章从TCS230的结构特点出发,介绍了色光理论和颜色识别的知识,还介绍了白平衡的原理和进行调整的方法。结合一个具体的应用,给出了相应的硬件设计电路和软件流程图。该传感器和文中介绍的方法对进行其它的颜色识别,也有很大的帮助。 |