介绍了一种以FPGA 可编程逻辑器件为设计平台的、采用大屏幕全彩led 显示屏进行全彩灰度图像显示的扫描控制器实现方案。经过对“19 场扫描”理论灰度实现原理的分析,针对采用该方法实现的全彩LED 显示屏刷新频率受串行移位时钟限制的缺点,提出了一种新式的实现高阶灰度显示的逐位点亮控制方法,在进行FPGA 电路设计中采用单独的计数器来控制屏幕的刷新频率,使全彩LED 显示屏的设计在L ED 的发光效率和刷新率之间的调整更加灵活。最后,根据大屏幕全彩LED 显示屏的设计要求,结合本文讨论的灰度控制方法,给出了FPGA 屏体扫描控制器的内部电路实现结构框架。
1 、引言
作为大型平板显示设备的一种,LED 显示屏以其使用寿命长、维护费用低、功耗低等特点在显示领域占有重要的位置。特别在近年,带有红、绿、蓝三基色以及灰度显示效果的全彩LED 显示屏,以其丰富多彩的显示效果而倍受业界关注,成为LED 显示屏市场近年增长幅度比较大的产品。寿命、单位面积亮度、三基色的偏差程度、点距、对比度、灰度等级(包括灰度级数和线性度) 、扫描频率等指标性能是衡量或横向比较大型显示设备好坏的标准。而这些指标性能的优劣,很大程度上决定于扫描控制器的性能。因此对大屏幕全彩L ED 显示扫描控制方法的研究有着重要的意义。
由于LED 的发光亮度与扫描周期内的发光时间近似成正比,所以灰度等级的实现通常是由控制LED 的发光时间与扫描周期的比值,即采用调节占空比来实现的。全彩LED 显示屏一般采用逐位点亮的扫描方式实现灰度图像显示。对于显示灰度级数为8 位的LED 显示屏,一般采用“19场扫描”原理来实现256 级灰度显示。L ED显示屏的显示数据更新一般采用串行输出方式,如采用595 进行设计的静态LED 全彩显示屏,根据“19 场扫描”原理,对于分辨率等规格确定的屏体,当串行移位时钟确定时,显示屏的刷新频率和LED 的发光效率(一个扫描周期内,LED的最长点亮时间所占的比例) 也就被确定。本文提出了一种新的逐位点亮扫描方式,该方式对典型的“19场扫描”方式进行了改进,可以在串行移位时钟确定的条件下,在一定范围内对刷新率和发光效率进行调节,从而提高了产品根据实际的应用环境和客户要求进行设计的灵活性。
2 、逐位点亮的灰度实现算法设计
以8 位“19场扫描”理论为例,所谓逐位点亮,即从一个字节数据中依次从低位到高位或者从高位到低位提取出一位数据,分8 次点亮对应的像素,每一位对应的点亮时间与关断时间的占空比不同。如果点亮时间从低位到高位依次倍增,则合成的点亮时间将会有256 种组合。定义D0 位对应的点亮时间加上关断时间为一个时间单位,设为T ,可得表1 所示各位的点亮与关断时间。
表1 “19场扫描”显示时各位的点亮与关断时间
在实际设计中, T也是对LED 显示屏进行一次串行数据更新所需要的时间。表1 所示的总时间是T 的整数倍,所以每个数据位所占用的总时间可以通过刷新一次屏幕数据来进行定时。在进行LED显示屏设计时,整个显示屏中LED 的亮与灭可以通过总控线EN 控制,当点亮时间≥1 T时,EN 控制显示屏处于常亮状态,而当点亮时间< 1 T 时,可以通过控制EN 产生相应占空比的控制波形来实现相应位的亮度控制。可见,利用“19场扫描”原理,在串行移位时钟和屏体具体规格确定的情况下,其刷新率也就被确定了,并且具有固定的发光效率η。
η =6 点亮时间6 总时间≈ 16 T19 T≈ 84 % (1)由灰度显示的原理可以知道,能否实现灰度显示,决定于各个数据位的点亮时间从低位到高位是否以2 的倍数递增,而关断时间的长短只会影响发光效率的大小。在进行系统设计时,使用了8~10 位的非线性灰度校正,因此需要实现10位灰度扫描控制。定义“t”为点亮时间的一个时间单位,则可得表2 所示的时间分配。如果定义数据为“1”有效(点亮) “, 0”无效(熄灭) ,当输入数据从000H 到3FFH 变化时,点亮时间在0t~1 023t 变化,而亮度控制总时间则保持不变,从而实现了10 位占空比控制,采用这种灰度控制方法可以实现1 024 级的灰度显示。与“19 场扫描”原理不同,本文控制点亮的时间不是通过屏幕刷新来实现,而是采用单独的计数器来进行计时控制的。
表2 逐位点亮控制中各位数据点亮时间分配表
设使用串行方式更新整场视频图像一位数据所需要的时间为Ts ,如果Ts 满足:
则完成一次串行数据更新所需要的时间在Dn - 1位所需要的点亮时间和Dn 位的点亮时间之间,这个时间也许小于一个时间t。由于串行数据更新时间和点亮时间可以部分重叠,设屏幕的刷新率(即显示数据帧从显示缓存读出进行屏幕显示更新的频率) 为f r ,可以得到式(3) 。
当串行时钟频率和屏体参数确定, Ts 便可计算出来。此时,如果设定了屏幕的刷新率,结合式(2) 和式(3) ,对n 从0~9 进行穷举计算,可以得到同时满足两式条件的n 值,同时可以确定单位时间t 的值。由此得到的t 值,通过FPGA 进行定时控制,便可实现一定刷新率的全彩灰度控制。
这里LED 的发光效率可以用式(4) 表示。
从式(3) 可知,当串行移位时钟频率一定,即Ts 确定的情况下,刷新率f r 与单位时间t 成反比。而式(4) 表明,发光效率η和单位时间t 成正比。可见,刷新率和发光效率成反比关系,提高刷新率的同时必然要牺牲发光效率。因此,采用上述扫描方式,设计者可以根据实际应用环境和客户的要求在刷新率和发光效率两者之间进行适当的调整。
如果要求系统的全彩灰度控制符合“19 场原理”的显示效果,则由表2 可得表3 所示的关断时间t0 ~t9 的值。结合表3 中t0 ~ t9 的值,对表2中总时间各项进行求和,便可得总时间为Ta =1 152t ,根据1 152t = 1/ f r 可得到t 值。
表3 逐位点亮控制中符合“19 场扫描”时各位数据关断时间分配表在系统设计中,扫描板每个输出端口分别控制16 ×48 分辨率的静态显示屏模块,红、绿、蓝三色显示数据采用3 根数据线分别输出,串行移位时钟频率为6. 25 MHz ,显示屏刷新频率设计要求为120 Hz ,利用以上的结论可得:
Ts = 16×48×16125×106 s = 122188μs然后进行穷举计算,如表4 所示,可以得到单位时间t 的值为7. 780μs。
表4 对n 进行穷举计得到单位时间t 的值根据式(4) ,可计算得到发光效率η = 1023tf r = 1023 ×71780 ×10- 6 s ×120Hz = 9515 %
3、 FPGA 电路设计
视频图像信号频率高、数据量大,要求实时处理,加之全彩大屏幕LED 控制器实现的数字逻辑相当复杂,采用CPLD/ FPGA 设计控制电路,可以简化系统结构,便于调试。本文设计的扫描控制器应用于大屏幕全彩LED 脱机视频播放系统中。其中涉及到视频信号的存储和读取、视频数据的传输和接收、灰度显示控制电路、LED 点阵显示驱动电路等。本文主要对灰度显示控制电路进行讨论,控制对象为以红、绿、蓝三色LED 组成的全彩静态显示屏。实现灰度显示控制器的FPGA 内部电路结构如图1 所示。
在LED 显示屏扫描控制电路中,FPGA 是其中最主要的逻辑控制器件,主要实现视频数据接收、非线性灰度校正和扫描信号产生功能。FP2GA 内部各个电路模块相互协调运作,将数据输入和显示输出连接起来,实现L ED 显示屏的全彩视频播放。
作为一个独立的显示系统,普通的RS232 、RS485 总线方式已不能满足L ED 显示屏进行多媒体视频播放所要达到的高数据速率传输要求。以512 ×256 的全彩显示屏为例,当要求系统换帧频率达到30 Hz 时,需要的数据传输速率高达94. 4 Mbp s。因此,在系统设计中,视频数据的传输和接收采用RTL8201 设计的100 M 以太网控制器来完成。
为了使视频播放连续平滑,在数据接收过程中不能打断显示,这里采用两组SRAM 进行“乒乓操作”,使显示数据的接收存储和读取能够同时进行, 从而实现视频数据流的无缝缓冲和处理 , 如图2 所示。换帧信号FRAME _SWITCH 是用来切换工作SRAM 组的,该信号决定两组SRAM 哪一组处于读状态,哪一组处于写入状态。RTL8201 数据接收模块建立MII 接口,实现与RTL8201 的接口,把MII 接口传送过来的半字节数据转换成为24 位RGB 数据,然后存储在SRAM 里。RTL8201 每接收完一帧显示数据,则对换帧信号FRAME_ SWITCH 进行求反,将两组SRAM 的读写位置切换过来,使显示屏显示最新接收到的帧数据,从而实现换帧操作。
由于LED 显示屏包含4 列相互独立的显示模块,因此扫描控制电路需要提供4 路RGB 数据输出接口, 在图1 中表示为RGB0 ~ RGB3 。
CLOCK_OUT 为移位时钟信号输出端口,RGB0~RGB3 在该时钟的上升沿有效,各个端口的红、绿、蓝三色显示数据通过时钟脉冲信号分别逐位移入驱动芯片的显示缓存。LA TCH 信号为串行数据输出结束后需要进行显示刷新时的锁存脉冲。EN 为灰度控制信号,当EN 有效时,L ED 可以随输入数据的0 、1 状态熄灭或者点亮,其有效时间宽度对应为表2 所示的点亮时间。
EN 信号产生模块为实现灰度图像显示的重要模块,该模块将输入的位计数值转换成为对应位的点亮时间,并进行相应时间长度的亮度控制。
在本设计中,输入的灰度信号为256 级,考虑到反γ非线性校正过程引起的灰度损失,将输出的灰度级别定义为1 024 级,因此需要得到10 位灰度数据各个位对应的点亮时间。依据“灰度实现原理”,10 位灰度数据各个数据位对应的点亮时间从D0 ~D9 分别从1 T 倍增为512 T ,点亮总时间为1 023 T 。
由于驱动板中驱动芯片有二级缓存功能,所以更新数据和点亮L ED 这两个控制过程可以部分重叠,从而得到图3 所示的LED显示屏灰度控制流程。更新第0 位数据时点亮时间为512 T 、更新第1 位数据时点亮时间为1 T ...依次类推,更新第n 位数据时,控制点亮的时间为上一次所更新的位所需要的点亮时间。
4、结论
讨论了一种大屏幕全彩LED 显示屏设计的扫描控制器设计方案,通过对“19 场扫描”实现方法的分析,针对其不足之处,提出了一种新式的逐位点亮灰度控制方法。该控制方法使得在全彩LED 显示屏的设计中,可以在L ED 的发光效率和刷新率之间进行灵活的调整。本设计采用FP2GA 控制芯片为设计平台来完成扫描控制电路的实现,借助EDA 开发工具,降低了驱动电路的设计难度,缩短了项目的开发周期。