基于FPGA的LED大屏幕控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
相比于液晶顯示、投影顯示等其他大屏幕顯示技術(shù),LED顯示技術(shù)有其獨(dú)特的優(yōu)越性:高亮度、寬可視角度、豐富的色彩以及可定制的屏幕形狀。這些特點(diǎn)使得led顯示屏被廣泛應(yīng)用于工業(yè)、交通、商業(yè)廣告、信息發(fā)布、體育比賽等各個(gè)領(lǐng)域。
led大屏幕幕控制系統(tǒng)是一個(gè)融合計(jì)算機(jī)控制技術(shù)、視頻技術(shù)、光電子技術(shù)、通信技術(shù)的綜合系統(tǒng)。當(dāng)前主流的led大屏幕幕控制系統(tǒng)多以FPGA或FPGA結(jié)合其他芯片為主控芯片。目前led大屏幕幕正朝著顯示面積更大、顯示亮度更高、顏色更鮮艷的方向發(fā)展。這些都給led大屏幕幕控制系統(tǒng)提出了新的挑戰(zhàn)。
本文基于Altera公司的低成本Cyclone II系列芯片EP2CQ208C設(shè)計(jì)了led大屏幕幕控制系統(tǒng),在傳統(tǒng)的SDRAM緩存技術(shù)上,提出了優(yōu)化的SDRAM乒乓式緩存技術(shù)并詳細(xì)闡述了反γ校正、顏色調(diào)節(jié)、灰度級(jí)調(diào)節(jié)等在FPGA中的實(shí)現(xiàn)。本系統(tǒng)最終實(shí)現(xiàn)了最大1 280×1 024分辨率、最低240 Hz刷新率的超大LED屏幕顯示。同時(shí)可以通過(guò)PC機(jī)上軟件對(duì)LED屏幕進(jìn)行亮度、對(duì)比度、灰度級(jí)等參數(shù)的靈活調(diào)節(jié),得到更加細(xì)膩的顯示畫(huà)面。
1 系統(tǒng)結(jié)構(gòu)
本文所設(shè)計(jì)的led大屏幕幕控制系統(tǒng)結(jié)構(gòu)如圖1所示,整個(gè)系統(tǒng)分為發(fā)送卡和接收卡兩部分。以Altera公司的EP2CQ208C作為主控芯片,DVI數(shù)據(jù)解碼選用了TI公司的TFP201A(最高支持SXGA),數(shù)據(jù)緩存選用了Samsung的K4S643232C,千兆以太網(wǎng)芯片選用了Realtek公司的RTL8212(雙端口千兆物理層芯片)。
本系統(tǒng)的數(shù)據(jù)流分為控制數(shù)據(jù)和顯示數(shù)據(jù)。控制數(shù)據(jù)由PC機(jī)上的軟件發(fā)出,發(fā)送卡的FPGA接收控制數(shù)據(jù),判定是控制發(fā)送卡還是控制接收卡的數(shù)據(jù),如果是控制接收卡,則通過(guò)千兆網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送至接收卡。TFP201A從DVI接口解碼出顯示數(shù)據(jù)后由FPGA緩存入SDRAM,然后在讀出數(shù)據(jù)時(shí)按照顯示屏要求對(duì)數(shù)據(jù)塊結(jié)構(gòu)作一定調(diào)整后再由RTL8212打包發(fā)送至接收卡,接收卡接收顯示數(shù)據(jù),然后驅(qū)動(dòng)led顯示屏。
本文主要討論系統(tǒng)中的FPGA部分,包括以下三點(diǎn):
(1)對(duì)SDRAM乒乓式緩存的優(yōu)化;
(2)基于FPGA內(nèi)部RAM與PC機(jī)軟件的反γ校正與灰度級(jí)變換;
(3)led顯示屏的亮度、對(duì)比度等顏色調(diào)節(jié)在FPGA中的實(shí)現(xiàn)。
2 SDRAM乒乓式緩存的優(yōu)化
傳統(tǒng)的基于SDRAM的乒乓式緩存方案[1,2]都存在著數(shù)據(jù)讀寫(xiě)操作復(fù)雜或者數(shù)據(jù)結(jié)構(gòu)調(diào)整局限性大的缺點(diǎn)。結(jié)合現(xiàn)有方案的優(yōu)點(diǎn),本文提出了圖2所示的SDRAM數(shù)據(jù)緩存方案。
本系統(tǒng)的發(fā)送卡設(shè)計(jì)目標(biāo)是最大支持1 280×1 024分辨率、60 Hz刷新率的全彩數(shù)據(jù)發(fā)送,此時(shí)的像素頻率為:
即本方案滿足系統(tǒng)數(shù)據(jù)吞吐量的要求。由于兩個(gè)SDRAM中存儲(chǔ)相同數(shù)據(jù),具有相同格式,所以SDRAM讀寫(xiě)模塊可以同時(shí)向兩個(gè)SDRAM中寫(xiě)入或讀出顯示數(shù)據(jù),這樣兩塊SDRAM可以共用地址線,從而節(jié)省數(shù)十個(gè)FPGA IO端口,這是本方案的一大優(yōu)點(diǎn)。同時(shí)每塊SDRAM中劃分了兩個(gè)區(qū),用以存放連續(xù)的兩幀圖像,可以根據(jù)led顯示屏的具體要求,從SDRAM中讀出顯示數(shù)據(jù),滿足系統(tǒng)靈活性的要求。
3 反γ校正與灰度級(jí)調(diào)節(jié)
特定條件下創(chuàng)建的圖像在不同環(huán)境下工作時(shí),往往會(huì)出現(xiàn)圖像看起來(lái)顯得太亮或者太暗的現(xiàn)象,所以led大屏幕幕顯示系統(tǒng)需要進(jìn)行靈活的反γ值調(diào)節(jié)。當(dāng)前反γ校正多采用基于FPGA內(nèi)部ROM的查找表技術(shù)[3]。式(1)為反γ校正公式,式中默認(rèn)輸入圖像灰度級(jí)為256,輸出灰度級(jí)為G,x為輸入灰度值,y為輸出灰度值,γ為校正系數(shù)。要在FPGA中實(shí)現(xiàn)指數(shù)運(yùn)算需要消耗大量邏輯單元,對(duì)于低成本要求來(lái)說(shuō)是不現(xiàn)實(shí)的。本文提出了如圖3所示的基于FPGA片內(nèi)RAM、片外EEPROM和PC機(jī)軟件的反γ校正技術(shù)。
在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)0
(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
本系統(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×4<16.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).
更多相關(guān): AV集成
©版權(quán)所有。未經(jīng)許可,不得轉(zhuǎn)載。