背光自动控制模块

时间:2022-07-11 01:01:46

背光自动控制模块

摘要:本文主要讲述采用集成环境光传感器控制显示屏背光亮度的应用。系统根据环境光强度实行动态的背光控制,降低功耗。让显示

>> 自动控制应用 PLC自动控制系统中智能模块设计探讨 信阳电厂脱硝计量分配模块自动控制优化研究 自动控制理论初探 脱硫PH自动控制 自动控制理论探析 频率自动控制技术 简易自动控制小车 W.E.ST比例放大模块在盾构机自动控制系统中的应用 自动控制理论基本概述 浅谈电厂温度的自动控制 浅谈锅炉自动控制概述 浅论锅炉连续排污自动控制 中央空调的自动控制 温室自动控制电路 水塔水位的自动控制 自动控制理论发展综述 《自动控制》课程设计研究 浅析制冷空调自动控制技术 精馏塔自动控制 常见问题解答 当前所在位置:

关键词:自动控制;液晶屏;LED

DOI:10.3969/j.issn.1005-5517.2015.10.022

郭昱秀(1990-),女,工程师,研究方向:雷达屏幕显示、空管自动化装备、内话设备等调试维护。叶永安(1987-),男,工程师,研究方向:计算机及设计。

前言

一个完整的液晶背光控制系统包括二部分:(1)背光自动控制模块;(2)LED驱动器。其中背光自动控制模块有光传感器和数据处理装置(通常是微控制器)组成。系统框图如图1所示。

现在绝大部分CCFL背光的液晶屏都已经停产,各液晶屏生产商都已经采用WLED背光,并且有的已经将LED驱动器集成到液晶屏。本文介绍背光自动控制模块。

模块组成设计

背光自动控制模块(以下简称为控制模块)的基本组成结构设计如图2所示,主要包括控制模块硬件和上位机控制软件。硬件模块由单片机、光强传感器、电源转换芯片组成;上位机软件是由VB编写的一个USB通信控制软件。

为了更有效地实现系统,在系统组成的基础上,对系统的功能进行规划分析。

1.1光强传感器

光强传感器是关键的组成部分,它负责向微处理器提供环境光强信息。

1.2微处理器

微处理器是核心部分,负责数据处理,它有以下几个功能:

负责读取光传感器的环境光强数据,并将这些信息处理转换成脉冲信号控制液晶屏的背光驱动器,进而完成背光亮度的控制;

解析USB上位机发送过来的指令完成相关操作。

1.3电源芯片

通过USB取电,将+5V转换成模块的工作电压。

1.4上位机软件

基于USB-HID对硬件模块控制指令,并接收硬件模块的反馈信息。

硬件设计

硬件电路原理图如图3所示,主要由光强传感器、微处理器、电源电路等组成。考虑到显示器的空间限制,在保证功能的前提下优先考虑小封装的元器件。

2.1光强传感器

选用Maxim公司的MAX4009集成环境光强传感器,将所有信号调节和AD转换器集成在一个封装内,有效节省电路板面积;低功耗(ICC=0.65μA);传感器的光谱灵敏度需要与人眼接近;采用I2C通信协议;可设置上、下限阀值中断使其与微控制器的连接方式更简单,数据传输速度更快。

2.2微控制器

选用ST公司的STM32F103T8U6单片机,QFN36封装:内部集成IIC以及USB控制器;通过USB口与外部通信;IIC配合外部中断与光强传感器通信;TIM3输出PWM控制信号;TIM2为通用定时器。

2.3电源芯片

电源芯片选用ASM1117-3.3,Uin=4.75V~12V;Uout=3.3V;Iout[max]=1A,满足要求。

软件设计

对系统设计的功能要求进行深入分析,将软件设计分为三部分:通信协议、单片机程序和上位机软件。

3.1通信协议

通信协议是指双方实体完成通信或服务所必须遵循的规则和约定,是确保数据顺利地、正确地传送的基础。本设计中只是小数据量的有线通信,所以只是建立了一个简单的通信协议。具体如下:

命令格式:FF WW XX YY CC(5个字节的16进制数)。

第1位为协议头,固定为FF。

第2位WW为指令类型:50是自动模式指令;05是手动模式指令。

第3、4位XX和YY在自动和手动模式下代表不同的意义:

自动模式下:XX、YY分别为光传感器的高字节流明寄存器和低字节流明寄存器的数据。

手动模式下:XX是背光亮度的百分比值,范围1~100。

第5位为结束标识符,固定为CC。

3.2单片机程序

