基于FPGA的OLED真彩色顯示的實現(xiàn)
1.3 FPGA控制器
利用FPGA的處理速度和數(shù)據(jù)寬度高的優(yōu)勢以及芯片中可利用的豐富資源,為分辨率為480×RGB×640的OLED顯示屏設計了外圍驅(qū)動控制電路。其主要作用是向OLED顯示屏提供掃描控制信號及進行OLED顯示數(shù)據(jù)的數(shù)字信號處理。
根據(jù)OLED顯示屏周邊接口的結(jié)構(gòu)和特性,利用FPGA芯片為其設計外圍的驅(qū)動控制系統(tǒng),為OLED屏提供控制信號以及傳輸所要顯示的數(shù)據(jù)信號。本文引用地址:http://cafeforensic.com/article/190187.htm
如圖3所示,經(jīng)解碼后的圖像數(shù)據(jù)存入FIFO(First In First Out)緩存中,在主時鐘的控制下,F(xiàn)IFO中的圖像數(shù)據(jù)將被載入到一個16×8的數(shù)據(jù)裝載寄存器,當這16個8位數(shù)據(jù)裝載寄存器裝滿時,將被一個144位的鎖存器鎖存,等待進入D/A轉(zhuǎn)換模塊;同時FPGA控制器還將在主時鐘的控制下產(chǎn)生行列移位時鐘和行列掃描起始脈沖,產(chǎn)生的時鐘和脈沖進入DC-DC轉(zhuǎn)換模塊。
1.4 各種控制信號周期及頻率
為使FPGA控制器能工作于一個合理的驅(qū)動頻率以及提高顯示屏的亮度,在結(jié)構(gòu)上采用標準單元塊的形式。對于分辨率480×3×640的顯示屏,以8×16個顯示像素燈管構(gòu)成一個單元塊,將480×3行分組組合成為90個塊(Block),即每塊由一組列信號同時驅(qū)動16行像素。設計列掃描驅(qū)動電路時,將640列電極分組組合成為80個塊(Block),每個塊并行驅(qū)動8列像素。
OLED顯示屏的刷新頻率是60 HZ/s,即顯示一幀圖像的時間為1/60 s,設為T,所以,行掃描起始信號stx的周期T為16 667μs,占空比為1:90;因為OLED顯示屏480×3行電極分組組合成為90個Block,所以每一塊的選通時間為T/90,即185.185μs。而cpx和cpbx是一對反相不交疊的脈沖信號,占空比為50%,在脈沖信號的高電平和低電平時,都有一個Block行像素被選通,即在cpx和cpbx一個周期內(nèi)有兩個Block行像素被選通,所以行掃描驅(qū)動脈沖cpx和cpbx的周期為T/45,即370.370μs。
同理,OLED顯示屏的列被分為80個Block,每個列Block的選通時間為2.315μs,列掃描起始信號sty的周期為185.1 85μs,占空比為1:80。列驅(qū)動脈沖cpy和cpby亦是一對反相不交疊的脈沖信號,占空比為50%,在脈沖信號的高電平和低電平時,都有一個Block被選通。由于每個列Block的選通時間為2.315μs,所以列掃描驅(qū)動脈沖cpy和cpby的周期為4.630 μs。
在每個列Block選通期間,從FIFO中并行讀出的8個8 bit數(shù)據(jù)進入數(shù)據(jù)鎖存器鎖存。在每個BLOCK選通期間都將進行一次數(shù)據(jù)的鎖存,所以數(shù)據(jù)鎖存信號Lock的周期為2.315μs。因為當16個8位的數(shù)據(jù)裝載寄存器都載滿數(shù)據(jù)的時候才進行這144個數(shù)據(jù)的鎖存,所以16位移位寄存器時鐘clk_reg的周期為0.145μs。從FIFO中讀出數(shù)據(jù)的速度必須和向數(shù)據(jù)裝載寄存器中裝載數(shù)據(jù)的速度一致,則FIFO的讀時鐘clk_fifo的周期也為0.145μs。對0.15μs(6.896 MHz)進行近似為7 MHz,所以令系統(tǒng)的基本時鐘為14 MHz,由FPGA外部晶振產(chǎn)生。讀時鐘為基本時鐘的二分頻。
1.5 FPGA工作流程
FPGA處理器是設計的核心部分,其工作流程為,在每個clk_fifo時鐘周期下,從8個FIFO緩存中并行讀出8個8 bit像素數(shù)據(jù),在時鐘clk_reg上升沿到來時,16位移位寄存器發(fā)生移位,它的輸出端接16個8位數(shù)據(jù)裝載寄存器的片選端,這樣16個8位數(shù)據(jù)裝載寄存器逐個被選通,此時這些數(shù)據(jù)就可以載入到16個8位數(shù)據(jù)裝載寄存器中,這16個8位寄存器的輸出端接在144位鎖存器的輸入端上。16個時鐘clk_reg上升沿過后,16個8位數(shù)據(jù)裝載寄存器都將依次被裝載滿,此時數(shù)據(jù)鎖存信號Lock到達,將144個數(shù)據(jù)鎖存到144位數(shù)據(jù)鎖存器中,然后這些數(shù)據(jù)進入到DA轉(zhuǎn)換模塊,轉(zhuǎn)換成16路模擬量,送至OLED顯示屏,完成一個Block數(shù)據(jù)的載入。
在列掃描驅(qū)動脈沖cpy和cpby的控制下,80個Block依次被選通,在每一Block被選通期間,都將進行一次144個數(shù)據(jù)的移位寄存和鎖存,當80個Block都鎖存完之后,一行數(shù)據(jù)的載入也就完成了。當?shù)谝恍械?0個Block數(shù)據(jù)顯示完畢后,列掃描起始信號sty過來,又開始從第一列掃描,與此同時,在行掃描驅(qū)動脈沖cpx和cpbx的作用下,第二行像素被選通,所以,這時將進行第二行的1到80個Block的數(shù)據(jù)載入,以此類推,直到90行數(shù)據(jù)都顯示完畢之后,行掃描起始信號stx到來,重新選通第一行,循環(huán)往復,一幀幀地顯示數(shù)據(jù)。
評論