李相國,姚曉魁,趙廣河
(河南工業大學 信息科學與工程學院,河南 鄭州 450001)
發光二極管(LED)具有色彩鮮艷、亮度高、壽命長及可靠性高等眾多優點[1],因而LED顯示屏在戶外多媒體廣告、體育場館賽事播報、市政廣場及城市亮化工程、以及商場購物中心等眾多場合獲得廣泛應用。從早期的單色發展到彩色全彩色,從簡單的文本顯示發展到復雜的圖像視頻顯示,畫面越來越完美,功能越來越強大。
根據人眼視覺系統的三基色原理,全彩色LED顯示屏中每一個像素由紅綠藍3種顏色的LED組成,并通過調節3種LED的發光亮度來合成人眼視覺上的任意顏色[2]。理論上,LED的發光亮度與流經的前向電流大小成正比,但是,隨著電流的變化,不但發光亮度有改變,色度也會發生偏移[3]。因此,在全彩色LED顯示屏設計中,不適合采用直接改變LED電流大小方式來調節其發光亮度,而普遍采用恒流驅動但改變LED通斷時間的方式,利用人眼視覺系統的暫留效應,從而產生亮度改變的視覺效果。這種調節通斷的方法可以采用脈寬調制(PWM)技術實現。由于全彩色LED顯示屏需要對每一個LED進行獨立的亮度控制,而在傳統的靜態驅動方案中,由于顯示屏中LED數以萬計,因此對PWM驅動芯片需求量較大,使得顯示屏的功耗及成本較高;而在傳統的動態掃描驅動方案中,由于對LED采用分時導通方式,因此可能存在閃爍問題,并犧牲掉部分亮度范圍。
近幾年來,隨著信息技術的發展,嵌入式系統得到越來越廣泛的應用。本文在分析比較傳統靜態驅動與動態掃描驅動優缺點基礎上,結合嵌入式系統功能靈活的特點,提出一種基于模擬PWM功能的全彩色LED顯示屏方案。在該方案中,每個LED都對應一個用于信息存儲及通斷控制的D觸發器,陣列中所有D觸發器構成一個存儲陣列,對存儲陣列進行信息更新就可以改變屏幕LED的通斷狀態,而按照每個像素PWM二進制序列串的值對存儲陣列進行周期有序的掃描及信息更新,就可以對每一個LED實現PWM控制功能。實際上是利用D觸發器的狀態保持功能,并結合掃描方式來實現全部的PWM波形,從而代替實際的PWM硬件芯片。本文對該方案的組成及工作原理進行了詳細的介紹,對掃描控制器進行了分析與設計,并對系統的參數及可行性進行了分析。

圖1 系統組成框圖Fig.1 Block diagram of the system
該方案的系統組成如圖1所示,它由數據處理模塊和顯示驅動模塊組成,兩個模塊通過雙端RAM進行數據傳遞。數據處理模塊是一個嵌入式系統,它負責接收圖像/視頻數據,并依次對每幀圖像數據進行校正處理、像素灰度值的PWM序列化展開與格式重組、寫入雙端RAM等步驟;它僅對新數據進行處理,若無新數據則處于等待狀態。顯示驅動模塊主體是一個LED陣列,且每個LED均對應一個D觸發器,用于信息存儲及LED通斷控制,并通過一個掃描控制器周期循環地從雙端RAM中讀取掃描數據然后寫入LED陣列對應單元的D觸發器,從而用模擬手段實現對全部LED的PWM亮度控制功能。
在該方案中,數據處理模塊負責信號處理相關的所有工作。比如,對LED的亮度及色度校正處理,傳統方案一般直接啟用PWM驅動芯片的校正功能,本方案通過軟件處理方式對數據進行校正處理。此外,軟件處理方式具有相當的靈活性,可以方便地添加新功能及算法更新,比如,可以根據傳感器的輸入對數據進行實時調整,實現顯示屏亮度匹配環境變化。從兩個模塊的工作模式看,數據處理模塊僅在有新數據時工作,而顯示驅動模塊則是周期循環地工作。因此,兩個模塊之間任務分割清晰,從而使得兩個模塊可以獨立工作。
數據處理模塊主要完成數據接收、數據校正、數據PWM序列化與重組、以及寫入雙端RAM等步驟,其工作流圖如圖2所示。其僅在新數據到來時觸發一次完整的數據處理流程,若無新數據則處于等待狀態。
由于LED芯片、外圍電路以及工作條件等方面存在個體及局部差異因素,使得陣列中不同LED在發光特性方面可能存在差異,主要包括亮度和色度兩個指標。具體來說,對于同一種顏色LED,它們對于相同的數值驅動可能表現出發光亮度與發光色度等方面的不同,即LED面板陣列可能存在均勻一致性方面的問題。因此,在LED顯示屏的設計與使用過程中需要進行亮度校正與色度校正處理[4-5]。

