基于FPGA芯片EP3C10E144C8的OLED真彩色顯示方案
考慮到幀頻與OLED 屏體顯示效率的折中,使驅動(dòng)電路工作頻率在一個(gè)合理水平,在脈寬調制和子場(chǎng)原理的基礎上,對這兩種方法進(jìn)行優(yōu)化,256 級灰度采用通過(guò)對圖像數據按位分時(shí)顯示的方法實(shí)現,即對輸入的8 bit 像素信號RGB,通過(guò)給每種顏色字節的不同位分配不同的顯示時(shí)間達到灰度顯示的目的,使每位的顯示時(shí)間為128∶ 64∶ 32∶ 16∶ 8∶ 4∶ 2∶ 1,利用其組合可以得到256 級灰度顯示所對應的子像素發(fā)光時(shí)間,實(shí)現視覺(jué)上的256 級灰度即1 667 萬(wàn)色顯示,以實(shí)現高質(zhì)量的顯示畫(huà)面。
為實(shí)現256 級灰度,將一個(gè)像素點(diǎn)的掃描時(shí)間分成19 個(gè)單位時(shí)間t,8 bit 灰度數據q[7: 0]從高位到低位所占的時(shí)間分別為8t,4t,2 t,t,t,t,t,t.為使不同位顯示時(shí)間成一定比例,從q[3]開(kāi)始引入t /2 的消影時(shí)間,q[2]引入t /4 的消影時(shí)間,d[1]引入t /8 的消影時(shí)間,d[0]引入t /16 的消影時(shí)間,如圖2 所示,由控制電路產(chǎn)生消隱信號進(jìn)行消隱。由此計算OLED 屏亮度百分比λ = ( 8 + 4 + 2 + l + 1 /2 + 1 /4 + 1 /8 + 1 /16 ) /19 = 83. 9%.
1. 3 FPGA控制器
利用FPGA 的處理速度和數據寬度高的優(yōu)勢以及芯片中可利用的豐富資源,為分辨率為480 × RGB ×640 的OLED 顯示屏設計了外圍驅動(dòng)控制電路。其主要作用是向OLED 顯示屏提供掃描控制信號及進(jìn)行OLED 顯示數據的數字信號處理。
根據OLED 顯示屏周邊接口的結構和特性,利用FPGA 芯片為其設計外圍的驅動(dòng)控制系統,為OLED 屏提供控制信號以及傳輸所要顯示的數據信號。
如圖3 所示,經(jīng)解碼后的圖像數據存入FIFO( First In First Out) 緩存中,在主時(shí)鐘的控制下,FIFO中的圖像數據將被載入到一個(gè)16 × 8 的數據裝載寄存器,當這16 個(gè)8 位數據裝載寄存器裝滿(mǎn)時(shí),將被一個(gè)144 位的鎖存器鎖存,等待進(jìn)入D/A 轉換模塊; 同時(shí)FPGA 控制器還將在主時(shí)鐘的控制下產(chǎn)生行列移位時(shí)鐘和行列掃描起始脈沖,產(chǎn)生的時(shí)鐘和脈沖進(jìn)入DC -DC 轉換模塊。
圖3 FPGA 控制器結構框圖。
1. 4 各種控制信號周期及頻率
為使FPGA 控制器能工作于一個(gè)合理的驅動(dòng)頻率以及提高顯示屏的亮度,在結構上采用標準單元塊的形式。對于分辨率480 × 3 × 640 的顯示屏,以8 × 16個(gè)顯示像素燈管構成一個(gè)單元塊,將480 × 3 行分組組合成為90 個(gè)塊( Block) ,即每塊由一組列信號同時(shí)驅動(dòng)16 行像素。設計列掃描驅動(dòng)電路時(shí),將640 列電極分組組合成為80 個(gè)塊( Block) ,每個(gè)塊并行驅動(dòng)8 列像素。
OLED 顯示屏的刷新頻率是60 Hz /s,即顯示一幀圖像的時(shí)間為1 /60 s,設為T(mén),所以,行掃描起始信號stx 的周期T 為16 667 μs,占空比為1∶ 90; 因為OLED顯示屏480 × 3 行電極分組組合成為90 個(gè)Block,所以每一塊的選通時(shí)間為T(mén) /90,即185. 185 μs.而cpx 和cpbx 是一對反相不交疊的脈沖信號,占空比為50%,在脈沖信號的高電平和低電平時(shí),都有一個(gè)Block 行像素被選通,即在cpx 和cpbx 一個(gè)周期內有兩個(gè)Block 行像素被選通,所以行掃描驅動(dòng)脈沖cpx 和cpbx的周期為T(mén) /45,即370. 370 μs.
同理,OLED 顯示屏的列被分為80 個(gè)Block,每個(gè)列Block 的選通時(shí)間為2. 315 μs,列掃描起始信號sty的周期為185. 185 μs,占空比為1 ∶ 80.列驅動(dòng)脈沖cpy 和cpby 亦是一對反相不交疊的脈沖信號,占空比為50%,在脈沖信號的高電平和低電平時(shí),都有一個(gè)Block 被選通。由于每個(gè)列Block 的選通時(shí)間為2. 315 μs,所以列掃描驅動(dòng)脈沖cpy 和cpby 的周期為4. 630 μs.
在每個(gè)列Block 選通期間,從FIFO 中并行讀出的8 個(gè)8 bit 數據進(jìn)入數據鎖存器鎖存。在每個(gè)BLOCK選通期間都將進(jìn)行一次數據的鎖存,所以數據鎖存信號Lock 的周期為2. 315 μs.因為當16 個(gè)8 位的數據裝載寄存器都載滿(mǎn)數據的時(shí)候才進(jìn)行這144 個(gè)數據的鎖存,所以16 位移位寄存器時(shí)鐘clk _reg 的周期為0. 145 μs.從FIFO 中讀出數據的速度必須和向數據裝載寄存器中裝載數據的速度一致,則FIFO 的讀時(shí)鐘clk _ fifo 的周期也為0. 145 μs.對0. 15 μs( 6. 896 MHz) 進(jìn)行近似為7 MHz,所以令系統的基本時(shí)鐘為14 MHz,由FPGA 外部晶振產(chǎn)生。讀時(shí)鐘為基本時(shí)鐘的二分頻。
評論