高立民,王衛東
(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
作為信息顯示產品,LED顯示屏以其大屏幕及高清晰度被廣泛應用在高樓、廣場、體育場館等空間開闊的場所來顯示豐富多彩的信息。為了提高畫面的質量,LED顯示屏對畫面的灰度等級和刷新率的要求越來越高,如要求畫面更加細膩、色彩更加豐富且在播放畫面時人眼不會感到閃爍。提升視覺刷新率的方法有提高灰階時鐘頻率、降低畫面灰階數和將脈沖打散[1]。由于硬件的限制,灰階時鐘頻率的提升幅度有限,而降低畫面的灰階會降低畫面的分辨率,因此本文采用脈沖打散的方法設計了一種提升視覺刷新率的邏輯電路。
計數模式如圖1所示。傳統的PWM計數方式在一個周期里計數一次,LED燈只點亮1次,如圖1中模式3所示。這對GCLK的要求較高,當GCLK的頻率達不到要求時,LED顯示屏就會因為刷新率不夠而出現閃爍。
打散的PWM計數方式把一個PWM周期分解成最重要位(MSB)與最不重要位(LSB)的灰階周期,因為MSB的數據在圖像顯示中起主要作用,故將MSB的計數打散以提高視覺刷新率[2](與之類似的有Dispersed PWM算法[3])。MSB的計數周期打散后重復更新多次,再加上一次LSB的計數周期,便可達到和未分解成MSB與LSB的PWM一樣的高位分辨率。圖1中,高6 bit為MSB,低 6 bit為 LSB。模式 0時,將 MSB打散 64次,一個打散的 PWM周期為(26-1)×26+26GCLK,恰好為一個傳統的PWM計數周期,這樣就將刷新率提高了64倍。

圖1 計數模式

圖2 12 bit計數器
通過改變脈沖打散的次數,可以得到不同的刷新率。在下面的邏輯電路中設計了4種打散方式,分別為64次、16次、4次和1次,以供用戶在使用時根據實際需要靈活地進行選擇。
12 bit加法計數器設計電路如圖2所示。其中,gclock為計數時鐘,por_up是上電復位信號,用來對D觸發器初始化。CLRN為觸發器的低電平清零端,當por_up為 0時,12 bit輸出 n[11..0]=111111 111111;當 por_up為 1時,n[11..0]開始加 1計數。
利用12 bit計數器的輸出值產生一個選擇信號。高6 bit n[11..6]=111111時,con=1,計數值從 4 032到 4 095共64個GCLK,此時選擇輸出LSB的比較結果。剩余 4 032個GCLK,con=0,選擇MSB的比較結果。
63計數器的設計原理如下。圖1中,LSB計數時,其周期為64個GCLK,此時的計數值恰好為12 bit計數器的低6 bit n[5..0]。而對于MSB的計數,打散后一個周期是63個GCLK,必須設計一個63計數器。本文利用n bit m序列周期為2n-1的特性來產生一個清零信號,進而得到63計數器。雖然m序列在一個周期內產生的數值是無規律變化的,但不同周期的m序列在同一個狀態上數值是相同的[4]。因此,在每一個m序列周期的固定值處產生一個清零信號,將一個二進制計數器計數到62時進行清零,便得到了一個63計數器。
選擇特征方程為 f(x)=x6+x+1的 m序列發生器,其電路如圖3所示。por_upb為por_up取反(本文中所有的邏輯門均用負邏輯來表示[5]),clru是抓取con的上升沿產生的信號,兩個信號相“或非”作為m序列的清零信號,清零時,m序列的輸出b[5..0]=000001。一個周期的m 序列輸出為 1、2、5、10、21、…、48、32、0。

圖3 6 bit的m序列發生器
清零信號產生電路如圖 4所示。 將 b5、b4、b3、b2、b1、b0相“或非”,當 b[5..0]=000000 時,輸出 xx為 0,作為63計數器的清零信號,D觸發器用來清除 “或非”后產生的毛刺。

圖4 清零信號產生電路
異步計數器在清零時會多出一個狀態,所以利用全加器設計同步63計數器,如圖5所示。

圖5 63計數器
當清零信號 xx為 0時,輸出 c[5..0]=000000;當 xx為1時,c[5..0]加1計數,計數到62,計數周期為63 GCLK。為了和一個完整的PWM計數周期同步,在con的下降沿,c[5..0]必須從0開始計數,其清零是通過控制m序列來實現的。在圖3電路中,m序列在清零時會多出一個狀態,所以選擇b[5..0]=000001前一個狀態的值,即b[5..0]=000000時來產生63計數的清零信號。如圖4電路所示,D觸發器在清除毛刺的同時延遲了一個周期,所以在con的上升沿時xx=0,c[5..0]清零。又因為m序列在清零時多出一個狀態的緣故,在64個GCLK之后下一個清零信號xx才產生。于是,在con為1時,c[5..0]從 0計數到 63,共 64個 GCLK;在 con為 0時,c[5..0]從0計數到62,為63個GCLK。這樣一個PWM 周期為 64×63 GCLK+1×64 GCLK=4 096 GCLK,從而實現了計數同步。
另外,根據m序列的周期為63 GCLK的特性,將x作為計數電路的時鐘,產生高位的計數器,如圖6所示。clrd為抓取con的下降沿后取反獲得的信號,和por_upb“或非”后對計數器清零。在 con的下降沿 c[11..6]從 0開始計數,由于時鐘x的原因,c[11..6]的每個狀態有63個 GCLK,因此,在 con為 0時的 4 032個 GCLK就完成了0到63計數。在con為1時,LSB的比較只用到計數器n[5..0]的值,因此此時不需要對 c[11..6]的數值進行處理,只需在 con的下降沿將c[11..6]清零,實現各個計數器之間的同步。

圖6 高位計數電路
計數器 c[11..6]和 c[5..0]同步,可以通過對計數器位的選擇得到4種不同模式的計數電路,如圖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],計數器左移了兩位,頻率變為原來的1/4,MSB周期為252 GCLK,打散 16次;當 sel[1..0]=10時,conb2=0,此時 cnt[11..6]=cb[9..4],計數器左移了 4位,頻率變為原來的 1/16,MSB周期為 1 008 GCLK,打散 4次;當 sel[1..0]=11時,conb3=0,此時 cnt[11..6]=nb[11..6],為 12 bit計數器的高6 bit,進行正常的PWM計數,脈沖未打散。
將輸入影像數據與計數值進行比較得到占空比不同的輸出波形,從而控制燈的導通時間,比較器的電路如圖8所示。

