高立民,王衛(wèi)東
(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
作為信息顯示產(chǎn)品,LED顯示屏以其大屏幕及高清晰度被廣泛應(yīng)用在高樓、廣場、體育場館等空間開闊的場所來顯示豐富多彩的信息。為了提高畫面的質(zhì)量,LED顯示屏對畫面的灰度等級和刷新率的要求越來越高,如要求畫面更加細膩、色彩更加豐富且在播放畫面時人眼不會感到閃爍。提升視覺刷新率的方法有提高灰階時鐘頻率、降低畫面灰階數(shù)和將脈沖打散[1]。由于硬件的限制,灰階時鐘頻率的提升幅度有限,而降低畫面的灰階會降低畫面的分辨率,因此本文采用脈沖打散的方法設(shè)計了一種提升視覺刷新率的邏輯電路。
計數(shù)模式如圖1所示。傳統(tǒng)的PWM計數(shù)方式在一個周期里計數(shù)一次,LED燈只點亮1次,如圖1中模式3所示。這對GCLK的要求較高,當GCLK的頻率達不到要求時,LED顯示屏就會因為刷新率不夠而出現(xiàn)閃爍。
打散的PWM計數(shù)方式把一個PWM周期分解成最重要位(MSB)與最不重要位(LSB)的灰階周期,因為MSB的數(shù)據(jù)在圖像顯示中起主要作用,故將MSB的計數(shù)打散以提高視覺刷新率[2](與之類似的有Dispersed PWM算法[3])。MSB的計數(shù)周期打散后重復更新多次,再加上一次LSB的計數(shù)周期,便可達到和未分解成MSB與LSB的PWM一樣的高位分辨率。圖1中,高6 bit為MSB,低 6 bit為 LSB。模式 0時,將 MSB打散 64次,一個打散的 PWM周期為(26-1)×26+26GCLK,恰好為一個傳統(tǒng)的PWM計數(shù)周期,這樣就將刷新率提高了64倍。
圖1 計數(shù)模式
圖2 12 bit計數(shù)器
通過改變脈沖打散的次數(shù),可以得到不同的刷新率。在下面的邏輯電路中設(shè)計了4種打散方式,分別為64次、16次、4次和1次,以供用戶在使用時根據(jù)實際需要靈活地進行選擇。
12 bit加法計數(shù)器設(shè)計電路如圖2所示。其中,gclock為計數(shù)時鐘,por_up是上電復位信號,用來對D觸發(fā)器初始化。CLRN為觸發(fā)器的低電平清零端,當por_up為 0時,12 bit輸出 n[11..0]=111111 111111;當 por_up為 1時,n[11..0]開始加 1計數(shù)。
利用12 bit計數(shù)器的輸出值產(chǎn)生一個選擇信號。高6 bit n[11..6]=111111時,con=1,計數(shù)值從 4 032到 4 095共64個GCLK,此時選擇輸出LSB的比較結(jié)果。剩余 4 032個GCLK,con=0,選擇MSB的比較結(jié)果。
63計數(shù)器的設(shè)計原理如下。圖1中,LSB計數(shù)時,其周期為64個GCLK,此時的計數(shù)值恰好為12 bit計數(shù)器的低6 bit n[5..0]。而對于MSB的計數(shù),打散后一個周期是63個GCLK,必須設(shè)計一個63計數(shù)器。本文利用n bit m序列周期為2n-1的特性來產(chǎn)生一個清零信號,進而得到63計數(shù)器。雖然m序列在一個周期內(nèi)產(chǎn)生的數(shù)值是無規(guī)律變化的,但不同周期的m序列在同一個狀態(tài)上數(shù)值是相同的[4]。因此,在每一個m序列周期的固定值處產(chǎn)生一個清零信號,將一個二進制計數(shù)器計數(shù)到62時進行清零,便得到了一個63計數(shù)器。
選擇特征方程為 f(x)=x6+x+1的 m序列發(fā)生器,其電路如圖3所示。por_upb為por_up取反(本文中所有的邏輯門均用負邏輯來表示[5]),clru是抓取con的上升沿產(chǎn)生的信號,兩個信號相“或非”作為m序列的清零信號,清零時,m序列的輸出b[5..0]=000001。一個周期的m 序列輸出為 1、2、5、10、21、…、48、32、0。
圖3 6 bit的m序列發(fā)生器
清零信號產(chǎn)生電路如圖 4所示。 將 b5、b4、b3、b2、b1、b0相“或非”,當 b[5..0]=000000 時,輸出 xx為 0,作為63計數(shù)器的清零信號,D觸發(fā)器用來清除 “或非”后產(chǎn)生的毛刺。
圖4 清零信號產(chǎn)生電路
異步計數(shù)器在清零時會多出一個狀態(tài),所以利用全加器設(shè)計同步63計數(shù)器,如圖5所示。
圖5 63計數(shù)器
當清零信號 xx為 0時,輸出 c[5..0]=000000;當 xx為1時,c[5..0]加1計數(shù),計數(shù)到62,計數(shù)周期為63 GCLK。為了和一個完整的PWM計數(shù)周期同步,在con的下降沿,c[5..0]必須從0開始計數(shù),其清零是通過控制m序列來實現(xiàn)的。在圖3電路中,m序列在清零時會多出一個狀態(tài),所以選擇b[5..0]=000001前一個狀態(tài)的值,即b[5..0]=000000時來產(chǎn)生63計數(shù)的清零信號。如圖4電路所示,D觸發(fā)器在清除毛刺的同時延遲了一個周期,所以在con的上升沿時xx=0,c[5..0]清零。又因為m序列在清零時多出一個狀態(tài)的緣故,在64個GCLK之后下一個清零信號xx才產(chǎn)生。于是,在con為1時,c[5..0]從 0計數(shù)到 63,共 64個 GCLK;在 con為 0時,c[5..0]從0計數(shù)到62,為63個GCLK。這樣一個PWM 周期為 64×63 GCLK+1×64 GCLK=4 096 GCLK,從而實現(xiàn)了計數(shù)同步。
另外,根據(jù)m序列的周期為63 GCLK的特性,將x作為計數(shù)電路的時鐘,產(chǎn)生高位的計數(shù)器,如圖6所示。clrd為抓取con的下降沿后取反獲得的信號,和por_upb“或非”后對計數(shù)器清零。在 con的下降沿 c[11..6]從 0開始計數(shù),由于時鐘x的原因,c[11..6]的每個狀態(tài)有63個 GCLK,因此,在 con為 0時的 4 032個 GCLK就完成了0到63計數(shù)。在con為1時,LSB的比較只用到計數(shù)器n[5..0]的值,因此此時不需要對 c[11..6]的數(shù)值進行處理,只需在 con的下降沿將c[11..6]清零,實現(xiàn)各個計數(shù)器之間的同步。
圖6 高位計數(shù)電路
計數(shù)器 c[11..6]和 c[5..0]同步,可以通過對計數(shù)器位的選擇得到4種不同模式的計數(shù)電路,如圖7所示。
圖7 模式選擇電路
當輸入信號 sel[1..0]=00時,conb0=0,此時 cnt[11..6]=cb[5..0],MSB周期為 63 GCLK,打散 64次;當 sel[1..0]=01 時,conb1=0,此時 cnt[11..6]=cb[7..2],計數(shù)器左移了兩位,頻率變?yōu)樵瓉淼?/4,MSB周期為252 GCLK,打散 16次;當 sel[1..0]=10時,conb2=0,此時 cnt[11..6]=cb[9..4],計數(shù)器左移了 4位,頻率變?yōu)樵瓉淼?1/16,MSB周期為 1 008 GCLK,打散 4次;當 sel[1..0]=11時,conb3=0,此時 cnt[11..6]=nb[11..6],為 12 bit計數(shù)器的高6 bit,進行正常的PWM計數(shù),脈沖未打散。
將輸入影像數(shù)據(jù)與計數(shù)值進行比較得到占空比不同的輸出波形,從而控制燈的導通時間,比較器的電路如圖8所示。
圖8 比較器電路
cn[11..6]為 12 bit計數(shù)器的高6位,是前面電路中cnt[11..6]取反的結(jié)果。cn[5..0]=n[5..0]為 12 bit計數(shù)器的低 6 bit,data[11..0]為 12 bit的輸入影像數(shù)據(jù),pwm為脈沖未打散的輸出,pwmh為高6 bit的比較結(jié)果,pwml為低6 bit的比較結(jié)果。
利用與非門組成的SR鎖存器特性,進行輸入數(shù)據(jù)與計數(shù)值的比較。por_up=0時,D觸發(fā)器初始化,S=0,R=1,輸出 pwm=0。 如輸入 data[11..0]=010011 101100,當計數(shù)值 cn[11..0]=000000 000000 時,S=1,R=0,pwm輸出為 1;cn[11..0]=000000 000001 時,S=0,R=0,pwm輸出保持為 1;直到 cn[11..0]=data[11..0]時,S=0,R=1,此時,pwm的輸出變?yōu)?0。下一個狀態(tài)時,S=0,R=0,輸出為0并一直保持到一個周期結(jié)束。這樣就完成了一個12 bit的比較,用同樣的方法進行高6 bit的比較以及低6 bit的比較。
圖9 輸出選擇電路
圖10 4種模式下輸出的波形圖
最終的輸出選擇電路如圖9所示。根據(jù)計數(shù)模式的不同,從3路比較結(jié)果中得到1路輸出。con3為1(即模式 3)時,輸出為 pwm的比較結(jié)果;con3為 0(即模式 0、模式 1或者模式 2)時,若 cond為 1,則輸出 pwmh的比較結(jié)果,若cond為0,則輸出pwml的比較結(jié)果。經(jīng)過一系列的組合邏輯之后會出現(xiàn)毛刺,因此在最終輸出之前加一個D觸發(fā)器,這樣就得到了最終的輸出SPWM。
圖10是當輸入數(shù)據(jù) data[11..0]=101100 010110(十進制為 2 838,高 6 bit為 44,低 6 bit為 22)時,4種計數(shù)模式在MAX+PlusⅡ下的仿真波形圖。
從仿真的波形圖可以看出,模式0、模式1和模式2在con為0時spwm選擇輸出pwmh的結(jié)果,在con為1的時候spwm選擇輸出pwhl的結(jié)果。它們的MSB分別被打散了 64次、16次、4次,也就是將頻率分別提高了 64倍、16倍、4倍。模式3為正常的PWM計數(shù)。
目前,LED驅(qū)動芯片中灰度計數(shù)時鐘頻率可達25MHz[6],用傳統(tǒng)PWM計數(shù)的方法,灰度等級為16位時,靜態(tài)掃描刷新率僅為380 Hz。用打散64次的計數(shù)方式,灰度等級同樣為16位,可將灰階時鐘頻率降為4 MHz的同時刷新率提高到3.9 kHz。很好地解決了時鐘頻率與灰度等級的矛盾問題,降低灰階時鐘頻率的同時也降低了電磁干擾。
本文設(shè)計了用邏輯電路來實現(xiàn)脈沖打散的方法,用m序列來產(chǎn)生63計數(shù)器,同時利用SR鎖存器實現(xiàn)數(shù)據(jù)比較。該設(shè)計大大降低了電路的復雜程度,用最少的門電路完成設(shè)計,使后端的版圖面積更小,成本更低。
[1]蘇信華.可提高影像刷新率及低電磁干擾的高灰度LED驅(qū)動芯片[J].現(xiàn)代顯示,2007(10):66-68.
[2]Macroblock.MBI5031 preliminary datasheet v2.00[Z].2006.
[3]Wu Bin,Zhang Pu.Algorithm of dispersed PWM and dynamic refresh mode for LED display[C].2011 International Conference on Control,Automation and System Engineering(CASE), 2011: 1-3.
[4]樊昌信,曹麗娜.通信原理(第六版)[M].北京:國防工業(yè)出版社,2007.
[5][日]小林芳直.數(shù)字邏輯電路的 ASIC設(shè)計[M].北京:科學出版社,2004.
[6] SVILAINIS L.LED brightness control for videodisplay application[J].Displays, 2008,29(6):506-511.