圖2 數據處理模塊工作流程圖Fig.2 Flowchart of the data processing module
亮度與色度的物理含義截然不同,但是,根據人眼視覺系統的三基色原理,通過三基色的不同比例混合可以產生人眼視覺上的其它顏色,反過來說,假如某個LED發光時的色度發生了偏移,則可以看作是標準三基色LED以某種亮度比例混合的結果。因此,亮度校正和色度校正的含義不同但又密切聯系在一起,實質上都是針對選定基準進行的亮度校正,其中,亮度校正以單個LED為基本單元進行校正,而色度校正以像素為基本單元對三色LED進行聯合亮度校正。已有研究者提出了多種校正算法及方案[6-9],這里不再展開論述。
經過校正系統的測量及分析處理后,即可獲得校正系數并用于校正處理。如前所述,傳統硬件PWM驅動方案一般啟用PWM芯片提供的“點校正”功能[10]。本方案把校正處理移到前端的數據處理模塊中,采用軟件處理方式實現,這樣可以靈活地選用校正算法,也可以方便地進行算法更新及添加新的功能,比如添加γ校正功能[11]。
值得說明的是,校正處理針對面板陣列中不同LED在各自恒流工作時表現出來的差異問題,對各自驅動數據進行預補償處理,使得最終顯示效果保持一致;由于并不能調節LED本身及外圍電路的參數,它屬于事后補償措施。以亮度校正為例,要實現所有LED亮度一致,必然需要以發光亮度最低的LED為基準,相應地下調其他LED的對應數值,即亮度校正會引起亮度損失;同時,盡管亮度校正不會引起數據溢出,即數據位數保持不變,但經校正LED的驅動數值減小,有效量化階次也相應減少,從量化角度看,量化階次減少對應信噪比變差,而且,LED之間的量化差異可能影響視覺效果。因此,在顯示屏裝配前需要進行元器件篩選,盡量從源頭上提高LED的一致性。
后來等到宮寶田護主再回北京時,已經物是人非了,昔日的京城武林落得一片凄涼,宮寶田不知道是出于傷感還是什么,于1905年稱病離開宮廷,回到山東老家,從此深居簡出,16年不談朝廷江湖,更不在人前炫耀自己的功夫。
數據處理模塊最主要的任務是生成顯示驅動模塊的掃描數據,這通過兩個步驟來完成。首先,把圖像數據轉換為二進制序列串,其中‘1’的數目等于圖像數據的數值大小。比如,對于8位整型數據,它最大數值為255,則把每個數據分別展開為一個255長度的二進制序列串,如下面所示。

