基于FPGA的LED大屏幕控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
在FPGA中的具體實(shí)現(xiàn)為:首先使用Altera自帶的IP核,將3個(gè)數(shù)據(jù)寬度為16 bit、數(shù)據(jù)深度為256的雙端口RAM實(shí)例化作為查找表。系統(tǒng)起動(dòng)時(shí),初始化模塊首先從外部EEPROM中讀出256個(gè)配置數(shù)據(jù),初始化RAM查找表。初始化完成后,灰度變換模塊將24 bit RGB數(shù)據(jù)分離成3個(gè)8 bit數(shù)據(jù)作為RAM地址,讀出數(shù)據(jù)作為轉(zhuǎn)換后的灰度值。當(dāng)需要修改γ值時(shí),通過(guò)PC機(jī)軟件生成新的γ校正表,然后通過(guò)串口發(fā)送到發(fā)送卡,發(fā)送卡將數(shù)據(jù)發(fā)送至接收卡,在灰度變換模塊的控制下將數(shù)據(jù)寫(xiě)入RAM。如果需要保存校正數(shù)據(jù),初始化模塊從RAM中讀出數(shù)據(jù)寫(xiě)入EEPROM中。3個(gè)RAM中存放的是相同的校正數(shù)據(jù),所以初始化模塊可以同時(shí)對(duì)3個(gè)RAM進(jìn)行初始化,從RAM中讀出配置數(shù)據(jù)時(shí)也只需要其中一個(gè)RAM中的值。本方法結(jié)合PC機(jī)軟件可以實(shí)現(xiàn)1~5的γ值連續(xù)調(diào)節(jié)和1~16的灰度級(jí)連續(xù)調(diào)節(jié)。
4 對(duì)比度、亮度調(diào)節(jié)在FPGA中的實(shí)現(xiàn)
(1)對(duì)比度調(diào)節(jié)
增強(qiáng)對(duì)比度實(shí)際上是增強(qiáng)原圖各部分的反差,通過(guò)增加原圖里某兩個(gè)灰度值間的動(dòng)態(tài)范圍來(lái)實(shí)現(xiàn)[4]。這樣壓縮較亮和較暗區(qū)域的灰度級(jí),擴(kuò)展中間區(qū)域的灰度級(jí),從而使細(xì)節(jié)部分更加清晰。假設(shè)輸入灰度級(jí)為f(x,y),輸出灰度級(jí)為g(x,y),則對(duì)比度增強(qiáng)的計(jì)算如式(6)所示。由式(6)可以看出,通過(guò)這種方法調(diào)節(jié)對(duì)比度后會(huì)壓縮圖像的灰度級(jí),使變換后的圖像丟失亮區(qū)和暗區(qū)的細(xì)節(jié),所以此種方法不適合大范圍調(diào)節(jié)。根據(jù)人眼對(duì)高亮度區(qū)域的灰度級(jí)變化不敏感,而對(duì)低灰度級(jí)區(qū)域灰度級(jí)變化十分敏感的視覺(jué)特點(diǎn),本系統(tǒng)選擇不壓縮低灰度級(jí)區(qū)域。式中n為調(diào)節(jié)系數(shù),最終當(dāng)0n100時(shí)比較合適。
(2)亮度調(diào)節(jié)
本文在現(xiàn)有脈寬調(diào)制亮度調(diào)節(jié)技術(shù)[5]上提出了改進(jìn)的亮度調(diào)節(jié)方案。本系統(tǒng)選用120 MHz的時(shí)鐘作為脈寬計(jì)數(shù)器的驅(qū)動(dòng)時(shí)鐘,所以可以產(chǎn)生至少9 ns寬的脈沖。根據(jù)LED屏幕的驅(qū)動(dòng)理論,選用9 ns作為最低亮度的最低灰度級(jí)的脈沖寬度,選用12灰度級(jí)時(shí)最高灰度級(jí)的脈沖寬度為9×211 ns。設(shè)豎直串行需要移2 560個(gè)數(shù)據(jù),本系統(tǒng)選用12 MHz的屏幕數(shù)據(jù)移位時(shí)鐘,則2 560個(gè)數(shù)據(jù)移入屏幕需要213 μs,在灰度級(jí)脈沖寬度時(shí)間小于213 μs時(shí),就需要等待數(shù)據(jù)移入屏幕,而在灰度級(jí)脈沖寬度時(shí)間大于213 μs時(shí),數(shù)據(jù)移位則需要等待脈沖寬度計(jì)數(shù)完成。調(diào)節(jié)亮度是對(duì)每一個(gè)灰度級(jí)的脈沖寬度乘上一個(gè)相同的系數(shù)。以64級(jí)亮度控制為例,最高亮度時(shí)最低灰度級(jí)的脈沖寬度為9×64 ns,最高灰度級(jí)的脈沖寬度為9×211×64 ns。采用脈沖寬度調(diào)制方式實(shí)現(xiàn)灰度控制,則掃描完一幀圖像所需要時(shí)間由式(7)計(jì)算得出:
213 μs×9+294.912μs+0.589 824 ms+1.1796 48 ms
=3.981 384 ms (7)
本系統(tǒng)接收的視頻源的刷新率為60 Hz,為了避免幀間圖像撕裂的現(xiàn)象出現(xiàn),LED顯示屏的刷新率是視頻源刷新率的整數(shù)倍。視頻源的換幀時(shí)間為16.6 ms,LED顯示可以在這個(gè)時(shí)間內(nèi)讀取同一幀數(shù)據(jù)進(jìn)行屏幕刷新,根據(jù)上面的計(jì)算結(jié)果有 3.981 384×416.6 ms,即可得出LED顯示屏的刷新率為60 Hz×4=240 Hz。
本文基于Altera的低成本Cyclone II 系列FPGA EP2CQ208C設(shè)計(jì)了一種高性能、低成本的LED大屏幕控制系統(tǒng)。通過(guò)改進(jìn)SDRAM乒乓式緩存方案既節(jié)省了FPGA的IO口,又提高了系統(tǒng)的靈活性。設(shè)計(jì)了一種基于FPGA的片內(nèi)RAM和PC機(jī)軟件的反γ校正與灰度級(jí)設(shè)置方案,同時(shí)設(shè)計(jì)了在FPGA中實(shí)現(xiàn)的圖像對(duì)比度、亮度調(diào)節(jié)模塊。本系統(tǒng)最大可驅(qū)動(dòng)1 280×1 024分辨率LED屏幕,刷新率不低于240 Hz,且灰度級(jí)、反γ校正系數(shù)、亮度、對(duì)比度等均可通過(guò)PC機(jī)軟件靈活調(diào)節(jié)。為了實(shí)現(xiàn)屏幕驅(qū)動(dòng)面積、LED屏幕刷新率的靈活設(shè)置,今后的工作將深入討論這幾方面之間的關(guān)系以及各種設(shè)置在FPGA中的實(shí)現(xiàn)。
參考文獻(xiàn)
[1] 王臣凱.LED大屏幕同步顯示系統(tǒng)硬件設(shè)計(jì)及實(shí)現(xiàn)[D].大連理工大學(xué)碩士學(xué)位論文,2008.
[2] 黃家善,張平均,陳建順.基于千兆以太網(wǎng)的LED顯示屏關(guān)鍵技術(shù)分析與實(shí)現(xiàn)[J].福建師范大學(xué)學(xué)報(bào),2006(3).
[3] 續(xù)天翔.LED圖象顯示屏Gamma校正及在FPGA中的實(shí)現(xiàn)[J].機(jī)械管理開(kāi)發(fā),2008(12).
[4] 孟麗瑩,成亮,閆國(guó)梁,等.基于CPLD的視頻對(duì)比度調(diào)節(jié)硬件實(shí)現(xiàn)[J].科技情報(bào)開(kāi)發(fā)與經(jīng)濟(jì),2008.
[5] 王麗莉,董金明.LED全彩屏脈沖打散顯示方案[J].電子測(cè)量與技術(shù),2006(8).本文引用地址:http://butianyuan.cn/article/162722.htm
評(píng)論