基于FPGA的OLED真彩色顯示設(shè)計(jì)方案
OLED 顯示屏的刷新頻率是60 Hz /s,即顯示一幀圖像的時(shí)間為1 /60 s,設(shè)為T,所以,行掃描起始信號(hào)stx 的周期T 為16 667 μs,占空比為1∶ 90; 因?yàn)?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/OLED">OLED顯示屏480 × 3 行電極分組組合成為90 個(gè)Block,所以每一塊的選通時(shí)間為T /90,即185. 185 μs.而cpx 和cpbx 是一對(duì)反相不交疊的脈沖信號(hào),占空比為50%,在脈沖信號(hào)的高電平和低電平時(shí),都有一個(gè)Block 行像素被選通,即在cpx 和cpbx 一個(gè)周期內(nèi)有兩個(gè)Block 行像素被選通,所以行掃描驅(qū)動(dòng)脈沖cpx 和cpbx的周期為T /45,即370. 370 μs.
同理,OLED 顯示屏的列被分為80 個(gè)Block,每個(gè)列Block 的選通時(shí)間為2. 315 μs,列掃描起始信號(hào)sty的周期為185. 185 μs,占空比為1 ∶ 80.列驅(qū)動(dòng)脈沖cpy 和cpby 亦是一對(duì)反相不交疊的脈沖信號(hào),占空比為50%,在脈沖信號(hào)的高電平和低電平時(shí),都有一個(gè)Block 被選通。由于每個(gè)列Block 的選通時(shí)間為2. 315 μs,所以列掃描驅(qū)動(dòng)脈沖cpy 和cpby 的周期為4. 630 μs.
在每個(gè)列Block 選通期間,從FIFO 中并行讀出的8 個(gè)8 bit 數(shù)據(jù)進(jìn)入數(shù)據(jù)鎖存器鎖存。在每個(gè)BLOCK選通期間都將進(jìn)行一次數(shù)據(jù)的鎖存,所以數(shù)據(jù)鎖存信號(hào)Lock 的周期為2. 315 μs.因?yàn)楫?dāng)16 個(gè)8 位的數(shù)據(jù)裝載寄存器都載滿數(shù)據(jù)的時(shí)候才進(jìn)行這144 個(gè)數(shù)據(jù)的鎖存,所以16 位移位寄存器時(shí)鐘clk _reg 的周期為0. 145 μs.從FIFO 中讀出數(shù)據(jù)的速度必須和向數(shù)據(jù)裝載寄存器中裝載數(shù)據(jù)的速度一致,則FIFO 的讀時(shí)鐘clk _ fifo 的周期也為0. 145 μs.對(duì)0. 15 μs( 6. 896 MHz) 進(jìn)行近似為7 MHz,所以令系統(tǒng)的基本時(shí)鐘為14 MHz,由FPGA 外部晶振產(chǎn)生。讀時(shí)鐘為基本時(shí)鐘的二分頻。
1. 5 FPGA 工作流程
FPGA 處理器是設(shè)計(jì)的核心部分,其工作流程為,在每個(gè)clk_fifo 時(shí)鐘周期下,從8 個(gè)FIFO 緩存中并行讀出8 個(gè)8 bit 像素?cái)?shù)據(jù),在時(shí)鐘clk_reg 上升沿到來時(shí), 16 位移位寄存器發(fā)生移位,它的輸出端接16 個(gè)8位數(shù)據(jù)裝載寄存器的片選端,這樣16 個(gè)8 位數(shù)據(jù)裝載寄存器逐個(gè)被選通,此時(shí)這些數(shù)據(jù)就可以載入到16 個(gè)8 位數(shù)據(jù)裝載寄存器中,這16 個(gè)8 位寄存器的輸出端接在144 位鎖存器的輸入端上。16 個(gè)時(shí)鐘clk_reg 上升沿過后, 16 個(gè)8 位數(shù)據(jù)裝載寄存器都將依次被裝載滿,此時(shí)數(shù)據(jù)鎖存信號(hào)Lock 到達(dá),將144 個(gè)數(shù)據(jù)鎖存到144 位數(shù)據(jù)鎖存器中,然后這些數(shù)據(jù)進(jìn)入到DA 轉(zhuǎn)換模塊,轉(zhuǎn)換成16 路模擬量,送至OLED 顯示屏,完成一個(gè)Block 數(shù)據(jù)的載入。
在列掃描驅(qū)動(dòng)脈沖cpy 和cpby 的控制下,80 個(gè)Block 依次被選通,在每一Block 被選通期間,都將進(jìn)行一次144 個(gè)數(shù)據(jù)的移位寄存和鎖存,當(dāng)80 個(gè)Block都鎖存完之后,一行數(shù)據(jù)的載入也就完成了。當(dāng)?shù)谝恍械?0 個(gè)Block 數(shù)據(jù)顯示完畢后,列掃描起始信號(hào)sty過來,又開始從第一列掃描,與此同時(shí),在行掃描驅(qū)動(dòng)脈沖cpx 和cpbx 的作用下,第二行像素被選通,所以,這時(shí)將進(jìn)行第二行的1 到80 個(gè)Block 的數(shù)據(jù)載入,以此類推,直到90 行數(shù)據(jù)都顯示完畢之后,行掃描起始信號(hào)stx 到來,重新選通第一行,循環(huán)往復(fù),一幀幀地顯示數(shù)據(jù)。
2 仿真結(jié)果
選用Altera 公司Cyclone Ⅲ 系列芯片EP3C10E144C8 為目標(biāo)芯片,采用Verilog HDL 語言進(jìn)行設(shè)計(jì),在GX - SOPC - EDA - EP3C10 - STARTER -EDK 開發(fā)板上進(jìn)行Modelsim 仿真,仿真結(jié)果如圖4 和圖5 所示。
圖4 外圍驅(qū)動(dòng)時(shí)序仿真結(jié)果
圖5 256灰度產(chǎn)生模擬仿真
由圖4 仿真結(jié)果可以看出,80 組列掃描脈沖cpy和cpby 控制80 個(gè)Block, 80 個(gè)列掃描脈沖完畢后,列掃描起始信號(hào)sty 脈沖開始,繼續(xù)掃描下一行。90 行掃描完畢后, stx 到來重新選通第一行,依此循環(huán),符合設(shè)計(jì)的要求。
由圖5 仿真結(jié)果可以看出,對(duì)于輸入的8 bit 像素?cái)?shù)據(jù),經(jīng)灰度產(chǎn)生模塊轉(zhuǎn)化為灰度數(shù)據(jù)。以第一個(gè)輸入數(shù)據(jù)8 hff 為例,每位的顯示時(shí)間為128∶ 64∶ 32∶ 16∶ 8∶ 4∶2∶ 1,由其不同組合,從而實(shí)現(xiàn)了256 級(jí)灰度的功能。
3 結(jié)束語
基于FPGA 芯片設(shè)計(jì)了分辨率為480 × RGB × 640的真彩色OLED 顯示屏的驅(qū)動(dòng)電路,在傳統(tǒng)的子場原理和脈寬調(diào)制占空比實(shí)現(xiàn)灰度的基礎(chǔ)上,對(duì)其進(jìn)行優(yōu)化,采用R、G、B 單基色像素分時(shí)顯示的方法,實(shí)現(xiàn)了256 級(jí)灰度功能。經(jīng)仿真和軟硬件協(xié)同仿真驗(yàn)證,實(shí)現(xiàn)了設(shè)計(jì)所要求滿足的功能。其256 級(jí)灰度實(shí)現(xiàn)方法簡單靈活,降低了對(duì)FPGA 驅(qū)動(dòng)頻率的要求,對(duì)于在高刷率、高分辨率、高灰階顯示器件上的應(yīng)用,具有很高的實(shí)用價(jià)值。利用該電路系統(tǒng)可以實(shí)現(xiàn)OLED 顯示的全彩色實(shí)時(shí)動(dòng)態(tài)圖像的傳輸,為今后OLED 作為大尺寸顯示器提供了技術(shù)支持。
評(píng)論