上面的展開方式及表達式可以稱作線性PWM(LPWM),即序列串中‘1’從起始位置連續分布。這意味著絕大多數LED在每個PWM掃描周期開始時導通而在掃描周期結束時關閉,即LED陣列的工作狀態出現整體性周期起伏,給電源系統帶來很大壓力。為了緩解這個問題,可以將PWM序列中‘1’打散,比如二值加權PWM(BPWM)和譜增強型PWM(ES-PWM)[12]。
然后,對得到的PWM序列串重組,重組數據格式與顯示驅動模塊的工作模式相對應。顯示驅動模塊的工作特點是周期性地對LED陣列進行逐行掃描,并把每行像素中的紅綠藍三色LED當作依次排列的三行LED對待。因此,在數據重組時,按照LED的行次序進行,如圖3所示。

圖3 數據的PWM序列展開及重組示意圖Fig.3 Illustration of data PWM expansion and reorganization
圖3中各個參數的含義分別為:SC表示LED陣列中每一行的LED個數,即陣列的列數;SA為陣列中單色LED的個數,即像素行數乘以像素列數;DW表示掃描時的數據寬度,即重組時每DW位作為一組;PSA表示每一行生成的數據單元個數,它等于SC/DW;PSB表示每一位生成的數據個數,它等于3×SA/DW;PSC表示全部數據個數,它等于255×PSB。
數據重組依照序列串位次序進行,以掃描數據寬度DW為基本單位,DW也等于雙端RAM的數據寬度。在每一位數據重組時,按照行的次序進行重組,且三色LED交織進行;首先對藍色分量的第一行進行重組,其次是綠色分量的第一行,然后是紅色分量的第一行,之后轉入藍色分量的第二行,依次類推:在每一行重組時,依次把DW位組成一個數據單元后連續存放;待全部重組完成后,把得到的數據寫入雙端RAM,并從起始位置開始存儲。完成一次掃描數據生成后,等待下一幀數據的到來。
顯示驅動模塊是LED顯示屏的主體,它由LED陣列和掃描控制器組成,并通過掃描控制器對LED陣列的周期循環掃描實現圖像/視頻顯示。
LED陣列中的紅綠藍三色LED采用如圖4(a)所示倒“品”字型結構;電路連接如圖4(b)所示,其中,每一像素行被當作獨立且連續的3行LED;LED單元有兩種實現方式,如圖4(c)所示。LED陣列通過地址總線和數據總線接收掃描控制器的輸入,其中,高位地址總線經過地址譯碼器生成陣列的行地址信號,低位地址總線接入多路分解器的選通信號,并生成(分組)列譯碼地址信號,行地址信號與列地址信號兩兩經過與門后用于LED單元組的選通,接入相應組D觸發器的時鐘輸入端;數據總線輸入經過多路分解器后生成相應列(組)單元的數據輸出,每一列輸出接入該列LED單元D觸發器的數據輸入端。由于使用D觸發器控制LED通斷,每組LED在下一次掃描到來之前保持狀態穩定,消除了傳統掃描法常見的閃爍問題。

圖4 LED陣列組成示意圖Fig.4 Illustrations of the LED array
根據LED的PWM亮度控制原理,以一定占空比的方波控制LED的通斷就可以產生人眼視覺上某個亮度。在本方案中,按照時間間隔要求周期性地把PWM二進制序列串值寫入LED單元的D觸發器,就可以實現對該LED的PWM亮度控制;對于整個LED陣列,只要能夠在一個時間間隔內把所有D觸發器掃描一遍,并且周期性掃描就可以實現對整個LED顯示屏的PWM亮度控制。在3.2小節已經按照LED陣列工作方式生成了逐行掃描數據。
掃描控制器的基本操作是從雙端RAM讀取數據,并寫入LED陣列對應單元D觸發器,其工作流程圖如圖5所示。使用兩個計數器C0和C1分別用于生成讀取地址和寫入地址;由于從雙端RAM起始位置開始讀取,C0的初始值為0;把C0值作為地址向雙端RAM讀取數據,并把讀得的數據連同C1值分別寫入LED陣列的數據總線和地址總線接口;完成一次基本操作后等待下一次掃描時刻的到來,時刻到來則C0和C1計數一次,判斷C0值是否到達上限(即掃描數據的最大存儲地址),如是則回到起始狀態,否則C0值仍有效,繼續判斷C1值是否到達上限(即LED陣列最后單元組的地址),如是則清零,否則C1值仍有效,之后根據C0和C1值進行下一次基本操作。通過這種周期循環掃描就可以實現LED陣列的PWM亮度控制及顯示,若雙端RAM中數據不更新則顯示靜態畫面,若雙端RAM中數據隨著視頻輸入實時更新則LED陣列顯示動態畫面。

