红外接近感应的软件处理方法
2021-06-29国光电器股份有限公司技术部
国光电器股份有限公司技术部 容 南
本文介绍一种I2C控制红外感应器件Si1141在具体项目工程上的应用,并讨论了几种红外接近感应的软件实现方法,具有一定的通用性。
红外接近感应技术在一些高端的消费产品中时有应用:比如当用户接近时设备自动打开播放,或是打开背光指引客户操作。此技术的应用可以让产品显得高端上档次,而增加的成本也不太多,在高端消费产品上应用越来越多。本文主要介绍用Si1141IC实现红外接近的几种软件处理方法。
1 原理
Si1141是有源光学反射临近探测器和环境光传感器,其运行状态可通过寄存器控制,这些寄存器可通过I2C接口使用。Mcu可以命令Si1141启动按需临近探测或环境光感应。另外Mcu还可以将Si1141置于自发运行状态,在此状态中,它按设定间隔执行测量,并在完成每次测量后或每当超过设定阈值时中断Mcu。这可以使系统整体节电,允许Mcu控制器在休眠状态下运行更长时间,而不轮询Si1141。
Si1141的内部框图大致如图1所示。
系统应用的结构图如图2所示。
图1 Si1141的内部框图
图2 系统应用的结构图
图3 示意图
图4 设计流程图
如图3所示,当目标物体没有接近时,红外发射管经过Overlay反射会进入Si114x,形成环境的光基准(BaseLine);当目标接近时,目标物会反射红外发射管的光进入到Si114x,从而使光感应的值有所变化,通过比较变化量来判断是否有物体接近。图3所示是示意图:
2 几种软件实现方法及经验
2.1 设计流程
在项目初期的设计过程中,由于没有Si114x的使用经验,Silicon Labs的大陆FAE工程师也没有此类器件的应用经验,完全靠自己摸索,初期阶段我采用了如图4所示的设计流程。
从流程图看出,这个流程是很原始的,纯粹是为了验证对Si1141的控制和对光学采样是否正常,在实际项目应用上是行不通的:因为产品在不同的光学环境下,光感应的经验值是不同的。我们必须找到一个随光学环境不同的参考值,这个参考值是随环境变化而变化的,这样在实际应用上才有意义,因此有了如下的第二种处理方法。
2.2 参考值是变动的程序流程
流程2相对流程1改善了很多,基本上在特定的环境下(例如室内环境...)是可以可靠工作的,事实上Marley批量生产时也是用的这种方法。在主程序循环中,第一次的光学取样作为当前的基准值,第二次光学取样值后与第一次相减,取绝对值,此绝对值与特定应用环境的阀值做比较,变化值大于阀值的,代表有目标物体接近。此方法经过试验验证,在特定的环境下工作是可行的(比如在室内应用...)。如图5所示。
图5 参考值是变动的程序流程图
图6 复杂环境红外接近程序流程
但是,如果产品要适应各种环境(例如要能在室内,室外应用...),方法2则存在缺陷:首先,在室外有强光照射的情况下,Si1141内部的采样ADC有可能会溢出,在溢出的情况下光感应采样值是无比较意义的,在溢出的情况下我们必须将Si1141内部的ADC进行重新设定,使其能在阳光直射下能正常工作。其二,由于采样的ADC设定不同, 因此设定的阀值也是不同的,这个也是要考虑到的。基于此,我们改进得到流程3。
2.3 复杂环境红外接近程序流程
和流程2相比,流程3多了Si1141内部ADC的处理,保证在室外阳光直射的情况下,ADC不会溢出而工作正常。而设定阀值也是和ADC的设置相关联的。另外,流程图3中只考虑了从室内移到室外的情况(类似从阴天到阳光强烈),还没考虑从室外到室内的情况(类似阳光强烈到阴天)。如图6所示。
必须说明的是流程3并没有在项目中测试认证(当时项目设计只是特定在室内工作),流程3只是我们思考引申出来,还须在新项目测试认证和完善。