基于FPGA动态背光源及其驱动电路设计
扫描二维码
随时随地手机看文章
摘要:LCD 显示离不开背光源的辅助,而现在绝大多数显示器采用恒定亮度背光源,存在显示效果动态模糊以及低对比度等问题,并且耗能也较为严重。文章着重叙述一种基于视频内容逐帧分析,然后选择最佳背光亮度的一种由FPGA 控制的动态背光源设计方案。实验采用的是TI 公司的TLC5947,具有多个输出通道,可以适用于大规模显示屏。
引言
当代LCD 显示大部分采用的是冷阴极射线荧光灯(CCFL)背光或LED 静态背光,由于CCFL 亮度不易控制并且响应速度慢,造成能源浪费和动态模糊。LED 静态背光效果虽好,但是其耗能也较为严重,另外恒定亮度的背光使得图像的对比度下降,显示效果不理想。对图像RGB 像素进行分析,在某些区域适当地采用低一级亮度的LED 背光,不仅可以节能,而且会扩大图像显示的对比度,消除动态模糊现象。
1 设计方案及其原理
动态背光源表面上是个整体,其实内部在制作原理图时已经将之分成多个区域,分别控制其各自的亮度。可知背光灯的密集度越高,划分的区域越多、面积越小,显示出来的整体效果会越好。但是从成本、经济价值、制作工艺、节能等方面综合考虑,可知灯的数目不可能无限多,划分的区域也不会无限密集,但是总可以找到一个最合适的设计规格。
RGB 色彩模型是工业界的一种颜色标准,通过RGB 模型为图像中每一个像素的RGB 分量分配一个0~255 范围内的强度值。RGB 图像只使用三种颜色,按照不同的比例混合, 理论上在屏幕上呈现16,777,216 种颜色。在本系统只有RGB 各个分量不能直接得到我们需要的亮度控制参数Ki,需要经过FPGA运算得到图像各个像素的灰度值,然后再计算。
对图像进行灰度计算的基本思想是将每个像素的RGB 三种颜色成份的值取平均,然而由于人眼的敏感性,这种做法效果并不好,应该是每个分量需有一定的权重,计算公式如下所示。
(1)为灰度计算公式,可直接由RGB 各个分量计算得到像素的灰度值,当然可以整体的放大或缩小,即乘以一个共同的系数。
(2)为由像素灰度求亮度公式,其中Tmax 为最大透过率,在同一个系统中为一固定值,可不予关注,γ 为RGB 像素矫正因子,B 为背光源亮度值。
当背光源的亮度变为原来的1/λ即B' 时,为了使人眼观察灰度C' 像素的亮度不发生大的变化,应使两次得到的值一致,即:
令:
解方程可以求得: 一般情况下,灰度的调节由8bit 数据控制,即可以将灰度值由0~255,分成256 份,其中每一份代表一个灰度级别(本实验中所使用驱动芯片的灰度级别为4,096)。所以可以令控光参数Ki: 其中Cmax 为各个分割区域中的最大灰度值,Ci为各个相应区域的最大灰度值,计算得到的区域控光参数Ki 来调节FPGA 的输出,来调节背光板亮度,从而可以得到校正后各个像素的RGB 值分别为: 如方案图所示,最后将由控制器输出的行、场同步信号和校正后的RGB 信号等传输给LCD 板。 方案中SDRAM 的主要作用有两个:一是在FPGA 处理不及时的情况下,用来存储从图形控制器传过来的行、场同步信息和RGB 数据信息等;二是存储FPGA 处理过的数据,单LCD 板未来得及处理的信息。这样设计的目的在于达到数据不丢失,信息传输更及时的效果。 [!--empirenews.page--] 2 驱动电路设计 在驱动芯片的选择上, 我们用TI 公司的TLC5947,每个通道由12bits PWM 脉宽调制,具有24 路输出通道,所以一个数据传递周期将会接收288bits 数据。芯片所需电压为3.0~5.5V,有温控系统,当芯片的温度过高时会自动断开,以保护芯片。 从芯片的引脚25 可以看出,此款芯片支持级联,可以多个芯片共同工作以驱动更大规模的显示屏幕。从引脚1 到引脚24,每个输出通道由12bit输入数据来控制,其内部含有4MHz 的晶振,输入数据与212 即4,096 的比值即为输出脉冲的占空比,从而实现对背光源相应区域的PWM 调制。从中可知,TLC5947 将灰度分为4,096 级,我们可以大尺度、精密地细分背光源的亮度,以达到更好动态背光效果。 图2 TLC5947 引脚注释 驱动电路中的电阻由所驱动LED 灯的电流决定,具体详情可以参考TLC5947 配置表格(如表1所示)。芯片对输入的SCLK、XLAT、BLANK 等信号有严格的时序要求,电源与地之间的电容主要起到一个滤波作用,尽量值选大些。 表1 配置电阻与驱动电流的关系 图3 背光源驱动电路 [!--empirenews.page--] 3 软件设计 本款芯片的控制信号由Altera 公司的型号为EP1C3T144C8 的开发板供给,晶振为50MHz。 从实验得到的效果来看,该款芯片的数据传输机理为:每个传输周期,每遇SCLK 上升沿将会从SIN 口读入1bit 数据存入寄存器,在SCLK 下降沿时,将读入的数据从SOUT 传出(内部对数据仍有保留) 输给下一级,直至读入288bits 数据。每12bits 为一组,分别送到各自的通道,并且每组数据先读入的居于较高位,然后依次排列。例如,读取的数据按时间先后排列为1、0、0、0、0、0、0、0、0、0、0、0,则相应的控制信号为100000000000,那么控制通道的占空比即为: 根据PWM 调制面积相等的原则,有效电压约为提供电压的一半。 按照仿真条件的要求,SCLK 时钟信号需要在每接收完288bits 时有段时间的低电平,尽量满足芯片的时序要求。另外,控制信号BLANK 在每个周期空闲时(不传输数据时),需要有个高电平变换,这样可以将锁存器里面的数据清零,以便接受新一轮的控制数据,否则,灯的亮度明显会偏暗。 RGB 数据经过FPGA 的处理,转换为相应的灰度值,然后再计算出相应的控光参数Ki (我们可以分的灰度级别不超过4,096),传输给TLC5947的SIN,即可以实现动态背光调节。 图4 输入输出信号设置 图5 信号仿真图 图6 PWM 调制输出波形 4 结论 通过理论分析和实验测试,动态背光调节控制系统在节能和提高图像显示对比度等方面做得都较好,这在重视节能减排、建设和谐社会的今天以及对LCD 显示器的未来发展都具有很好的应用前景。 图7 即通过FPGA 控制以及基于图像像素控制得到的动态背光调节效果图,从中可以看到,如果在以前LCD 静态背光的条件下,则所有背光LED 灯的亮度将会和最亮的(右下角)一致,而现在我们将之分割为各个不同区域,使得每个区域均有自己的最佳亮度,而不必以整个图像最亮一点为标准,并且不影响显示效果。这样,也就实现了我们预期的动态调节的目的。 图7 背光源效果图