圖8 比較器電路
cn[11..6]為 12 bit計數器的高6位,是前面電路中cnt[11..6]取反的結果。cn[5..0]=n[5..0]為 12 bit計數器的低 6 bit,data[11..0]為 12 bit的輸入影像數據,pwm為脈沖未打散的輸出,pwmh為高6 bit的比較結果,pwml為低6 bit的比較結果。
利用與非門組成的SR鎖存器特性,進行輸入數據與計數值的比較。por_up=0時,D觸發器初始化,S=0,R=1,輸出 pwm=0。 如輸入 data[11..0]=010011 101100,當計數值 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的輸出變為 0。下一個狀態時,S=0,R=0,輸出為0并一直保持到一個周期結束。這樣就完成了一個12 bit的比較,用同樣的方法進行高6 bit的比較以及低6 bit的比較。

圖9 輸出選擇電路

圖10 4種模式下輸出的波形圖
最終的輸出選擇電路如圖9所示。根據計數模式的不同,從3路比較結果中得到1路輸出。con3為1(即模式 3)時,輸出為 pwm的比較結果;con3為 0(即模式 0、模式 1或者模式 2)時,若 cond為 1,則輸出 pwmh的比較結果,若cond為0,則輸出pwml的比較結果。經過一系列的組合邏輯之后會出現毛刺,因此在最終輸出之前加一個D觸發器,這樣就得到了最終的輸出SPWM。
圖10是當輸入數據 data[11..0]=101100 010110(十進制為 2 838,高 6 bit為 44,低 6 bit為 22)時,4種計數模式在MAX+PlusⅡ下的仿真波形圖。
從仿真的波形圖可以看出,模式0、模式1和模式2在con為0時spwm選擇輸出pwmh的結果,在con為1的時候spwm選擇輸出pwhl的結果。它們的MSB分別被打散了 64次、16次、4次,也就是將頻率分別提高了 64倍、16倍、4倍。模式3為正常的PWM計數。
目前,LED驅動芯片中灰度計數時鐘頻率可達25MHz[6],用傳統PWM計數的方法,灰度等級為16位時,靜態掃描刷新率僅為380 Hz。用打散64次的計數方式,灰度等級同樣為16位,可將灰階時鐘頻率降為4 MHz的同時刷新率提高到3.9 kHz。很好地解決了時鐘頻率與灰度等級的矛盾問題,降低灰階時鐘頻率的同時也降低了電磁干擾。
本文設計了用邏輯電路來實現脈沖打散的方法,用m序列來產生63計數器,同時利用SR鎖存器實現數據比較。該設計大大降低了電路的復雜程度,用最少的門電路完成設計,使后端的版圖面積更小,成本更低。
[1]蘇信華.可提高影像刷新率及低電磁干擾的高灰度LED驅動芯片[J].現代顯示,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].北京:國防工業出版社,2007.
[5][日]小林芳直.數字邏輯電路的 ASIC設計[M].北京:科學出版社,2004.
[6] SVILAINIS L.LED brightness control for videodisplay application[J].Displays, 2008,29(6):506-511.