随着人们生活水平的提高,人们对照明控制的要求越来越高,如营造舒适的照明环境、节约电能、提高光源寿命等。为了提高工作环境的舒适性,照明控制系统采取光传感器,根据当前环境的照度自动控制照明设备,从而使照度控制在舒适的范围内。
在传统的照明控制系统中,往往采用普通光传感器结合A/D转换器(ADC)的方案。一方面由于光传感器检测到的光信号既包含可见光成分又有红外光成分,在设计中要考虑滤除红外光对光传感器检测结果的影响,并且由于采用了分离的器件,因此导致设计比较复杂;另一方面,对照度的检测范围比较局限,不利于实现多路照度检测从而对同一场所内多个照明设备实施分区域控制。在此提出了基于ISL29004的多路照度检测方案,以简化系统设计,并采用单片机P87LPC768作为智能照明控制设备的控制核心,以实现对多个照明设备进行分区域控制,在节能的同时营造更舒适的照明环境。
一、I2C器件ISL29004
I2C总线概述
I2C总线是PhiIips公司推出的芯片间串行传输总线,以二线传输,其总线上所有的节点,如主器件(单片机、微处理器)、外围器件、接口模块等都连接到同名端的SDA和SCL上,实现了完善的半双工同步数据传送,可以方便地构成多机系统和外围器件扩展系统。I2C总线采用器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有简单灵活的扩展方法。
I2C总线传输数据必须遵循规定的数据传输格式,数据传输由主控器控制,主控器启动数据的传输、发送起始信号、寻址信息以及传送结束时发出停止信号,被控器进行必要的应答。
光传感器ISL29004
ISL29004是新一代光一数字传感器,集成了电流放大器、用于消除人为光闪烁的50Hz/60Hz抑制滤波器和16位adc,能将光照度转化成简便易用的16位、I2C标准数字输出信号,为用户提供了单芯片解决方案。ISL29004内部有2个光敏二极管,二极管1检测环境中可见光和红外光总的照度,二极管2只检测环境中红外光照度,两个二极管的光谱响应是互不依赖的。用户可以通过编程控制adc的工作模式,既可以仅输出光敏二极管1或2的检测结果,在模式2下还可以输出经内部减函数计算的滤除红外光影响的结果。ISL29004内有8个8位的寄存器,1个命令寄存器,1个控制寄存器,2个中断阈值寄存器,4个只读数据寄存器。命令寄存器可以设定ADC的工作模式以及分辨率;控制寄存器可以调整增益从而选择照度检测范围;只读数据寄存器LSB_Sensor和MSB_Sensor可以读取ADC最近的数字输出;只读数据寄存器LSB_timer和MSB_timer可以读取ADC最近一次积分的周期数。8个寄存器的地址依次为00H~07H。
ISL29004有2个I2C接口地址选择引脚A0,A1,可以在1条I2C总线线路上安装4个ISL29004,并且可以和其他I2C外围节点共存。
二、硬件结构以及工作原理
总体结构
单片机P87LPC768作为I2C总线的主控器,ISL29004作为被控器,4个ISL29004的设备地址依次为:44H~47H,通过ISL29004的地址引脚A1,A0进行设置。在系统中,使用了准双向I2C总线缓冲器P82896对I2C总线进行驱动扩展,实现I2C总线的远距离传输,拓展了照度采集距离;P87LPC768的I2C总线经P82896缓冲器扩展后通过双绞线和远端的P82896以及ISL29004连接。与4组照度采集电路相对应,调光控制电路也有4组,与P87LPC768的4个PWM引脚相连。