圖5 顯示驅動模塊工作流程圖Fig.5 Flowchart of the display module
如前所述,數據處理模塊和顯示驅動模塊通過雙端RAM進行數據傳遞,即前者向雙端RAM寫入掃描數據,而后者從雙端RAM中讀取數據。由于雙端RAM的兩個端口彼此獨立,當兩個端口同時向同一存儲單元操作時,可能引起訪問數據的沖突(Collision)問題。為保障數據安全可靠,雙端RAM芯片一般都集成了沖突仲裁邏輯單元,其中,常用的防沖突機制包括中斷方式、Busy信號以及信號量(Semaphore)等[13]。
本方案中兩個模塊之間是單向數據傳遞,且數據處理模塊向雙端RAM高速集中地寫入,而顯示驅動模塊從雙端RAM中周期讀取,因此,可能出現的訪問沖突情形比較簡單,Busy信號方式適合本系統。此外,掃描控制器的工作特點使得其更適合于CPLD硬件實現。
掃描控制器從雙端RAM讀入數據,并把讀得的數據寫入LED陣列的對應單元,即需要產生正確的地址信號。由于掃描控制器周期循環地工作,地址信號發生器使用兩個循環計數器實現。
系統使用Busy信號防沖突機制,當Busy信號有效時掃描控制器暫停工作,即地址計數器需要暫停計數,因此,在計數器設計中添加了使能信號控制。而且,為實現自動循環計數,在計數器設計中添加了異步復位功能。
根據掃描控制器工作原理,進行掃描控制器的設計,代碼綜合后得到如圖6(a)所示模塊。其中,信號 busy、clk、cs、oe、re、read_addr、data_in屬于雙端RAM接口信號,rgb_addr和data_out屬于LED陣列接口信號,信號rst用于上電后地址計數器復位,確保兩個地址計數器起始一致。
功能仿真結果如圖6(b)所示。由于掃描控制器僅從雙端RAM中讀取數據,為簡單起見,仿真時使用一個ROM來代替雙端RAM,并通過調用Quartus II參數化模塊庫(LPM)中的ROM模塊實現。仿真中設定ROM大小為16個單元,數據寬度為8,并依次存儲1~16的整型數據。此外,對地址信號rgb_addr做了延時處理使得與讀出數據保持時間同步。從圖中可以看出,當復位信號rst保持有效時(設計中使用高電平有效),地址信號read_addr和rgb_addr復位為0并保持不變,保證了兩個地址計數器起始一致;復位信號rst失效后,掃描控制器開始正常工作,依次讀取數據并傳遞給data_out接口;圖中也仿真了沖突時

(a)掃描控制器RTL圖(a)RTL diagram of the scan controller

圖6 掃描控制器的RTL圖與仿真結果Fig.6 RTL diagram and simulation results of the scan controller
的情形,當busy有效時(低電平有效),計數器停止計數,接口信號保持不變;仿真中PWM序列每一位生成8個數據,當地址rgb_addr達到7時自動復位,回到LED陣列的起始位置;仿真中PWM序列生成16個數據,當地址read_addr達到15時自動復位,回到雙端RAM的起始位置,實現了不間斷循環讀取。
進一步設計LED陣列外圍控制電路,并與掃描控制器一起構成較為完整的顯示驅動模塊,得到如圖7(a)所示模塊。在LED外圍控制電路中,data_in和rgbaddre_in分別為輸入接口的數據信號和地址信號,address_line_out和address_column_out分別為LED陣列的行譯碼輸出和分組列譯碼輸出,rgb_dat a_out為輸入數據data_in經過多路分解器的輸出,其寬度等于LED陣列的列數。盡管每一像素行等價于3個LED行,從掃描角度看它們并沒有區別;仿真中假定行譯碼address_line_out寬度為2,即LED陣列為32列2行;仿真中輸入數據data_in寬度等于8,即掃描時以8位進行分組,所以,列譯碼address_column_out寬度為4,即每一行被分為4組。

