基于FPGA的OLED真彩色顯示的實(shí)現(xiàn)
1.3 FPGA控制器
利用FPGA的處理速度和數(shù)據(jù)寬度高的優(yōu)勢(shì)以及芯片中可利用的豐富資源,為分辨率為480×RGB×640的OLED顯示屏設(shè)計(jì)了外圍驅(qū)動(dòng)控制電路。其主要作用是向OLED顯示屏提供掃描控制信號(hào)及進(jìn)行OLED顯示數(shù)據(jù)的數(shù)字信號(hào)處理。
根據(jù)OLED顯示屏周邊接口的結(jié)構(gòu)和特性,利用FPGA芯片為其設(shè)計(jì)外圍的驅(qū)動(dòng)控制系統(tǒng),為OLED屏提供控制信號(hào)以及傳輸所要顯示的數(shù)據(jù)信號(hào)。本文引用地址:http://www.ex-cimer.com/article/190187.htm
如圖3所示,經(jīng)解碼后的圖像數(shù)據(jù)存入FIFO(First In First Out)緩存中,在主時(shí)鐘的控制下,F(xiàn)IFO中的圖像數(shù)據(jù)將被載入到一個(gè)16×8的數(shù)據(jù)裝載寄存器,當(dāng)這16個(gè)8位數(shù)據(jù)裝載寄存器裝滿(mǎn)時(shí),將被一個(gè)144位的鎖存器鎖存,等待進(jìn)入D/A轉(zhuǎn)換模塊;同時(shí)FPGA控制器還將在主時(shí)鐘的控制下產(chǎn)生行列移位時(shí)鐘和行列掃描起始脈沖,產(chǎn)生的時(shí)鐘和脈沖進(jìn)入DC-DC轉(zhuǎn)換模塊。
1.4 各種控制信號(hào)周期及頻率
為使FPGA控制器能工作于一個(gè)合理的驅(qū)動(dòng)頻率以及提高顯示屏的亮度,在結(jié)構(gòu)上采用標(biāo)準(zhǔn)單元塊的形式。對(duì)于分辨率480×3×640的顯示屏,以8×16個(gè)顯示像素?zé)艄軜?gòu)成一個(gè)單元塊,將480×3行分組組合成為90個(gè)塊(Block),即每塊由一組列信號(hào)同時(shí)驅(qū)動(dòng)16行像素。設(shè)計(jì)列掃描驅(qū)動(dòng)電路時(shí),將640列電極分組組合成為80個(gè)塊(Block),每個(gè)塊并行驅(qū)動(dòng)8列像素。
OLED顯示屏的刷新頻率是60 HZ/s,即顯示一幀圖像的時(shí)間為1/60 s,設(shè)為T(mén),所以,行掃描起始信號(hào)stx的周期T為16 667μs,占空比為1:90;因?yàn)镺LED顯示屏480×3行電極分組組合成為90個(gè)Block,所以每一塊的選通時(shí)間為T(mén)/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(mén)/45,即370.370μs。
同理,OLED顯示屏的列被分為80個(gè)Block,每個(gè)列Block的選通時(shí)間為2.315μs,列掃描起始信號(hào)sty的周期為185.1 85μ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ù)裝載寄存器都載滿(mǎn)數(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上升沿到來(lái)時(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上升沿過(guò)后,16個(gè)8位數(shù)據(jù)裝載寄存器都將依次被裝載滿(mǎn),此時(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過(guò)來(lái),又開(kāi)始從第一列掃描,與此同時(shí),在行掃描驅(qū)動(dòng)脈沖cpx和cpbx的作用下,第二行像素被選通,所以,這時(shí)將進(jìn)行第二行的1到80個(gè)Block的數(shù)據(jù)載入,以此類(lèi)推,直到90行數(shù)據(jù)都顯示完畢之后,行掃描起始信號(hào)stx到來(lái),重新選通第一行,循環(huán)往復(fù),一幀幀地顯示數(shù)據(jù)。
評(píng)論