单片机程序流程如图4左部分所示。系统上电之后,先会对单片机进行初始化,然后判断上位机是否通过USB发送控制指令过来,接着判断是自动控制指令还是手动控制指令,如果是自动控制指令,则读取当前环境光强度,并设置上、下限门限,接着把光强度变换成背光亮度的百分比,最后调用PWM滑动调节控制背光;如果是手动控制命令,则读取上位机发送过来的背光亮度的百分比,调用PWM滑动调节控制背光。

3.2.1

MAX44009通信控制

STM32F103通过I2C与MAX44009进行通信。通过设置上、下限阀值,在光线强度偏离设定范围一定时间后,产生中断通知微处理器读取光强度,进行背光亮度调节,并设置新的上、下限门限。本设计中上、下限阀值范围为当前光强度的±10%。

(1)读取流明

流明寄存器包含高、低字节流明寄存器。高字节流明寄存器0×03包括4位指数位E3:EO和尾数字节的4个最高有效位M7:M4,表示环境光强的流明数。尾数字节的其余4位M3:MO位于低字节流明寄存器0×04。如表1所示。用户可以选择只读高字节流明寄存器或者连续读高、低字节流明2个寄存器来得到流明数。

只读高字节流明寄存器换算公式:数分辨率,所以选择连续读取高、低字节流明寄存器。值得注意的是,为了确保内部ADC和I2C寄存器之间正确传输数据,在I2C读操作期间,芯片内部禁止高字节流明寄存器和低字节流明寄存器的更新,只有主机发送STOP[1]命令时,才恢复I2C寄存器更新。所以在连续读取2个字节流明寄存器时,读完高字节寄存器后不能发送STOP信号,必须在读完的字节低字节寄存器后才能发送STOP。

(2)环境光强如何映射到背光亮度

本设计中采用的一种映射方式是Microsoft@针对运行Windows@ 7[2]操作系统计算机提出的。如图5所示曲线,它可以将环境光强度映射到显示屏亮度(以全部亮度的百分比表示)。

这个特性曲线可以用以下函数表示:

(3)背光实施

LED背光亮度与其电流呈线性关系。集成了LED驱动器的液晶屏可以通过PWM直接控制液晶屏背光亮度。本设计中参考液晶屏的数据手册PWM信号的频率选用100Hz,由STM32F103的TIM3产生。

在背光调节过程中应避免从一个亮度级直接跳转到另一个亮度级(骤变式的亮度变化会对眼睛造成冲击),而应该平滑上调和下调背光亮度,确保不同亮度等级之间无缝过渡。为了达到这一目的,可采用带有固定或不同亮度步长、可逐步调节亮度的定时中断。本设计中参考MAX44009应用笔记中推荐的步进式亮度调节的算法进行亮度的平滑调节。

将采集进来的室内光照度转化为微处理器内PWM寄存器的值,记为当前PWM值。将前PWM寄存器值记为PWM原值。将PWM原值与当前PWM值不断比较递增或递减,使PWM输出以极小的步长跟踪当前PWM值,从而实现平滑调光。此算法还能解决启动跳变问题,使系统启动时PWM由零慢慢变化到当前PWM值。

PWM定时器的跳变值应该在定时器溢出中断中重新赋值,避免跳变值的改变可能出现PWM信号有波动。

(4)设置上、下限阀值

MAX44009可以设置上、下限门限,在光线强度偏离上、下门限一定时间后,产生中断通知微处理器读取光强度。