圖7 顯示驅動模塊的RTL圖與仿真結果Fig.7 RTL diagram and simulation results of the display module
功能仿真結果如圖7(b)所示。根據LED陣列電路設計,address_line_out與address_column_out兩兩經過與門生成組選通信號,然后接入相應組D觸發器的時鐘信號端。因此,僅當行譯碼與列譯碼同時選通時,組選通信號才會產生一個從‘0’到‘1’的上升沿跳變,從而觸發該組D觸發器的數據選通,而其他組D觸發器保持不變。從仿真圖中可以看出,掃描控制器周期循環地從雙端RAM讀取數據并傳遞給LED陣列,在行譯碼與列譯碼的共同作用下選通對應D觸發器,滿足預期設計功能。
該系統的基本原理是利用D觸發器的狀態保持功能,并結合掃描及信息更新來生成每個LED的PWM驅動波形,即用傳統動態掃描方式實現了傳統靜態驅動方案中由PWM芯片完成的功能。如前所述,由于顯示屏中LED數以萬計,且每一個LED都需要獨立的PWM亮度控制,因此,與傳統靜態驅動方案相比,本方案用模擬方式代替大量的PWM芯片,系統功耗及成本大為降低,更加綠色環保。另一方面,該方案不同于傳統動態掃描中的分時導通方式,因此,它不存在傳統動態掃描方案中的閃爍及亮度損失問題。
在傳統硬件PWM驅動方案中,由于所有PWM芯片及LED單元并行工作,存在絕大多數LED同時導通或關閉的可能,即LED陣列工作狀態可能出現整體性快速變化,從而產生浪涌電流(Inrush Current)現象[12],引起電源完整性及電磁干擾等方面的嚴重問題。本方案采用逐組掃描方式,無論起始階段還是正常工作中,陣列中LED狀態是逐組變化,因此,它的電源波動較慢,易實現電壓穩定,從而保證LED陣列的電流平衡及色度穩定。這是掃描方式帶來的一個優點。
此外,該系統中的數據處理與顯示功能分離,而且,把更多的工作轉移到前端數據處理模塊中,用軟件方式完成相應處理。這樣,軟件處理的靈活性便于功能擴展及算法更新。
假定輸入每秒25幀的視頻信號,每幀圖像尺寸為800×600像素,采用8bit量化,則每秒的輸入數據量為:800×600×3×25=36 000 000字節,完成PWM序列化后的數據量為:36 000 000×255=9 180 000 000位;假定掃描控制器按照64位數據寬度進行掃描,則所需工作頻率為9 180 000 000/64=143 437 500Hz,即大約150MHz的時鐘就可以滿足掃描要求。我們注意到,該頻率為雙端RAM到LED外圍控制電路的時鐘速率,可以在電路板上實現,而每組LED的刷新頻率僅為255×25=6 375Hz,即LED外圍控制器到LED單元之間線路的工作頻率不高,對時序及布線要求不高。假如使用傳統LED顯示屏中的模組概念,用較小尺寸顯示屏作為基本單元,則對器件及線路指標要求大為降低,也更容易實現。
提出一種基于模擬PWM功能的全彩色LED顯示屏方案,其基本特點是采用D觸發器進行信息存儲與LED通斷控制,并用掃描方式實現PWM亮度控制功能。本文詳細分析了其工作原理,對掃描控制器進行了分析與設計,分析比較了系統特點,并對系統參數及可行性進行了分析。
[1] 鄧宏貴,梅衛平,曹文暉,等.基于PWM 的 LED 顯示屏像素亮度控制方法[J].光電子技術,2010,30(2):131-134.Deng H G,Mei W P,Cao W H,et al.Based on the PWM of the LED display pixel a brightness control method[J].Optoelectronic Technology,2010,30(2):131-134.(in Chinese)
[2] 趙梓權,王瑞光,鄭喜鳳,等.基于視覺感受的LED顯示屏系統精度分析[J].液晶與顯示,2012,27(3):324-331.Zhao Z Q,Wang R G,Zheng X F,et al.Systemic accuracy analysis of LED displays based on visual perception[J].Chinese Journal of Liquid Crystals and Displays,2012,27(3):324-331.(in Chinese)
[3] 劉祖隆,郭震寧,胡志偉,等.調光方式對LED色溫和光通量的影響[J].華僑大學學報:自然科學版,2013,34(1):14-17.Liu Z L,Guo Z N,Hu Z W,et al.Effect of dimming on LED color temperature and luminous flux[J].Journal of Huaqiao University :Natural Science,2013,34(1):14-17.(in Chinese)
[4] 李熹霖.LED 顯示屏逐點色度亮度校正技術講座[J].現代顯示,2011(7):5-9.Li X L.A lecture on the technology of color and brightness correction of pixel of LED display screen[J].Advanced Display,2011(7):5-9.(in Chinese)
[5] 張俏梅.LED顯示屏色度校正原理與應用[J].現代顯示,2012(9):270-273.Zhang Q M.The principle and application of LED display chroma correction [J].Advanced Display,2012(9):270-273.(in Chinese)
[6] 趙梓權,王瑞光,鄭喜鳳,等.LED顯示屏的色域校正[J].液晶與顯示,2013,28(1):92-98.Zhao Z Q,Wang R G,Zheng X F,et al.Color gamut correction of LED displays[J].Chinese Journal of Liquid Crystals and Displays,2013,28(1):92-98.(in Chinese)
[7] 鄧宏貴,李志堅,郭晟偉.基于LED電脈沖響應的LED顯示屏像素灰度校正方法[J].發光學報,2010,31(1):145-149.Deng H G,Li Z J,Guo S W.Method of gray value correction in LED display screen based on LED electroluminescence response[J].Chinese Journal of Luminescence,2010,31(1):145-149.(in Chinese)
[8] 阮海蓉,夏貴勇.基于照相的LED顯示屏亮度校正方法[J].液晶與顯示,2012,27(2):193-197.Ruan H R,Xia G Y.Brightness correction method of LED display based on photographing[J].Chinese Journal of Liquid Crystals and Displays,2012,27(2):193-197.(in Chinese)
[9] 宋超,王瑞光,馮英翹.LED大屏幕顯示校正系數配置系統[J].液晶與顯示,2013,28(3):392-397.Song C,Wang R G,Feng Y Q.Display calibration coefficient configuration system used in LED panel[J].Chinese Journal of Liquid Crystals and Displays,2013,28(3):392-397.(in Chinese)
[10] Day M.TLC5940PWM dimming provides superior color quality in LED video displays[J].Analog Applications Journal,2006:10-13.
[11] 李軍,吳高英.彩色 LED 顯示屏的γ校正[J].現代顯示,2000(3):46-49.Li J,Wu G Y.Theγcorrection of full color LED [J].Advanced Display,2000(3):46-49.(in Chinese)
[12] Ahn J H.Implementation of an LED tile controller for high-quality image display [J].Displays,2013,34(1):17-26.
[13] 陳德明,熊列彬.雙口 RAM 在自動化系統中的應用[J].國外電子元器件,2005(4):20-23.Chen D M,Xiong L B.Application of dual RAM in automation system [J].International Electronic Elements,2005(4):20-23.(in Chinese)