基于SoC FPGA芯片的異步全彩LED顯示控制器解決方案
1 LED顯示屏市場(chǎng)概況
全彩LED顯示被普遍應(yīng)用于戶外及室內(nèi)的大型廣告、舞臺(tái)背景等場(chǎng)合(大多是同步顯示),隨著價(jià)格的下降,全彩LED顯示已經(jīng)開始被使用于門楣廣告(異步顯示)。當(dāng)前門楣廣告一般采用單雙色LED顯示,市場(chǎng)需求大。與單雙LED相比,全彩LED能夠展現(xiàn)更豐富的內(nèi)容,如真彩圖片,動(dòng)畫,視頻等,全彩LED顯示將是門楣廣告屏的發(fā)展趨勢(shì)。
圖1:中國(guó)LED顯示屏產(chǎn)值(數(shù)據(jù)來源:GLII)
2 市場(chǎng)流行方案的介紹
目前市場(chǎng)上比較流行的方案有以下幾種:
1) ARM-CortexA8 + FPGA解決方案:
圖2:ARM-CortexA8 + FPGA方案框圖
特點(diǎn):功能齊全,其中ARM Cortex-A8可以實(shí)現(xiàn)對(duì)主流視頻格式的解碼,但是方案成本偏高,對(duì)于門楣廣告這種小屏顯示的使用場(chǎng)景來說有些浪費(fèi)。
2) ARM Cortex-M4解決方案:
圖3:ARM Cortex-M4方案框圖
特點(diǎn):結(jié)構(gòu)簡(jiǎn)單,但是由于沒有使用FPGA,ARM Cortex-M4的實(shí)時(shí)性及速度無法滿足全彩LED顯示的控制要求,所以只能實(shí)現(xiàn)“七彩”顯示,而不能實(shí)現(xiàn)真正意義上的全彩顯示。
3) FPGA解決方案:
圖4:單FPGA方案框圖
特點(diǎn):是同步全彩控制系統(tǒng)的一個(gè)衍生產(chǎn)品,實(shí)現(xiàn)簡(jiǎn)單的錄制,功能相對(duì)單一。
3 京微雅格SoC FPGA方案
京微雅格CME-M5系列 FPGA集成了增強(qiáng)型8051 MCU,兼容標(biāo)準(zhǔn)8051指令集,12倍于標(biāo)準(zhǔn)8051的MIPS,頻率最高可達(dá)200MHz,支持高達(dá)8MB數(shù)據(jù)及代碼空間擴(kuò)展,支持硬件32/16- bit MDU(Multiplication Division Unit),128K Byte SPRAM,可作為8051的代碼或數(shù)據(jù)存儲(chǔ)器,集成片上調(diào)試系統(tǒng)OCDS,支持JTAG在線調(diào)試;外設(shè)有3個(gè)16-bit定時(shí)器,1個(gè)16-bit看門狗,1個(gè)I2C接口,1個(gè)SPI接口,2個(gè)USART接口,1個(gè)RTC實(shí)時(shí)時(shí)鐘,8通道DMA;支持STOP,IDLE電源管理模式。支持基于 MSS(Microcontroller Subsystem)的系統(tǒng)編程、系統(tǒng)多配置、系統(tǒng)在線更新、動(dòng)態(tài)頻率切換等特性。CME-M5內(nèi)部結(jié)構(gòu)框圖見圖5.
圖5:京微雅格CME-M5器件結(jié)構(gòu)框圖
在本設(shè)計(jì)中,增強(qiáng)型 8051實(shí)現(xiàn)以太網(wǎng)TCP/IP協(xié)議棧,實(shí)現(xiàn)對(duì)NandFlash / SD卡的訪問,顯示特效處理,并調(diào)度FPGA功能模塊實(shí)現(xiàn)LED顯示。FPGA則負(fù)責(zé)LED刷新控制,其功能包含:灰度控制、刷新率控制、亮度控制、伽馬校正等。PC提供人機(jī)交互,讓用戶通過上位機(jī)軟件編輯“節(jié)目”,即需要最終在LED屏上顯示的內(nèi)容,包含文本,圖片,視頻以及顯示特效,例如百葉窗,流水等;最后上位機(jī)軟件把“節(jié)目”轉(zhuǎn)換成特定的數(shù)據(jù)文件通過以太網(wǎng)傳送給CME-M5,由CME-M5把接收到的數(shù)據(jù)文件寫入NandFlash/SD卡。系統(tǒng)框圖如下:
圖6:基于CME-M5解決方案框圖
CME-M5 FPGA功能描述
1)伽馬校正
根據(jù)LED的響應(yīng)特性,需要對(duì)輸入的8位灰度值進(jìn)行伽馬校正,使之映射到14~16位灰度值,這部分功能是FPGA通過查表方式的實(shí)現(xiàn)的。伽馬校正的參數(shù)可以通過PC上位機(jī)進(jìn)行修改。
2)灰度控制
下面以8bit/256級(jí)灰度作為例子,闡述LED灰度控制原理。對(duì)于RGB三基色LED顯示,256級(jí)灰度意味著R、G、B各使用8bit來表示灰度值(2^8=256,即256級(jí)灰度)。每顆LED有獨(dú)立的R、G、B三個(gè)信號(hào)供FPGA分別控制。
全彩LED驅(qū)動(dòng)芯片通常分為自帶PWM的恒流源以及不帶PWM的恒流源。接下來以不帶PWM的驅(qū)動(dòng)芯片MBI5024為例介紹灰度控制原理。MBI5024的內(nèi)部結(jié)構(gòu)框圖見圖7. FPGA向SDI送入每個(gè)像素點(diǎn)R/G/B灰度值,OUT0~OUT15連接LED的R/G/B,OE_n控制對(duì)應(yīng)每bit灰度值點(diǎn)亮LED時(shí)間的長(zhǎng)短。 8bit/256級(jí)灰度控制,通常使用19場(chǎng)方式,假設(shè)子場(chǎng)的周期為T,那么一個(gè)刷新周期的總時(shí)間為19T.19場(chǎng)被分為8份,時(shí)間分別為 8T,4T,2T,1T,1T,1T,1T,1T;OE_n有效時(shí)間分別為8T,4T,2T,1T,1/2T,1/4T,1/8T,1/16T.
以下介紹如何對(duì)R進(jìn)行灰度控制,G,B的灰度控制原理是類似的。8T對(duì)應(yīng)8bit灰度值的最高位R[7],其刷新的時(shí)間長(zhǎng)度為8T;4T對(duì)應(yīng)8bit灰度值的次高位R[6],其刷新的時(shí)間長(zhǎng)度為4T……1/16T對(duì)應(yīng)最低位R[0],其刷新的時(shí)間長(zhǎng)度為1/16T.如圖8所示, R[7]在T0周期送出,R[6]在T1周期送出,R[5]在T2周期送出……R[0]在T7周期送出。
OUT0~OUT15分別連接第0顆~第15顆LED的R.使用Ri[j]表示第i顆LED的R灰度值的第j位,以下是操作流程:
1. SDI移入 {R0[7], R1[7], R2[7], R3[7], R4[7], R5[7], R6[7], R7[7], R8[7], R9[7], R10[7], R11[7], R12[7], R13[7], R14[7], R15[7]};R15[7]先移入,R0[7]最后移入;
2. 使能LE信號(hào)對(duì)R0[7]~R15[7]鎖存,使能OE_n信號(hào),保持時(shí)間為8T (即時(shí)序圖中的T0周期);在此過程中,SDI移入R0[6]~R15[6]灰度數(shù)據(jù);
3. 使能LE信號(hào)對(duì)R0[6]~R15[6]鎖存,使能OE_n信號(hào),保持時(shí)間為4T(即時(shí)序圖中的T1周期);在此過程中,SDI移入并鎖存R0[5]~R15[5]灰度數(shù)據(jù);
4. 使能LE信號(hào)對(duì)R0[3]~R15[3]鎖存,使能OE_n信號(hào),保持時(shí)間為1/2T(即時(shí)序圖中的T4周期),1/2T后把OE_n信號(hào)置為無效;在此過程中,SDI移入并鎖存R0[2]~R15[2]灰度數(shù)據(jù);
5. 使能LE信號(hào)對(duì)R0[0]~R15[0]鎖存,使能OE_n信號(hào),保持時(shí)間為1/16T(即時(shí)序圖中的T7周期),之后把OE_n信號(hào)置為無效;至此,完成一個(gè)灰度值顯示的刷新周期;
需要說明的是,以上僅以16顆 LED作為例子,實(shí)際應(yīng)用中會(huì)級(jí)聯(lián)多個(gè)MBI5024芯片,即上一級(jí)MBI5024芯片的SDO連接至下一級(jí)MBI5024的SDI,當(dāng)有N個(gè) MBI5024級(jí)聯(lián)的,相當(dāng)于一個(gè)N*16位的移位寄存器,最多可以連接N*16顆LED的R/G/B.操作流程與上面介紹的7個(gè)步驟類似。
圖7:MBI5024器件原理框圖
圖8:8bit/256級(jí)灰度控制時(shí)序圖
在一個(gè)灰度刷新周期內(nèi)(19T),OE總有效時(shí)間為:8T + 4T + 2T + 1T + 1/2T + 1/4T + 1/8T + 1/16T = 15.9375T,亮度的利用率為:15.9375T/(19T)*100%=83.88%,也就是亮度損失為1 - 83.88% = 16.12%.
對(duì)于16bit/65536 級(jí)灰度,常用27子場(chǎng)方式:8T,4T,2T,T,T,T,T,T,T,T,T,T,T,T,T,T;OE_n有效時(shí)間為 8T,4T,2T,1T,1/2T,1/4T,1/8T,1/16T,1/32T,1/64T,1/128T,1/256T,1/512T,1 /1024T,1/2048T,1/4096T;亮度利用率為:15.999755859375 T/(27T)*100%=59.26 %,亮度損失為1 - 59.26 % = 40.74%.
使用不同數(shù)量的子場(chǎng),亮度的利用率是不同的,例如:16bit/65536級(jí)灰度也可以采用42子場(chǎng)方式,即:16T,8T,4T,2T,T,T,T,T,T,T,T,T,T,T,T,T;OE_n有效時(shí)間為16T,8T,4T,2T,T,1/2T,1 /4T,1/8T,1/16T,1/32T,1/64T,1/128T,1/256T,1/512T,1/1024T,1/2048T,亮度利用率為:31.99951171875 T/(42T) *100%=59.26 % = 76.19%,亮度損失為1 - 76.19%= 23.81%.
3)刷新率
驅(qū)動(dòng)芯片的數(shù)據(jù)時(shí)鐘頻率、 LED屏的掃描方式(靜態(tài)~16掃)以及尋址數(shù)固定以后,子場(chǎng)的時(shí)間T也就隨之定下來,以16bit/65536級(jí)灰度為例,如果采用27子場(chǎng)的方式,刷新率約為:F=1/( 27*T),最小OE_n脈寬為T /4096;如果采用42子場(chǎng)的方式,刷新率約為:F=1/( 42*T),最小OE_n脈寬為T /2048.考慮到其他時(shí)間開銷,實(shí)際的刷新率F會(huì)比以上估算值略低。
可以看出在子場(chǎng)時(shí)間T一定的情況下,后者(42T)的刷新率比前者低(27T),但是亮度的利用率比前者高,OE_n最小脈寬比前者長(zhǎng)(對(duì)于驅(qū)動(dòng)芯片來說,OE_n的脈寬最小值是有限制的,當(dāng)脈寬太窄時(shí),驅(qū)動(dòng)芯片將無法識(shí)別),所以,具體設(shè)計(jì)需根據(jù)實(shí)際情況做權(quán)衡。為了提高視覺刷新率(Visual Refresh Rate),可以把灰度值的高位打散成多段分布在刷新周期內(nèi);對(duì)動(dòng)態(tài)掃描屏,還可以把實(shí)現(xiàn)灰度值的所有子場(chǎng)分割成多份,在刷新每一行時(shí),只刷新一部分灰度,加快一行到下一行的切換速度,等所有行都刷新完一部分灰度之后,再接著刷新其他部分灰度,直到灰度值被完整刷新,從而提高視覺刷新率。通過優(yōu)化的 PWM編碼,不僅可以提高視覺刷新率,也能夠提高LED亮度利用率。
CME-M5 8051功能描述
200MHz主頻 8051 MCU是整個(gè)系統(tǒng)的主控,負(fù)責(zé)與PC的通信,實(shí)現(xiàn)TCP/IP協(xié)議棧,通過以太網(wǎng)接收來自于PC端的節(jié)目?jī)?nèi)容,并以文件方式寫入SD卡進(jìn)行節(jié)目更新,同時(shí),8051也負(fù)責(zé)節(jié)目特效處理; 另外,8051采集溫度傳感器、濕度傳感器信息,顯示在LED屏幕上;采集環(huán)境光傳感器,實(shí)現(xiàn)亮度自動(dòng)調(diào)節(jié);通過紅外遙控實(shí)現(xiàn)節(jié)目切換。CME-M5已集成了RTC實(shí)時(shí)時(shí)鐘,無需外擴(kuò)芯片就能夠方便地在全彩LED屏上顯示年,月,日,時(shí),分,秒,星期等信息;支持?jǐn)?shù)字時(shí)鐘及模擬時(shí)鐘顯示。
4 結(jié)語
通過采用FPGA SoC芯片,實(shí)現(xiàn)了針對(duì)門楣廣告市場(chǎng)的異步全彩LED顯示控制器的設(shè)計(jì)方案,由于門楣廣告屏的分辨率一般都不高,CME-M5內(nèi)嵌的200MHz增強(qiáng)型 8051完全可以勝任作為系統(tǒng)主控。方案支持80K像素點(diǎn),16bit/65536級(jí)灰度,視覺刷新率最高支持6000Hz,支持靜態(tài)~16掃屏體類型,支持文字、圖片、動(dòng)畫及簡(jiǎn)單的視頻播放,支持?jǐn)?shù)字時(shí)鐘以及模擬時(shí)鐘顯示,支持溫度及濕度顯示,亮度自動(dòng)調(diào)節(jié),紅外遙控節(jié)目切換。