由表2可知MAX44009的上、下门限只是针对高字节流明的。怎么把一个浮点型的流明数值变换成上、下限寄存器的格式数据。在这里需要采用frexp[31函数:double frexp(doublex,int*exp);其中0.5

u8 Threshold_reg(float lux_rlhreshold)

{

doublex:

intn;

u8 y,lhreshold;

x=frexp(lux_,lhreshold,&n);

if(lux_lhreshold

{

y=(u8)(x+80)j

i((y%10)>4)y+=10j

y=y/10;

rlhreshold=(((u8)(n一3))

returnrlhreshold;

}

else

{

y=(u8)(x*l60);

if((y%10)>4)y+=10j

y=y/10;

Threshold=(((u8)(n-4))

returnThreshold;

}

}

设置上、下限阀值主要是为了改善系统对环境光强变化的响应,避免因为光强的瞬间变化(譬如一扇窗户打开或瞬间有一束光扫过)而过快地改变亮度等级,这往往会造成用户感觉不适。最初级的方法是每隔一两秒钟检查一次光传感器,然后相应地调整背光亮度。更好的方法是,只有光线强度偏离特定范围一定时间后,才对背光亮度进行调节。

MAXIM推荐的例子是:“如果正常光强是2001ux,可能只会在光强降到1801ux以下或升至2201ux以上,而且持续时间超过数秒的情况下才调节亮度”。由于上、下限阀值设定是个固定值,当系统的使用环境更换时(比如说室外转移到室内),会造成背光调节的偏差,特别是新环境的光强度超出了上、下限阀值时,系统的调光效果跟最初级的方法效果一样了。

为了解决这一问题,本设计中采用了动态设置上、下限阀值的方法。读取当前光强度,然后取±10%为偏移量,写进上、下限寄存器中。

3.2.2

PWM控制

STM32F103共有7个定时器,TIM1和TIM8是高级定时器,TIM2、TIM3和TIM4是通用定时器,TIM6和TIM7是基本定时器。本设计中采用通用定时器TIM3,利用TIM3产生周期为100Hz的PWM信号。

PWM配置步骤如下:1、设定TIM3信号周期;2、设定TIM3预分频值;2、设定TIM3分频系数;4、设定TIM3计数模式;5、初始化TIMTimeBaseStructure[4];6、设定TIM3的OC模式;7、TIM3输出使能;8、设定电平跳变初值;9、设定PWM信号的极性;10、使能TIM3信号通道;11、使能TIM3中断;12、使能TIM3重载寄存器CCRX;13、使能TIM3计数;14、在中断中设置新的电平跳变值。

3.2.3

USB通信

在ST提供的USB-HID的例程上做修改,增加到3个USB端点。EPO为控制端点,EP1为INTERRUPT OUT端点(PC向MCU发送数据),EP2为INTERRUPTIN端点(MCU向PC发送数据)。需要对“usb_desc.e”文件进行修改,VID和PID[5]不能跟现有的设备相冲突。详细可参考USB HID Vl.l协议。模块收到上位机发送过来的数据后,对数据进行解析并根据命令做出相关操作,代码如下:

if(USB_ReceiveFlg==TRUE)//收到数据

{

USB_ReceiveFlg= FALSE;

if((RxBuffer[o]==Oxff)&(RxBuffer[4]==0xcc))

{

if(RxBuffer[1]==0x50)//自动调光

{

Light_AM_flag=1;

12C_WriteByte(OxOl,INTENABLE,MAX44009_ADDR);

Light_HM_flag=0;

}

else if(RxBuffer[1]==0x05)//手动调光

{

Light_AM_flag=0;12C_WriteByte(OxOO,INT_ENABLE,MAX44009_ADDR);

HM_light=RxBuffer[3];

HM_light=HM_light/100;

PWM_diff(HM_light,1);//调光百分比

}

}

}

3.3上位机软件

在VB编程环境中应用“HidAPI.bas”组件进行USB通讯编程,根据上述的通信协议通过USB接口与控制模块进行信息指令交换。软件有两个功能:1、勾选“AM”控制模块进入自动控光模式,滑条将被屏蔽不允许操作:2、不勾选“AM”进入手动控光模式,可以通过滑条进行亮度调节。

在VB中滑条需要鼠标左键才能触发,为了鼠标的滑轮能够使用,加入了定数器,每20ms读取一次滑条的值,保存并与上一次数据项比较,如果有变化则通过USB发送控制指令,否则不做处理。代码如下:

Dimlightdata_r As String

Dimlightdata As String

Private Sub Timerl_Timer()

Textl.Text= SliderlValue

lightdata_r= lightdata‘保存上一次数据

lightdata= SliderlValue‘重新赋值

Iflightdatalightdata_r Then‘比较

Data(1)= &H5

Data(3)= lightdata

CallWriteReport‘发送数据

End If

End Sub

软件界面效果如图6所示。

结论及成品展示

通过对本系统的调试与测试,实现了液晶背光的自动和手动控制。系统运行可靠,操作简单,而且硬件模块体积小便于安装。已应用于多个显示器产品中。

参考文献:

[1]Maxim. MAX44009 Data sheet Rev O[Z]. Maximintegrated.2011

[2]Windows. Integrating Ambient Light Sensors with Computers Running Windows 7[R].Microsoft.2010

[3]谭浩强,C程序设计(第三版)[M].北京:清华大学出版社2005

[4]ST.UM0427 Rev 2[Z]. STMicroelectronics,2000

[5]USB Device Working Group.Device Class Definition for Human Interface Devices[Z].1999

上一篇:航空物流对促进区域经济发展研究 下一篇:让电池电量计更精确