256級(jí)灰度LED點(diǎn)陣屏顯示原理及基于FPGA的電路設(shè)計(jì)
摘 要:本文提出了一種LED點(diǎn)陣屏實(shí)現(xiàn)256級(jí)灰度顯示的新方法。詳細(xì)分析了其工作原理。并依據(jù)其原理,設(shè)計(jì)出了基于FPGA 的控制電路。
關(guān)鍵詞:256級(jí)灰度;LED點(diǎn)陣屏;FPGA;電路設(shè)計(jì)
引言
256級(jí)灰度LED點(diǎn)陣屏在很多領(lǐng)域越來(lái)越顯示出其廣闊的應(yīng)用前景,本文提出一種新的控制方式,即逐位分時(shí)控制方式。隨著大規(guī)??删幊踢壿嬈骷某霈F(xiàn),由純硬件完成的高速、復(fù)雜控制成為可能。
逐位分時(shí)點(diǎn)亮工作原理
所謂逐位分時(shí)點(diǎn)亮,即從一個(gè)字節(jié)數(shù)據(jù)中依次提取出一位數(shù)據(jù),分8次點(diǎn)亮對(duì)應(yīng)的像素,每一位對(duì)應(yīng)的每一次點(diǎn)亮?xí)r間與關(guān)斷時(shí)間的占空比不同。如果點(diǎn)亮?xí)r間從低位到高位依次遞增,則合成的點(diǎn)亮?xí)r間將會(huì)有256種組合。定義點(diǎn)亮?xí)r間加上關(guān)斷時(shí)間為一個(gè)時(shí)間單位,設(shè)為T(mén) 。表1列出了每一位的點(diǎn)亮與關(guān)斷的時(shí)間分配。
如果定義數(shù)據(jù)位“1”有效(點(diǎn)亮),“0”無(wú)效(熄滅),則表2列出了數(shù)據(jù)從00H到FFH時(shí)的不同點(diǎn)亮?xí)r間。由表2可知:數(shù)據(jù)每增1,點(diǎn)亮?xí)r間增加T/128。根據(jù)點(diǎn)亮?xí)r間與亮度基本為線(xiàn)性關(guān)系的原理,從0~255T/128的點(diǎn)亮?xí)r間則對(duì)應(yīng)256級(jí)亮度。當(dāng)然,這個(gè)亮度是時(shí)間上的累加效果。如果把一個(gè)LED點(diǎn)陣屏所有像素對(duì)應(yīng)的同一數(shù)據(jù)位點(diǎn)亮一遍稱(chēng)為一場(chǎng)的話(huà),那么8位數(shù)據(jù)共需8場(chǎng)顯示完,稱(chēng)為“8場(chǎng)原理”。
理論上講,8場(chǎng)即可顯示出256級(jí)灰度,然而通過(guò)表2可看出,即使數(shù)據(jù)為FFH時(shí),在8T時(shí)間內(nèi)也只是點(diǎn)亮了255T/128時(shí)間。關(guān)斷時(shí)間可接近6T,點(diǎn)亮?xí)r間僅為總時(shí)間的約25%,因此,8場(chǎng)原理雖也能實(shí)現(xiàn)256級(jí)灰度顯示,但亮度損失太大。為了提高亮度,可采用“19場(chǎng)原理”,即8位數(shù)據(jù)分19場(chǎng)顯示完,其中D7位數(shù)據(jù)連續(xù)顯示8場(chǎng),D6位連續(xù)顯示4場(chǎng),依次遞減。表3列出了各位的點(diǎn)亮與關(guān)斷時(shí)間。
由表3可推導(dǎo)出數(shù)據(jù)從00H~FFH范圍的總點(diǎn)亮?xí)r間,如表4所示。在19T時(shí)間內(nèi),最大點(diǎn)亮?xí)r間可達(dá)近16T, 占總時(shí)間的84.21%,遠(yuǎn)大于“8場(chǎng)原理”的25%。數(shù)據(jù)每增1,點(diǎn)亮?xí)r間增加了T/16 ,該值大于“8場(chǎng)原理”的T/128。所以 ,“19場(chǎng)原理”較“8場(chǎng)原理”的對(duì)比度更明顯,圖像層次分明、表現(xiàn)力強(qiáng)。
電路設(shè)計(jì)
256級(jí)灰度LED點(diǎn)陣屏通常要具有能遠(yuǎn)程同步實(shí)時(shí)顯示計(jì)算機(jī)視頻信號(hào)的功能,涉及到的電路包括:數(shù)字視頻信號(hào)的采集、數(shù)字信號(hào)的格式轉(zhuǎn)換及非線(xiàn)性校正、遠(yuǎn)程傳輸及接收、灰度顯示控制電路、LED點(diǎn)陣顯示電路等。 本文重點(diǎn)討論“灰度顯示控制電路”的設(shè)計(jì),控制對(duì)象以紅、綠雙基色LED點(diǎn)陣屏、1/16掃描顯示電路為例。FPGA內(nèi)部電路如圖1所示。
因?yàn)楸豢貙?duì)象為1/16掃描顯示電路,所以顯示屏每16行只需要一路數(shù)據(jù)信號(hào)即可。DRout1、 DGout1即為第一個(gè)16行的紅、綠基色輸出信號(hào);DRout2、DGout2為第2個(gè)16行的紅、綠基色輸出信號(hào)。以此類(lèi)推。
Ha、Hb、Hc、Hd的二進(jìn)制編碼,定義當(dāng)前的數(shù)據(jù)輸出應(yīng)是16行中的哪一行。CP信號(hào)為數(shù)據(jù)串行輸出的同步移位脈沖。LE信號(hào)為一行串行數(shù)據(jù)輸出結(jié)束后的鎖存脈沖, LE每有效一次,Ha、Hb、Hc、Hd二進(jìn)制編碼狀態(tài)增1。EA為灰度控制信號(hào),其寬度為在一個(gè)時(shí)間單位T內(nèi)LED的點(diǎn)亮?xí)r間。當(dāng)然, 不同的數(shù)據(jù)位其寬度不同, 具體由表3決定。一個(gè)時(shí)間單位T即一行串行數(shù)據(jù)的傳輸時(shí)間,也即LE信號(hào)的周期,其大小取決于屏寬的像素點(diǎn)數(shù)量和CP信號(hào)的頻率。
DRin1~8和DGin1~8為紅、綠數(shù)據(jù)輸入信號(hào),分別對(duì)應(yīng)第1個(gè)16行點(diǎn)陣區(qū)到第8個(gè)16行點(diǎn)陣區(qū)。Cpin為同步脈沖,一個(gè)脈沖對(duì)應(yīng)一位數(shù)據(jù),8個(gè)脈沖對(duì)應(yīng)一個(gè)像素點(diǎn)的8位數(shù)據(jù)輸入。H信號(hào)為行同步脈沖,一行數(shù)據(jù)輸入結(jié)束,H信號(hào)有效一次。V為幀同步脈沖,一幀(16行)數(shù)據(jù)輸入結(jié)束,V信號(hào)有效一次。上述信號(hào)均為前級(jí)系統(tǒng)提供的信號(hào)。
FPGA外部接有兩組高速靜態(tài)RAM(圖中未畫(huà)出),DRA1~8、DGA1~8為A組RAM的紅、綠數(shù)據(jù)線(xiàn),DRB1~8、DGB1~8為B組RAM的紅、綠數(shù)據(jù)線(xiàn);/WRA、/RDA為A組的讀、寫(xiě)控制信號(hào),/WRB、/RDB為B組的讀、寫(xiě)控制信號(hào);AA0~16為A組的地址線(xiàn),AB0~16為B組的地址線(xiàn)。使用兩組RAM的目的是保證對(duì)RAM的讀寫(xiě)操作能同時(shí)進(jìn)行。當(dāng)寫(xiě)RAM(A)時(shí),讀RAM(B);當(dāng)寫(xiě)RAM(B)時(shí),讀RAM(A)。二者的寫(xiě)/讀切換由幀信號(hào)V控制。V每有效一次,就進(jìn)行一次切換。
Cpin為前級(jí)系統(tǒng)提供的寫(xiě)脈沖,同時(shí)亦作為寫(xiě)地址生成電路的計(jì)數(shù)脈沖,計(jì)數(shù)地址范圍為A0~A16, 共128K字節(jié), 其中A0~A2為灰度位數(shù)據(jù)地址(決定訪(fǎng)問(wèn)8位的哪一位)。A3~A12為X方向的像素地址,A13~A16為Y方向的像素地址,即行地址。H信號(hào)到來(lái)時(shí),清零A0~A12,同時(shí)A13~A16地址加1。V信號(hào)到來(lái)時(shí),A0~A12及A13~A16全部清零。上述地址作為RAM的寫(xiě)地址。
CLK為讀地址生成電路計(jì)數(shù)脈沖(外電路提供),計(jì)數(shù)地址范圍亦為A0~A16, 共128K字節(jié), 其中A0~A9為X方向的像素地址,A10~A13為Y方向的像素地址,即行地址。A14~A16為灰度位數(shù)據(jù)地址。上述地址 作為RAM的讀地址,這些地址的變化規(guī)律應(yīng)符合“19場(chǎng)原理”對(duì)地址要求的變化規(guī)律,即:A0~A9計(jì)滿(mǎn)后清零,產(chǎn)生一個(gè)行信號(hào)即LE信號(hào)。LE信號(hào)作為A10~A13的計(jì)數(shù)脈沖,A10~A13計(jì)滿(mǎn)后清零,產(chǎn)生一個(gè)場(chǎng)信號(hào)。場(chǎng)信號(hào)作為A14~A16的計(jì)數(shù)脈沖。不過(guò),A14~A16并不是一簡(jiǎn)單的二進(jìn)制計(jì)數(shù),其規(guī)律如表5所示。為了能正確地讀取寫(xiě)到RAM中的數(shù)據(jù),生成的讀地址應(yīng)按表6所示的方法與RAM連接。
讀寫(xiě)控制電路的作用是向兩組RAM提供讀寫(xiě)控制信號(hào),邏輯關(guān)系如表7所示。數(shù)據(jù)輸入/輸出電路的作用是切換數(shù)據(jù)的傳輸方向,如表8所示。
幀切換電路的作用是產(chǎn)生上述電路所需要的切換信號(hào)S。實(shí)現(xiàn)的方法是,幀同步脈沖V每有效一次,S的邏輯狀態(tài)翻轉(zhuǎn)一次。幀切換電路保證了兩組RAM隨V信號(hào)不斷進(jìn)行讀寫(xiě)轉(zhuǎn)換。
灰度信號(hào)生成電路產(chǎn)生被控對(duì)象需要的EA信號(hào),它隨讀地址A14、A15、A16的狀態(tài)而變化。邏輯關(guān)系如表9所示。
依據(jù)幀周期Tp=20ms,一幀=19場(chǎng)原理,可得如下計(jì)算結(jié)果: 場(chǎng)周期Tv=Tp/19=1.05ms; 行周期T=Tv/16=66ms; 輸出移位脈沖周期Tcp=T/1024=64ns;輸出移位脈沖頻率fcp=1/Tcp=15.6MHz。CLK信號(hào)頻率fclk=fcp=15.6MHz; 實(shí)際應(yīng)用時(shí),選取CLK時(shí)鐘信號(hào)頻率為16MHz。
在MAX PLUSII10.0環(huán)境下,使用圖形和硬件描述語(yǔ)言完成了以上電路的設(shè)計(jì)。
FPGA選型及仿真結(jié)果
由圖1可知,F(xiàn)PGA必須提供113個(gè)I/O引腳,內(nèi)部資源、工作頻率須滿(mǎn)足電路設(shè)計(jì)要求。采用Altera公司的ACEX1K系列EP1K10QC208-3芯片,該FPGA芯片速度高、價(jià)位低、有114個(gè)I/O引腳,576個(gè)邏輯宏單元,可兼容輸入輸出電路的TTL電平。仿真結(jié)果報(bào)告: 引腳利用率達(dá)99%,內(nèi)部邏輯單元利用率達(dá)85%,達(dá)到了充分利用資源、提高性?xún)r(jià)比的目的?!?/P>
參考文獻(xiàn)
1 宋萬(wàn)杰. CPLD技術(shù)及應(yīng)用[M]. 西安. 西安電子科技大學(xué)出版社,1999
作者簡(jiǎn)介:
魏銀庫(kù),鄭州防空兵學(xué)院電子教研室主任,碩士生導(dǎo)師。研究方向?yàn)橛?jì)算機(jī)的嵌入式應(yīng)用技術(shù)。
評(píng)論