<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于SoC FPGA芯片的異步全彩LED顯示控制器解決方案

          基于SoC FPGA芯片的異步全彩LED顯示控制器解決方案

          作者: 時間:2013-09-23 來源:網(wǎng)絡(luò) 收藏

          1 顯示屏市場概況

          本文引用地址:http://www.ex-cimer.com/article/174670.htm

          全彩顯示被普遍應(yīng)用于戶外及室內(nèi)的大型廣告、舞臺背景等場合(大多是同步顯示),隨著價格的下降,全彩顯示已經(jīng)開始被使用于門楣廣告(異步顯示)。當(dāng)前門楣廣告一般采用單雙色LED顯示,市場需求大。與單雙LED相比,全彩LED能夠展現(xiàn)更豐富的內(nèi)容,如真彩圖片,動畫,視頻等,全彩LED顯示將是門楣廣告屏的發(fā)展趨勢。

          圖1:中國LED顯示屏產(chǎn)值(數(shù)據(jù)來源:GLII)

          2 市場流行方案的介紹

          目前市場上比較流行的方案有以下幾種:

          1) ARM-CortexA8 + FPGA解決方案:

          圖2:ARM-CortexA8 + FPGA方案框圖

          特點:功能齊全,其中ARM Cortex-A8可以實現(xiàn)對主流視頻格式的解碼,但是方案成本偏高,對于門楣廣告這種小屏顯示的使用場景來說有些浪費。

          2) ARM Cortex-M4解決方案:

          圖3:ARM Cortex-M4方案框圖

          特點:結(jié)構(gòu)簡單,但是由于沒有使用FPGA,ARM Cortex-M4的實時性及速度無法滿足全彩LED顯示的要求,所以只能實現(xiàn)“七彩”顯示,而不能實現(xiàn)真正意義上的全彩顯示。

          3) FPGA解決方案:

          圖4:單FPGA方案框圖

          特點:是同步全彩系統(tǒng)的一個衍生產(chǎn)品,實現(xiàn)簡單的錄制,功能相對單一。

          3 京微雅格SoC FPGA方案

          京微雅格CME-M5系列 FPGA集成了增強型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ù)存儲器,集成片上調(diào)試系統(tǒng)OCDS,支持JTAG在線調(diào)試;外設(shè)有3個16-bit定時器,1個16-bit看門狗,1個I2C接口,1個SPI接口,2個USART接口,1個RTC實時時鐘,8通道DMA;支持STOP,IDLE電源管理模式。支持基于 MSS(Microcontroller Subsystem)的系統(tǒng)編程、系統(tǒng)多配置、系統(tǒng)在線更新、動態(tài)頻率切換等特性。CME-M5內(nèi)部結(jié)構(gòu)框圖見圖5.

          1.jpg

          圖5:京微雅格CME-M5器件結(jié)構(gòu)框圖

          在本設(shè)計中,增強型 8051實現(xiàn)以太網(wǎng)TCP/IP協(xié)議棧,實現(xiàn)對NandFlash / SD卡的訪問,顯示特效處理,并調(diào)度FPGA功能模塊實現(xiàn)LED顯示。FPGA則負(fù)責(zé)LED刷新,其功能包含:灰度控制、刷新率控制、亮度控制、伽馬校正等。PC提供人機交互,讓用戶通過上位機軟件編輯“節(jié)目”,即需要最終在LED屏上顯示的內(nèi)容,包含文本,圖片,視頻以及顯示特效,例如百葉窗,流水等;最后上位機軟件把“節(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)特性,需要對輸入的8位灰度值進(jìn)行伽馬校正,使之映射到14~16位灰度值,這部分功能是FPGA通過查表方式的實現(xiàn)的。伽馬校正的參數(shù)可以通過PC上位機進(jìn)行修改。

          2)灰度控制

          下面以8bit/256級灰度作為例子,闡述LED灰度控制原理。對于RGB三基色LED顯示,256級灰度意味著R、G、B各使用8bit來表示灰度值(2^8=256,即256級灰度)。每顆LED有獨立的R、G、B三個信號供FPGA分別控制。

          全彩LED驅(qū)動芯片通常分為自帶PWM的恒流源以及不帶PWM的恒流源。接下來以不帶PWM的驅(qū)動芯片MBI5024為例介紹灰度控制原理。MBI5024的內(nèi)部結(jié)構(gòu)框圖見圖7. FPGA向SDI送入每個像素點R/G/B灰度值,OUT0~OUT15連接LED的R/G/B,OE_n控制對應(yīng)每bit灰度值點亮LED時間的長短。 8bit/256級灰度控制,通常使用19場方式,假設(shè)子場的周期為T,那么一個刷新周期的總時間為19T.19場被分為8份,時間分別為 8T,4T,2T,1T,1T,1T,1T,1T;OE_n有效時間分別為8T,4T,2T,1T,1/2T,1/4T,1/8T,1/16T.

          以下介紹如何對R進(jìn)行灰度控制,G,B的灰度控制原理是類似的。8T對應(yīng)8bit灰度值的最高位R[7],其刷新的時間長度為8T;4T對應(yīng)8bit灰度值的次高位R[6],其刷新的時間長度為4T……1/16T對應(yīng)最低位R[0],其刷新的時間長度為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信號對R0[7]~R15[7]鎖存,使能OE_n信號,保持時間為8T (即時序圖中的T0周期);在此過程中,SDI移入R0[6]~R15[6]灰度數(shù)據(jù);

          3. 使能LE信號對R0[6]~R15[6]鎖存,使能OE_n信號,保持時間為4T(即時序圖中的T1周期);在此過程中,SDI移入并鎖存R0[5]~R15[5]灰度數(shù)據(jù);

          4. 使能LE信號對R0[3]~R15[3]鎖存,使能OE_n信號,保持時間為1/2T(即時序圖中的T4周期),1/2T后把OE_n信號置為無效;在此過程中,SDI移入并鎖存R0[2]~R15[2]灰度數(shù)據(jù);

          5. 使能LE信號對R0[0]~R15[0]鎖存,使能OE_n信號,保持時間為1/16T(即時序圖中的T7周期),之后把OE_n信號置為無效;至此,完成一個灰度值顯示的刷新周期;

          需要說明的是,以上僅以16顆 LED作為例子,實際應(yīng)用中會級聯(lián)多個MBI5024芯片,即上一級MBI5024芯片的SDO連接至下一級MBI5024的SDI,當(dāng)有N個 MBI5024級聯(lián)的,相當(dāng)于一個N*16位的移位寄存器,最多可以連接N*16顆LED的R/G/B.操作流程與上面介紹的7個步驟類似。

          圖7:MBI5024器件原理框圖

          圖8:8bit/256級灰度控制時序圖

          在一個灰度刷新周期內(nèi)(19T),OE總有效時間為: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%.

          對于16bit/65536 級灰度,常用27子場方式:8T,4T,2T,T,T,T,T,T,T,T,T,T,T,T,T,T;OE_n有效時間為 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ù)量的子場,亮度的利用率是不同的,例如:16bit/65536級灰度也可以采用42子場方式,即:16T,8T,4T,2T,T,T,T,T,T,T,T,T,T,T,T,T;OE_n有效時間為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ū)動芯片的數(shù)據(jù)時鐘頻率、 LED屏的掃描方式(靜態(tài)~16掃)以及尋址數(shù)固定以后,子場的時間T也就隨之定下來,以16bit/65536級灰度為例,如果采用27子場的方式,刷新率約為:F=1/( 27*T),最小OE_n脈寬為T /4096;如果采用42子場的方式,刷新率約為:F=1/( 42*T),最小OE_n脈寬為T /2048.考慮到其他時間開銷,實際的刷新率F會比以上估算值略低。

          可以看出在子場時間T一定的情況下,后者(42T)的刷新率比前者低(27T),但是亮度的利用率比前者高,OE_n最小脈寬比前者長(對于驅(qū)動芯片來說,OE_n的脈寬最小值是有限制的,當(dāng)脈寬太窄時,驅(qū)動芯片將無法識別),所以,具體設(shè)計需根據(jù)實際情況做權(quán)衡。為了提高視覺刷新率(Visual Refresh Rate),可以把灰度值的高位打散成多段分布在刷新周期內(nèi);對動態(tài)掃描屏,還可以把實現(xiàn)灰度值的所有子場分割成多份,在刷新每一行時,只刷新一部分灰度,加快一行到下一行的切換速度,等所有行都刷新完一部分灰度之后,再接著刷新其他部分灰度,直到灰度值被完整刷新,從而提高視覺刷新率。通過優(yōu)化的 PWM編碼,不僅可以提高視覺刷新率,也能夠提高LED亮度利用率。

          CME-M5 8051功能描述

          200MHz主頻 8051 MCU是整個系統(tǒng)的主控,負(fù)責(zé)與PC的通信,實現(xiàn)TCP/IP協(xié)議棧,通過以太網(wǎng)接收來自于PC端的節(jié)目內(nèi)容,并以文件方式寫入SD卡進(jìn)行節(jié)目更新,同時,8051也負(fù)責(zé)節(jié)目特效處理; 另外,8051采集溫度傳感器、濕度傳感器信息,顯示在LED屏幕上;采集環(huán)境光傳感器,實現(xiàn)亮度自動調(diào)節(jié);通過紅外遙控實現(xiàn)節(jié)目切換。CME-M5已集成了RTC實時時鐘,無需外擴(kuò)芯片就能夠方便地在全彩LED屏上顯示年,月,日,時,分,秒,星期等信息;支持?jǐn)?shù)字時鐘及模擬時鐘顯示。

          4 結(jié)語

          通過采用FPGA SoC芯片,實現(xiàn)了針對門楣廣告市場的異步全彩LED顯示控制器的設(shè)計方案,由于門楣廣告屏的分辨率一般都不高,CME-M5內(nèi)嵌的200MHz增強型 8051完全可以勝任作為系統(tǒng)主控。方案支持80K像素點,16bit/65536級灰度,視覺刷新率最高支持6000Hz,支持靜態(tài)~16掃屏體類型,支持文字、圖片、動畫及簡單的視頻播放,支持?jǐn)?shù)字時鐘以及模擬時鐘顯示,支持溫度及濕度顯示,亮度自動調(diào)節(jié),紅外遙控節(jié)目切換。

          fpga相關(guān)文章:fpga是什么




          關(guān)鍵詞: LED 控制

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();