基于FPGA的LED大屏幕控制系统的设计与实现
在FPGA中的具体实现为:首先使用Altera自带的IP核,将3个数据宽度为16 bit、数据深度为256的双端口RAM实例化作为查找表。系统起动时,初始化模块首先从外部EEPROM中读出256个配置数据,初始化RAM查找表。初始化完成后,灰度变换模块将24 bit RGB数据分离成3个8 bit数据作为RAM地址,读出数据作为转换后的灰度值。当需要修改γ值时,通过PC机软件生成新的γ校正表,然后通过串口发送到发送卡,发送卡将数据发送至接收卡,在灰度变换模块的控制下将数据写入RAM。如果需要保存校正数据,初始化模块从RAM中读出数据写入EEPROM中。3个RAM中存放的是相同的校正数据,所以初始化模块可以同时对3个RAM进行初始化,从RAM中读出配置数据时也只需要其中一个RAM中的值。本方法结合PC机软件可以实现1~5的γ值连续调节和1~16的灰度级连续调节。
4 对比度、亮度调节在FPGA中的实现
(1)对比度调节
增强对比度实际上是增强原图各部分的反差,通过增加原图里某两个灰度值间的动态范围来实现[4]。这样压缩较亮和较暗区域的灰度级,扩展中间区域的灰度级,从而使细节部分更加清晰。假设输入灰度级为f(x,y),输出灰度级为g(x,y),则对比度增强的计算如式(6)所示。由式(6)可以看出,通过这种方法调节对比度后会压缩图像的灰度级,使变换后的图像丢失亮区和暗区的细节,所以此种方法不适合大范围调节。根据人眼对高亮度区域的灰度级变化不敏感,而对低灰度级区域灰度级变化十分敏感的视觉特点,本系统选择不压缩低灰度级区域。式中n为调节系数,最终当0n100时比较合适。
![](http://m.amcfsurvey.com/editerupload/fetch/20130823/162722_3_0.jpg)
(2)亮度调节
本文在现有脉宽调制亮度调节技术[5]上提出了改进的亮度调节方案。本系统选用120 MHz的时钟作为脉宽计数器的驱动时钟,所以可以产生至少9 ns宽的脉冲。根据LED屏幕的驱动理论,选用9 ns作为最低亮度的最低灰度级的脉冲宽度,选用12灰度级时最高灰度级的脉冲宽度为9×211 ns。设竖直串行需要移2 560个数据,本系统选用12 MHz的屏幕数据移位时钟,则2 560个数据移入屏幕需要213 μs,在灰度级脉冲宽度时间小于213 μs时,就需要等待数据移入屏幕,而在灰度级脉冲宽度时间大于213 μs时,数据移位则需要等待脉冲宽度计数完成。调节亮度是对每一个灰度级的脉冲宽度乘上一个相同的系数。以64级亮度控制为例,最高亮度时最低灰度级的脉冲宽度为9×64 ns,最高灰度级的脉冲宽度为9×211×64 ns。采用脉冲宽度调制方式实现灰度控制,则扫描完一帧图像所需要时间由式(7)计算得出:
213 μs×9+294.912μs+0.589 824 ms+1.1796 48 ms
=3.981 384 ms (7)
本系统接收的视频源的刷新率为60 Hz,为了避免帧间图像撕裂的现象出现,LED显示屏的刷新率是视频源刷新率的整数倍。视频源的换帧时间为16.6 ms,LED显示可以在这个时间内读取同一帧数据进行屏幕刷新,根据上面的计算结果有 3.981 384×416.6 ms,即可得出LED显示屏的刷新率为60 Hz×4=240 Hz。
本文基于Altera的低成本Cyclone II 系列FPGA EP2CQ208C设计了一种高性能、低成本的LED大屏幕控制系统。通过改进SDRAM乒乓式缓存方案既节省了FPGA的IO口,又提高了系统的灵活性。设计了一种基于FPGA的片内RAM和PC机软件的反γ校正与灰度级设置方案,同时设计了在FPGA中实现的图像对比度、亮度调节模块。本系统最大可驱动1 280×1 024分辨率LED屏幕,刷新率不低于240 Hz,且灰度级、反γ校正系数、亮度、对比度等均可通过PC机软件灵活调节。为了实现屏幕驱动面积、LED屏幕刷新率的灵活设置,今后的工作将深入讨论这几方面之间的关系以及各种设置在FPGA中的实现。
参考文献
[1] 王臣凯.LED大屏幕同步显示系统硬件设计及实现[D].大连理工大学硕士学位论文,2008.
[2] 黄家善,张平均,陈建顺.基于千兆以太网的LED显示屏关键技术分析与实现[J].福建师范大学学报,2006(3).
[3] 续天翔.LED图象显示屏Gamma校正及在FPGA中的实现[J].机械管理开发,2008(12).
[4] 孟丽莹,成亮,闫国梁,等.基于CPLD的视频对比度调节硬件实现[J].科技情报开发与经济,2008.
[5] 王丽莉,董金明.LED全彩屏脉冲打散显示方案[J].电子测量与技术,2006(8).本文引用地址://m.amcfsurvey.com/article/162722.htm
评论